### Eclipse Workspace Patch 1.0 #P org.eclipse.team.tests.core Index: src/org/eclipse/team/tests/ui/synchronize/AllTeamSynchronizeTests.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/AllTeamSynchronizeTests.java,v retrieving revision 1.8 diff -u -r1.8 AllTeamSynchronizeTests.java --- src/org/eclipse/team/tests/ui/synchronize/AllTeamSynchronizeTests.java 29 Jun 2006 17:24:36 -0000 1.8 +++ src/org/eclipse/team/tests/ui/synchronize/AllTeamSynchronizeTests.java 19 Oct 2007 15:03:12 -0000 @@ -27,7 +27,8 @@ public static Test suite() { TestSuite suite = new TestSuite(); - suite.addTest(ResourceContentTests.suite()); +// suite.addTest(ResourceContentTests.suite()); + suite.addTest(AbstractTreeViewerAdvisorTests.suite()); return suite; } } Index: src/org/eclipse/team/tests/core/AllTeamUITests.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/AllTeamUITests.java,v retrieving revision 1.1 diff -u -r1.1 AllTeamUITests.java --- src/org/eclipse/team/tests/core/AllTeamUITests.java 25 Jan 2007 13:21:42 -0000 1.1 +++ src/org/eclipse/team/tests/core/AllTeamUITests.java 19 Oct 2007 15:03:12 -0000 @@ -15,6 +15,7 @@ import org.eclipse.core.tests.resources.ResourceTest; import org.eclipse.team.tests.core.mapping.ScopeTests; +import org.eclipse.team.tests.ui.synchronize.AllTeamSynchronizeTests; public class AllTeamUITests extends ResourceTest { @@ -29,6 +30,7 @@ public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(ScopeTests.suite()); + suite.addTest(AllTeamSynchronizeTests.suite()); return suite; } } Index: src/org/eclipse/team/tests/ui/synchronize/AbstractTreeViewerAdvisorTests.java =================================================================== RCS file: src/org/eclipse/team/tests/ui/synchronize/AbstractTreeViewerAdvisorTests.java diff -N src/org/eclipse/team/tests/ui/synchronize/AbstractTreeViewerAdvisorTests.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/team/tests/ui/synchronize/AbstractTreeViewerAdvisorTests.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,174 @@ +package org.eclipse.team.tests.ui.synchronize; + +import java.util.ArrayList; + +import junit.framework.Test; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.jface.viewers.ITreeContentProvider; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.TreeSelection; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.team.internal.ui.synchronize.AbstractTreeViewerAdvisor; +import org.eclipse.team.internal.ui.synchronize.TreeViewerAdvisor.NavigableTreeViewer; +import org.eclipse.team.tests.core.TeamTest; + +public class AbstractTreeViewerAdvisorTests extends TeamTest { + + private Display display; + private Shell shell; + private NavigableTreeViewer treeViewer; + private MyModel root; + + private class MyContentProvider implements ITreeContentProvider { + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) + */ + public Object[] getElements(Object inputElement) { + return ((MyModel)inputElement).child.toArray(); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.IContentProvider#dispose() + */ + public void dispose() { + + } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) + */ + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { + + } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object) + */ + public Object[] getChildren(Object parentElement) { + return getElements(parentElement); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object) + */ + public Object getParent(Object element) { + if( element == null) { + return null; + } + + return ((MyModel)element).parent; + } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) + */ + public boolean hasChildren(Object element) { + return ((MyModel)element).child.size() > 0; + } + + } + + public class MyModel { + public MyModel parent; + public ArrayList child = new ArrayList(); + public int counter; + + public MyModel(int counter, MyModel parent) { + this.parent = parent; + this.counter = counter; + } + + public String toString() { + String rv = "Item "; + if( parent != null ) { + rv = parent.toString() + "."; + } + + rv += counter; + + return rv; + } + } + + public static Test suite() { + return suite(AbstractTreeViewerAdvisorTests.class); + } + private MyModel createModel() { + + root = new MyModel(0,null); + root.counter = 0; + + MyModel tmp; + for( int i = 1; i < 10; i++ ) { + tmp = new MyModel(i, root); + root.child.add(tmp); + for( int j = 1; j < i; j++ ) { + tmp.child.add(new MyModel(j,tmp)); + } + } + + return root; + } + + private MyModel getFirstLeaf() { + MyModel tmp = root; + while (!tmp.child.isEmpty()) { + tmp = (MyModel) tmp.child.get(0); + } + return tmp; + } + + private MyModel getLastLeaf() { + MyModel tmp = root; + while (!tmp.child.isEmpty()) { + tmp = (MyModel) tmp.child.get(tmp.child.size()-1); + } + return tmp; + } + + protected void setUp() throws Exception { + super.setUp(); + display = Display.getCurrent(); + if (display == null) { + display = new Display(); + } + + shell = new Shell(display, SWT.SHELL_TRIM); + shell.setSize(500, 500); + shell.setLayout(new FillLayout()); + + treeViewer = new NavigableTreeViewer(shell, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); + treeViewer.setUseHashlookup(true); + treeViewer.setContentProvider(new MyContentProvider()); + treeViewer.setInput(createModel()); + + } + + protected void tearDown() throws Exception { + shell.close(); + treeViewer = null; + if (shell != null) { + shell.dispose(); + shell = null; + } + } + + public void testNavigateFirstChange() throws CoreException { + treeViewer.setSelection(StructuredSelection.EMPTY); + AbstractTreeViewerAdvisor.navigate(treeViewer, true, false, false); + assertSame(getFirstLeaf(), ((TreeSelection)treeViewer.getSelection()).getFirstElement()); + } + + public void testNavigateLastChange() throws CoreException { + treeViewer.setSelection(StructuredSelection.EMPTY); + AbstractTreeViewerAdvisor.navigate(treeViewer, false, false, false); + assertSame(getLastLeaf(), ((TreeSelection)treeViewer.getSelection()).getFirstElement()); + } + +}