This is a multi-stage test. Click on "done" when you have completed reading these instructions.

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.

Preparation: Find (or create) a temporary directory that you have write access to (Example: 'C:\tmp' on Windows or '/tmp' on other systems) and copy the files "ks", "good", "bad" from the scratch sub-directory of this test's working directory (the -w argument of jtreg) into the temporary directory. If 'policy1' or 'policy2' already exists in this directory, remove it.

Press "Pass" if ... press "Fail" otherwise.

  1. Pull down the 'File' and 'KeyStore' menus and check values
  2. Pull down 'File' menu and select 'View Warning Log'. Confirm FileNotFound.
  3. Pull down 'File' menu and select 'New'.
  4. Pull down 'File' menu and select 'View Warning Log'. Confirm empty.
  5. Click on 'Add Policy Entry' and check pop-up window
  6. Click on 'Edit Permission' and 'Remove Permission' and check error messages
  7. Click on 'Add Permission' and check pop-up window
  8. Pull down 'Permission' menu and check values
  9. Select 'AWTPermission', pull down 'Target Name' and check values
  10. Select 'FilePermission', pull down 'Target Name' and 'Actions' and check values.
  11. Select 'NetPermission', pull down 'Target Name' and check values
  12. Select 'PropertyPermission', pull down 'Actions' and check values
  13. Select 'ReflectPermission', pull down 'Target Name' and check values
  14. Select 'RuntimePermission', pull down 'Target Name' and check values
  15. Select 'SecurityPermission', pull down 'Target Name' and check values
  16. Select 'SerializablePermission', pull down 'Target Name' and check values
  17. Select 'SocketPermission', pull down 'Actions' and check values
  18. Type "www.example.com" for SocketPermission 'TargetName', and "connect" for 'Actions'
  19. Click OK
  20. Check new entry
  21. Click once on new entry
  22. Click on 'Edit Permission' and confirm values
  23. Select AudioPermission. Confirm 'Target Name' and 'Actions' cleared.
  24. Select "play" from Target menu.
  25. Click OK, confirm changed permission.
  26. Type "hello" for 'CodeBase', click on 'Done', and check error message
  27. Clean up the 'CodeBase' textbox
  28. Type "hello" for 'SignedBy', click on 'Done', and check warning message
  29. Click on 'Edit Policy Entry' and 'Remove Policy Entry' and check error messages
  30. Select policy entry, click on 'Edit Policy Entry', check pop-up window and close it
  31. Select policy entry, click on 'Remove Policy Entry', and check pop-up window
  32. Do not remove the entry, click 'Cancel'.
  33. Pull down 'File' menu and select 'Exit'. Confirm Save option. Click 'Cancel'.
  34. Select 'File' menu value 'Save' and save into file "policy1" in the temporary directory. Check status message.
  35. Select 'File' menu value 'New'
  36. Click 'Add Policy Entry', type in "hello" for 'SignedBy' field, click 'Done'. Confirm warning.
  37. Select 'File' menu value 'Open' and confirm save option (Click 'Cancel', do not save changes)
  38. Pull down 'File' menu, select 'View Warning Log' and confirm KeyStore alias warning
  39. Pull down 'KeyStore' menu and select 'Edit'
  40. Enter 'foo' as KeyStore URL, click 'OK', and check error
  41. Enter KeyStore URL "file:/tmp/ks" (Or use the temporary directory mentioned in the preparation if it's not '/tmp'. For example, "file:/C:/tmp/ks" on Windows) but leave other fields empty. Click 'OK'. Should succeed.
  42. Pull down 'KeyStore' menu and select 'Edit'
  43. Confirm URL and Type values. The Type should be "jks"
  44. Enter 'foo' as the provider, click 'OK' and check error message.
  45. Enter 'SUN' as the provider, click 'OK'. Should succeed.
  46. Pull down 'KeyStore' menu and select 'Edit'
  47. Confirm URL, Type, and Provider values.
  48. Enter 'foo' as the password URL, click 'OK' and check error message.
  49. Enter URL "file:/tmp/bad" (Or use the temporary directory mentioned in the preparation if it's not '/tmp'. For example, "file:/C:/tmp/bad" on Windows), click 'OK' and check error message.
  50. Enter URL "file:/tmp/good" (Or use the temporary directory mentioned in the preparation if it's not '/tmp'. For example, "file:/C:/tmp/good" on Windows) and click 'OK'. Should succeed.
  51. Pull down 'KeyStore' menu and select 'Edit'
  52. Confirm URL, Type, Provider, and Password URL values.
  53. Click OK
  54. Pull down 'File' menu and select 'Save As' and save into file "policy2" in the temporary directory. Confirm status message.
  55. Pull down 'File' menu and select 'New'.
  56. Pull down 'File' menu and select 'Open' and open "policy2" in the temporary directory.
  57. Click on 'Add Policy Entry', enter Codebase 'http://foo', SignedBy 'bar'. Click on 'Done' and confirm alias warning.
  58. Double-Click on just created policy entry, confirm edit window appears.
  59. Change SignedBy to an 'hello'.
  60. Click on Done and confirm it worked with no warning.
  61. Double-Click on "SignedBy hello" policy entry and confirm edit window appears.
  62. Click on Edit/Remove Principal, confirm errors.
  63. Click on 'Add Principal' and check new window.
  64. Click on 'OK' and confirm error message (no principal name)
  65. Enter 'hello' as principal name, click OK and confirm status message.
  66. Confirm new principal in Principals list.
  67. Click on 'Done' (creating policy entry).
  68. View warning log and confirm X500Principal/KeyStore alias message.
  69. Confirm principal added to policy entry in main window listing.
  70. Double click on that entry.
  71. Enter codebase "file:/foobar".
  72. Click on 'Add Principal'. Select KerberosPrincipal. enter 'foo' as name. Click OK.
  73. Confirm new principal in list.
  74. 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.
  75. Confirm changed principal in list.
  76. Click on 'Add Permission', and add a FilePermission, choose a target and an action. Click OK.
  77. Click on 'Done' in Policy Entry window.
  78. Confirm entries in main window listing.
  79. Select 'File' menu value 'Exit'
  80. Save Changes, confirm status message.
  81. Delete all files created during this test. If the temporary directory is also newly created, empty and delete it.