<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="Author" content="OTI Employee">
   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
   <title>New File Wizard</title>
</head>
<body>

<center>
<h1>
New File Wizard</h1></center>

<h2>
Purpose</h2>
The plan is to create a single empty file. The end result of this wizard
should be an empty file opened in the proper editor for its type.
<h2>
Setup</h2>

<ul>
<li>
Start the Eclipse workbench</li>

<li>
Create a temporary project called "File Test"</li>

<li>
Select File->New->File from the resource perspective</li>
</ul>

<h2>
Create file at project root</h2>

<ol>
<li>
Select the project File Test</li>

<li>
In the File Name field, type in f1.txt</li>

<li>
Press the Finish button</li>

<li>
Verify a new f1.txt file is created under the File Test project (in navigator
view and in the file system)</li>

<li>
Verify the default text editor opened on f1.txt</li>

<li>
Verify the content of f1.txt is empty</li>
</ol>

<h2>
Create file in new folder</h2>

<ol>
<li>
In the "Enter or select the folder" field, type in File Test/folder</li>

<li>
In the File Name field, type in f1.txt</li>

<li>
Press the Finish button</li>

<li>
Verify that "folder" was created under the File Test project (in navigator
view and in the file system)</li>

<li>
Verify a new f1.txt file is created under "folder" (in navigator view and
in the file system)</li>

<li>
Verify the default text editor opened on f1.txt</li>

<li>
Verify the content of f1.txt is empty</li>
</ol>

<h2>
Cleanup</h2>

<ul>
<li>
Delete the temporary project "File Test"</li>
</ul>

</body>
</html>
