layout('Zabbix servers'); } public function testFormHostGroup_DiscoveredLayout() { $this->layout(self::DISCOVERED_GROUP, true); } public static function getHostValidationData() { return [ [ [ 'expected' => TEST_BAD, 'fields' => [ 'Group name' => self::DISCOVERED_GROUP ], 'error' => 'Host group "'.self::DISCOVERED_GROUP.'" already exists.' ] ] ]; } public static function getHostCreateData() { return [ [ [ 'expected' => TEST_BAD, 'fields' => [ 'Group name' => 'Zabbix servers' ], 'error' => 'Host group "Zabbix servers" already exists.' ] ], [ [ 'expected' => TEST_GOOD, 'fields' => [ 'Group name' => 'Templates' ] ] ], [ [ 'expected' => TEST_GOOD, 'fields' => [ 'Group name' => STRING_255 ] ] ] ]; } /** * @dataProvider getCreateData * @dataProvider getHostValidationData * @dataProvider getHostCreateData */ public function testFormHostGroup_Create($data) { $this->checkForm($data, 'create'); } public static function getHostUpdateData() { return [ [ [ 'expected' => TEST_BAD, 'fields' => [ 'Group name' => 'Zabbix servers', 'Apply permissions and tag filters to all subgroups' => true ], 'error' => 'Host group "Zabbix servers" already exists.' ] ], [ [ 'expected' => TEST_GOOD, 'fields' => [ 'Group name' => 'Templates/Applications' ] ] ], [ [ 'expected' => TEST_GOOD, 'fields' => [ 'Group name' => str_repeat('long_', 51) ] ] ] ]; } /** * @dataProvider getUpdateData * @dataProvider getHostValidationData * @dataProvider getHostUpdateData */ public function testFormHostGroup_Update($data) { $this->checkForm($data, 'update'); } /** * Test group simple update without changing data. */ public function testFormHostGroup_SimpleUpdate() { $this->simpleUpdate(self::DISCOVERED_GROUP, true); } public static function getHostCloneData() { return [ [ [ 'expected' => TEST_GOOD, 'name' => self::DISCOVERED_GROUP, 'fields' => [ 'Group name' => self::DISCOVERED_GROUP.' cloned group' ], 'discovered' => true ] ] ]; } /** * @dataProvider getCloneData * @dataProvider getHostCloneData */ public function testFormHostGroup_Clone($data) { $this->clone($data); } /** * @dataProvider getCancelData */ public function testFormHostGroup_Cancel($data) { $this->cancel($data); } public static function getHostDeleteData() { return [ [ [ 'expected' => TEST_BAD, 'name' => self::DELETE_ONE_GROUP, 'error' => 'Host "Host for host group testing" cannot be without host group.' ] ], [ [ 'expected' => TEST_BAD, 'name' => 'Group for Maintenance', 'error' => 'Cannot delete host group "Group for Maintenance" because maintenance'. ' "Maintenance for host group testing" must contain at least one host or host group.' ] ], [ [ 'expected' => TEST_BAD, 'name' => 'Group for Correlation', 'error' => 'Group "Group for Correlation" cannot be deleted, because it is used in a correlation condition.' ] ], [ [ 'expected' => TEST_BAD, 'name' => 'Group for Script', 'error' => 'Host group "Group for Script" cannot be deleted, because it is used in a global script.' ] ], [ [ 'expected' => TEST_BAD, 'name' => 'Group for Host prototype', 'error' => 'Group "Group for Host prototype" cannot be deleted, because it is used by a host prototype.' ] ], [ [ 'expected' => TEST_BAD, 'name' => 'Discovered hosts', 'error' => 'Host group "Discovered hosts" is group for discovered hosts and cannot be deleted.' ] ] ]; } /** * @dataProvider getDeleteData * @dataProvider getHostDeleteData */ public function testFormHostGroup_Delete($data) { $this->delete($data); } /** * @onBeforeOnce prepareSubgroupData * @dataProvider getSubgroupsData */ public function testFormHostGroup_ApplyPermissionsToSubgroups($data) { $this->checkSubgroupsPermissions($data); } }