From ac2b953a3e2537f9f3e0ae8addbbfa2cddf347e0 Mon Sep 17 00:00:00 2001 From: Nico Schedel Date: Fri, 10 May 2019 11:27:36 +0200 Subject: [PATCH] TT#56376 selenium: add more tests to controller_customer controller_customer.t: - add more tests for checking entries - use cleaner xpath - clean up old code Change-Id: I691fe00639edf95019b64296255f7fa9ebc1f61b --- t/selenium/controller_customer.t | 54 +++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/t/selenium/controller_customer.t b/t/selenium/controller_customer.t index 5a2beba9a4..6e7f0c6dfd 100644 --- a/t/selenium/controller_customer.t +++ b/t/selenium/controller_customer.t @@ -29,12 +29,8 @@ if(!$pbx){ }; my $customerid = ("id" . int(rand(100000)) . "ok"); -my $domainstring = ("domain" . int(rand(100000)) . ".example.org"); -my $emailstring = ("test" . int(rand(10000)) . "\@example.org"); -my $username = ('demo' . int(rand(1000)) . "name"); $c->login_ok(); -$c->create_domain($domainstring); if($pbx == 1){ $c->create_customer($customerid, 1); @@ -42,11 +38,19 @@ if($pbx == 1){ $c->create_customer($customerid); } -diag("Open Details for our just created Customer"); +diag("Search for Customer"); $d->fill_element('#Customer_table_filter input', 'css', 'thisshouldnotexist'); ok($d->find_element_by_css('#Customer_table tr > td.dataTables_empty', 'css'), 'Garbage test not found'); $d->fill_element('#Customer_table_filter input', 'css', $customerid); ok($d->wait_for_text('//*[@id="Customer_table"]/tbody/tr[1]/td[2]', $customerid), 'Customer found'); + +diag("Check customer details"); +ok($d->find_element_by_xpath('//*[@id="Customer_table"]/tbody/tr[1]/td[contains(text(), "' . $customerid . '")]'), 'Customer ID is correct'); +ok($d->find_element_by_xpath('//*[@id="Customer_table"]/tbody/tr[1]/td[contains(text(), "default")]'), 'Reseller is correct'); +ok($d->wait_for_text('//*[@id="Customer_table"]/tbody/tr[1]/td[contains(text(), "default-customer")]', 'default-customer@default.invalid'), 'Contact Email is correct'); +ok($d->find_element_by_xpath('//*[@id="Customer_table"]/tbody/tr[1]/td[contains(text(), "Default Billing Profile")]'), 'Billing Profile is correct'); + +diag("Open Details for our just created Customer"); $d->move_action(element=> $d->find_element('//*[@id="Customer_table"]/tbody/tr[1]//td//div//a[contains(text(),"Details")]')); $d->find_element('//*[@id="Customer_table"]/tbody/tr[1]//td//div//a[contains(text(),"Details")]')->click(); @@ -56,6 +60,9 @@ $d->find_element('//div[contains(@class,"accordion-body")]//*[contains(@class,"b $d->fill_element('div.modal #firstname', 'css', "Alice"); $d->fill_element('#company', 'css', 'Sipwise'); ok($d, 'Inserting name works'); +$d->fill_element('#street', 'css', 'Frunze Square'); +$d->fill_element('#postcode', 'css', '03141'); +$d->fill_element('#city', 'css', 'Kiew'); $d->fill_element('#countryidtable_filter input', 'css', 'thisshouldnotexist'); $d->find_element('#countryidtable tr > td.dataTables_empty', 'css'); $d->fill_element('#countryidtable_filter input', 'css', 'Ukraine'); # Choosing Country @@ -63,35 +70,44 @@ $d->select_if_unselected('//table[@id="countryidtable"]/tbody/tr[1]/td[contains( ok($d, 'Successfuly added a Country'); $d->find_element('#save', 'css')->click(); # Save -diag("Check if successful"); -$d->find_element('//div[contains(@class,"accordion-body")]//table//td[contains(text(),"Sipwise")]'); +diag("Check contact details"); +ok($d->wait_for_text('//*[@id="collapse_contact"]//table//tr//td[contains(text(), "Email")]/../td[2]', 'default-customer@default.invalid'), "Email is correct"); +ok($d->find_element_by_xpath('//*[@id="collapse_contact"]//table//tr//td[contains(text(), "Name")]/../td[contains(text(), "Alice")]'), "Name is correct"); +ok($d->find_element_by_xpath('//*[@id="collapse_contact"]//table//tr//td[contains(text(), "Company")]/../td[contains(text(), "Sipwise")]'), "Company is correct"); +ok($d->find_element_by_xpath('//*[@id="collapse_contact"]//table//tr//td[contains(text(), "Address")]/../td[text()[contains(.,"03141")]]'), "Postal code is correct"); +ok($d->find_element_by_xpath('//*[@id="collapse_contact"]//table//tr//td[contains(text(), "Address")]/../td[text()[contains(.,"Kiew")]]'), "City is correct"); +ok($d->find_element_by_xpath('//*[@id="collapse_contact"]//table//tr//td[contains(text(), "Address")]/../td[text()[contains(.,"Frunze Square")]]'), "Street is correct"); diag("Edit Fraud Limits"); $d->find_element('//*[@id="customer_details"]//div//a[contains(text(),"Fraud Limits")]')->click(); $d->scroll_to_element($d->find_element('//*[@id="customer_details"]//div//a[contains(text(),"Fraud Limits")]')); $d->move_and_click('//*[@id="collapse_fraud"]//table//tr//td[text()[contains(.,"Monthly Settings")]]/../td//a[text()[contains(.,"Edit")]]', 'xpath'); - -diag("Do Edit Fraud Limits"); $d->fill_element('#fraud_interval_limit', 'css', "100"); $d->fill_element('#fraud_interval_notify', 'css', 'mymail@example.org'); $d->find_element('#save', 'css')->click(); -$d->find_element('//div[contains(@class,"accordion-body")]//table//td[contains(text(),"mymail@example.org")]'); + +diag("Check Fraud Limit details"); +ok($d->find_element_by_xpath('//*[@id="collapse_fraud"]//table//tr//td[contains(text(), "Monthly Settings")]/../td[contains(text(), "100")]'), "Limit is correct"); +ok($d->wait_for_text('//*[@id="collapse_fraud"]//table//tr//td[contains(text(), "Monthly Settings")]/../td[4]', 'mymail@example.org'), "Mail is correct"); diag("Create a new Phonebook entry"); $d->find_element('//*[@id="customer_details"]//div//a[contains(text(),"Phonebook")]')->click(); $d->scroll_to_element($d->find_element('//*[@id="customer_details"]//div//a[contains(text(),"Phonebook")]')); $d->find_element("Create Phonebook Entry", 'link_text')->click(); -$d->fill_element('//*[@id="name"]', 'xpath', 'Test Name'); +$d->fill_element('//*[@id="name"]', 'xpath', 'Tester'); $d->fill_element('//*[@id="number"]', 'xpath', '0123456789'); $d->find_element('//*[@id="save"]')->click(); -diag("Check if Phonebook Entry has been created"); +diag("Search for Phonebook Entry"); $d->find_element('//*[@id="customer_details"]//div//a[contains(text(),"Phonebook")]')->click(); $d->scroll_to_element($d->find_element('//*[@id="customer_details"]//div//a[contains(text(),"Phonebook")]')); $d->fill_element('//*[@id="phonebook_table_filter"]/label/input', 'xpath', 'thisshouldnotexist'); ok($d->find_element_by_css('#phonebook_table tr > td.dataTables_empty', 'css'), 'Garbage text was not found'); -$d->fill_element('//*[@id="phonebook_table_filter"]/label/input', 'xpath', '0123456789'); -ok($d->wait_for_text('//*[@id="phonebook_table"]/tbody/tr/td[3]', '0123456789'), 'Entry has been found'); +$d->fill_element('//*[@id="phonebook_table_filter"]/label/input', 'xpath', 'Tester'); + +diag("Check Phonebook entry details"); +ok($d->find_element_by_xpath('//*[@id="phonebook_table"]/tbody/tr[1]/td[contains(text(), "Tester")]'), "Name is correct"); +ok($d->find_element_by_xpath('//*[@id="phonebook_table"]/tbody/tr[1]/td[contains(text(), "0123456789")]'), "Number is correct"); diag("Create a new Location"); $d->find_element('//*[@id="customer_details"]//div//a[contains(text(), "Locations")]')->click(); @@ -105,12 +121,16 @@ $d->fill_element('//*[@id="blocks.0.row.ip"]', 'xpath', '127.0.0.1'); $d->fill_element('//*[@id="blocks.0.row.mask"]', 'xpath', '16'); $d->find_element('//*[@id="save"]')->click(); -diag("Check if Location has been created"); +diag("Search for Location"); $d->find_element('//*[@id="customer_details"]//div//div//a[contains(text(),"Locations")]')->click(); $d->fill_element('//*[@id="locations_table_filter"]/label/input', 'xpath', 'thisshouldnotexist'); ok($d->find_element_by_css('#locations_table tr > td.dataTables_empty', 'css'), 'Garbage text was not found'); $d->fill_element('//*[@id="locations_table_filter"]/label/input', 'xpath', 'Test Location'); -ok($d->wait_for_text('//*[@id="locations_table"]/tbody/tr/td[2]', 'Test Location'), "Location has been found"); + +diag("Check location details"); +ok($d->find_element_by_xpath('//*[@id="locations_table"]/tbody/tr[1]/td[contains(text(), "Test Location")]'), "Name is correct"); +ok($d->find_element_by_xpath('//*[@id="locations_table"]/tbody/tr[1]/td[contains(text(), "This is a Test Location")]'), "Description is correct"); +ok($d->find_element_by_xpath('//*[@id="locations_table"]/tbody/tr[1]/td[contains(text(), "127.0.0.1/16")]'), "Network block is correct"); diag("Open delete dialog and press cancel"); $c->delete_customer($customerid, 1); @@ -122,7 +142,5 @@ $c->delete_customer($customerid, 0); $d->fill_element('//*[@id="Customer_table_filter"]/label/input', 'xpath', $customerid); ok($d->find_element_by_css('#Customer_table tr > td.dataTables_empty', 'css'), 'Customer was deleted'); -$c->delete_domain($domainstring); - done_testing; # vim: filetype=perl