diff --git a/t/selenium/controller_admin.t b/t/selenium/controller_admin.t index 50e1159b21..e9bf956a8f 100644 --- a/t/selenium/controller_admin.t +++ b/t/selenium/controller_admin.t @@ -30,6 +30,15 @@ sub ctr_admin() { diag('Trying to create a new administrator'); $d->find_element("Create Administrator", 'link_text')->click(); + diag('Trying to save without entering anything'); + $d->unselect_if_selected('//*[@id="reselleridtable"]/tbody/tr[1]/td[5]/input', 'xpath'); + $d->find_element('//*[@id="save"]')->click(); + + diag('Check if errors show up'); + ok($d->find_element_by_xpath('//form//div//span[contains(text(), "Reseller field is required")]')); + ok($d->find_element_by_xpath('//form//div//span[contains(text(), "Login field is required")]')); + ok($d->find_element_by_xpath('//form//div//span[contains(text(), "Please enter a password in this field")]')); + diag('Fill in values'); $d->fill_element('//*[@id="reselleridtable_filter"]/label/input', 'xpath', 'thisshouldnotexist'); ok($d->find_element_by_css('#reselleridtable tr > td.dataTables_empty', 'css'), 'Garbage text was not found'); @@ -46,8 +55,25 @@ sub ctr_admin() { $d->fill_element('//*[@id="administrator_table_filter"]/label/input', 'xpath', $adminname); diag('Check Admin details'); - ok($d->find_element_by_xpath('//*[@id="administrator_table"]/tbody/tr[1]/td[contains(text(), '. $adminname .')]'), "Name is correct"); - ok($d->find_element_by_xpath('//*[@id="administrator_table"]/tbody/tr[1]/td[contains(text(), '. $resellername .')]'), "Reseller is correct"); + ok($d->wait_for_text('//*[@id="administrator_table"]/tbody/tr[1]/td[3]', $adminname), "Name is correct"); + ok($d->wait_for_text('//*[@id="administrator_table"]/tbody/tr[1]/td[2]', $resellername), "Reseller is correct"); + ok($d->find_element_by_xpath('//*[@id="administrator_table"]/tbody/tr[1]/td[6][contains(text(), "0")]'), "Read-Only value is correct"); + + diag('Edit Admin details'); + $d->move_and_click('//*[@id="administrator_table"]//tr[1]/td//a[contains(text(), "Edit")]', 'xpath', '//*[@id="administrator_table_filter"]/label/input'); + + diag('Enable Attribute "Read only"'); + $d->scroll_to_element($d->find_element('//form//div/label[contains(text(), "Read only")]')); + $d->select_if_unselected('//*[@id="read_only"]'); + $d->find_element('//*[@id="save"]')->click(); + + diag('Check Admin details'); + $d->fill_element('//*[@id="administrator_table_filter"]/label/input', 'xpath', 'thisshouldnotexist'); + ok($d->find_element_by_css('#administrator_table tr > td.dataTables_empty', 'css'), 'Garbage text was not found'); + $d->fill_element('//*[@id="administrator_table_filter"]/label/input', 'xpath', $adminname); + ok($d->wait_for_text('//*[@id="administrator_table"]/tbody/tr[1]/td[3]', $adminname), "Name is correct"); + ok($d->wait_for_text('//*[@id="administrator_table"]/tbody/tr[1]/td[2]', $resellername), "Reseller is correct"); + ok($d->wait_for_text('//*[@id="administrator_table"]/tbody/tr[1]/td[6]', '1'), "Read-Only value is correct"); diag('New admin tries to login now'); $c->login_ok($adminname, $adminpwd); @@ -56,6 +82,28 @@ sub ctr_admin() { $d->find_element('//*[@id="main-nav"]//*[contains(text(),"Settings")]')->click(); $d->find_element("Administrators", 'link_text')->click(); + diag('Check if only your admin is shown'); + ok($d->find_element_by_xpath('//*[@id="administrator_table"]/tbody/tr[1]/td[contains(text(), '. $adminname .')]'), "Name is correct"); + ok($d->find_element_by_xpath('//*[@id="administrator_table"]/tbody/tr[1]/td[contains(text(), '. $resellername .')]'), "Reseller is correct"); + ok($d->wait_for_text('//*[@id="administrator_table"]/tbody/tr[1]/td[5]', '1'), "Read-Only value is correct"); + ok($d->wait_for_text('//*[@id="administrator_table_info"]', 'Showing 1 to 1 of 1 entries'), "Only 1 entry exists"); + $d->fill_element('//*[@id="administrator_table_filter"]/label/input', 'xpath', 'administrator'); + ok($d->find_element_by_css('#administrator_table tr > td.dataTables_empty', 'css'), 'Admin table is empty'); + + diag("Go to Customers page"); + $d->find_element('//*[@id="main-nav"]//*[contains(text(),"Settings")]')->click(); + $d->find_element("Customers", 'link_text')->click(); + + diag("Check if table is empty"); + ok($d->find_element_by_css('#Customer_table tr > td.dataTables_empty', 'css'), 'Customer Table is empty'); + + diag('Go to domains page'); + $d->find_element('//*[@id="main-nav"]//*[contains(text(),"Settings")]')->click(); + $d->find_element("Domains", 'link_text')->click(); + + diag("Check if table is empty"); + ok($d->find_element_by_css('#Domain_table tr > td.dataTables_empty', 'css'), 'Domain Table is empty'); + diag('Switch over to default admin'); $c->login_ok();