From 8ec8da0491ad89604700b3e29a227966f6d84ba1 Mon Sep 17 00:00:00 2001 From: Perl Tidy Date: Wed, 5 Dec 2018 15:38:52 -0500 Subject: no bug - reformat all the code using the new perltidy rules --- t/bmo/passwords.t | 407 +++++++++++++++++++++++++++--------------------------- 1 file changed, 207 insertions(+), 200 deletions(-) (limited to 't/bmo/passwords.t') diff --git a/t/bmo/passwords.t b/t/bmo/passwords.t index 83bea60be..f3dd449bb 100644 --- a/t/bmo/passwords.t +++ b/t/bmo/passwords.t @@ -6,8 +6,12 @@ use autodie; use constant DRIVER => 'Test::Selenium::Remote::Driver'; use Test::More 1.302; + #use constant DRIVER => 'Test::Selenium::Chrome'; -BEGIN { plan skip_all => "these tests only run in CI" unless $ENV{CI} && $ENV{CIRCLE_JOB} eq 'test_bmo' }; +BEGIN { + plan skip_all => "these tests only run in CI" + unless $ENV{CI} && $ENV{CIRCLE_JOB} eq 'test_bmo'; +} use ok DRIVER; @@ -16,245 +20,248 @@ my $ADMIN_PW_OLD = $ENV{BZ_TEST_ADMIN_PASS} // 'Te6Oovohch'; my $ADMIN_PW_NEW = $ENV{BZ_TEST_ADMIN_NEWPASS} // 'she7Ka8t'; my @require_env = qw( - BZ_BASE_URL - BZ_TEST_NEWBIE - BZ_TEST_NEWBIE_PASS + BZ_BASE_URL + BZ_TEST_NEWBIE + BZ_TEST_NEWBIE_PASS ); if (DRIVER =~ /Remote/) { - push @require_env, qw( TWD_HOST TWD_PORT ); + push @require_env, qw( TWD_HOST TWD_PORT ); } -my @missing_env = grep { ! exists $ENV{$_} } @require_env; +my @missing_env = grep { !exists $ENV{$_} } @require_env; BAIL_OUT("Missing env: @missing_env") if @missing_env; eval { - my $sel = DRIVER->new(base_url => $ENV{BZ_BASE_URL}); - $sel->set_implicit_wait_timeout(600); - - login_ok($sel, $ADMIN_LOGIN, $ADMIN_PW_OLD); - - change_password($sel, $ADMIN_PW_OLD, 'Ju9shiePhie6', 'zeeKuj0leib7'); - $sel->title_is("Passwords Don't Match"); - $sel->body_text_contains('The two passwords you entered did not match.'); - - change_password($sel, $ADMIN_PW_OLD . "x", "newpassword2", "newpassword2"); - $sel->title_is("Incorrect Old Password"); - - change_password($sel, $ADMIN_PW_OLD, "password", "password"); - $sel->title_is("Password Fails Requirements"); - - change_password($sel, $ADMIN_PW_OLD, $ADMIN_PW_NEW, $ADMIN_PW_NEW); - $sel->title_is("User Preferences"); - logout_ok($sel); - - login_ok($sel, $ADMIN_LOGIN, $ADMIN_PW_NEW); - - # we don't protect against password re-use - change_password($sel, $ADMIN_PW_NEW, $ADMIN_PW_OLD, $ADMIN_PW_OLD); - $sel->title_is("User Preferences"); - logout_ok($sel); - - login_ok($sel, $ENV{BZ_TEST_NEWBIE}, $ENV{BZ_TEST_NEWBIE_PASS}); - - $sel->get_ok("/editusers.cgi"); - $sel->title_is("Authorization Required"); - logout_ok($sel); - - login_ok($sel, $ADMIN_LOGIN, $ADMIN_PW_OLD); - - toggle_require_password_change($sel, $ENV{BZ_TEST_NEWBIE}); - logout_ok($sel); - - login($sel, $ENV{BZ_TEST_NEWBIE}, $ENV{BZ_TEST_NEWBIE_PASS}); - $sel->title_is('Password change required'); - click_and_type($sel, "old_password", $ENV{BZ_TEST_NEWBIE_PASS}); - click_and_type($sel, "new_password1", "password"); - click_and_type($sel, "new_password2", "password"); - submit($sel, '//input[@id="submit"]'); - $sel->title_is('Password Fails Requirements'); - - $sel->go_back_ok(); - $sel->title_is('Password change required'); - click_and_type($sel, "old_password", $ENV{BZ_TEST_NEWBIE_PASS}); - click_and_type($sel, "new_password1", "!!" . $ENV{BZ_TEST_NEWBIE_PASS}); - click_and_type($sel, "new_password2", "!!" . $ENV{BZ_TEST_NEWBIE_PASS}); - submit($sel, '//input[@id="submit"]'); - $sel->title_is('Password Changed'); - change_password( - $sel, - "!!" . $ENV{BZ_TEST_NEWBIE_PASS}, - $ENV{BZ_TEST_NEWBIE_PASS}, - $ENV{BZ_TEST_NEWBIE_PASS} - ); - $sel->title_is("User Preferences"); - - $sel->get_ok("/userprefs.cgi?tab=account"); - $sel->title_is("User Preferences"); - click_link($sel, "I forgot my password"); - $sel->body_text_contains( - ["A token for changing your password has been emailed to you.", - "Follow the instructions in that email to change your password."], - ); - my $token = get_token(); - ok($token, "got a token from resetting password"); - $sel->get_ok("/token.cgi?t=$token&a=cfmpw"); - $sel->title_is('Change Password'); - click_and_type($sel, "password", "nopandas"); - click_and_type($sel, "matchpassword", "nopandas"); - submit($sel, '//input[@id="update"]'); - $sel->title_is('Password Fails Requirements'); - $sel->go_back_ok(); - $sel->title_is('Change Password'); - click_and_type($sel, "password", '??' . $ENV{BZ_TEST_NEWBIE_PASS}); - click_and_type($sel, "matchpassword", '??' . $ENV{BZ_TEST_NEWBIE_PASS}); - submit($sel, '//input[@id="update"]'); - $sel->title_is('Password Changed'); - $sel->get_ok("/token.cgi?t=$token&a=cfmpw"); - $sel->title_is('Token Does Not Exist'); - $sel->get_ok("/login"); - $sel->title_is('Log in to Bugzilla'); - login_ok($sel, $ENV{BZ_TEST_NEWBIE}, "??" . $ENV{BZ_TEST_NEWBIE_PASS}); - change_password( - $sel, - "??" . $ENV{BZ_TEST_NEWBIE_PASS}, - $ENV{BZ_TEST_NEWBIE_PASS}, - $ENV{BZ_TEST_NEWBIE_PASS} - ); - $sel->title_is("User Preferences"); - - logout_ok($sel); - open my $fh, '>', '/app/data/mailer.testfile'; - close $fh; - - $sel->get('/createaccount.cgi'); - $sel->title_is('Create a new Bugzilla account'); - click_and_type($sel, 'login', $ENV{BZ_TEST_NEWBIE2}); - $sel->find_element('//input[@id="etiquette"]', 'xpath')->click(); - submit($sel, '//input[@value="Create Account"]'); - $sel->title_is("Request for new user account '$ENV{BZ_TEST_NEWBIE2}' submitted"); - my ($create_token) = search_mailer_testfile( - qr{/token\.cgi\?t=([^&]+)&a=request_new_account}xs - ); - $sel->get("/token.cgi?t=$create_token&a=request_new_account"); - click_and_type($sel, 'passwd1', $ENV{BZ_TEST_NEWBIE2_PASS}); - click_and_type($sel, 'passwd2', $ENV{BZ_TEST_NEWBIE2_PASS}); - submit($sel, '//input[@value="Create"]'); - - $sel->title_is('Bugzilla Main Page'); - $sel->body_text_contains( - ["The user account $ENV{BZ_TEST_NEWBIE2} has been created", - "successfully"] - ); + my $sel = DRIVER->new(base_url => $ENV{BZ_BASE_URL}); + $sel->set_implicit_wait_timeout(600); + + login_ok($sel, $ADMIN_LOGIN, $ADMIN_PW_OLD); + + change_password($sel, $ADMIN_PW_OLD, 'Ju9shiePhie6', 'zeeKuj0leib7'); + $sel->title_is("Passwords Don't Match"); + $sel->body_text_contains('The two passwords you entered did not match.'); + + change_password($sel, $ADMIN_PW_OLD . "x", "newpassword2", "newpassword2"); + $sel->title_is("Incorrect Old Password"); + + change_password($sel, $ADMIN_PW_OLD, "password", "password"); + $sel->title_is("Password Fails Requirements"); + + change_password($sel, $ADMIN_PW_OLD, $ADMIN_PW_NEW, $ADMIN_PW_NEW); + $sel->title_is("User Preferences"); + logout_ok($sel); + + login_ok($sel, $ADMIN_LOGIN, $ADMIN_PW_NEW); + + # we don't protect against password re-use + change_password($sel, $ADMIN_PW_NEW, $ADMIN_PW_OLD, $ADMIN_PW_OLD); + $sel->title_is("User Preferences"); + logout_ok($sel); + + login_ok($sel, $ENV{BZ_TEST_NEWBIE}, $ENV{BZ_TEST_NEWBIE_PASS}); + + $sel->get_ok("/editusers.cgi"); + $sel->title_is("Authorization Required"); + logout_ok($sel); + + login_ok($sel, $ADMIN_LOGIN, $ADMIN_PW_OLD); + + toggle_require_password_change($sel, $ENV{BZ_TEST_NEWBIE}); + logout_ok($sel); + + login($sel, $ENV{BZ_TEST_NEWBIE}, $ENV{BZ_TEST_NEWBIE_PASS}); + $sel->title_is('Password change required'); + click_and_type($sel, "old_password", $ENV{BZ_TEST_NEWBIE_PASS}); + click_and_type($sel, "new_password1", "password"); + click_and_type($sel, "new_password2", "password"); + submit($sel, '//input[@id="submit"]'); + $sel->title_is('Password Fails Requirements'); + + $sel->go_back_ok(); + $sel->title_is('Password change required'); + click_and_type($sel, "old_password", $ENV{BZ_TEST_NEWBIE_PASS}); + click_and_type($sel, "new_password1", "!!" . $ENV{BZ_TEST_NEWBIE_PASS}); + click_and_type($sel, "new_password2", "!!" . $ENV{BZ_TEST_NEWBIE_PASS}); + submit($sel, '//input[@id="submit"]'); + $sel->title_is('Password Changed'); + change_password( + $sel, + "!!" . $ENV{BZ_TEST_NEWBIE_PASS}, + $ENV{BZ_TEST_NEWBIE_PASS}, + $ENV{BZ_TEST_NEWBIE_PASS} + ); + $sel->title_is("User Preferences"); + + $sel->get_ok("/userprefs.cgi?tab=account"); + $sel->title_is("User Preferences"); + click_link($sel, "I forgot my password"); + $sel->body_text_contains( + [ + "A token for changing your password has been emailed to you.", + "Follow the instructions in that email to change your password." + ], + ); + my $token = get_token(); + ok($token, "got a token from resetting password"); + $sel->get_ok("/token.cgi?t=$token&a=cfmpw"); + $sel->title_is('Change Password'); + click_and_type($sel, "password", "nopandas"); + click_and_type($sel, "matchpassword", "nopandas"); + submit($sel, '//input[@id="update"]'); + $sel->title_is('Password Fails Requirements'); + $sel->go_back_ok(); + $sel->title_is('Change Password'); + click_and_type($sel, "password", '??' . $ENV{BZ_TEST_NEWBIE_PASS}); + click_and_type($sel, "matchpassword", '??' . $ENV{BZ_TEST_NEWBIE_PASS}); + submit($sel, '//input[@id="update"]'); + $sel->title_is('Password Changed'); + $sel->get_ok("/token.cgi?t=$token&a=cfmpw"); + $sel->title_is('Token Does Not Exist'); + $sel->get_ok("/login"); + $sel->title_is('Log in to Bugzilla'); + login_ok($sel, $ENV{BZ_TEST_NEWBIE}, "??" . $ENV{BZ_TEST_NEWBIE_PASS}); + change_password( + $sel, + "??" . $ENV{BZ_TEST_NEWBIE_PASS}, + $ENV{BZ_TEST_NEWBIE_PASS}, + $ENV{BZ_TEST_NEWBIE_PASS} + ); + $sel->title_is("User Preferences"); + + logout_ok($sel); + open my $fh, '>', '/app/data/mailer.testfile'; + close $fh; + + $sel->get('/createaccount.cgi'); + $sel->title_is('Create a new Bugzilla account'); + click_and_type($sel, 'login', $ENV{BZ_TEST_NEWBIE2}); + $sel->find_element('//input[@id="etiquette"]', 'xpath')->click(); + submit($sel, '//input[@value="Create Account"]'); + $sel->title_is( + "Request for new user account '$ENV{BZ_TEST_NEWBIE2}' submitted"); + my ($create_token) + = search_mailer_testfile(qr{/token\.cgi\?t=([^&]+)&a=request_new_account}xs); + $sel->get("/token.cgi?t=$create_token&a=request_new_account"); + click_and_type($sel, 'passwd1', $ENV{BZ_TEST_NEWBIE2_PASS}); + click_and_type($sel, 'passwd2', $ENV{BZ_TEST_NEWBIE2_PASS}); + submit($sel, '//input[@value="Create"]'); + + $sel->title_is('Bugzilla Main Page'); + $sel->body_text_contains([ + "The user account $ENV{BZ_TEST_NEWBIE2} has been created", "successfully" + ]); }; if ($@) { - fail("got exception $@"); + fail("got exception $@"); } done_testing(); sub submit { - my ($sel, $xpath) = @_; - $sel->find_element($xpath, 'xpath')->submit(); + my ($sel, $xpath) = @_; + $sel->find_element($xpath, 'xpath')->submit(); } sub get_token { - my $token; - my $count = 0; - do { - sleep 1 if $count++; - open my $fh, '<', '/app/data/mailer.testfile'; - my $content = do { - local $/ = undef; - <$fh>; - }; - ($token) = $content =~ m!/token\.cgi\?t=3D([^&]+)&a=3Dcfmpw!s; - close $fh; - } until $token || $count > 60; - return $token; + my $token; + my $count = 0; + do { + sleep 1 if $count++; + open my $fh, '<', '/app/data/mailer.testfile'; + my $content = do { + local $/ = undef; + <$fh>; + }; + ($token) = $content =~ m!/token\.cgi\?t=3D([^&]+)&a=3Dcfmpw!s; + close $fh; + } until $token || $count > 60; + return $token; } sub search_mailer_testfile { - my ($regexp) = @_; - my $content = ""; - my @result; - my $count = 0; - do { - sleep 1 if $count++; - open my $fh, '<', '/app/data/mailer.testfile'; - $content .= do { - local $/ = undef; - <$fh>; - }; - close $fh; - my $decoded = $content; - $decoded =~ s/\r\n/\n/gs; - $decoded =~ s/=\n//gs; - $decoded =~ s/=([[:xdigit:]]{2})/chr(hex($1))/ges; - @result = $decoded =~ $regexp; - } until @result || $count > 60; - return @result; + my ($regexp) = @_; + my $content = ""; + my @result; + my $count = 0; + do { + sleep 1 if $count++; + open my $fh, '<', '/app/data/mailer.testfile'; + $content .= do { + local $/ = undef; + <$fh>; + }; + close $fh; + my $decoded = $content; + $decoded =~ s/\r\n/\n/gs; + $decoded =~ s/=\n//gs; + $decoded =~ s/=([[:xdigit:]]{2})/chr(hex($1))/ges; + @result = $decoded =~ $regexp; + } until @result || $count > 60; + return @result; } sub click_and_type { - my ($sel, $name, $text) = @_; + my ($sel, $name, $text) = @_; - eval { - my $el = $sel->find_element(qq{//*[\@id="bugzilla-body"]//input[\@name="$name"]}, 'xpath'); - $el->click(); - $sel->send_keys_to_active_element($text); - pass("found $name and typed $text"); - }; - if ($@) { - fail("failed to find $name"); - } + eval { + my $el + = $sel->find_element(qq{//*[\@id="bugzilla-body"]//input[\@name="$name"]}, + 'xpath'); + $el->click(); + $sel->send_keys_to_active_element($text); + pass("found $name and typed $text"); + }; + if ($@) { + fail("failed to find $name"); + } } sub click_link { - my ($sel, $text) = @_; - my $el = $sel->find_element($text, 'link_text'); - $el->click(); + my ($sel, $text) = @_; + my $el = $sel->find_element($text, 'link_text'); + $el->click(); } sub change_password { - my ($sel, $old, $new1, $new2) = @_; - $sel->get_ok("/userprefs.cgi?tab=account"); - $sel->title_is("User Preferences"); - click_and_type($sel, "old_password", $old); - click_and_type($sel, "new_password1", $new1); - click_and_type($sel, "new_password2", $new2); - submit($sel, '//input[@value="Submit Changes"]'); + my ($sel, $old, $new1, $new2) = @_; + $sel->get_ok("/userprefs.cgi?tab=account"); + $sel->title_is("User Preferences"); + click_and_type($sel, "old_password", $old); + click_and_type($sel, "new_password1", $new1); + click_and_type($sel, "new_password2", $new2); + submit($sel, '//input[@value="Submit Changes"]'); } sub toggle_require_password_change { - my ($sel, $login) = @_; - $sel->get_ok("/editusers.cgi"); - $sel->title_is("Search users"); - click_and_type($sel, 'matchstr', $login); - submit($sel, '//input[@id="search"]'); - $sel->title_is("Select user"); - click_link($sel, $login); - $sel->find_element('//input[@id="password_change_required"]')->click; - submit($sel, '//input[@id="update"]'); - $sel->title_is("User $login updated"); + my ($sel, $login) = @_; + $sel->get_ok("/editusers.cgi"); + $sel->title_is("Search users"); + click_and_type($sel, 'matchstr', $login); + submit($sel, '//input[@id="search"]'); + $sel->title_is("Select user"); + click_link($sel, $login); + $sel->find_element('//input[@id="password_change_required"]')->click; + submit($sel, '//input[@id="update"]'); + $sel->title_is("User $login updated"); } sub login { - my ($sel, $login, $password) = @_; + my ($sel, $login, $password) = @_; - $sel->get_ok("/login"); - $sel->title_is("Log in to Bugzilla"); - click_and_type($sel, 'Bugzilla_login', $login); - click_and_type($sel, 'Bugzilla_password', $password); - submit($sel, '//*[@id="bugzilla-body"]//input[@name="GoAheadAndLogIn"]'); + $sel->get_ok("/login"); + $sel->title_is("Log in to Bugzilla"); + click_and_type($sel, 'Bugzilla_login', $login); + click_and_type($sel, 'Bugzilla_password', $password); + submit($sel, '//*[@id="bugzilla-body"]//input[@name="GoAheadAndLogIn"]'); } sub login_ok { - my ($sel) = @_; - login(@_); - $sel->title_is('Bugzilla Main Page'); + my ($sel) = @_; + login(@_); + $sel->title_is('Bugzilla Main Page'); } sub logout_ok { - my ($sel) = @_; - $sel->get_ok('/index.cgi?logout=1'); - $sel->title_is("Logged Out"); + my ($sel) = @_; + $sel->get_ok('/index.cgi?logout=1'); + $sel->title_is("Logged Out"); } -- cgit v1.2.3-24-g4f1b