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.
150 lines
5.9 KiB
150 lines
5.9 KiB
use warnings;
|
|
use strict;
|
|
|
|
use lib 't/lib';
|
|
use Test::More import => [qw(done_testing is ok diag todo_skip)];
|
|
use Selenium::Remote::Driver::FirefoxExtensions;
|
|
|
|
my $browsername = $ENV{BROWSER_NAME} || "firefox"; # possible values: firefox, htmlunit, chrome
|
|
|
|
my $d = Selenium::Remote::Driver::FirefoxExtensions->new(
|
|
browser_name => $browsername,
|
|
extra_capabilities => {
|
|
acceptInsecureCerts => \1,
|
|
},
|
|
);
|
|
|
|
$d->login_ok();
|
|
|
|
diag("Go to Peerings page");
|
|
$d->find_element('//*[@id="main-nav"]//*[contains(text(),"Settings")]')->click();
|
|
$d->find_element("Peerings", 'link_text')->click();
|
|
|
|
diag("Create a Peering Group");
|
|
$d->find_element('//*[@id="masthead"]//h2[contains(text(),"SIP Peering Groups")]');
|
|
my $peerings_uri = $d->get_current_url();
|
|
$d->find_element('Create Peering Group', 'link_text')->click();
|
|
|
|
diag("Create a Peering Contract");
|
|
$d->find_element('//input[@type="button" and @value="Create Contract"]')->click();
|
|
$d->select_if_unselected('//table[@id="contactidtable"]/tbody/tr[1]//input[@type="checkbox"]');
|
|
my $elem = $d->find_element('//table[@id="billing_profileidtable"]');
|
|
$d->scroll_to_element($elem);
|
|
$d->select_if_unselected('//table[@id="billing_profileidtable"]/tbody/tr[1]//input[@type="checkbox"]');
|
|
$d->find_element('//div[contains(@class,"modal-body")]//div//select[@id="status"]/option[@value="active"]')->click();
|
|
$d->find_element('//div[contains(@class,"modal")]//input[@type="submit"]')->click();
|
|
$d->find_text('Create Peering Group'); # Should go back to prev form
|
|
|
|
$d->fill_element('#name', 'css', 'testinggroup');
|
|
$d->fill_element('#description', 'css', 'A group created for testing purposes');
|
|
$d->select_if_unselected('//table[@id="contractidtable"]/tbody/tr[1]//input[@type="checkbox"]');
|
|
$d->find_element('#save', 'css')->click();
|
|
sleep 1;
|
|
|
|
diag("Edit Servers/Rules of testinggroup");
|
|
my $row = $d->find_element('(//table/tbody/tr/td[contains(text(), "testinggroup")]/..)[1]');
|
|
ok($row);
|
|
my $edit_link = $d->find_child_element($row, '(./td//a)[contains(text(),"Details")]');
|
|
ok($edit_link);
|
|
$d->move_action(element => $row);
|
|
$edit_link->click();
|
|
|
|
diag("Create a Peering Rule");
|
|
$d->find_element('//a[contains(text(),"Create Outbound Peering Rule")]')->click();
|
|
$d->fill_element('#callee_prefix', 'css', '43');
|
|
$d->fill_element('#callee_pattern', 'css', '^sip');
|
|
$d->fill_element('#caller_pattern', 'css', '999');
|
|
$d->fill_element('#description', 'css', 'for testing purposes');
|
|
$d->find_element('#save', 'css')->click();
|
|
|
|
diag("Create a Peering Server");
|
|
$d->find_element('//a[contains(text(),"Create Peering Server")]')->click();
|
|
$d->fill_element('#name', 'css', 'mytestserver');
|
|
$d->fill_element('#ip', 'css', '10.0.0.100');
|
|
$d->fill_element('#host', 'css', 'sipwise.com');
|
|
$d->find_element('#save', 'css')->click();
|
|
$d->find_text('Peering server successfully created');
|
|
|
|
my $server_rules_uri = $d->get_current_url();
|
|
|
|
diag('Edit Preferences for "mytestserver".');
|
|
sleep 1; #make sure, we are on the right page
|
|
$d->fill_element('#peering_servers_table_filter input', 'css', 'thisshouldnotexist');
|
|
$d->find_element('#peering_servers_table tr > td.dataTables_empty', 'css');
|
|
$d->fill_element('#peering_servers_table_filter input', 'css', 'mytestserver');
|
|
$edit_link = $d->find_element('//table/tbody/tr/td[contains(text(), "mytestserver")]/../td//a[contains(text(),"Preferences")]');
|
|
$row = $d->find_element('//table/tbody/tr/td[contains(text(), "mytestserver")]/..');
|
|
ok($row);
|
|
ok($edit_link);
|
|
$d->move_action(element => $row);
|
|
$edit_link->click();
|
|
|
|
diag('Open the tab "Number Manipulations"');
|
|
$d->find_element("Number Manipulations", 'link_text')->click();
|
|
|
|
diag("Click edit for the preference inbound_upn");
|
|
$row = $d->find_element('//table/tbody/tr/td[normalize-space(text()) = "inbound_upn"]');
|
|
ok($row);
|
|
$edit_link = $d->find_child_element($row, '(./../td//a)[2]');
|
|
ok($edit_link);
|
|
$d->move_action(element => $row);
|
|
$edit_link->click();
|
|
|
|
diag('Change to "P-Asserted-Identity');
|
|
$d->find_element('//div[contains(@class,"modal-body")]//select[@id="inbound_upn"]/option[@value="pai_user"]')->click();
|
|
$d->find_element('#save', 'css')->click();
|
|
$d->find_text('Preference inbound_upn successfully updated');
|
|
|
|
diag("Go back to Servers/Rules");
|
|
$d->get($server_rules_uri);
|
|
|
|
my $delete_link;
|
|
diag('skip was here');
|
|
diag("Delete mytestserver");
|
|
sleep 1; #make sure, we are on the right page
|
|
$d->fill_element('#peering_servers_table_filter input', 'css', 'thisshouldnotexist');
|
|
$d->find_element('#peering_servers_table tr > td.dataTables_empty', 'css');
|
|
$d->fill_element('#peering_servers_table_filter input', 'css', 'mytestserver');
|
|
$row = $d->find_element('(//table/tbody/tr/td[contains(text(), "mytestserver")]/..)[1]');
|
|
ok($row);
|
|
$delete_link = $d->find_child_element($row, '(./td//a)[contains(text(),"Delete")]');
|
|
ok($delete_link);
|
|
$d->move_action(element => $row);
|
|
$delete_link->click();
|
|
$d->find_text("Are you sure?");
|
|
$d->find_element('#dataConfirmOK', 'css')->click();
|
|
$d->find_text("successfully deleted"); # delete does not work
|
|
|
|
diag("Delete the previously created Peering Rule");
|
|
sleep 1;
|
|
$row = $d->find_element('//table[@id="PeeringRules_table"]/tbody/tr[1]');
|
|
ok($row);
|
|
$delete_link = $d->find_child_element($row, '(./td//a)[contains(text(),"Delete")]');
|
|
ok($delete_link);
|
|
$d->move_action(element => $row);
|
|
$delete_link->click();
|
|
$d->find_text("Are you sure?");
|
|
$d->find_element('#dataConfirmOK', 'css')->click();
|
|
|
|
diag('skip was here');
|
|
ok($d->find_text("successfully deleted"));
|
|
|
|
diag('Go back to "SIP Peering Groups".');
|
|
$d->get($peerings_uri);
|
|
|
|
diag('Delete "testinggroup"');
|
|
$row = $d->find_element('(//table/tbody/tr/td[contains(text(), "testinggroup")]/..)[1]');
|
|
ok($row);
|
|
$delete_link = $d->find_child_element($row, '(./td//a)[contains(text(),"Delete")]');
|
|
ok($delete_link);
|
|
$d->move_action(element => $row);
|
|
$delete_link->click();
|
|
$d->find_text("Are you sure?");
|
|
$d->find_element('#dataConfirmOK', 'css')->click();
|
|
|
|
diag('skip was here');
|
|
ok($d->find_text("successfully deleted"));
|
|
|
|
done_testing;
|
|
# vim: filetype=perl
|