Test-cases for Keyring
$Id: TESTS,v 1.4 2001/06/03 07:42:28 mbp Exp $

Running through all of these tests ought to cover most of the code in
Keyring.  Please add more tests when you think of them or when you add
code.

> Change preferences

 > Try to change while locked -- should get the password dialog

   > Enter wrong password -- should be denied

   > Enter right password -- should get preferences dialog

 > Change while unlocked -- get preferences dialog directly

 > Cancel changes -- should not stick

> Create a new record

 > Make various record fields empty

 > Very large notes text

> Edit a record

 > Records decode properly when opened again.

 > Record is saved if any field is dirty
   >> Date field is a special case

 > Record not saved if no fields are dirty

 > Make some changes, then press page

 > Change the name to make the record change in sort order
  
   > Do this and then press Page

 > Lots of Notes text

Record should be saved anyhow

Try all the permutations for new records.

> Lock and unlock

 > Unlock correctly

 > Try to unlock, but enter the wrong password

 > Enter the correct password after getting it wrong

 > Switch to another app and back

Current behaviour is that you should need to unlock again.

> Timeout

 > Change timeout to different values

 > Password is required to unlock after the timeout expires

> Set password

 > After setting password, new password works

 > After setting password, old password is rejected

 > Old password must be entered to set password

 > New password must be confirmed correctly

 > Keys are re-encrypted after changing password

 > Change password before creating any records

 > Busy dialog displays while re-encrypting

> Key list

 > Remains sorted

 > Resorted when key names change

 > Show UIDs for records with no name

 > Scrolls properly

   >> With less than a full screen
   No scroll bar

   >> With more than a full screen

   >> As records are added
   Scrollbar appears/disappears at the right time

> Deleted and archived records

 > Records go away when deleted

 > Delete from various positions in ordering

 > All functions work with deleted/archived records present 

 > Delete empty record
 
 > Delete new record

 > Cancel delete

> Memory management

 > Records are as small as possible, and don't grow

   Taking into account DES blocking.  

Local variables: 
mode: outline
outline-regexp: " *>"
End: