Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'ui/tests/selenium/graphs/testInheritanceGraphPrototype.php')
-rw-r--r--ui/tests/selenium/graphs/testInheritanceGraphPrototype.php140
1 files changed, 140 insertions, 0 deletions
diff --git a/ui/tests/selenium/graphs/testInheritanceGraphPrototype.php b/ui/tests/selenium/graphs/testInheritanceGraphPrototype.php
new file mode 100644
index 00000000000..2126a0cdd7c
--- /dev/null
+++ b/ui/tests/selenium/graphs/testInheritanceGraphPrototype.php
@@ -0,0 +1,140 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2022 Zabbix SIA
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+**/
+
+
+require_once dirname(__FILE__).'/../../include/CLegacyWebTest.php';
+
+/**
+ * Test the creation of inheritance of new objects on a previously linked template.
+ *
+ * @backup graphs
+ */
+class testInheritanceGraphPrototype extends CLegacyWebTest {
+ private $templateid = 15000; // 'Inheritance test template'
+ private $template = 'Inheritance test template';
+
+ private $hostid = 15001; // 'Template inheritance test host'
+ private $host = 'Template inheritance test host';
+
+ private $discoveryRuleId = 15011; // 'testInheritanceDiscoveryRule'
+ private $discoveryRule = 'testInheritanceDiscoveryRule';
+
+ public static function update() {
+ return CDBHelper::getDataProvider(
+ 'SELECT DISTINCT g.graphid,id.parent_itemid'.
+ ' FROM graphs g,graphs_items gi,item_discovery id'.
+ ' WHERE g.graphid=gi.graphid'.
+ ' AND gi.itemid=id.itemid'.
+ ' AND EXISTS ('.
+ 'SELECT NULL'.
+ ' FROM graphs_items gi,items i'.
+ ' WHERE g.graphid=gi.graphid'.
+ ' AND gi.itemid=i.itemid'.
+ ' AND i.hostid=15000'. // $this->templateid.
+ ' AND i.flags=2'.
+ ')'.
+ ' AND g.flags=2'
+ );
+ }
+
+ /**
+ * @dataProvider update
+ */
+ public function testInheritanceGraphPrototype_SimpleUpdate($data) {
+ $sqlGraphs = 'SELECT * FROM graphs ORDER BY graphid';
+ $oldHashGraphs = CDBHelper::getHash($sqlGraphs);
+
+ $this->zbxTestLogin('graphs.php?form=update&context=host&graphid='.$data['graphid'].'&parent_discoveryid='.
+ $data['parent_itemid']);
+ $this->zbxTestCheckTitle('Configuration of graph prototypes');
+ $this->zbxTestClickWait('update');
+ $this->zbxTestWaitUntilMessageTextPresent('msg-good', 'Graph prototype updated');
+
+ $this->assertEquals($oldHashGraphs, CDBHelper::getHash($sqlGraphs));
+ }
+
+ // Returns create data
+ public static function create() {
+ return [
+ [
+ [
+ 'expected' => TEST_GOOD,
+ 'name' => 'testInheritanceGraphPrototype5',
+ 'addItemPrototypes' => [
+ ['itemName' => 'testInheritanceItemPrototype1'],
+ ['itemName' => 'testInheritanceItemPrototype2'],
+ ['itemName' => 'testInheritanceItemPrototype3'],
+ ['itemName' => 'testInheritanceItemPrototype4']
+ ]
+ ]
+ ],
+ [
+ [
+ 'expected' => TEST_BAD,
+ 'name' => 'testInheritanceGraphPrototype4',
+ 'addItemPrototypes' => [
+ ['itemName' => 'testInheritanceItemPrototype1']
+ ],
+ 'errors'=> [
+ 'Graph with name "testInheritanceGraphPrototype4" already exists in graphs or graph prototypes.'
+ ]
+ ]
+ ]
+ ];
+ }
+
+ /**
+ * @dataProvider create
+ */
+ public function testInheritanceGraphPrototype_SimpleCreate($data) {
+ $this->zbxTestLogin('graphs.php?form=Create+graph+prototype&context=template&parent_discoveryid='.$this->discoveryRuleId);
+
+ $this->zbxTestInputTypeWait('name', $data['name']);
+
+ if (isset($data['addItemPrototypes'])) {
+ foreach ($data['addItemPrototypes'] as $item) {
+ $this->zbxTestClick('add_protoitem');
+ $this->zbxTestLaunchOverlayDialog('Item prototypes');
+ $this->zbxTestClickLinkTextWait($item['itemName']);
+ $this->zbxTestTextPresent($this->template.': '.$item['itemName']);
+ }
+ }
+
+ $this->zbxTestClickWait('add');
+
+ switch ($data['expected']) {
+ case TEST_GOOD:
+ $this->zbxTestCheckTitle('Configuration of graph prototypes');
+ $this->zbxTestCheckHeader('Graph prototypes');
+ $this->zbxTestWaitUntilMessageTextPresent('msg-good', 'Graph prototype added');
+ $this->zbxTestTextPresent($data['name']);
+ break;
+
+ case TEST_BAD:
+ $this->zbxTestCheckTitle('Configuration of graph prototypes');
+ $this->zbxTestCheckHeader('Graph prototypes');
+ $this->zbxTestWaitUntilMessageTextPresent('msg-bad', 'Cannot add graph prototype');
+ $this->zbxTestTextPresent($data['errors']);
+ $this->zbxTestTextNotPresent('Graph prototype added');
+ break;
+ }
+
+ }
+}