templateid. ' AND flags=0'. ' AND type<>'.ITEM_TYPE_HTTPTEST ); } /** * @dataProvider update */ public function testInheritanceItem_SimpleUpdate($data) { $sqlItems = 'SELECT * FROM items ORDER BY itemid'; $oldHashItems = CDBHelper::getHash($sqlItems); $this->zbxTestLogin('items.php?form=update&context=host&itemid='.$data['itemid']); $this->zbxTestClickWait('update'); $this->zbxTestCheckTitle('Configuration of items'); $this->zbxTestTextPresent('Item updated'); $this->assertEquals($oldHashItems, CDBHelper::getHash($sqlItems)); } // Returns create data public static function create() { return [ [ [ 'expected' => TEST_GOOD, 'name' => 'testInheritanceItem5', 'key' => 'test-inheritance-item5' ] ], [ [ 'expected' => TEST_BAD, 'name' => 'itemInheritance', 'key' => 'key-item-inheritance', 'errors' => [ 'Cannot inherit item with key "key-item-inheritance" of template "Inheritance test template" to host '. '"Template inheritance test host", because an item with the same key is already inherited '. 'from template "Inheritance test template 2".' ] ] ] ]; } /** * @dataProvider create */ public function testInheritanceItem_SimpleCreate($data) { $this->zbxTestLogin('items.php?form=create&context=host&hostid='.$this->templateid); $this->zbxTestInputTypeWait('name', $data['name']); $this->zbxTestInputType('key', $data['key']); $this->zbxTestClickWait('add'); switch ($data['expected']) { case TEST_GOOD: $this->zbxTestCheckTitle('Configuration of items'); $this->zbxTestCheckHeader('Items'); $this->zbxTestTextPresent('Item added'); $itemId = 0; // template $dbResult = DBselect( 'SELECT itemid,name,templateid'. ' FROM items'. ' WHERE hostid='.$this->templateid. ' AND key_='.zbx_dbstr($data['key']). ' AND flags=0' ); if ($dbRow = DBfetch($dbResult)) { $itemId = $dbRow['itemid']; $this->assertEquals($dbRow['name'], $data['name']); $this->assertEquals($dbRow['templateid'], 0); } $this->assertNotEquals($itemId, 0); // host $dbResult = DBselect( 'SELECT key_,name'. ' FROM items'. ' WHERE hostid='.$this->hostid. ' AND templateid='.$itemId. ' AND flags=0' ); if ($dbRow = DBfetch($dbResult)) { $this->assertEquals($dbRow['key_'], $data['key']); $this->assertEquals($dbRow['name'], $data['name']); } break; case TEST_BAD: $this->zbxTestCheckTitle('Configuration of items'); $this->zbxTestCheckHeader('Items'); $this->zbxTestTextNotPresent('Item added'); $this->zbxTestWaitUntilMessageTextPresent('msg-bad', 'Cannot add item'); $this->zbxTestTextPresent($data['errors']); break; } } }