TT#56376 selenium: add create_reseller() and create_reseller_contract()

Common.pm:
- add create_reseller_contract(). This will create a contract for use in
create_reseller().
- add create_reseller() to really test creating a reseller.

controller_reseller.t:
- included new functions.

Change-Id: I78bcddba3dd7f4aa6949ac88ae3cc68296194b45
changes/31/29131/5
Nico Schedel 7 years ago
parent 51a6a704b1
commit d10aa91bd2

@ -43,4 +43,51 @@ sub delete_domain {
$self->driver->find_element('//*[@id="Domain_table"]/tbody/tr[1]/td[4]/div/a[1]')->click();
$self->driver->find_element('//*[@id="dataConfirmOK"]')->click();
}
sub create_reseller {
my ($self, $name, $resellerid) = @_;
return unless $name && $resellerid;
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 create a reseller');
$self->driver->find_element('Create Reseller', 'link_text')->click();
$self->driver->fill_element('//*[@id="contractidtable_filter"]/label/input', 'xpath', 'thisshouldnotexist');
ok($self->driver->find_element_by_css('#contractidtable tr > td.dataTables_empty', 'css'), 'Garbage text was not found');
$self->driver->fill_element('//*[@id="contractidtable_filter"]/label/input', 'xpath', $resellerid);
ok($self->driver->wait_for_text('//*[@id="contractidtable"]/tbody/tr/td[3]', $resellerid), "Default Contact found");
$self->driver->select_if_unselected('//*[@id="contractidtable"]/tbody/tr/td[5]/input');
$self->driver->fill_element('//*[@id="name"]', 'xpath', $name);
$self->driver->find_element('//*[@id="save"]')->click();
}
sub create_reseller_contract {
my ($self, $resellerid) = @_;
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 create a reseller contract');
$self->driver->find_element('Create Reseller Contract', 'link_text')->click();
if(!$self->driver->find_element('//*[@id="contactidtable"]/tbody/tr[1]/td[4]')->get_text() eq '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");
$self->driver->select_if_unselected('//*[@id="contactidtable"]/tbody/tr[1]/td[5]/input');
}
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"]'));
$self->driver->fill_element('//*[@id="billing_profileidtable_filter"]/label/input', 'xpath', 'thisshouldnotexist');
ok($self->driver->find_element_by_css('#billing_profileidtable tr > td.dataTables_empty', 'css'), 'Garbage text was not found');
$self->driver->fill_element('//*[@id="billing_profileidtable_filter"]/label/input', 'xpath', 'Default Billing Profile');
ok($self->driver->wait_for_text('//*[@id="billing_profileidtable"]/tbody/tr/td[3]', 'Default Billing Profile'), "Default Billing Profile found");
$self->driver->select_if_unselected('//*[@id="billing_profileidtable"]/tbody/tr[1]/td[4]/input');
$self->driver->fill_element('//*[@id="external_id"]', 'xpath', $resellerid);
$self->driver->find_element('//*[@id="save"]')->click();
}
1;

@ -4,6 +4,7 @@ use strict;
use lib 't/lib';
use Test::More import => [qw(done_testing is ok diag)];
use Selenium::Remote::Driver::FirefoxExtensions;
use Selenium::Collection::Common;
my $browsername = $ENV{BROWSER_NAME} || "firefox"; # possible values: firefox, htmlunit, chrome
@ -14,18 +15,26 @@ my $d = Selenium::Remote::Driver::FirefoxExtensions->new(
},
);
my $c = Selenium::Collection::Common->new(
driver => $d
);
$d->login_ok();
diag("Go to reseller list");
$d->find_element('//a[@class="btn" and contains(@href,"/reseller")]')->click();
my $resellername = ("test" . int(rand(10000)));
my $contractid = ("test" . int(rand(10000)));
$c->create_reseller_contract($contractid);
$c->create_reseller($resellername, $contractid);
diag("Going to create a reseller");
diag("Check if invalid reseller will be rejected");
$d->find_element('Create Reseller', 'link_text')->click();
$d->find_element('#save', 'css')->click();
ok($d->find_text("Contract field is required"), 'Error "Contract field is required" appears');
ok($d->find_text("Name field is required"), 'Error "Name field is required" appears');
$d->find_element('#mod_close', 'css')->click();
$c->create_reseller();
diag("Search nonexisting reseller");
my $searchfield = $d->find_element('#Resellers_table_filter label input', 'css');
$searchfield->send_keys('thisshouldnotexist');

Loading…
Cancel
Save