From 2a0f51a4c6fc79f1ee0bd76af8848ae24547d4d7 Mon Sep 17 00:00:00 2001 From: Nico Schedel Date: Wed, 8 May 2019 12:34:50 +0200 Subject: [PATCH] TT#56376 selenium: add tests: cancel deletion and see if data is still here Common.pm: - Edit functions to enable testing the cancel button on delete dialogs Every file where generation of data is handled by a function in Common.pm either got this test or recieved improvments. Change-Id: I4fa4d0bb57c3d32f980d7ea540acb38ad12c2b42 --- t/lib/Selenium/Collection/Common.pm | 20 +++++++++++++++----- t/selenium/controller_customer.t | 11 ++++++++++- t/selenium/controller_domain.t | 6 ++---- t/selenium/controller_reseller.t | 14 +++++++------- t/selenium/controller_rw_ruleset.t | 12 ++++++++++-- 5 files changed, 44 insertions(+), 19 deletions(-) diff --git a/t/lib/Selenium/Collection/Common.pm b/t/lib/Selenium/Collection/Common.pm index 65c1cdfbae..8e64d985d7 100644 --- a/t/lib/Selenium/Collection/Common.pm +++ b/t/lib/Selenium/Collection/Common.pm @@ -189,7 +189,7 @@ sub create_rw_ruleset { } sub delete_rw_ruleset { - my($self, $rulesetname) = @_; + my($self, $rulesetname, $cancel) = @_; return unless $rulesetname; diag('Go to Rewrite Rule Sets page'); @@ -201,9 +201,14 @@ sub delete_rw_ruleset { ok($self->driver->find_element_by_css('#rewrite_rule_set_table tr > td.dataTables_empty', 'css'), 'Garbage text was not found'); $self->driver->fill_element('//*[@id="rewrite_rule_set_table_filter"]/label/input', 'xpath', $rulesetname); ok($self->driver->wait_for_text('//*[@id="rewrite_rule_set_table"]/tbody/tr[1]/td[3]', $rulesetname), 'Ruleset was found'); + $self->driver->move_action(element => $self->driver->find_element('//*[@id="rewrite_rule_set_table"]')); $self->driver->move_action(element => $self->driver->find_element('//*[@id="rewrite_rule_set_table"]/tbody/tr[1]//td//div//a[contains(text(), "Delete")]')); $self->driver->find_element('//*[@id="rewrite_rule_set_table"]/tbody/tr[1]//td//div//a[contains(text(), "Delete")]')->click(); - $self->driver->find_element('//*[@id="dataConfirmOK"]')->click(); + if($cancel){ + popup_confirm_cancel($self, 'We are NOT going to delete this ruleset'); + } else { + popup_confirm_ok($self, 'We are going to delete this ruleset'); + }; } sub create_customer { @@ -235,7 +240,7 @@ sub create_customer { } sub delete_customer { - my($self, $customerid) = @_; + my($self, $customerid, $cancel) = @_; return unless $customerid; diag("Go to Customers page"); @@ -247,9 +252,14 @@ sub delete_customer { ok($self->driver->find_element_by_css('#Customer_table tr > td.dataTables_empty'), 'Garbage text was not found'); $self->driver->fill_element('#Customer_table_filter input', 'css', $customerid); ok($self->driver->wait_for_text('//*[@id="Customer_table"]/tbody/tr[1]/td[2]', $customerid), 'Found customer'); - $self->driver->move_action(element => $self->driver->find_element('//*[@id="Customer_table"]/tbody/tr[1]//td//div//a[contains(text(),"Terminate")]')); + $self->driver->move_action(element => $self->driver->find_element('//*[@id="Customer_table"]')); + $self->driver->move_action(element=> $self->driver->find_element('//*[@id="Customer_table"]/tbody/tr[1]//td//div//a[contains(text(),"Terminate")]')); $self->driver->find_element('//*[@id="Customer_table"]/tbody/tr[1]//td//div//a[contains(text(),"Terminate")]')->click(); - $self->driver->find_element('#dataConfirmOK', 'css')->click(); + if($cancel){ + popup_confirm_cancel($self, 'We are NOT going to terminate this customer'); + } else { + popup_confirm_ok($self, 'We are going to terminate this customer'); + }; } sub popup_confirm_ok { diff --git a/t/selenium/controller_customer.t b/t/selenium/controller_customer.t index 2acfbd40e5..4b36f16bc6 100644 --- a/t/selenium/controller_customer.t +++ b/t/selenium/controller_customer.t @@ -113,7 +113,16 @@ ok($d->find_element_by_css('#locations_table tr > td.dataTables_empty', 'css'), $d->fill_element('//*[@id="locations_table_filter"]/label/input', 'xpath', 'Test Location'); ok($d->wait_for_text('//*[@id="locations_table"]/tbody/tr/td[2]', 'Test Location'), "Location has been found"); -$c->delete_customer($customerid); +diag("Open delete dialog and press cancel"); +$c->delete_customer($customerid, 1); +$d->fill_element('//*[@id="Customer_table_filter"]/label/input', 'xpath', $customerid); +ok($d->wait_for_text('//*[@id="Customer_table"]/tbody/tr/td[2]', $customerid), 'Customer is still here'); + +diag('Open delete dialog and press delete'); +$c->delete_customer($customerid, 0); +$d->fill_element('//*[@id="Customer_table_filter"]/label/input', 'xpath', $customerid); +ok($d->find_element_by_css('#Customer_table tr > td.dataTables_empty', 'css'), 'Customer was deleted'); + $c->delete_domain($domainstring); done_testing; diff --git a/t/selenium/controller_domain.t b/t/selenium/controller_domain.t index 611db775aa..1284156205 100644 --- a/t/selenium/controller_domain.t +++ b/t/selenium/controller_domain.t @@ -84,15 +84,13 @@ $d->find_element('//*[@id="mod_close"]')->click(); diag("Check if IP address has been added"); ok($d->find_element_by_xpath('//table/tbody/tr/td[contains(text(), "allowed_ips")]/../td[contains(text(), "127.0.0.1")]'), "IP address has beeen found"); -diag("Press cancel on delete dialog to check if domain is still there"); +diag("Open delete dialog and press cancel"); $c->delete_domain($domainstring, 1); $d->fill_element('//*[@id="Domain_table_filter"]/label/input', 'xpath', $domainstring); ok($d->wait_for_text('//*[@id="Domain_table"]/tbody/tr[1]/td[3]', $domainstring), 'Domain is still here'); -diag('Deleting Domain'); +diag('Open delete dialog and press delete'); $c->delete_domain($domainstring, 0); - -diag('Check if Domain still exists'); $d->fill_element('//*[@id="Domain_table_filter"]/label/input', 'xpath', $domainstring); ok($d->find_element_by_css('#Domain_table tr > td.dataTables_empty', 'css'), 'Domain was deleted'); diff --git a/t/selenium/controller_reseller.t b/t/selenium/controller_reseller.t index ff80492d8f..fa10bf94f6 100644 --- a/t/selenium/controller_reseller.t +++ b/t/selenium/controller_reseller.t @@ -90,23 +90,23 @@ ok($d->wait_for_text('//*[@id="phonebook_table"]/tbody/tr/td[3]', '0123456789'), diag("Go back to previous page"); $d->find_element("Back", 'link_text')->click(); -diag("Press cancel on delete dialog to check if reseller contract is still there"); +diag("Open delete dialog and press cancel"); $c->delete_reseller_contract($contractid, 1); $d->fill_element('//*[@id="contract_table_filter"]/label/input', 'xpath', $contractid); ok($d->wait_for_text('//*[@id="contract_table"]/tbody/tr[1]/td[2]', $contractid), 'Reseller contract is still here'); -diag("Now deleting the reseller contract"); -$c->delete_reseller_contract($contractid); +diag('Open delete dialog and press delete'); +$c->delete_reseller_contract($contractid, 0); $d->fill_element('//*[@id="contract_table_filter"]/label/input', 'xpath', $contractid); ok($d->find_element_by_css('#contract_table tr > td.dataTables_empty'), 'Reseller contract was deleted'); -diag("Press cancel on delete dialog to check if reseller is still there"); +diag("Open delete dialog and press cancel"); $c->delete_reseller($resellername, 1); $d->fill_element('//*[@id="Resellers_table_filter"]/label/input', 'xpath', $resellername); -ok($d->wait_for_text('//*[@id="Resellers_table"]/tbody/tr[1]/td[3]', $resellername), 'Reseller contract is still here'); +ok($d->wait_for_text('//*[@id="Resellers_table"]/tbody/tr[1]/td[3]', $resellername), 'Reseller is still here'); -diag("Now deleting the reseller"); -$c->delete_reseller($resellername); +diag('Open delete dialog and press delete'); +$c->delete_reseller($resellername, 0); $d->fill_element('//*[@id="Resellers_table_filter"]/label/input', 'xpath', $resellername); ok($d->find_element_by_css('#Resellers_table tr > td.dataTables_empty'), 'Reseller was deleted'); diff --git a/t/selenium/controller_rw_ruleset.t b/t/selenium/controller_rw_ruleset.t index a31e87f1b5..49900fadfc 100644 --- a/t/selenium/controller_rw_ruleset.t +++ b/t/selenium/controller_rw_ruleset.t @@ -102,9 +102,17 @@ $d->find_element('Number Manipulations', 'link_text')->click; ok($d->wait_for_text('//table/tbody/tr/td[contains(text(), "rewrite_rule_set")]/../td[4]/select/option[@selected="selected"]', $rulesetname), 'rewrite_rule_set value has been set'); -$c->delete_domain($domainstring); -$c->delete_rw_ruleset($rulesetname); +diag("Open delete dialog and press cancel"); +$c->delete_rw_ruleset($rulesetname, 1); +$d->fill_element('//*[@id="rewrite_rule_set_table_filter"]/label/input', 'xpath', $rulesetname); +ok($d->wait_for_text('//*[@id="rewrite_rule_set_table"]/tbody/tr[1]/td[3]', $rulesetname), 'Ruleset is still here'); +diag('Open delete dialog and press delete'); +$c->delete_rw_ruleset($rulesetname, 0); +$d->fill_element('//*[@id="rewrite_rule_set_table_filter"]/label/input', 'xpath', $rulesetname); +ok($d->find_element_by_css('#rewrite_rule_set_table tr > td.dataTables_empty', 'css'), 'Ruleset was deleted'); + +$c->delete_domain($domainstring); $c->delete_reseller_contract($contractid); $c->delete_reseller($resellername);