Source
xxxxxxxxxx
$this->zbxTestAssertElementPresentXpath('//textarea[@id="lld_macro_paths_'.$i.'_lld_macro"][text()="'.$lld_macro['macro'].'"][@readonly]');
<?php
/*
** Copyright (C) 2001-2025 Zabbix SIA
**
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
**
** 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 Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
**/
require_once __DIR__.'/../../include/CLegacyWebTest.php';
/**
* Test the creation of inheritance of new objects on a previously linked template.
*
* @backup items
*/
class testInheritanceDiscoveryRule 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';
// Returns list of discovery rules from a template.
public static function update() {
return CDBHelper::getDataProvider(
'SELECT itemid'.
' FROM items'.
' WHERE hostid=15000'. // $this->templateid.
' AND flags=1'
);
}
/**
* @dataProvider update
*/
public function testInheritanceDiscoveryRule_SimpleUpdate($data) {
$sqlDiscovery = 'SELECT * FROM items ORDER BY itemid';
$oldHashDiscovery = CDBHelper::getHash($sqlDiscovery);
$this->zbxTestLogin('host_discovery.php?form=update&context=host&itemid='.$data['itemid']);
$this->zbxTestClickWait('update');
$this->zbxTestCheckTitle('Configuration of discovery rules');
$this->zbxTestTextPresent('Discovery rule updated');
$this->assertEquals($oldHashDiscovery, CDBHelper::getHash($sqlDiscovery));
}
// Returns create data.
public static function create() {
return [
[
[
'expected' => TEST_GOOD,
'name' => 'testInheritanceDiscoveryRule6',
'key' => 'discovery-rule-inheritance6'
]
],
[
[
'expected' => TEST_BAD,
'name' => 'testInheritanceDiscoveryRule5',
'key' => 'discovery-rule-inheritance5',
'errors' => [
'Cannot inherit LLD rule with key "discovery-rule-inheritance5" of template "Inheritance '.
'test template" to host "Template inheritance test host", because an LLD rule with the '.
'same key is already inherited from template "Inheritance test template 2".'
]
]
],
[
[
'expected' => TEST_GOOD,
'name' => 'testInheritanceDiscoveryRuleWithLLDMacros',
'key' => 'discovery-rule-inheritance-with-macros',
'macros' => [
['macro' => '{#MACRO1}', 'path'=>'$.path.1'],
['macro' => '{#MACRO2}', 'path'=>'$.path.1']
]
]
]
];
}
/**
* @dataProvider create