<html>
<body>

<applet width=100 height=100 code=i18n.class>
</applet>

This is a multi-stage test.  Click on "done" when you have completed
reading these instructions.<br>
<p>
First, policytool will be invoked.  During the entire test,
make sure that all the buttons, menu options, error messages,
and output messages are comprehensible
(you can read all the english text fine).
If at any time an exception is thrown, or if any message
is incomprehensible, then the test failed.  Otherwise,
the test passed.
<p>
Press "Pass" if ... press "Fail" otherwise.
<p>
<ol>
<li> Pull down the 'File' and 'KeyStore' menus and check values
<li> Pull down 'File' menu and select 'View Warning Log'.  Confirm FileNotFound.
<li> Pull down 'File' menu and select 'New'.
<li> Pull down 'File' menu and select 'View Warning Log'.  Confirm empty.
<li> Click on 'Add Policy Entry' and check pop-up window
<li> Click on 'Edit Permission' and 'Remove Permission' and check error messages
<li> Click on 'Add Permission' and check pop-up window
<li> Pull down 'Permission' menu and check values
<li> Select 'AWTPermission', pull down 'Target Name' and check values
<li> Select 'FilePermission', pull down 'Target Name' and 'Actions' and check values.
<li> Select 'NetPermission', pull down 'Target Name' and check values
<li> Select 'PropertyPermission', pull down 'Actions' and check values
<li> Select 'ReflectPermission', pull down 'Target Name' and check values
<li> Select 'RuntimePermission', pull down 'Target Name' and check values
<li> Select 'SecurityPermission', pull down 'Target Name' and check values
<li> Select 'SerializablePermission', pull down 'Target Name' and check values
<li> Select 'SocketPermission', pull down 'Actions' and check values
<li> Type "www.example.com" for SocketPermission 'TargetName',
	and "connect" for 'Actions'
<li> Click OK
<li> Check new entry
<li> Click once on new entry
<li> Click on 'Edit Permission' and confirm values
<li> Select AudioPermission.  Confirm 'Target Name' and 'Actions' cleared.
<li> Select "play" from Target menu.
<li> Click OK, confirm changed permission.
<li> Type "hello" for 'CodeBase', click on 'Done', and check error message
<li> Type "hello" for 'SignedBy', click on 'Done', and check warning message
<li> Click, on 'Edit Policy Entry' and 'Remove Policy Entry'
	and check error messages
<li> Select policy entry, click on 'Edit Policy Entry', and check pop-up window
<li> Select policy entry, click on 'Remove Policy Entry',
	and check pop-up window
<li> Do not remove the entry, click 'Cancel'.
<li> Pull down 'File' menu and select 'Exit'.  Confirm Save option.
	Click 'Cancel'.
<li> Select 'File' menu value 'Save', enter "/tmp/policy1" as the filename,
	and check status message
<li> Select 'File' menu value 'New'
<li> Click 'Add Policy Entry', type in "hello" for 'SignedBy' field,
	click 'Done'.  Confirm warning.
<li> Select 'File' menu value 'Open' and confirm save option
	(do not save changes)
<li> Type "/tmp/policy1" for the filename and confirm warning message
<li> Pull down 'File' menu, select 'View Warning Log'
	and confirm KeyStore alias warning
<li> Pull down 'KeyStore' menu and select 'Edit'
<li> Enter 'foo' as KeyStore URL and check error
<li> Using keytool create JKS keystore
<li> Enter KeyStore URL but leave other fields empty.  Should succeed.
<li> Pull down 'KeyStore' menu and select 'Edit'
<li> Confirm URL and Type values.
<li> Enter 'foo' as the provider and check error message.
<li> Enter 'SUN' as the provider.  Should succeed.
<li> Pull down 'KeyStore' menu and select 'Edit'
<li> Confirm URL, Type, and Provider values.
<li> Enter 'foo' as the password URL and check error message.
<li> Enter URL with bad password and check error message.
<li> Enter URL with good password.  Should succeed.
<li> Pull down 'KeyStore' menu and select 'Edit'
<li> Confirm URL, Type, Provider, and Password URL values.
<li> Click OK
<li> Pull down 'File' menu and select 'Save As'.  Enter /tmp/policy2.
	Confirm status message.
<li> Pull down 'File' menu and select 'New'.
<li> Pull down 'File' menu and select 'Open'.  Enter /tmp/policy2.
	Confirm warning message.
<li> Click on 'Add Policy Entry', enter Codebase 'http://foo',
	SignedBy 'bar'.  Click on 'Done' and confirm alias warning.
<li> Double-Click on just created policy entry, confirm edit window appears.
<li> Change SignedBy to an alias in previously created keystore.
<li> Click on Done and confirm it worked with no warning.
<li> Double-Click on "SignedBy hello" policy entry and
	confirm edit window appears.
<li> Click on Edit/Remove Principal, confirm errors.
<li> Click on 'Add Principal' and check new window.
<li> Click on 'OK' and confirm error message (no principal name)
<li> Enter valid KeyStore alias as principal name, click OK and
	confirm status message.
<li> Confirm new principal in Principals list.
<li> Click on 'Done' (creating policy entry), confirm alias warning.
<li> View warning log and confirm X500Principal/KeyStore alias message.
<li> Confirm principal added to policy entry in main window listing.
<li> Double click on that entry.
<li> Enter codebase "file:/foobar".
<li> Click on 'Add Principal'.  Select KerberosPrincipal.  enter 'foo' as name.
	Click OK.
<li> Confirm new principal in list.
<li> Double-click on new principal.  Select X500Principal.
	Confirm name cleared.  Type 'foo' as name.  Click OK.  Confirm error.
	type 'cn=foo' as name.  Click OK.  should succeed.
<li> Confirm changed principal in list.
<li> Click on 'Add Permission', and add any FilePermission.
<li> Click on 'Done' in Policy Entry window.  Confirm alias warning.
<li> Confirm entries in main window listing.
<li> Select 'File' menu value 'Exit'
<li> Save Changes, confirm status message.
</ol>
<p>

</body>
</html>
