Skip to content

Commit 58a5d34

Browse files
committed
TreeViewer.collapseToLevel() consistency test
Test to verify JFace / SWT consistency if using TreeViewer.collapseToLevel() with ALL_LEVELS vs specific level argument This test will fail on GTK without change in SWT below. See eclipse-platform/eclipse.platform.swt#2888 See eclipse-platform/eclipse.platform.swt#2887
1 parent b661aed commit 58a5d34

File tree

2 files changed

+49
-3
lines changed

2 files changed

+49
-3
lines changed

tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/TreeViewerTest.java

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,47 @@ protected void internalExpandToLevel(Widget widget, int level) {
117117
}
118118
}
119119

120+
@Test
121+
public void testExpandCollapseToLevel() {
122+
TestElement rootElement = TestElement.createModel(3, 1);
123+
TestElement firstChild = rootElement.getChildAt(0);
124+
TestElement secondChild = firstChild.getChildAt(0);
125+
TestElement lastChild = secondChild.getChildAt(0);
126+
127+
fTreeViewer.setInput(rootElement);
128+
129+
/*
130+
* First block shows everything works with
131+
* collapseToLevel(AbstractTreeViewer.ALL_LEVELS);
132+
*/
133+
fTreeViewer.expandToLevel(rootElement, AbstractTreeViewer.ALL_LEVELS);
134+
processEvents();
135+
assertTrue("1st should be expanded", fTreeViewer.getExpandedState(firstChild));
136+
assertTrue("2nd should be expanded", fTreeViewer.getExpandedState(secondChild));
137+
assertFalse("3rd should be always collapsed", fTreeViewer.getExpandedState(lastChild));
138+
139+
fTreeViewer.collapseToLevel(firstChild, AbstractTreeViewer.ALL_LEVELS);
140+
processEvents();
141+
assertFalse("1st should be collapsed", fTreeViewer.getExpandedState(firstChild));
142+
assertFalse("2nd should be collapsed", fTreeViewer.getExpandedState(secondChild));
143+
assertFalse("3rd should be always collapsed", fTreeViewer.getExpandedState(lastChild));
144+
145+
/*
146+
* Main block shows regression with collapseToLevel(number);
147+
*/
148+
fTreeViewer.expandToLevel(rootElement, AbstractTreeViewer.ALL_LEVELS);
149+
processEvents();
150+
assertTrue("1st should be expanded", fTreeViewer.getExpandedState(firstChild));
151+
assertTrue("2nd should be expanded", fTreeViewer.getExpandedState(secondChild));
152+
assertFalse("3rd should be always collapsed", fTreeViewer.getExpandedState(lastChild));
153+
154+
fTreeViewer.collapseToLevel(firstChild, 2);
155+
processEvents();
156+
assertFalse("1st should be collapsed", fTreeViewer.getExpandedState(firstChild));
157+
assertFalse("2nd should be collapsed", fTreeViewer.getExpandedState(secondChild));
158+
assertFalse("3rd should be always collapsed", fTreeViewer.getExpandedState(lastChild));
159+
}
160+
120161
/**
121162
* Removing the same element twice should not produce a dummy tree-item.
122163
*/
@@ -127,7 +168,7 @@ public void testIssue3525() {
127168
TestElement modelChild = modelParent.getChildAt(0);
128169
fTreeViewer.setInput(modelRoot);
129170
fTreeViewer.expandAll();
130-
171+
processEvents();
131172
TreeItem widgetParent = (TreeItem) fTreeViewer.testFindItem(modelParent);
132173
TreeItem widgetChild = (TreeItem) fTreeViewer.testFindItem(modelChild);
133174
assertNotNull(widgetParent);
@@ -141,15 +182,15 @@ public void testIssue3525() {
141182
modelParent.fChildren.remove(modelChild);
142183
fTreeViewer.remove(modelChild);
143184
modelParent.fChildren.add(modelChild);
144-
185+
processEvents();
145186
widgetParent = (TreeItem) fTreeViewer.testFindItem(modelParent);
146187
widgetChild = (TreeItem) fTreeViewer.testFindItem(modelChild);
147188
assertNotNull(widgetParent);
148189
assertNull(widgetChild);
149190
assertArrayEquals(widgetParent.getItems(), new TreeItem[0]);
150191

151192
fTreeViewer.remove(modelChild);
152-
193+
processEvents();
153194
widgetParent = (TreeItem) fTreeViewer.testFindItem(modelParent);
154195
widgetChild = (TreeItem) fTreeViewer.testFindItem(modelChild);
155196
assertNotNull(widgetParent);

tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/VirtualLazyTreeViewerTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,11 @@ public void testSorter() {
136136
public void testChildIsNotDuplicatedWhenCompareEquals() {
137137
}
138138

139+
@Ignore("test is not relevant for lazy tree viewer")
140+
@Override
141+
public void testExpandCollapseToLevel() {
142+
}
143+
139144
// Temporary overrides for bug 347491
140145
@Test
141146
@Override

0 commit comments

Comments
 (0)