From 0e72223fc0005c8f4e675db3b535056377124ab2 Mon Sep 17 00:00:00 2001 From: David Lawrence Date: Thu, 3 Mar 2016 18:52:17 +0000 Subject: Bug 1252735 - selenium tests are failing - Archiving test script for now til a future time it can be fixed --- qa/t/archived/test_email_preferences.t | 400 +++++++++++++++++++++++++++++++++ qa/t/test_email_preferences.t | 400 --------------------------------- 2 files changed, 400 insertions(+), 400 deletions(-) create mode 100644 qa/t/archived/test_email_preferences.t delete mode 100644 qa/t/test_email_preferences.t (limited to 'qa') diff --git a/qa/t/archived/test_email_preferences.t b/qa/t/archived/test_email_preferences.t new file mode 100644 index 000000000..cc314ea2c --- /dev/null +++ b/qa/t/archived/test_email_preferences.t @@ -0,0 +1,400 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This Source Code Form is "Incompatible With Secondary Licenses", as +# defined by the Mozilla Public License, v. 2.0. + +use strict; +use warnings; +use lib qw(lib); + +use Test::More "no_plan"; + +use QA::Util; + +my ($sel, $config) = get_selenium(); + +# Used to test sent bugmails +my @email_both = ($config->{admin_user_login}, $config->{editbugs_user_login}); +my @email_admin = ($config->{admin_user_login}); +my @email_normal = ($config->{editbugs_user_login}); + +# Test script to test email preferences. +# For reference, following bugmail and request mails should be generated. +# +# Admin should get following bugmails (in order): +# 1) A bug is created +# 2) Normal user adds a CC for itself +# 3) Admin removes CC of normal user +# 4) Admin assigns the bug to itself +# 5) Admin requests a flag from normal user +# 6) Admin grants a flag requested from itself +# 7) Normal user set severity to normal +# 8) Normal user adds a comment #3 +# 9) Normal user assigns the bug to itself +# Normal User should get following bugmail (in order): +# 1) A bug is created +# 2) Normal user sets severity to blocker +# 3) Admin sets severity to trivial +# 4) Admin adds a comment #2 +# 5) Admin removes CC of normal user +# 6) Admin assigns the bug to itself +# 7) Normal user sets severity to normal +# +# Admin should get following request mails (in order): +# 1) Normal user denies a flag requested by the admin +# Normal user should get following request mails (in order): +# 1) Admin requests a flag from normal user +# +# NOTE that only correct bugmail is verified by the test script because +# sending request mail is not indicated on the UI. + +# Set admin Email Prefs (via link in footer) +log_in($sel, $config, 'admin'); +$sel->click_ok("link=Preferences"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +$sel->title_is("User Preferences"); +$sel->click_ok("link=Email Preferences"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +$sel->is_text_present_ok("Email Preferences"); +$sel->click_ok("//input[\@value='Disable All Bugmail']"); +$sel->click_ok("email-0-1", undef, 'Set "I\'m added to or removed from this capacity" for Assignee role'); +$sel->click_ok("email-0-5", undef, 'Set "The priority, status, severity, or milestone changes" for Assignee role'); +$sel->click_ok("email-0-2", undef, 'Set "New comments are added" for Assignee role'); +$sel->click_ok("email-0-0", undef, 'Set "Any field not mentioned above changes" for Assignee role'); +$sel->click_ok("email-3-8", undef, 'Set "The CC field changes" for CCed role'); +$sel->click_ok("email-1-10", undef, 'Set "A new bug is created" for QA Contact role'); +$sel->click_ok("email-100-101", undef, 'Set "Email me when someone sets a flag I asked for" global option'); +# Restore the old 4.2 behavior for 'Disable All Mail'. +foreach my $col (0..3) { + foreach my $row (50..51) { + $sel->click_ok("neg-email-$col-$row"); + } +} +$sel->value_is("email-0-1", "on"); +$sel->value_is("email-0-10", "off"); +$sel->value_is("email-0-6", "off"); +$sel->value_is("email-0-5", "on"); +$sel->value_is("email-0-2", "on"); +$sel->value_is("email-0-3", "off"); +$sel->value_is("email-0-4", "off"); +$sel->value_is("email-0-7", "off"); +$sel->value_is("email-0-8", "off"); +$sel->value_is("email-0-9", "off"); +$sel->value_is("email-0-0", "on"); +$sel->value_is("neg-email-0-50", "off"); +$sel->value_is("neg-email-0-51", "off"); +$sel->value_is("email-1-1", "off"); +$sel->value_is("email-1-10", "on"); +$sel->value_is("email-1-6", "off"); +$sel->value_is("email-1-5", "off"); +$sel->value_is("email-1-2", "off"); +$sel->value_is("email-1-3", "off"); +$sel->value_is("email-1-4", "off"); +$sel->value_is("email-1-7", "off"); +$sel->value_is("email-1-8", "off"); +$sel->value_is("email-1-9", "off"); +$sel->value_is("email-1-0", "off"); +$sel->value_is("neg-email-1-50", "off"); +$sel->value_is("neg-email-1-51", "off"); +ok(!$sel->is_editable("email-2-1"), 'The "I\'m added to or removed from this capacity" for Reporter role is disabled'); +$sel->value_is("email-2-10", "off"); +$sel->value_is("email-2-6", "off"); +$sel->value_is("email-2-5", "off"); +$sel->value_is("email-2-2", "off"); +$sel->value_is("email-2-3", "off"); +$sel->value_is("email-2-4", "off"); +$sel->value_is("email-2-7", "off"); +$sel->value_is("email-2-8", "off"); +$sel->value_is("email-2-9", "off"); +$sel->value_is("email-2-0", "off"); +$sel->value_is("neg-email-2-50", "off"); +$sel->value_is("neg-email-2-51", "off"); +$sel->value_is("email-3-1", "off"); +$sel->value_is("email-3-10", "off"); +$sel->value_is("email-3-6", "off"); +$sel->value_is("email-3-5", "off"); +$sel->value_is("email-3-2", "off"); +$sel->value_is("email-3-3", "off"); +$sel->value_is("email-3-4", "off"); +$sel->value_is("email-3-7", "off"); +$sel->value_is("email-3-8", "on"); +$sel->value_is("email-3-9", "off"); +$sel->value_is("email-3-0", "off"); +$sel->value_is("neg-email-3-50", "off"); +$sel->value_is("neg-email-3-51", "off"); +$sel->value_is("email-100-100", "off"); +$sel->value_is("email-100-101", "on"); +$sel->click_ok("update", undef, "Submit modified admin email preferences"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +$sel->is_text_present_ok("The changes to your email preferences have been saved."); + +# Set "After changing a bug" default preference to "Show the updated bug" +# This simplifies bug changes below +go_to_admin($sel); +$sel->click_ok("link=Default Preferences"); +$sel->wait_for_page_to_load(WAIT_TIME); +$sel->title_is("Default Preferences"); +$sel->check_ok("post_bug_submit_action-enabled"); +$sel->select_ok("post_bug_submit_action", "label=Show the updated bug"); +$sel->click_ok("update"); +$sel->wait_for_page_to_load(WAIT_TIME); +$sel->title_is("Default Preferences"); + +# Set normal user Email Prefs (by directly going to Email Prefs pane) +logout($sel); +log_in($sel, $config, 'editbugs'); +$sel->open_ok("$config->{bugzilla_installation}/userprefs.cgi?tab=email"); +$sel->is_text_present_ok("Email Preferences"); +$sel->click_ok("//input[\@value='Enable All Bugmail']"); +$sel->click_ok("email-3-1", undef, 'Clear "I\'m added to or removed from this capacity" for CCed role'); +$sel->click_ok("email-3-5", undef, 'Clear "The priority, status, severity, or milestone changes" for CCed role'); +$sel->click_ok("email-2-2", undef, 'Clear "New comments are added" for Reporter role'); +$sel->click_ok("email-3-2", undef, 'Clear "New comments are added" for CCed role'); +$sel->click_ok("email-2-8", undef, 'Clear "The CC field changes" for Reporter role'); +$sel->click_ok("email-3-8", undef, 'Clear "The CC field changes" for CCed role'); +$sel->click_ok("email-2-0", undef, 'Clear "Any field not mentioned above changes" for Reporter role'); +$sel->click_ok("email-3-0", undef, 'Clear "Any field not mentioned above changes" for CCed role'); +$sel->click_ok("neg-email-0-51", undef, 'Set "Change was made by me" override for Assignee role'); +$sel->click_ok("email-100-101", undef, 'Clear "Email me when someone sets a flag I asked for" global option'); +$sel->value_is("email-0-1", "on"); +$sel->value_is("email-0-10", "on"); +$sel->value_is("email-0-6", "on"); +$sel->value_is("email-0-5", "on"); +$sel->value_is("email-0-2", "on"); +$sel->value_is("email-0-3", "on"); +$sel->value_is("email-0-4", "on"); +$sel->value_is("email-0-7", "on"); +$sel->value_is("email-0-8", "on"); +$sel->value_is("email-0-9", "on"); +$sel->value_is("email-0-0", "on"); +$sel->value_is("neg-email-0-50", "off"); +$sel->value_is("neg-email-0-51", "on"); +$sel->value_is("email-1-1", "on"); +$sel->value_is("email-1-10", "on"); +$sel->value_is("email-1-6", "on"); +$sel->value_is("email-1-5", "on"); +$sel->value_is("email-1-2", "on"); +$sel->value_is("email-1-3", "on"); +$sel->value_is("email-1-4", "on"); +$sel->value_is("email-1-7", "on"); +$sel->value_is("email-1-8", "on"); +$sel->value_is("email-1-9", "on"); +$sel->value_is("email-1-0", "on"); +$sel->value_is("neg-email-1-50", "off"); +$sel->value_is("neg-email-1-51", "off"); +ok(!$sel->is_editable("email-2-1"), 'The "I\'m added to or removed from this capacity" for Reporter role is disabled'); +$sel->value_is("email-2-10", "on"); +$sel->value_is("email-2-6", "on"); +$sel->value_is("email-2-5", "on"); +$sel->value_is("email-2-2", "off"); +$sel->value_is("email-2-3", "on"); +$sel->value_is("email-2-4", "on"); +$sel->value_is("email-2-7", "on"); +$sel->value_is("email-2-8", "off"); +$sel->value_is("email-2-9", "on"); +$sel->value_is("email-2-0", "off"); +$sel->value_is("neg-email-2-50", "off"); +$sel->value_is("neg-email-2-51", "off"); +$sel->value_is("email-3-1", "off"); +$sel->value_is("email-3-10", "on"); +$sel->value_is("email-3-6", "on"); +$sel->value_is("email-3-5", "off"); +$sel->value_is("email-3-2", "off"); +$sel->value_is("email-3-3", "on"); +$sel->value_is("email-3-4", "on"); +$sel->value_is("email-3-7", "on"); +$sel->value_is("email-3-8", "off"); +$sel->value_is("email-3-9", "on"); +$sel->value_is("email-3-0", "off"); +$sel->value_is("neg-email-3-50", "off"); +$sel->value_is("neg-email-3-51", "off"); +$sel->value_is("email-100-100", "on"); +$sel->value_is("email-100-101", "off"); +$sel->click_ok("update", undef, "Submit modified normal user email preferences"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +$sel->is_text_present_ok("The changes to your email preferences have been saved."); + +# Always show email recipients +ok($sel->create_cookie('show_bugmail_recipients=1'), 'Always show recipient list'); + +# Create a test bug (bugmail to both normal user and admin) +file_bug_in_product($sel, "Another Product"); +$sel->select_ok("component", "label=c1"); +$sel->type_ok("short_desc", "Selenium Email Preference test bug", "Enter bug summary"); +$sel->type_ok("comment", "Created by Selenium to test Email Preferences", "Enter bug description"); +$sel->type_ok("assigned_to", $config->{editbugs_user_login}); +$sel->type_ok("qa_contact", $config->{admin_user_login}); +$sel->type_ok("cc", $config->{admin_user_login}); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load(WAIT_TIME); +my $bug1_id = $sel->get_value("//input[\@name='id' and \@type='hidden']"); +$sel->is_text_present_ok('has been added to the database', "Bug $bug1_id created"); +my @email_sentto = get_email_sentto($sel); +is_deeply(\@email_sentto, \@email_both, "Admin and normal user got bugmail"); + +# Make normal user changes (first pass) +# +go_to_bug($sel, $bug1_id); +# Severity change (bugmail to normal user but not admin) +$sel->select_ok("bug_severity", "label=blocker"); +$sel->selected_label_is("bug_severity", "blocker"); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); +@email_sentto = get_email_sentto($sel); +is_deeply(\@email_sentto, \@email_normal, "Normal user got bugmail"); +# Add a comment (bugmail to no one) +$sel->type_ok("comment", "This is a Selenium generated normal user test comment 1 of 2. (No bugmail should be generated for this.)"); +$sel->value_is("comment", "This is a Selenium generated normal user test comment 1 of 2. (No bugmail should be generated for this.)"); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); +@email_sentto = get_email_sentto($sel); +ok($email_sentto[0] eq "no one", "No bugmail sent"); +# Add normal user to CC list (bugmail to admin but not normal user) +$sel->type_ok("newcc", $config->{editbugs_user_login}); +$sel->value_is("newcc", $config->{editbugs_user_login}); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); +@email_sentto = get_email_sentto($sel); +is_deeply(\@email_sentto, \@email_admin, "Admin got bugmail"); +# Request a flag from admin (bugmail to no one, request mail to no one) +$sel->select_ok("flag_type-4", "label=?"); +$sel->type_ok("requestee_type-4", $config->{admin_user_login}); +$sel->value_is("requestee_type-4", $config->{admin_user_login}); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); +@email_sentto = get_email_sentto($sel); +ok($email_sentto[0] eq "no one", "No bugmail sent"); + +# Make admin changes +# +logout($sel); +log_in($sel, $config, 'admin'); +go_to_bug($sel, $bug1_id); +# Severity change (bugmail to normal user but not admin) +$sel->select_ok("bug_severity", "label=trivial"); +$sel->selected_label_is("bug_severity", "trivial"); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); +@email_sentto = get_email_sentto($sel); +is_deeply(\@email_sentto, \@email_normal, "Normal user got bugmail"); +# Add a comment (bugmail to normal user but not admin) +$sel->type_ok("comment", "This is a Selenium generated admin user test comment. (Only normal user should get bugmail for this.)"); +$sel->value_is("comment", "This is a Selenium generated admin user test comment. (Only normal user should get bugmail for this.)"); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); +@email_sentto = get_email_sentto($sel); +is_deeply(\@email_sentto, \@email_normal, "Normal user got bugmail"); +# Remove normal user from CC list (bugmail to both normal user and admin) +$sel->click_ok("removecc"); +$sel->add_selection_ok("cc", "label=$config->{editbugs_user_login}"); +$sel->value_is("removecc", "on"); +$sel->selected_label_is("cc", $config->{editbugs_user_login}); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); +@email_sentto = get_email_sentto($sel); +is_deeply(\@email_sentto, \@email_both, "Admin and normal user got bugmail"); +# Reassign bug to admin user (bugmail to both normal user and admin) +$sel->type_ok("assigned_to", $config->{admin_user_login}); +$sel->value_is("assigned_to", $config->{admin_user_login}); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); +@email_sentto = get_email_sentto($sel); +is_deeply(\@email_sentto, \@email_both, "Admin and normal user got bugmail"); +# Request a flag from normal user (bugmail to admin but not normal user and request mail to admin) +$sel->select_ok("flag_type-4", "label=?"); +$sel->type_ok("requestee_type-4", $config->{editbugs_user_login}); +$sel->value_is("requestee_type-4", $config->{editbugs_user_login}); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +@email_sentto = get_email_sentto($sel); +is_deeply(\@email_sentto, \@email_admin, "Admin got bugmail"); +# Grant a normal user flag request (bugmail to admin but not normal user and request mail to no one) +my $flag1_id = set_flag($sel, $config->{admin_user_login}, "?", "+"); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +@email_sentto = get_email_sentto($sel); +is_deeply(\@email_sentto, \@email_admin, "Admin got bugmail"); + +# Make normal user changes (second pass) +# +logout($sel); +log_in($sel, $config, 'editbugs'); +go_to_bug($sel, $bug1_id); +# Severity change (bugmail to both admin and normal user) +$sel->select_ok("bug_severity", "label=normal"); +$sel->selected_label_is("bug_severity", "normal"); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); +@email_sentto = get_email_sentto($sel); +is_deeply(\@email_sentto, \@email_both, "Admin and normal user got bugmail"); +# Add a comment (bugmail to admin but not normal user) +$sel->type_ok("comment", "This is a Selenium generated normal user test comment 2 of 2. (Only admin should get bugmail for this.)"); +$sel->value_is("comment", "This is a Selenium generated normal user test comment 2 of 2. (Only admin should get bugmail for this.)"); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); +@email_sentto = get_email_sentto($sel); +is_deeply(\@email_sentto, \@email_admin, "Admin got bugmail"); +# Reassign to normal user (bugmail to admin but not normal user) +$sel->type_ok("assigned_to", $config->{editbugs_user_login}); +$sel->value_is("assigned_to", $config->{editbugs_user_login}); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +@email_sentto = get_email_sentto($sel); +is_deeply(\@email_sentto, \@email_admin, "Admin got bugmail"); +# Deny a flag requested by admin (bugmail to no one and request mail to admin) +my $flag2_id = set_flag($sel, $config->{editbugs_user_login}, "?", "-"); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +@email_sentto = get_email_sentto($sel); +ok($email_sentto[0] eq "no one", "No bugmail sent"); +# Cancel both flags (bugmail and request mail to no one) +set_flag($sel, undef, "+", "X", $flag1_id); +set_flag($sel, undef, "-", "X", $flag2_id); +$sel->click_ok("commit"); +$sel->wait_for_page_to_load_ok(WAIT_TIME); +@email_sentto = get_email_sentto($sel); +ok($email_sentto[0] eq "no one", "No bugmail sent"); +logout($sel); + +# Help functions +sub get_email_sentto { + my ($sel) = @_; + my @email_sentto; + my $index = 1; + while ($sel->is_element_present("//dt[text()='Email sent to:']/following-sibling::dd/code[$index]")) { + push(@email_sentto, + $sel->get_text("//dt[text()='Email sent to:']/following-sibling::dd/code[$index]")); + $index++; + } + return ("no one") if !@email_sentto; + return sort @email_sentto; +} + +sub set_flag { + my ($sel, $login, $curval, $newval, $prev_id) = @_; + + # Retrieve flag id for the flag to be set + my $flag_id = $prev_id; + if (defined $login) { + my $flag_name = $sel->get_attribute("//table[\@id='flags']//input[\@value='$login']\@name"); + $flag_name =~ /^requestee-(\d+)$/; + $flag_id = $1; + } + + # Set new value for the flag (verifies current value) + $sel->select_ok("//select[\@id=\"flag-$flag_id\"]/option[\@value=\"$curval\" and \@selected]/..", "value=$newval", "Set flag ID $flag_id to $newval from $curval"); + + return $flag_id; +} diff --git a/qa/t/test_email_preferences.t b/qa/t/test_email_preferences.t deleted file mode 100644 index cc314ea2c..000000000 --- a/qa/t/test_email_preferences.t +++ /dev/null @@ -1,400 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# -# This Source Code Form is "Incompatible With Secondary Licenses", as -# defined by the Mozilla Public License, v. 2.0. - -use strict; -use warnings; -use lib qw(lib); - -use Test::More "no_plan"; - -use QA::Util; - -my ($sel, $config) = get_selenium(); - -# Used to test sent bugmails -my @email_both = ($config->{admin_user_login}, $config->{editbugs_user_login}); -my @email_admin = ($config->{admin_user_login}); -my @email_normal = ($config->{editbugs_user_login}); - -# Test script to test email preferences. -# For reference, following bugmail and request mails should be generated. -# -# Admin should get following bugmails (in order): -# 1) A bug is created -# 2) Normal user adds a CC for itself -# 3) Admin removes CC of normal user -# 4) Admin assigns the bug to itself -# 5) Admin requests a flag from normal user -# 6) Admin grants a flag requested from itself -# 7) Normal user set severity to normal -# 8) Normal user adds a comment #3 -# 9) Normal user assigns the bug to itself -# Normal User should get following bugmail (in order): -# 1) A bug is created -# 2) Normal user sets severity to blocker -# 3) Admin sets severity to trivial -# 4) Admin adds a comment #2 -# 5) Admin removes CC of normal user -# 6) Admin assigns the bug to itself -# 7) Normal user sets severity to normal -# -# Admin should get following request mails (in order): -# 1) Normal user denies a flag requested by the admin -# Normal user should get following request mails (in order): -# 1) Admin requests a flag from normal user -# -# NOTE that only correct bugmail is verified by the test script because -# sending request mail is not indicated on the UI. - -# Set admin Email Prefs (via link in footer) -log_in($sel, $config, 'admin'); -$sel->click_ok("link=Preferences"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -$sel->title_is("User Preferences"); -$sel->click_ok("link=Email Preferences"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -$sel->is_text_present_ok("Email Preferences"); -$sel->click_ok("//input[\@value='Disable All Bugmail']"); -$sel->click_ok("email-0-1", undef, 'Set "I\'m added to or removed from this capacity" for Assignee role'); -$sel->click_ok("email-0-5", undef, 'Set "The priority, status, severity, or milestone changes" for Assignee role'); -$sel->click_ok("email-0-2", undef, 'Set "New comments are added" for Assignee role'); -$sel->click_ok("email-0-0", undef, 'Set "Any field not mentioned above changes" for Assignee role'); -$sel->click_ok("email-3-8", undef, 'Set "The CC field changes" for CCed role'); -$sel->click_ok("email-1-10", undef, 'Set "A new bug is created" for QA Contact role'); -$sel->click_ok("email-100-101", undef, 'Set "Email me when someone sets a flag I asked for" global option'); -# Restore the old 4.2 behavior for 'Disable All Mail'. -foreach my $col (0..3) { - foreach my $row (50..51) { - $sel->click_ok("neg-email-$col-$row"); - } -} -$sel->value_is("email-0-1", "on"); -$sel->value_is("email-0-10", "off"); -$sel->value_is("email-0-6", "off"); -$sel->value_is("email-0-5", "on"); -$sel->value_is("email-0-2", "on"); -$sel->value_is("email-0-3", "off"); -$sel->value_is("email-0-4", "off"); -$sel->value_is("email-0-7", "off"); -$sel->value_is("email-0-8", "off"); -$sel->value_is("email-0-9", "off"); -$sel->value_is("email-0-0", "on"); -$sel->value_is("neg-email-0-50", "off"); -$sel->value_is("neg-email-0-51", "off"); -$sel->value_is("email-1-1", "off"); -$sel->value_is("email-1-10", "on"); -$sel->value_is("email-1-6", "off"); -$sel->value_is("email-1-5", "off"); -$sel->value_is("email-1-2", "off"); -$sel->value_is("email-1-3", "off"); -$sel->value_is("email-1-4", "off"); -$sel->value_is("email-1-7", "off"); -$sel->value_is("email-1-8", "off"); -$sel->value_is("email-1-9", "off"); -$sel->value_is("email-1-0", "off"); -$sel->value_is("neg-email-1-50", "off"); -$sel->value_is("neg-email-1-51", "off"); -ok(!$sel->is_editable("email-2-1"), 'The "I\'m added to or removed from this capacity" for Reporter role is disabled'); -$sel->value_is("email-2-10", "off"); -$sel->value_is("email-2-6", "off"); -$sel->value_is("email-2-5", "off"); -$sel->value_is("email-2-2", "off"); -$sel->value_is("email-2-3", "off"); -$sel->value_is("email-2-4", "off"); -$sel->value_is("email-2-7", "off"); -$sel->value_is("email-2-8", "off"); -$sel->value_is("email-2-9", "off"); -$sel->value_is("email-2-0", "off"); -$sel->value_is("neg-email-2-50", "off"); -$sel->value_is("neg-email-2-51", "off"); -$sel->value_is("email-3-1", "off"); -$sel->value_is("email-3-10", "off"); -$sel->value_is("email-3-6", "off"); -$sel->value_is("email-3-5", "off"); -$sel->value_is("email-3-2", "off"); -$sel->value_is("email-3-3", "off"); -$sel->value_is("email-3-4", "off"); -$sel->value_is("email-3-7", "off"); -$sel->value_is("email-3-8", "on"); -$sel->value_is("email-3-9", "off"); -$sel->value_is("email-3-0", "off"); -$sel->value_is("neg-email-3-50", "off"); -$sel->value_is("neg-email-3-51", "off"); -$sel->value_is("email-100-100", "off"); -$sel->value_is("email-100-101", "on"); -$sel->click_ok("update", undef, "Submit modified admin email preferences"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -$sel->is_text_present_ok("The changes to your email preferences have been saved."); - -# Set "After changing a bug" default preference to "Show the updated bug" -# This simplifies bug changes below -go_to_admin($sel); -$sel->click_ok("link=Default Preferences"); -$sel->wait_for_page_to_load(WAIT_TIME); -$sel->title_is("Default Preferences"); -$sel->check_ok("post_bug_submit_action-enabled"); -$sel->select_ok("post_bug_submit_action", "label=Show the updated bug"); -$sel->click_ok("update"); -$sel->wait_for_page_to_load(WAIT_TIME); -$sel->title_is("Default Preferences"); - -# Set normal user Email Prefs (by directly going to Email Prefs pane) -logout($sel); -log_in($sel, $config, 'editbugs'); -$sel->open_ok("$config->{bugzilla_installation}/userprefs.cgi?tab=email"); -$sel->is_text_present_ok("Email Preferences"); -$sel->click_ok("//input[\@value='Enable All Bugmail']"); -$sel->click_ok("email-3-1", undef, 'Clear "I\'m added to or removed from this capacity" for CCed role'); -$sel->click_ok("email-3-5", undef, 'Clear "The priority, status, severity, or milestone changes" for CCed role'); -$sel->click_ok("email-2-2", undef, 'Clear "New comments are added" for Reporter role'); -$sel->click_ok("email-3-2", undef, 'Clear "New comments are added" for CCed role'); -$sel->click_ok("email-2-8", undef, 'Clear "The CC field changes" for Reporter role'); -$sel->click_ok("email-3-8", undef, 'Clear "The CC field changes" for CCed role'); -$sel->click_ok("email-2-0", undef, 'Clear "Any field not mentioned above changes" for Reporter role'); -$sel->click_ok("email-3-0", undef, 'Clear "Any field not mentioned above changes" for CCed role'); -$sel->click_ok("neg-email-0-51", undef, 'Set "Change was made by me" override for Assignee role'); -$sel->click_ok("email-100-101", undef, 'Clear "Email me when someone sets a flag I asked for" global option'); -$sel->value_is("email-0-1", "on"); -$sel->value_is("email-0-10", "on"); -$sel->value_is("email-0-6", "on"); -$sel->value_is("email-0-5", "on"); -$sel->value_is("email-0-2", "on"); -$sel->value_is("email-0-3", "on"); -$sel->value_is("email-0-4", "on"); -$sel->value_is("email-0-7", "on"); -$sel->value_is("email-0-8", "on"); -$sel->value_is("email-0-9", "on"); -$sel->value_is("email-0-0", "on"); -$sel->value_is("neg-email-0-50", "off"); -$sel->value_is("neg-email-0-51", "on"); -$sel->value_is("email-1-1", "on"); -$sel->value_is("email-1-10", "on"); -$sel->value_is("email-1-6", "on"); -$sel->value_is("email-1-5", "on"); -$sel->value_is("email-1-2", "on"); -$sel->value_is("email-1-3", "on"); -$sel->value_is("email-1-4", "on"); -$sel->value_is("email-1-7", "on"); -$sel->value_is("email-1-8", "on"); -$sel->value_is("email-1-9", "on"); -$sel->value_is("email-1-0", "on"); -$sel->value_is("neg-email-1-50", "off"); -$sel->value_is("neg-email-1-51", "off"); -ok(!$sel->is_editable("email-2-1"), 'The "I\'m added to or removed from this capacity" for Reporter role is disabled'); -$sel->value_is("email-2-10", "on"); -$sel->value_is("email-2-6", "on"); -$sel->value_is("email-2-5", "on"); -$sel->value_is("email-2-2", "off"); -$sel->value_is("email-2-3", "on"); -$sel->value_is("email-2-4", "on"); -$sel->value_is("email-2-7", "on"); -$sel->value_is("email-2-8", "off"); -$sel->value_is("email-2-9", "on"); -$sel->value_is("email-2-0", "off"); -$sel->value_is("neg-email-2-50", "off"); -$sel->value_is("neg-email-2-51", "off"); -$sel->value_is("email-3-1", "off"); -$sel->value_is("email-3-10", "on"); -$sel->value_is("email-3-6", "on"); -$sel->value_is("email-3-5", "off"); -$sel->value_is("email-3-2", "off"); -$sel->value_is("email-3-3", "on"); -$sel->value_is("email-3-4", "on"); -$sel->value_is("email-3-7", "on"); -$sel->value_is("email-3-8", "off"); -$sel->value_is("email-3-9", "on"); -$sel->value_is("email-3-0", "off"); -$sel->value_is("neg-email-3-50", "off"); -$sel->value_is("neg-email-3-51", "off"); -$sel->value_is("email-100-100", "on"); -$sel->value_is("email-100-101", "off"); -$sel->click_ok("update", undef, "Submit modified normal user email preferences"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -$sel->is_text_present_ok("The changes to your email preferences have been saved."); - -# Always show email recipients -ok($sel->create_cookie('show_bugmail_recipients=1'), 'Always show recipient list'); - -# Create a test bug (bugmail to both normal user and admin) -file_bug_in_product($sel, "Another Product"); -$sel->select_ok("component", "label=c1"); -$sel->type_ok("short_desc", "Selenium Email Preference test bug", "Enter bug summary"); -$sel->type_ok("comment", "Created by Selenium to test Email Preferences", "Enter bug description"); -$sel->type_ok("assigned_to", $config->{editbugs_user_login}); -$sel->type_ok("qa_contact", $config->{admin_user_login}); -$sel->type_ok("cc", $config->{admin_user_login}); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load(WAIT_TIME); -my $bug1_id = $sel->get_value("//input[\@name='id' and \@type='hidden']"); -$sel->is_text_present_ok('has been added to the database', "Bug $bug1_id created"); -my @email_sentto = get_email_sentto($sel); -is_deeply(\@email_sentto, \@email_both, "Admin and normal user got bugmail"); - -# Make normal user changes (first pass) -# -go_to_bug($sel, $bug1_id); -# Severity change (bugmail to normal user but not admin) -$sel->select_ok("bug_severity", "label=blocker"); -$sel->selected_label_is("bug_severity", "blocker"); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); -@email_sentto = get_email_sentto($sel); -is_deeply(\@email_sentto, \@email_normal, "Normal user got bugmail"); -# Add a comment (bugmail to no one) -$sel->type_ok("comment", "This is a Selenium generated normal user test comment 1 of 2. (No bugmail should be generated for this.)"); -$sel->value_is("comment", "This is a Selenium generated normal user test comment 1 of 2. (No bugmail should be generated for this.)"); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); -@email_sentto = get_email_sentto($sel); -ok($email_sentto[0] eq "no one", "No bugmail sent"); -# Add normal user to CC list (bugmail to admin but not normal user) -$sel->type_ok("newcc", $config->{editbugs_user_login}); -$sel->value_is("newcc", $config->{editbugs_user_login}); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); -@email_sentto = get_email_sentto($sel); -is_deeply(\@email_sentto, \@email_admin, "Admin got bugmail"); -# Request a flag from admin (bugmail to no one, request mail to no one) -$sel->select_ok("flag_type-4", "label=?"); -$sel->type_ok("requestee_type-4", $config->{admin_user_login}); -$sel->value_is("requestee_type-4", $config->{admin_user_login}); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); -@email_sentto = get_email_sentto($sel); -ok($email_sentto[0] eq "no one", "No bugmail sent"); - -# Make admin changes -# -logout($sel); -log_in($sel, $config, 'admin'); -go_to_bug($sel, $bug1_id); -# Severity change (bugmail to normal user but not admin) -$sel->select_ok("bug_severity", "label=trivial"); -$sel->selected_label_is("bug_severity", "trivial"); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); -@email_sentto = get_email_sentto($sel); -is_deeply(\@email_sentto, \@email_normal, "Normal user got bugmail"); -# Add a comment (bugmail to normal user but not admin) -$sel->type_ok("comment", "This is a Selenium generated admin user test comment. (Only normal user should get bugmail for this.)"); -$sel->value_is("comment", "This is a Selenium generated admin user test comment. (Only normal user should get bugmail for this.)"); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); -@email_sentto = get_email_sentto($sel); -is_deeply(\@email_sentto, \@email_normal, "Normal user got bugmail"); -# Remove normal user from CC list (bugmail to both normal user and admin) -$sel->click_ok("removecc"); -$sel->add_selection_ok("cc", "label=$config->{editbugs_user_login}"); -$sel->value_is("removecc", "on"); -$sel->selected_label_is("cc", $config->{editbugs_user_login}); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); -@email_sentto = get_email_sentto($sel); -is_deeply(\@email_sentto, \@email_both, "Admin and normal user got bugmail"); -# Reassign bug to admin user (bugmail to both normal user and admin) -$sel->type_ok("assigned_to", $config->{admin_user_login}); -$sel->value_is("assigned_to", $config->{admin_user_login}); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); -@email_sentto = get_email_sentto($sel); -is_deeply(\@email_sentto, \@email_both, "Admin and normal user got bugmail"); -# Request a flag from normal user (bugmail to admin but not normal user and request mail to admin) -$sel->select_ok("flag_type-4", "label=?"); -$sel->type_ok("requestee_type-4", $config->{editbugs_user_login}); -$sel->value_is("requestee_type-4", $config->{editbugs_user_login}); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -@email_sentto = get_email_sentto($sel); -is_deeply(\@email_sentto, \@email_admin, "Admin got bugmail"); -# Grant a normal user flag request (bugmail to admin but not normal user and request mail to no one) -my $flag1_id = set_flag($sel, $config->{admin_user_login}, "?", "+"); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -@email_sentto = get_email_sentto($sel); -is_deeply(\@email_sentto, \@email_admin, "Admin got bugmail"); - -# Make normal user changes (second pass) -# -logout($sel); -log_in($sel, $config, 'editbugs'); -go_to_bug($sel, $bug1_id); -# Severity change (bugmail to both admin and normal user) -$sel->select_ok("bug_severity", "label=normal"); -$sel->selected_label_is("bug_severity", "normal"); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); -@email_sentto = get_email_sentto($sel); -is_deeply(\@email_sentto, \@email_both, "Admin and normal user got bugmail"); -# Add a comment (bugmail to admin but not normal user) -$sel->type_ok("comment", "This is a Selenium generated normal user test comment 2 of 2. (Only admin should get bugmail for this.)"); -$sel->value_is("comment", "This is a Selenium generated normal user test comment 2 of 2. (Only admin should get bugmail for this.)"); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -$sel->is_text_present_ok("Changes submitted for bug $bug1_id"); -@email_sentto = get_email_sentto($sel); -is_deeply(\@email_sentto, \@email_admin, "Admin got bugmail"); -# Reassign to normal user (bugmail to admin but not normal user) -$sel->type_ok("assigned_to", $config->{editbugs_user_login}); -$sel->value_is("assigned_to", $config->{editbugs_user_login}); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -@email_sentto = get_email_sentto($sel); -is_deeply(\@email_sentto, \@email_admin, "Admin got bugmail"); -# Deny a flag requested by admin (bugmail to no one and request mail to admin) -my $flag2_id = set_flag($sel, $config->{editbugs_user_login}, "?", "-"); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -@email_sentto = get_email_sentto($sel); -ok($email_sentto[0] eq "no one", "No bugmail sent"); -# Cancel both flags (bugmail and request mail to no one) -set_flag($sel, undef, "+", "X", $flag1_id); -set_flag($sel, undef, "-", "X", $flag2_id); -$sel->click_ok("commit"); -$sel->wait_for_page_to_load_ok(WAIT_TIME); -@email_sentto = get_email_sentto($sel); -ok($email_sentto[0] eq "no one", "No bugmail sent"); -logout($sel); - -# Help functions -sub get_email_sentto { - my ($sel) = @_; - my @email_sentto; - my $index = 1; - while ($sel->is_element_present("//dt[text()='Email sent to:']/following-sibling::dd/code[$index]")) { - push(@email_sentto, - $sel->get_text("//dt[text()='Email sent to:']/following-sibling::dd/code[$index]")); - $index++; - } - return ("no one") if !@email_sentto; - return sort @email_sentto; -} - -sub set_flag { - my ($sel, $login, $curval, $newval, $prev_id) = @_; - - # Retrieve flag id for the flag to be set - my $flag_id = $prev_id; - if (defined $login) { - my $flag_name = $sel->get_attribute("//table[\@id='flags']//input[\@value='$login']\@name"); - $flag_name =~ /^requestee-(\d+)$/; - $flag_id = $1; - } - - # Set new value for the flag (verifies current value) - $sel->select_ok("//select[\@id=\"flag-$flag_id\"]/option[\@value=\"$curval\" and \@selected]/..", "value=$newval", "Set flag ID $flag_id to $newval from $curval"); - - return $flag_id; -} -- cgit v1.2.3-24-g4f1b