#--- #This unit test checks the bases screen. #--- class Test_01_login_screen < Test::Unit::TestCase # #Test we can logon to the system using the webmip administrator user�s login credentials and check that #all the columns required for the report appears with the button to create a new base record # def test_01_login_screen_appears @@ie.goto(LOGIN) #we'll need to login assert(@@ie.text_field(:id,'P101_USERNAME').exists?,'Could not find P101_USERNAME field') assert(@@ie.text_field(:id,'P101_PASSWORD').exists?,'Could not find P101_PASSWORD file upload field') assert(@@ie.button(:value,'Login').exists?,'Could not find Login button') assert(@@ie.button(:value,'New Password').exists?,'Could not find New Password button') assert(@@ie.button(:value,'Forgotten Password').exists?,'Could not find Forgotten Password button') end def test_02_check_login_validation #Test that T&Cs must be accepted @@ie.button(:value,'Login').click @@ie.wait assert(@@ie.contains_text('Terms and Conditions must be accepted before entering this site'),'T&Cs must be accepted error not displaying.') #Test that a username must be given @@ie.radio( :id,'P101_TC_ACCEPTED_0').set #'I accept the Terms and Conditions of using this site' @@ie.button(:value,'Login').click @@ie.wait assert(@@ie.contains_text('Value must be specified.'),'Expected not null error on username.') # test that a password must be given @@ie.text_field(:id,'P101_USERNAME').set 'login_test' @@ie.radio( :id,'P101_TC_ACCEPTED_0').set #'I accept the Terms and Conditions of using this site' @@ie.button(:value,'Login').click @@ie.wait assert(@@ie.contains_text('Value must be specified.'),'Expected not null error on password.') # test that a valid user must be given @@ie.text_field(:id,'P101_USERNAME').set 'not_a_user' @@ie.text_field(:id,'P101_PASSWORD').set 'password' @@ie.radio( :id,'P101_TC_ACCEPTED_0').set #'I accept the Terms and Conditions of using this site' @@ie.button(:value,'Login').click @@ie.wait assert(@@ie.contains_text('Invalid username/password specified.'),'User specified does not exist in the system.') # test that a valid password must be given @@ie.text_field(:id,'P101_USERNAME').set 'login_test' @@ie.text_field(:id,'P101_PASSWORD').set 'incorrect' @@ie.radio( :id,'P101_TC_ACCEPTED_0').set #'I accept the Terms and Conditions of using this site' @@ie.button(:value,'Login').click @@ie.wait assert(@@ie.contains_text('Invalid username/password specified.'),'Valid password error message incorrect.') #@@ie.close end def test_03_open_user #tests that a correct username and password for an "OPEN" user is accepted and the user is redirected correctly @@ie.goto(LOGIN) @@ie.text_field(:id,'P101_USERNAME').set 'login_test' @@ie.text_field(:id,'P101_PASSWORD').set 'password' @@ie.radio( :id,'P101_TC_ACCEPTED_0').set #'I accept the Terms and Conditions of using this site' @@ie.button(:value,'Login').click @@ie.wait assert(@@ie.contains_text('Search Enquiries'),'User specified does not exist in the system.') #@@ie.close end def test_04_expired_password #tests that a correct username and password for an "EXPIRED" user is accepted and the user is redirected correctly @@ie.goto(LOGIN) @@ie.text_field(:id,'P101_USERNAME').set 'expired_user' @@ie.text_field(:id,'P101_PASSWORD').set 'password' @@ie.radio( :id,'P101_TC_ACCEPTED_0').set #'I accept the Terms and Conditions of using this site' @@ie.button(:value,'Login').click @@ie.wait assert(@@ie.contains_text('Change Password'),'Expired user account not redirected correctly during logon.') #@@ie.close end def test_05_locked_account #tests that a correct username and password for an "LOCKED" user is accepted and the user is redirected correctly @@ie.goto(LOGIN) @@ie.text_field(:id,'P101_USERNAME').set 'locked_user' @@ie.text_field(:id,'P101_PASSWORD').set 'password' @@ie.radio( :id,'P101_TC_ACCEPTED_0').set #'I accept the Terms and Conditions of using this site' @@ie.button(:value,'Login').click @@ie.wait assert(@@ie.contains_text('The user account specified is locked. Please contact the system administrator.'),'Locked user account not redirected correctly during logon.') #ie.close end def test_06_expired_account_password_change #tests that a correct username and password for an "EXPIRED" user is accepted and the user is redirected correctly @@ie.goto(LOGIN) @@ie.text_field(:id,'P101_USERNAME').set 'expired_user' @@ie.text_field(:id,'P101_PASSWORD').set 'password' @@ie.radio( :id,'P101_TC_ACCEPTED_0').set #'I accept the Terms and Conditions of using this site' @@ie.button(:value,'Login').click @@ie.wait #confirm we're at the right page assert(@@ie.contains_text('Change Password'),'Expired user account not redirected correctly during logon.') #fill in some new password details - make sure that we follow security protocol for passwords... @@ie.text_field(:id,'P102_NEW_PASSWORD').set 'P4ssw0rd.' @@ie.text_field(:id,'P102_REPEAT_PASSWORD').set 'P4ssw0rd.' @@ie.button(:value,'Change Password').click @@ie.wait #confirm the password was updated correctly assert(@@ie.contains_text('Password updated.'),'Password not updated.') #now log back in with the new password @@ie.button(:value,'Login').click @@ie.wait assert(@@ie.button(:value,'Login').exists?,'Not navigated back to login page.') @@ie.text_field(:id,'P101_USERNAME').set 'expired_user' @@ie.text_field(:id,'P101_PASSWORD').set 'P4ssw0rd.' @@ie.radio( :id,'P101_TC_ACCEPTED_0').set #'I accept the Terms and Conditions of using this site' @@ie.button(:value,'Login').click @@ie.wait #confirm we're at the right page assert(@@ie.contains_text('Search Enquiries'),'Unsuccessful attempt at login.') end ##close IE if still open #@@ie.close end