TT#56376 selenium: add cancel argument to delete_reseller(_contracts)

Common.pm:
- Added a new argument $cancel to delete_reseller() and
delete_reseller_contracts(), so it clicks on cancel instead of ok.
- Added a second move_action(), its needed because if mouse pointer is at
the exact same location as before, the buttons wont show up.

controller_reseller.t:
- implement checks to see if reseller and contract are still there if you
press cancel.

Change-Id: Id6a097314cc2fc025dac71c085c6adef98414890
changes/60/29160/4
Nico Schedel 6 years ago
parent 1f32e9b30a
commit fde849d53a

@ -77,8 +77,7 @@ sub create_reseller_contract {
$self->driver->fill_element('//*[@id="contactidtable_filter"]/label/input', 'xpath', 'default-system@default.invalid'); $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"); 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'); $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"); 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"]')); $self->driver->scroll_to_element($self->driver->find_element('//*[@id="external_id"]'));
@ -95,38 +94,58 @@ sub create_reseller_contract {
sub delete_reseller { sub delete_reseller {
my ($self, $name) = @_; my ($self, $name, $cancel) = @_;
return unless $name; return unless $name;
diag('Go to reseller page'); diag('Go to reseller page');
$self->driver->find_element('//*[@id="main-nav"]//*[contains(text(),"Settings")]')->click(); $self->driver->find_element('//*[@id="main-nav"]//*[contains(text(),"Settings")]')->click();
$self->driver->find_element('Resellers', 'link_text')->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'); $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'); 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); $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'); 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->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="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 { sub delete_reseller_contract {
my ($self, $resellerid) = @_; my ($self, $resellerid, $cancel) = @_;
return unless $resellerid; return unless $resellerid;
diag('Go to Reseller and Peering Contracts page'); diag('Go to Reseller and Peering Contracts page');
$self->driver->find_element('//*[@id="main-nav"]//*[contains(text(),"Settings")]')->click(); $self->driver->find_element('//*[@id="main-nav"]//*[contains(text(),"Settings")]')->click();
$self->driver->find_element('Reseller and Peering Contracts', 'link_text')->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'); $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'); 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); $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'); 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->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(); $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(); $self->driver->find_element('//*[@id="dataConfirmOK"]')->click();
} }
sub popup_confirm_cancel {
my($self, $message) = @_;
diag($message);
$self->driver->find_element('//*[@id="dataConfirmCancel"]')->click();
}
1; 1;

@ -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('//*[@id="Resellers_table"]/tbody/tr[1]/td[5]/div/a[1]')->click();
$d->find_element('#mod_close', 'css')->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); $c->delete_reseller_contract($contractid);
$d->fill_element('//*[@id="contract_table_filter"]/label/input', 'xpath', $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); $c->delete_reseller($resellername);
$d->fill_element('//*[@id="Resellers_table_filter"]/label/input', 'xpath', $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; done_testing;
# vim: filetype=perl # vim: filetype=perl

Loading…
Cancel
Save