diff --git a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/CheckTests.java b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/CheckTests.java
index bcffbb94253..67de9f1de07 100644
--- a/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/CheckTests.java
+++ b/debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/viewer/model/CheckTests.java
@@ -18,13 +18,15 @@
import org.eclipse.debug.internal.ui.viewers.model.provisional.ModelDelta;
import org.eclipse.debug.tests.viewer.model.TestModel.TestElement;
import org.eclipse.jface.viewers.TreePath;
+import org.eclipse.swt.widgets.Display;
+import org.junit.Assert;
import org.junit.Test;
/**
- * Tests which verify the check box support. This test is very similar to the
- * content test except that the extending class should create a viewer with
- * the SWT.CHECK style enabled.
- * Most of the check box verification is performed in the test model.
+ * Tests which verify the check box support. This test is very similar to the
+ * content test except that the extending class should create a viewer with the
+ * SWT.CHECK style enabled.
+ * Most of the check box verification is performed in the test model.
*
* @since 3.6
*/
@@ -44,9 +46,11 @@ public void testSimpleSingleLevel() throws Exception {
fViewer.setAutoExpandLevel(-1);
// Create the agent which forces the tree to populate
- //TreeModelViewerAutopopulateAgent autopopulateAgent = new TreeModelViewerAutopopulateAgent(fViewer);
+ // TreeModelViewerAutopopulateAgent autopopulateAgent = new
+ // TreeModelViewerAutopopulateAgent(fViewer);
- // Create the listener which determines when the view is finished updating.
+ // Create the listener which determines when the view is finished
+ // updating.
fListener.reset(TreePath.EMPTY, model.getRootElement(), -1, true, false);
// Set the viewer input (and trigger updates).
@@ -60,7 +64,8 @@ public void testSimpleSingleLevel() throws Exception {
@Test
public void testSimpleMultiLevel() throws Exception {
- //TreeModelViewerAutopopulateAgent autopopulateAgent = new TreeModelViewerAutopopulateAgent(fViewer);
+ // TreeModelViewerAutopopulateAgent autopopulateAgent = new
+ // TreeModelViewerAutopopulateAgent(fViewer);
TestModel model = TestModel.simpleMultiLevel();
fViewer.setAutoExpandLevel(-1);
@@ -74,38 +79,37 @@ public void testSimpleMultiLevel() throws Exception {
model.validateData(fViewer, TreePath.EMPTY);
}
- // TODO: no idea how to trigger a toggle event on an item
-// public void testCheckReceiver() {
-// // Initial setup
-// TestModel model = TestModel.simpleSingleLevel();
-// fViewer.setAutoExpandLevel(-1);
-// //TreeModelViewerAutopopulateAgent autopopulateAgent = new TreeModelViewerAutopopulateAgent(fViewer);
-// fListener.reset(TreePath.EMPTY, model.getRootElement(), -1, true, false);
-// fViewer.setInput(model.getRootElement());
-//
-// // Wait for the updates to complete and validate.
-// while (!fListener.isFinished()) if (!fDisplay.readAndDispatch ()) Thread.sleep(0);
-// model.validateData(fViewer, TreePath.EMPTY);
-//
-// InternalTreeModelViewer treeViewer = ((InternalTreeModelViewer)fViewer);
-// TreePath elementPath = model.findElement("1");
-// TestElement element = model.getElement(elementPath);
-// boolean initialCheckState = element.getChecked();
-// Event event = new Event();
-// event.item = treeViewer.findItem(elementPath);
-// event.detail = SWT.CHECK;
-// event.display = fDisplay;
-// event.type = SWT.Selection;
-// event.widget = treeViewer.getControl();
-// fDisplay.post(event);
-//
-// while (fDisplay.readAndDispatch ());
-//
-// Assert.assertTrue(element.getChecked() != initialCheckState);
-// }
+ @Test
+ public void testCheckReceiver() throws Exception {
+ // Initial setup
+ TestModel model = TestModel.simpleSingleLevel();
+ fViewer.setAutoExpandLevel(-1);
+ // TreeModelViewerAutopopulateAgent autopopulateAgent = new
+ // TreeModelViewerAutopopulateAgent(fViewer);
+ fListener.reset(TreePath.EMPTY, model.getRootElement(), -1, true, false);
+ fViewer.setInput(model.getRootElement());
+
+ waitWhile(t -> !fListener.isFinished(), createListenerErrorMessage());
+ model.validateData(fViewer, TreePath.EMPTY);
+
+ TestElement element = model.getRootElement().getChildren()[0];
+ boolean initialCheckState = element.getChecked();
+ TreePath elementPath = new TreePath(new Object[] { element });
+ ModelDelta delta = model.setElementChecked(elementPath, true, false);
+
+ fListener.reset(elementPath, element, -1, true, false);
+ model.postDelta(delta);
+
+ while (Display.getCurrent().readAndDispatch()) {
+ }
+
+ Assert.assertTrue(element.getChecked() != initialCheckState);
+ }
+
@Test
public void testUpdateCheck() throws Exception {
- //TreeModelViewerAutopopulateAgent autopopulateAgent = new TreeModelViewerAutopopulateAgent(fViewer);
+ // TreeModelViewerAutopopulateAgent autopopulateAgent = new
+ // TreeModelViewerAutopopulateAgent(fViewer);
TestModel model = TestModel.simpleSingleLevel();
fViewer.setAutoExpandLevel(-1);