diff options
Diffstat (limited to 'ui/tests/selenium/services/testPageServicesServices.php')
-rw-r--r-- | ui/tests/selenium/services/testPageServicesServices.php | 421 |
1 files changed, 77 insertions, 344 deletions
diff --git a/ui/tests/selenium/services/testPageServicesServices.php b/ui/tests/selenium/services/testPageServicesServices.php index 7102644032a..b9d87ec27e2 100644 --- a/ui/tests/selenium/services/testPageServicesServices.php +++ b/ui/tests/selenium/services/testPageServicesServices.php @@ -18,15 +18,16 @@ ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ + require_once dirname(__FILE__).'/../../include/CWebTest.php'; -require_once dirname(__FILE__).'/../../include/helpers/CDataHelper.php'; require_once dirname(__FILE__).'/../traits/TableTrait.php'; require_once dirname(__FILE__).'/../behaviors/CMessageBehavior.php'; /** - * @backup services + * @dataSource EntitiesTags + * @dataSource Services * - * @onBefore prepareServicesData + * @backup services */ class testPageServicesServices extends CWebTest { @@ -34,11 +35,11 @@ class testPageServicesServices extends CWebTest { const EDIT = true; - const SERVICE_COUNT = 16; + const SERVICE_COUNT = 19; - const LAYOUT_PARENT = 'Server 3'; - const LAYOUT_CHILD = 'Server 2'; - const LAYOUT_CHILD2 = 'Server 1'; + const LAYOUT_PARENT = 'Parent for 2 levels of child services'; + const LAYOUT_CHILD = 'Child service with child service'; + const LAYOUT_CHILD2 = 'Child service of child service'; const ROOTCAUSE_PARENT = 'Test order'; const ROOTCAUSE_CHILD1 = '1'; @@ -57,277 +58,6 @@ class testPageServicesServices extends CWebTest { return [CMessageBehavior::class]; } - public static function prepareServicesData() { - CDataHelper::call('service.create', [ - [ - 'name' => 'Server 1', - 'algorithm' => 1, - 'sortorder' => 1 - ], - [ - 'name' => 'Server 2', - 'algorithm' => 1, - 'sortorder' => 2 - ], - [ - 'name' => 'Server 3', - 'algorithm' => 1, - 'sortorder' => 3, - 'tags' => [ - [ - 'tag' => 'test', - 'value' => 'test123' - ] - ] - ], - [ - 'name' => 'Server 4', - 'algorithm' => 1, - 'sortorder' => 4, - 'tags' => [ - [ - 'tag' => 'test', - 'value' => 'test456' - ], - [ - 'tag' => 'problem', - 'value' => 'true' - ] - ] - ], - [ - 'name' => 'Server 5', - 'algorithm' => 1, - 'sortorder' => 5, - 'problem_tags' => [ - [ - 'tag' => 'problem', - 'operator' => 0, - 'value' => 'true' - ] - ], - 'tags' => [ - [ - 'tag' => 'problem', - 'value' => 'false' - ], - [ - 'tag' => 'test', - 'value' => 'test789' - ] - ] - ], - [ - 'name' => 'Server 6 for delete by checkbox', - 'algorithm' => 1, - 'sortorder' => 6 - ], - [ - 'name' => 'Server 7 for delete', - 'algorithm' => 1, - 'sortorder' => 7 - ], - [ - 'name' => 'Server 8 with child for delete', - 'algorithm' => 1, - 'sortorder' => 8 - ], - [ - 'name' => 'Server 9 with child for delete', - 'algorithm' => 1, - 'sortorder' => 9 - ], - [ - 'name' => 'Server 10 child for Server 8', - 'algorithm' => 1, - 'sortorder' => 10 - ], - [ - 'name' => 'Server 11 child for Server 9', - 'algorithm' => 1, - 'sortorder' => 12 - ], - [ - 'name' => 'Server for mass delete 1', - 'algorithm' => 1, - 'sortorder' => 13 - ], - [ - 'name' => 'Server for mass delete 2', - 'algorithm' => 1, - 'sortorder' => 14, - 'problem_tags' => [ - [ - 'tag' => 'tag1', - 'operator' => 0, - 'value' => 'value1' - ] - ] - ], - [ - 'name' => 'Server for mass delete 3', - 'algorithm' => 1, - 'sortorder' => 15, - 'problem_tags' => [ - [ - 'tag' => 'tag2', - 'operator' => 0, - 'value' => 'value2' - ] - ] - ], - [ - 'name' => 'Server for mass update 1', - 'algorithm' => 1, - 'sortorder' => 16 - ], - [ - 'name' => 'Server 12', - 'algorithm' => 1, - 'sortorder' => 17 - ], - [ - 'name' => 'Child for mass deleting 1', - 'algorithm' => 1, - 'sortorder' => 18 - ], - [ - 'name' => 'Child for mass deleting 2', - 'algorithm' => 1, - 'sortorder' => 19 - ], - [ - 'name' => 'Child for mass deleting 3', - 'algorithm' => 1, - 'sortorder' => 20 - ], - [ - 'name' => 'Server for mass update 2', - 'algorithm' => 1, - 'sortorder' => 21 - ], - [ - 'name' => 'Server for mass update 3', - 'algorithm' => 1, - 'sortorder' => 22 - ], - [ - 'name' => 'Server with problem', - 'algorithm' => 1, - 'sortorder' => 23 - ], - [ - 'name' => 'Test order', - 'algorithm' => 1, - 'sortorder' => 0 - ], - [ - 'name' => '1', - 'algorithm' => 1, - 'sortorder' => 2, - 'weight' => 10 - ], - [ - 'name' => '2', - 'algorithm' => 1, - 'sortorder' => 2, - 'weight' => 10 - ], - [ - 'name' => '3', - 'algorithm' => 1, - 'sortorder' => 2, - 'weight' => 10 - ] - ]); - - $services = CDataHelper::getIds('name'); - - CDataHelper::call('service.update', [ - [ - 'serviceid' => $services['Server 1'], - 'parents' => [ - [ - 'serviceid' => $services['Server 2'] - ] - ] - ], - [ - 'serviceid' => $services['Server 2'], - 'parents' => [ - [ - 'serviceid' => $services['Server 3'] - ] - ] - ], - [ - 'serviceid' => $services['Server 10 child for Server 8'], - 'parents' => [ - [ - 'serviceid' => $services['Server 8 with child for delete'] - ] - ] - ], - [ - 'serviceid' => $services['Server 11 child for Server 9'], - 'parents' => [ - [ - 'serviceid' => $services['Server 9 with child for delete'] - ] - ] - ], - [ - 'serviceid' => $services['Child for mass deleting 1'], - 'parents' => [ - [ - 'serviceid' => $services['Server 12'] - ] - ] - ], - [ - 'serviceid' => $services['Child for mass deleting 2'], - 'parents' => [ - [ - 'serviceid' => $services['Server 12'] - ] - ] - ], - [ - 'serviceid' => $services['Child for mass deleting 3'], - 'parents' => [ - [ - 'serviceid' => $services['Server 12'] - ] - ] - ], - [ - 'serviceid' => $services['1'], - 'parents' => [ - [ - 'serviceid' => $services['Test order'] - ] - ] - ], - [ - 'serviceid' => $services['2'], - 'parents' => [ - [ - 'serviceid' => $services['Test order'] - ] - ] - ], - [ - 'serviceid' => $services['3'], - 'parents' => [ - [ - 'serviceid' => $services['Test order'] - ] - ] - ] - ]); - - DBexecute("UPDATE services SET status = 5 WHERE name = 'Server with problem'"); - } /** * Set parent and child services to Problem status and link the child services to the corresponding problem events. @@ -452,9 +182,9 @@ class testPageServicesServices extends CWebTest { */ private function checkParentChildLayout($table, $parent, $child, $edit = false) { $this->checkSeviceInfoLayout($table, $parent, $edit); - $this->assertTableDataColumn([$child.' 1'], 'Name'); + $this->assertTableDataColumn([$child.' 1'], 'Name', 'xpath://form[@name="service_list"]//table'); $this->checkSeviceInfoLayout($table, $child, $edit); - $this->assertTableDataColumn([self::LAYOUT_CHILD2], 'Name'); + $this->assertTableDataColumn([self::LAYOUT_CHILD2], 'Name', 'xpath://form[@name="service_list"]//table'); $breadcrumbs = $this->query(self::BREADCRUMB_SELECTOR)->one(); // Check breadcrumbs on last child page. @@ -541,43 +271,43 @@ class testPageServicesServices extends CWebTest { ] ], 'result' => [ - 'Server 4' + 'Service with multiple service tags' ] ] ], - // Tags source: Problem. + // Tag problem Equals false. [ [ 'Tags' => [ - 'Source' => 'Problem', + 'Source' => 'Service', 'tags' => [ [ 'index' => 0, 'action' => USER_ACTION_UPDATE, 'tag' => 'problem', - 'operator' => 'Contains', - 'value' => 'true' + 'operator' => 'Equals', + 'value' => 'false' ] ] ], 'result' => [ - 'Server 5' + 'Simple actions service' ] ] ], - // Tags source: Problem and Evaluation: Or. + // Tags source: Service and Evaluation: Or. [ [ 'Tags' => [ - 'Source' => 'Problem', + 'Source' => 'Service', 'Evaluation' => 'Or', 'tags' => [ [ 'index' => 0, 'action' => USER_ACTION_UPDATE, 'tag' => 'problem', - 'operator' => 'Contains', - 'value' => 'true' + 'operator' => 'Equals', + 'value' => 'false' ], [ 'tag' => 'test', @@ -586,7 +316,10 @@ class testPageServicesServices extends CWebTest { ] ], 'result' => [ - 'Server 5' + 'Service with tags for updating', + 'Parent for 2 levels of child services 1', + 'Service with multiple service tags', + 'Simple actions service' ] ] ], @@ -594,15 +327,11 @@ class testPageServicesServices extends CWebTest { [ [ 'filter' => [ - 'Name' => 'delete', + 'Name' => 'parent', 'Only services without children' => true ], 'result' => [ - 'Server 6 for delete by checkbox', - 'Server 7 for delete', - 'Server for mass delete 1', - 'Server for mass delete 2', - 'Server for mass delete 3' + 'Parent for child creation' ] ] ], @@ -610,11 +339,15 @@ class testPageServicesServices extends CWebTest { [ [ 'filter' => [ - 'Name' => 'Server for mass delete', + 'Name' => 'parent', 'Only services without problem tags' => true ], 'result' => [ - 'Server for mass delete 1' + 'Parent for 2 levels of child services 1', + 'Parent for deletion from row 1', + 'Parent for child deletion from row 1', + 'Clone parent 3', + 'Parent for child creation' ] ] ] @@ -627,12 +360,14 @@ class testPageServicesServices extends CWebTest { [ [ 'filter' => [ - 'Name' => 'Server for mass delete' + 'Name' => 'parent' ], 'result' => [ - 'Server for mass delete 1', - 'Server for mass delete 2', - 'Server for mass delete 3' + 'Parent for 2 levels of child services 1', + 'Parent for deletion from row 1', + 'Parent for child deletion from row 1', + 'Clone parent 3', + 'Parent for child creation' ], 'check_breadcrumbs' => true ] @@ -641,13 +376,12 @@ class testPageServicesServices extends CWebTest { [ [ 'filter' => [ - 'Name' => 'with', + 'Name' => 'with problem', 'Status' => 'Any' ], 'result' => [ - 'Server 8 with child for delete 1', - 'Server 9 with child for delete 1', - 'Server with problem' + 'Service with problem tags', + 'Service with problem' ] ] ], @@ -655,12 +389,11 @@ class testPageServicesServices extends CWebTest { [ [ 'filter' => [ - 'Name' => 'with', + 'Name' => 'with problem', 'Status' => 'OK' ], 'result' => [ - 'Server 8 with child for delete 1', - 'Server 9 with child for delete 1' + 'Service with problem tags' ] ] ], @@ -668,11 +401,11 @@ class testPageServicesServices extends CWebTest { [ [ 'filter' => [ - 'Name' => 'with', + 'Name' => 'with problem', 'Status' => 'Problem' ], 'result' => [ - 'Server with problem' + 'Service with problem' ] ] ], @@ -696,7 +429,7 @@ class testPageServicesServices extends CWebTest { ] ], 'result' => [ - 'Server 4' + 'Service with multiple service tags' ] ] ], @@ -720,9 +453,10 @@ class testPageServicesServices extends CWebTest { ] ], 'result' => [ - 'Server 3 1', - 'Server 4', - 'Server 5' + 'Service with tags for updating', + 'Parent for 2 levels of child services 1', + 'Service with multiple service tags', + 'Simple actions service' ] ] ], @@ -742,7 +476,7 @@ class testPageServicesServices extends CWebTest { ] ], 'result' => [ - 'Name' => 'Server 5' + 'Simple actions service' ] ] ], @@ -766,7 +500,7 @@ class testPageServicesServices extends CWebTest { ] ], 'result' => [ - 'Server 3 1' + 'Parent for 2 levels of child services 1' ] ] ], @@ -790,8 +524,9 @@ class testPageServicesServices extends CWebTest { ] ], 'result' => [ - 'Server 3 1', - 'Server 4' + 'Service with tags for updating', + 'Parent for 2 levels of child services 1', + 'Service with multiple service tags' ] ] ], @@ -815,7 +550,7 @@ class testPageServicesServices extends CWebTest { ] ], 'result' => [ - 'Server 5' + 'Simple actions service' ] ] ], @@ -934,7 +669,7 @@ class testPageServicesServices extends CWebTest { $start_contents = $this->getTableColumnData('Name'); // Filling fields with needed services info. - $form->fill(['id:filter_name' => 'Server 3']); + $form->fill(['id:filter_name' => 'Parent for 2 levels of child services']); $form->submit(); // Check that filtered count matches expected. @@ -942,7 +677,7 @@ class testPageServicesServices extends CWebTest { $this->assertTableStats(1); // Checking that filtered service matches expected. - $this->assertTableDataColumn(['Server 3 1']); + $this->assertTableDataColumn(['Parent for 2 levels of child services 1']); // After pressing reset button, check that previous services are displayed again. $form->query('button:Reset')->one()->click(); @@ -954,7 +689,7 @@ class testPageServicesServices extends CWebTest { } public function testPageServicesServices_AddChild() { - $parent = 'Server with problem'; + $parent = 'Service with problem'; $child_name = 'Added child for Server with problem'; $this->page->login()->open('zabbix.php?action=service.list.edit'); @@ -976,16 +711,14 @@ class testPageServicesServices extends CWebTest { // Check that row count is not changed. $this->assertTableStats($before_rows_count); - // Check that parent became a link. - $this->assertTrue($table->findRow('Name', $parent, true)->query('link', $parent)->exists()); - // Check DB. $childid = CDBHelper::getValue('SELECT serviceid FROM services WHERE name='.zbx_dbstr($child_name)); $parentid = CDBHelper::getValue('SELECT serviceid FROM services WHERE name='.zbx_dbstr($parent)); // Check parent-child linking in DB. $this->assertEquals(1, CDBHelper::getCount('SELECT * FROM services_links WHERE serviceupid='. - $parentid.' AND servicedownid ='.zbx_dbstr($childid))); + zbx_dbstr($parentid).' AND servicedownid ='.zbx_dbstr($childid)) + ); } public function testPageServicesServices_CancelDeleteFromRow() { @@ -1002,7 +735,7 @@ class testPageServicesServices extends CWebTest { * @param boolean $mass true if is mass delete scenario, false otherwise */ private function cancelDelete($mass = false) { - $name = 'Server 6 for delete by checkbox'; + $name = 'Service for delete by checkbox'; $sql = 'SELECT * FROM services ORDER BY serviceid'; $old_hash = CDBHelper::getHash($sql); @@ -1030,7 +763,7 @@ class testPageServicesServices extends CWebTest { } public function testPageServicesServices_SimpleServiceDeleteFromRow() { - $name = 'Server 7 for delete'; + $name = 'Service for delete'; $this->page->login()->open('zabbix.php?action=service.list.edit'); $table = $this->query(self::TABLE_SELECTOR)->asTable()->one(); @@ -1054,8 +787,8 @@ class testPageServicesServices extends CWebTest { } public function testPageServicesServices_DeleteChildFromRow() { - $parent = 'Server 8 with child for delete'; - $name = 'Server 10 child for Server 8'; + $parent = 'Parent for child deletion from row'; + $name = 'Child 1'; $this->page->login()->open('zabbix.php?action=service.list.edit'); $table = $this->query(self::TABLE_SELECTOR)->asTable()->one(); @@ -1084,8 +817,8 @@ class testPageServicesServices extends CWebTest { } public function testPageServicesServices_DeleteParentFromRow() { - $name = 'Server 9 with child for delete'; - $child = 'Server 11 child for Server 9'; + $name = 'Parent for deletion from row'; + $child = 'Child 2'; $this->page->login()->open('zabbix.php?action=service.list.edit'); $table = $this->query(self::TABLE_SELECTOR)->asTable()->one(); @@ -1121,11 +854,13 @@ class testPageServicesServices extends CWebTest { $this->assertEquals(1, CDBHelper::getCount('SELECT * FROM services WHERE name='.zbx_dbstr($child))); } + /** + * @depends testPageServicesServices_SimpleServiceDeleteFromRow + */ public function testPageServicesServices_SimpleServicesMassDelete() { $names = [ - 'Server for mass delete 1', - 'Server for mass delete 2', - 'Server for mass delete 3' + 'Service for delete by checkbox', + 'Service for delete 2' ]; $this->page->login()->open('zabbix.php?action=service.list.edit'); @@ -1150,18 +885,16 @@ class testPageServicesServices extends CWebTest { } // Check database. - $this->assertEquals(0, CDBHelper::getCount('SELECT * FROM services WHERE name LIKE '. - zbx_dbstr('%Server for mass delete%')) - ); + $this->assertEquals(0, CDBHelper::getCount('SELECT * FROM services WHERE name LIKE '.zbx_dbstr('%delete%'))); } public function testPageServicesServices_ChildrenMassDelete() { - $parent = 'Server 12'; + $parent = 'Clone parent'; $names = [ - 'Child for mass deleting 1', - 'Child for mass deleting 2' + 'Clone child 1', + 'Clone child 2' ]; - $remained = 'Child for mass deleting 3'; + $remained = 'Clone child 3'; $this->page->login()->open('zabbix.php?action=service.list.edit'); $table = $this->query(self::TABLE_SELECTOR)->asTable()->one(); |