diff --git a/t/lib/Selenium/Collection/Common.pm b/t/lib/Selenium/Collection/Common.pm index 9f4208f7d3..6db8629a4b 100644 --- a/t/lib/Selenium/Collection/Common.pm +++ b/t/lib/Selenium/Collection/Common.pm @@ -77,8 +77,7 @@ sub create_reseller_contract { $self->driver->fill_element('//*[@id="contactidtable_filter"]/label/input', 'xpath', 'default-system@default.invalid'); ok($self->driver->wait_for_text('//*[@id="contactidtable"]/tbody/tr[1]/td[4]', 'default-system@default.invalid'), "Default Contact found"); $self->driver->select_if_unselected('//*[@id="contactidtable"]/tbody/tr[1]/td[5]/input'); - } - else { + } else { ok($self->driver->select_if_unselected('//*[@id="contactidtable"]/tbody/tr[1]/td[5]/input'), "Default Contact found"); }; $self->driver->scroll_to_element($self->driver->find_element('//*[@id="external_id"]')); @@ -95,38 +94,58 @@ sub create_reseller_contract { sub delete_reseller { - my ($self, $name) = @_; + my ($self, $name, $cancel) = @_; return unless $name; diag('Go to reseller page'); $self->driver->find_element('//*[@id="main-nav"]//*[contains(text(),"Settings")]')->click(); $self->driver->find_element('Resellers', 'link_text')->click(); - - diag('Try to delete a reseller'); $self->driver->fill_element('//*[@id="Resellers_table_filter"]/label/input', 'xpath', 'thisshouldnotexist'); ok($self->driver->find_element_by_css('#Resellers_table tr > td.dataTables_empty'), 'Garbage text was not found'); $self->driver->fill_element('//*[@id="Resellers_table_filter"]/label/input', 'xpath', $name); ok($self->driver->wait_for_text('//*[@id="Resellers_table"]/tbody/tr[1]/td[3]', $name), 'Entry found'); + $self->driver->move_action(element => $self->driver->find_element('//*[@id="Resellers_table"]')); $self->driver->move_action(element => $self->driver->find_element('//*[@id="Resellers_table"]/tbody/tr[1]/td[3]')); $self->driver->find_element('//*[@id="Resellers_table"]/tbody/tr[1]/td[5]/div/a[2]')->click(); - $self->driver->find_element('//*[@id="dataConfirmOK"]')->click(); + if($cancel){ + popup_confirm_cancel($self, 'We are not going to delete this reseller'); + } else { + popup_confirm_ok($self, 'We are going to delete this reseller'); + }; } sub delete_reseller_contract { - my ($self, $resellerid) = @_; + my ($self, $resellerid, $cancel) = @_; return unless $resellerid; diag('Go to Reseller and Peering Contracts page'); $self->driver->find_element('//*[@id="main-nav"]//*[contains(text(),"Settings")]')->click(); $self->driver->find_element('Reseller and Peering Contracts', 'link_text')->click(); - - diag('Try to delete a reseller contract'); $self->driver->fill_element('//*[@id="contract_table_filter"]/label/input', 'xpath', 'thisshouldnotexist'); ok($self->driver->find_element_by_css('#contract_table tr > td.dataTables_empty'), 'Garbage text was not found'); $self->driver->fill_element('//*[@id="contract_table_filter"]/label/input', 'xpath', $resellerid); ok($self->driver->wait_for_text('//*[@id="contract_table"]/tbody/tr/td[2]', $resellerid), 'Entry found'); + $self->driver->move_action(element => $self->driver->find_element('//*[@id="contract_table"]')); $self->driver->move_action(element => $self->driver->find_element('//*[@id="contract_table"]/tbody/tr[1]/td[3]')); $self->driver->find_element('//*[@id="contract_table"]/tbody/tr[1]/td[7]/div/a[2]')->click(); + if($cancel){ + popup_confirm_cancel($self, 'We are not going to delete this reseller contract'); + } else { + popup_confirm_ok($self, 'We are going to delete this reseller contract'); + }; +} + +sub popup_confirm_ok { + my($self, $message) = @_; + + diag($message); $self->driver->find_element('//*[@id="dataConfirmOK"]')->click(); } + +sub popup_confirm_cancel { + my($self, $message) = @_; + + diag($message); + $self->driver->find_element('//*[@id="dataConfirmCancel"]')->click(); +} 1; \ No newline at end of file diff --git a/t/selenium/controller_reseller.t b/t/selenium/controller_reseller.t index 76c9a27fba..4475e973f6 100644 --- a/t/selenium/controller_reseller.t +++ b/t/selenium/controller_reseller.t @@ -52,13 +52,25 @@ $d->move_action(element=> $d->find_element('//*[@id="Resellers_table"]/tbody/tr[ $d->find_element('//*[@id="Resellers_table"]/tbody/tr[1]/td[5]/div/a[1]')->click(); $d->find_element('#mod_close', 'css')->click(); +diag("Press cancel on delete dialog to check if reseller contract is still there"); +$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); $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 not found'); +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"); +$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'); +diag("Now deleting the reseller"); $c->delete_reseller($resellername); $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 not found'); +ok($d->find_element_by_css('#Resellers_table tr > td.dataTables_empty'), 'Reseller was deleted'); done_testing; # vim: filetype=perl