require_once dirname(__FILE__).'/../include/CLegacyWebTest.php';
require_once dirname(__FILE__).'/../../include/func.inc.php';
class testPageAdministrationGeneralValuemap extends CLegacyWebTest {
public function testPageAdministrationGeneralValuemap_CheckLayout() {
$this->zbxTestLogin('zabbix.php?action=valuemap.list');
$this->zbxTestCheckTitle('Configuration of value mapping');
$this->zbxTestCheckHeader('Value mapping');
$this->zbxTestTextPresent(['Name', 'Value map']);
$this->zbxTestAssertElementPresentXpath('//button[text()="Create value map"]');
$this->zbxTestAssertElementPresentXpath('//button[text()="Import"]');
$valuemaps = CDBHelper::getAll('SELECT name, valuemapid FROM valuemaps') ;
order_result($valuemaps, 'name');
$valuemaps = array_slice($valuemaps, 0, 100);
foreach ($valuemaps as $valuemap) {
$strings[] = $valuemap['name'];
$ids[] = $valuemap['valuemapid'];
foreach (CDBHelper::getAll('SELECT value, newvalue FROM mappings'.
' WHERE valuemapid IN ('.implode(",", $ids).')') as $mapping) {
$strings[] = $mapping['value'].' ⇒ '.$mapping['newvalue'];
$this->zbxTestTextPresent($strings);
public function testPageAdministrationGeneralValuemap_SimpleUpdate() {
$sqlValuemaps = 'select * from valuemaps order by valuemapid';
$oldHashValuemap = CDBHelper::getHash($sqlValuemaps);
$sqlMappings = 'select * from mappings order by mappingid';
$oldHashMappings = CDBHelper::getHash($sqlMappings);
$this->zbxTestLogin('zabbix.php?action=valuemap.list');
foreach (CDBHelper::getAll('SELECT name FROM valuemaps ORDER BY name', 10) as $valuemap) {
$this->zbxTestClickLinkText($valuemap['name']);
$this->zbxTestWaitForPageToLoad();
$this->zbxTestClickWait('update');
$this->zbxTestWaitForPageToLoad();
$this->zbxTestTextPresent('Value map updated');
$newHashValuemap = CDBHelper::getHash($sqlValuemaps);
$this->assertEquals($oldHashValuemap, $newHashValuemap);
$newHashMappings = CDBHelper::getHash($sqlMappings);
$this->assertEquals($oldHashMappings, $newHashMappings);