package org.eclipse.ui.tests.navigator; | |
import java.lang.reflect.Method; | |
import org.eclipse.core.resources.*; | |
import org.eclipse.jface.viewers.*; | |
import org.eclipse.ui.*; | |
import org.eclipse.jdt.junit.util.*; | |
import org.eclipse.ui.part.ISetSelectionTarget; | |
import org.eclipse.ui.views.navigator.ResourceNavigator; | |
public class ResourceNavigatorTest extends UITestCase { | |
private IWorkbenchPage activePage; | |
private IWorkbenchWindow workbenchWindow; | |
private IViewPart view; | |
private IProject p1; | |
private IProject p2; | |
private IFile f1; | |
private IFile f2; | |
/** | |
* Constructor for ResourceNavigatorTest. | |
* @param testName | |
*/ | |
public ResourceNavigatorTest(String testName) { | |
super(testName); | |
} | |
private TreeViewer getViewer(ResourceNavigator view) throws Throwable { | |
Class clazz = view.getClass(); | |
Method method = clazz.getDeclaredMethod("getResourceViewer", new Class [0]); | |
method.setAccessible(true); | |
return (TreeViewer) method.invoke(view, new Object[0]); | |
} | |
public void setUp() { | |
workbenchWindow = openTestWindow(); | |
activePage = workbenchWindow.getActivePage(); | |
} | |
private void setupView() throws Throwable { | |
view = activePage.showView("org.eclipse.ui.views.ResourceNavigator"); | |
} | |
private void setupResources() throws Throwable { | |
if (p1 == null) { | |
p1 = FileUtil.createProject("TP1"); | |
f1 = null; | |
} | |
if (p2 == null) { | |
p2 = FileUtil.createProject("TP2"); | |
f2 = null; | |
} | |
if (f1 == null) | |
f1 = FileUtil.createFile("f1.txt", p1); | |
if (f2 == null) | |
f2 = FileUtil.createFile("f2.txt", p2); | |
} | |
public void testGlobalBookmarkAction() throws Throwable { | |
setupView(); | |
setupResources(); | |
// Select a file | |
IStructuredSelection sel = new StructuredSelection(f1); | |
((ResourceNavigator) view).selectReveal(sel); | |
// Remember the previous marker count on the file | |
int oldCount = (f1.findMarkers(IMarker.BOOKMARK, true, IResource.DEPTH_INFINITE)).length; | |
// Now try the bookmark action | |
ActionUtil.runActionUsingPath(this, workbenchWindow, IWorkbenchActionConstants.M_EDIT + '/' + IWorkbenchActionConstants.BOOKMARK); | |
// Make sure the resource was bookmarked | |
int newCount = (f1.findMarkers(IMarker.BOOKMARK, true, IResource.DEPTH_INFINITE)).length; | |
assertTrue("Selected file was not bookmarked via Edit->Bookmark action.", oldCount + 1 == newCount); | |
} | |
/* | |
* This test should be moved to an interactive test suite as this | |
* test causes a dialog to popup when the resource is deleted by | |
* the delete action | |
* | |
public void testGlobalDeleteAction() throws Throwable { | |
setupView(); | |
setupResources(); | |
// Select a file | |
IStructuredSelection sel = new StructuredSelection(f1); | |
((ResourceNavigator) view).selectReveal(sel); | |
// Now try the delete action | |
ActionUtil.runActionUsingPath(this, workbenchWindow, IWorkbenchActionConstants.M_EDIT + '/' + IWorkbenchActionConstants.DELETE); | |
// Make sure the resource was deleted | |
assertTrue("Selected file was not deleted via Edit->Delete action.", p1.findMember(f1.getName()) == null); | |
f1 = null; | |
} | |
*/ | |
public void testSelectReveal() throws Throwable { | |
setupView(); | |
setupResources(); | |
ISetSelectionTarget part = (ISetSelectionTarget) view; | |
TreeViewer tree = getViewer((ResourceNavigator)view); | |
// Set the selection in the navigator | |
IStructuredSelection sel1 = new StructuredSelection(f1); | |
part.selectReveal(sel1); | |
// Get the selection the tree has | |
IStructuredSelection treeSel1 = (IStructuredSelection) tree.getSelection(); | |
assertTrue("First selection wrong size, should be only one.", treeSel1.size() == 1); | |
IResource resource1 = (IResource) treeSel1.getFirstElement(); | |
assertTrue("First selection contains wrong file resource.", resource1.equals(f1)); | |
// Set the selection in the navigator | |
IStructuredSelection sel2 = new StructuredSelection(p2); | |
part.selectReveal(sel2); | |
// Get the selection the tree has | |
IStructuredSelection treeSel2 = (IStructuredSelection) tree.getSelection(); | |
assertTrue("Second selection wrong size, should be only one.", treeSel2.size() == 1); | |
IResource resource2 = (IResource) treeSel2.getFirstElement(); | |
assertTrue("Second selection contains wrong project resource.", resource2.equals(p2)); | |
} | |
} | |