@ -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 ( ) ;