You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
6.9 KiB
158 lines
6.9 KiB
use Sipwise::Base;
|
|
use lib 't/lib';
|
|
use Test::More import => [qw(done_testing is ok diag todo_skip)];
|
|
use Test::WebDriver::Sipwise qw();
|
|
|
|
my $browsername = $ENV{BROWSER_NAME} || ""; #possible values: htmlunit, chrome
|
|
my $d = Test::WebDriver::Sipwise->new (browser_name => $browsername,
|
|
'proxy' => {'proxyType' => 'system'});
|
|
$d->set_window_size(800,1280) if ($browsername ne "htmlunit");
|
|
my $uri = $ENV{CATALYST_SERVER} || 'http://localhost:3000';
|
|
$d->get_ok("$uri/logout"); #make sure we are logged out
|
|
$d->get_ok("$uri/login");
|
|
$d->set_implicit_wait_timeout(10000);
|
|
|
|
diag("Do Admin Login");
|
|
$d->find(link_text => 'Admin')->click;
|
|
$d->findtext_ok('Admin Sign In');
|
|
$d->find(name => 'username')->send_keys('administrator');
|
|
$d->find(name => 'password')->send_keys('administrator');
|
|
$d->findclick_ok(name => 'submit');
|
|
|
|
$d->find_ok(xpath => '//*[@id="masthead"]//h2[contains(text(),"Dashboard")]');
|
|
|
|
diag("Go to Billing page");
|
|
$d->findclick_ok(xpath => '//*[@id="main-nav"]//*[contains(text(),"Settings")]');
|
|
$d->find_ok(xpath => '//a[contains(@href,"/domain")]');
|
|
$d->findclick_ok(link_text => "Billing");
|
|
|
|
diag("Create a billing profile");
|
|
$d->find_ok(xpath => '//*[@id="masthead"]//h2[contains(text(),"Billing Profiles")]');
|
|
$d->findclick_ok(link_text => 'Create Billing Profile');
|
|
$d->find(id => 'name')->send_keys('mytestprofile');
|
|
$d->fill_element_ok(['name', 'handle', 'mytestprofile']);
|
|
$d->find_ok(id => 'fraud_interval_lock');
|
|
$d->findclick_ok(xpath => '//select[@id="fraud_interval_lock"]/option[contains(text(),"foreign calls")]');
|
|
$d->findclick_ok(xpath => '//div[contains(@class,modal-body)]//table[@id="reselleridtable"]/tbody/tr[1]/td//input[@type="checkbox"]');
|
|
|
|
$d->findclick_ok(xpath => '//div[contains(@class,"modal")]//input[@type="submit"]');
|
|
$d->findtext_ok('mytestprofile');
|
|
|
|
diag("Open edit dialog for mytestprofile");
|
|
my $row = $d->find(xpath => '//table/tbody/tr/td[contains(text(), "mytestprofile")]/..');
|
|
ok($row);
|
|
my $edit_link = $d->find_child_element($row, '(./td//a)[contains(text(),"Edit")]');
|
|
ok($edit_link);
|
|
$d->move_to(element => $row);
|
|
$edit_link->click;
|
|
|
|
diag("Edit mytestprofile");
|
|
my $elem = $d->find(id => 'name');
|
|
ok($elem);
|
|
is($elem->get_value, "mytestprofile");
|
|
$d->fill_element_ok(['id', 'interval_charge', '3.2']);
|
|
$d->findclick_ok(id => 'save');
|
|
|
|
diag('Open "Fees" for mytestprofile');
|
|
$row = $d->find(xpath => '//table/tbody/tr/td[contains(text(), "mytestprofile")]/..');
|
|
ok($row);
|
|
$edit_link = $d->find_child_element($row, '(./td//a)[contains(text(),"Fees")]');
|
|
ok($edit_link);
|
|
$d->move_to(element => $row);
|
|
$edit_link->click;
|
|
$d->find_ok(xpath => '//*[@id="masthead"]//h2[contains(text(),"Billing Fees")]');
|
|
|
|
diag("Create a billing fee");
|
|
$d->findclick_ok(link_text => 'Create Fee Entry');
|
|
$d->findclick_ok(xpath => '//div[contains(@class,"modal")]//input[@value="Create Zone"]');
|
|
diag("Create a billing zone (redirect from previous form)");
|
|
$d->fill_element_ok([name => 'zone', 'testingzone']);
|
|
$d->fill_element_ok([name => 'detail', 'testingdetail']);
|
|
$d->findclick_ok(name => 'save');
|
|
diag("Back to orignial form (create billing fees)");
|
|
#sleep 2; # give ajax time to load
|
|
$d->select_if_unselected_ok(xpath => '//div[contains(@class,"modal")]//div[contains(@class,"dataTables_wrapper")]//td[contains(text(),"testingzone")]/..//input[@type="checkbox"]');
|
|
$d->fill_element_ok([id => 'source', '.*']);
|
|
$d->fill_element_ok([name => 'destination', '.+']);
|
|
$d->findclick_ok(id => 'save');
|
|
|
|
diag("Delete billing fee");
|
|
$d->find_ok(xpath => '//div[contains(@class,"dataTables_wrapper")]//td[contains(text(),"testingdetail")]/..//a[contains(@class,"btn-primary") and contains(text(),"Edit")]');
|
|
$row = $d->find(xpath => '//div[contains(@class,"dataTables_wrapper")]//td[contains(text(),"testingdetail")]/..');
|
|
ok($row);
|
|
$d->move_to(element => $row);
|
|
$d->findclick_ok(xpath => '//div[contains(@class,"dataTables_wrapper")]//td[contains(text(),"testingdetail")]/..//a[contains(@class,"btn-secondary") and contains(text(),"Delete")]');
|
|
$d->findtext_ok("Are you sure?");
|
|
$d->findclick_ok(id => 'dataConfirmOK');
|
|
TODO: {
|
|
todo_skip "jenkins selenium problem, double loading of previous page", 1;
|
|
$d->findtext_ok("successfully deleted");
|
|
}
|
|
|
|
diag("Click Edit Zones");
|
|
$d->findclick_ok(link_text => "Edit Zones");
|
|
$d->find_ok(xpath => '//*[@id="masthead"]//h2[contains(text(),"Billing Zones")]');
|
|
|
|
diag("Delete testingzone");
|
|
$d->fill_element_ok([xpath => '//div[contains(@class, "dataTables_filter")]//input', 'testingdetail']);
|
|
$row = $d->find(xpath => '//div[contains(@class,"dataTables_wrapper")]//td[contains(text(),"testingzone")]/..');
|
|
ok($row);
|
|
$d->move_to(element => $row);
|
|
$d->findclick_ok(xpath => '//div[contains(@class,"dataTables_wrapper")]//td[contains(text(),"testingzone")]/..//a[contains(text(),"Delete")]');
|
|
$d->findtext_ok("Are you sure?");
|
|
$d->findclick_ok(id => 'dataConfirmOK');
|
|
|
|
diag("Go to Billing page (again)");
|
|
$d->findclick_ok(xpath => '//*[@id="main-nav"]//*[contains(text(),"Settings")]');
|
|
$d->find_ok(xpath => '//a[contains(@href,"/domain")]');
|
|
$d->findclick_ok(link_text => "Billing");
|
|
|
|
diag('Open "Edit Peak Times" for mytestprofile');
|
|
$row = $d->find(xpath => '//table/tbody/tr/td[contains(text(), "mytestprofile")]/..');
|
|
ok($row);
|
|
$edit_link = $d->find_child_element($row, '(./td//a)[contains(text(),"Peaktimes")]');
|
|
ok($edit_link);
|
|
$d->move_to(element => $row);
|
|
$edit_link->click;
|
|
$d->find_ok(xpath => '//*[@id="masthead"]//h2[contains(text(),"times for mytestprofile")]');
|
|
|
|
diag("Edit Wednesday");
|
|
$row = $d->find(xpath => '//table//td[contains(text(),"Wednesday")]');
|
|
ok($row);
|
|
$d->move_to(element => ($d->find(xpath => '//h3[contains(text(),"Weekdays")]')));
|
|
sleep 2 if ($d->browser_name_in("firefox", "htmlunit"));
|
|
$d->move_to(element => $row);
|
|
$d->findclick_ok(xpath => '//table//td[contains(text(),"Wednesday")]/..//a[text()[contains(.,"Edit")]]');
|
|
$d->findtext_ok("Edit Wednesday");
|
|
|
|
diag("add/delete a time def to Wednesday");
|
|
$d->fill_element_ok([name => 'start', "03:14:15"]);
|
|
$d->fill_element_ok([name => 'end', "13:37:00"]);
|
|
$d->findclick_ok(name => 'add');
|
|
$d->findclick_ok(xpath => '//div[contains(@class,"modal")]//i[@class="icon-trash"]/..');
|
|
TODO: {
|
|
todo_skip "jenkins selenium problem, double loading of previous page", 1;
|
|
$d->findclick_ok(id => 'mod_close');
|
|
}
|
|
|
|
diag("Create a Date Definition");
|
|
$d->findclick_ok(link_text => 'Create Special Off-Peak Date');
|
|
$d->fill_element_ok([name => 'start', "2008-02-28 03:14:15"]);
|
|
$d->fill_element_ok([name => 'end', "2008-02-28 13:37:00"]);
|
|
$d->findclick_ok(name => 'save');
|
|
|
|
diag("Find/delete my created date definition");
|
|
$d->fill_element_ok([xpath => '//div[contains(@class, "dataTables_filter")]//input', '2008-02-28']);
|
|
$row = $d->find(xpath => '//div[contains(@class,"dataTables_wrapper")]//td[contains(text(),"2008-02-28")]/..');
|
|
ok($row);
|
|
$d->move_to(element => $row);
|
|
$edit_link = $d->find_child_element($row, './/a[contains(@class,"btn-secondary")]');
|
|
ok($edit_link);
|
|
sleep 2 if ($browsername eq "htmlunit");
|
|
$edit_link->click;
|
|
$d->findtext_ok("Are you sure?");
|
|
$d->findclick_ok(id => 'dataConfirmOK');
|
|
|
|
done_testing;
|
|
# vim: filetype=perl
|