<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <title>Test Scenario: Navigator View</title>
</head>
<body>
<h3>
Navigator View</h3>
Purpose: To test the Navigator view in Eclipse.&nbsp; We will start out
with an empty workspace, create some projects and files, open files, open
some new perspectives, delete some files, test the filtering and sorting
options, and test the persistance of view state between sessions.
<p>Setup:
<ol>
<li>
Install Eclipse Platform.</li>

<li>
Delete the metadata for org.eclipse.ui.</li>
</ol>
Method:
<ol>
<li>
Start the workbench.&nbsp; Confirm that the default perspective (Resource)
and welcome editor both appear.</li>

<li>
Create a project using the File > New wizard and verify that it appears
in the navigator.</li>

<li>
Create another project by invoking New > Project from the navigator popup
menu.&nbsp; Verify that it appears in the navigator.</li>

<li>
Create a .txt file, a .html file, and a .java file by invoking New > File
from the navigator popup menu.&nbsp; Verify that these files appear in
the navigator and that an editor is opened on each.&nbsp; Close all of
these editors.</li>

<li>
In the Navigator you can change the input.&nbsp; To test this create a
couple of nested folders in a project using the New > Folder action in
the navigator context menu.&nbsp; Then select the top level folder and
and invoke Go Into.&nbsp; Verify that the input for the view changes (it
is shown in the view title) and that only the resources in the input folder
are visible.&nbsp; If you perform the same operation many times you create
a history list in the navigator.&nbsp; Try navigating up and down the history
by using the Back and Forward buttons on the view toolbar.</li>

<li>
If you select a file you can open it from the context menu.&nbsp; Open
a .txt file and verify that the default text editor opens.&nbsp; Open a
.java file and verify that the java editor opens.</li>

<li>
You can also open a file in a specific editor.&nbsp; Select a .java file
and invoke Open With > Default Text Editor.&nbsp; The default text editor
should open rather than the java editor.&nbsp; If you select Open With
> System Editor something like notepad should open.&nbsp; The preferred
editor for a file is always indicated with a check mark in the Open With
menu.</li>

<li>
In the navigator you can open new perspectives.&nbsp; Select a project
or folder in the navigator and invoke Open Perspective > Java from the
context menu. Verify that a new perspective appears with the Java Perspective
and that the input for the navigator is the project.&nbsp;&nbsp;&nbsp;
Close it and go back to the first perspective.</li>

<li>
The contents of the Open Perspective menu are determined by the perspective
properties.&nbsp; Note the contents of this menu.&nbsp; Then invoke Perspective
> Customize and change the checked perspectives.&nbsp; Press OK and verify
that the contents of Open Perspective reflect the new options.</li>

<li>
The Navigator has support for drag and drop.&nbsp; Try dragging a file
from one project to another.&nbsp; A cursor should appear to indicate the
drop target.&nbsp; If you release the file it will be moved to the target.</li>

<li>
In the navigator select a project, folder or file and try out Copy, Move
and Rename in the context menu.</li>

<li>
Select a project, folder or file and invoke Delete in the context menu
to delete it.&nbsp; Verify that the item disappears from the navigator.&nbsp;
The delete action is also available in the window Edit menu.&nbsp; Select
an item, invoke Edit > Delete, and verify that it has the same behavior.</li>

<li>
Select a file in the navigator and invoke Add Bookmark from the context
menu.&nbsp; Open up the Bookmark view and verify that a bookmark now exists.&nbsp;
If you double click on the bookmark an editor should open on the bookmark
source file.&nbsp; Verify that Add Bookmark is not available if a project
or folder is selected in the navigator.</li>

<li>
Select a project and invoke Close Project from the context menu.&nbsp;
At this point the icon should change to a closed folder and all of the
contents will be hidden.&nbsp; Invoke Open Project to reopen it and navigate
the contents.</li>

<li>
If you select a resource and invoke Properties.. a properties dialog should
appear.&nbsp; It will contain at least an Info, Project Referenes and Team
page for projects, and an Info and Team page for folders or files.</li>

<li>
In the navigator you can sort items by name or type.&nbsp; Try out these
options in the pulldown menu and verify that they have the correct affect.&nbsp;
All sorting is done in ascending order.&nbsp; You can also filter items
out.&nbsp; Create a couple of .class and .* files and experiment with the
filter options.&nbsp; You should be able to hide or show these files as
desired.</li>

<li>
The selection in the navigator is linked to the active editor.&nbsp; Open
a couple of files.&nbsp; Then switch between the editors and verify that
the editor input is selected in the navigator.&nbsp; Now select one of
the open files in the navigator and verify that the corresponding editor
is activated.&nbsp; You can disable this option by turning off "Link navigator
selection to active editor" in the workbench preferences.&nbsp; Then verify
that no selection occurs in the navigator as you switch between editors.&nbsp;
Turn it back on and verify that selection works again.</li>

<li>
The state of the navigator (input, expansion) should be stored between
sessions.&nbsp; To test this open a perspective with the navigator, change
the input and expansions state, and then close the workbench.&nbsp; Restart
the workbench and verify that the input and expansion state is restored.</li>
</ol>

</body>
</html>
