From 3a7e8cf00e84b1528c96d44ce979e5530d4966c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Kubitz?= Date: Thu, 7 Dec 2023 16:20:11 +0100 Subject: [PATCH] [test] improve TableViewerTest #1005 move "fViewer.getControl().update();" to front https://github.com/eclipse-platform/eclipse.platform.ui/issues/1005 --- .../jface/tests/viewers/TableViewerTest.java | 17 ++++++++++++++--- .../tests/viewers/VirtualTableViewerTest.java | 7 +++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/TableViewerTest.java b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/TableViewerTest.java index 9231573ad77..2b33ed7f727 100644 --- a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/TableViewerTest.java +++ b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/TableViewerTest.java @@ -20,6 +20,8 @@ import static org.junit.Assert.assertTrue; import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.stream.Collectors; import org.eclipse.jface.viewers.ColumnLayoutData; import org.eclipse.jface.viewers.ColumnViewer; @@ -196,14 +198,23 @@ public void testRemove() { @Test public void testContains() { TableViewer tViewer = (TableViewer) fViewer; + fViewer.getControl().update(); + String elements = toString(tViewer); // some random element. - assertFalse("element must not be available on the viewer", tViewer.contains("")); + assertFalse("random element must not be available on the viewer. All Elements: " + elements, + tViewer.contains("")); // first child of root. - assertTrue("element must be available on the viewer", tViewer.contains(fRootElement.getFirstChild())); + assertTrue("first element must be available on the viewer. All Elements: " + elements, + tViewer.contains(fRootElement.getFirstChild())); // last child of the root - assertTrue("element must be available on the viewer", tViewer.contains(fRootElement.getLastChild())); + assertTrue("last element must be available on the viewer. All Elements: " + elements, + tViewer.contains(fRootElement.getLastChild())); } + String toString(TableViewer viewer) { + TableItem[] items = viewer.getTable().getItems(); + return Arrays.asList(items).stream().map(item -> item.getText()).collect(Collectors.joining(",", "'", "'")); + } } diff --git a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/VirtualTableViewerTest.java b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/VirtualTableViewerTest.java index 89fe6c1ca7c..e62e869ffe6 100644 --- a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/VirtualTableViewerTest.java +++ b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/VirtualTableViewerTest.java @@ -233,12 +233,15 @@ public void testRenameWithSorter() { // Call update to make sure the viewer is in a correct state // At least on MacOSX I get failures without this call ((TableViewer) fViewer).getControl().update(); + assertEquals("unsorted", "0-0 name-0", getItemText(0)); fViewer.setComparator(new TestLabelComparator()); + assertEquals("sorted", "0-9 name-9", getItemText(0)); TestElement first = fRootElement.getFirstChild(); + ((TableViewer) fViewer).getControl().update(); // before getFirstChild()! first.setLabel("name-9999"); String newElementLabel = first.toString(); - ((TableViewer) fViewer).getControl().update(); - assertEquals("sorted first", newElementLabel, getItemText(0)); + assertEquals("label updated", "0-0 name-9999", newElementLabel); + assertEquals("item updated", "0-0 name-9999", getItemText(0)); } @Override