long postEnd = System.currentTimeMillis();
// One data should be in the collection (the selected package
// declaration):
assertEquals(1, tracker.getData().size());
JavaEvent event = tracker.getData().iterator().next();
long start = event.getInterval().getStartMillis();
long end = event.getInterval().getEndMillis();
checkTime(preStart, start, postStart, preEnd, end, postEnd);
assertEquals(getElementAtOffset(editor), event.getElement());
// Restore the shell to see if tracker will start tracking again:
tracker.flushData();
preStart = System.currentTimeMillis();
shell.setMinimized(false);
postStart = System.currentTimeMillis();
Thread.sleep(25);
// Minimise the shell to cause it to lose focus:
preEnd = System.currentTimeMillis();
shell.setMinimized(true);
postEnd = System.currentTimeMillis();
// One data should be in the collection (the selected package
// declaration):
assertEquals(1, tracker.getData().size());
event = tracker.getData().iterator().next();
start = event.getInterval().getStartMillis();
end = event.getInterval().getEndMillis();
checkTime(preStart, start, postStart, preEnd, end, postEnd);
assertEquals(getElementAtOffset(editor), event.getElement());
} finally {
shell.setMinimized(false);
}
}