require_once dirname(__FILE__).'/../include/CLegacyWebTest.php';
class testPageMaps extends CLegacyWebTest {
public $mapName = 'Local network';
public static function allMaps() {
return CDBHelper::getDataProvider('select * from sysmaps');
public function testPageMaps_CheckLayout() {
$this->zbxTestLogin('sysmaps.php');
$this->zbxTestCheckTitle('Configuration of network maps');
$this->zbxTestCheckHeader('Maps');
$this->zbxTestAssertElementPresentXpath("//thead//th/a[text()='Name']");
$this->zbxTestAssertElementPresentXpath("//thead//th/a[text()='Width']");
$this->zbxTestAssertElementPresentXpath("//thead//th/a[text()='Height']");
$this->zbxTestAssertElementPresentXpath("//thead//th[contains(text(),'Actions')]");
$this->zbxTestAssertElementText("//tbody/tr[1]/td[2]/a", $this->mapName);
$this->zbxTestAssertElementText("//tbody/tr[1]/td[3]", $this->mapWidth);
$this->zbxTestAssertElementText("//tbody/tr[1]/td[4]", $this->mapHeight);
$this->zbxTestTextNotPresent('Displaying 0 of 0 found');
$this->zbxTestAssertElementPresentXpath("//div[@class='table-stats'][contains(text(),'Displaying')]");
$this->zbxTestAssertElementText("//span[@id='selected_count']", '0 selected');
$this->zbxTestAssertElementPresentXpath("//button[text()='Delete'][@disabled]");
$this->zbxTestAssertElementPresentXpath("//button[text()='Export'][@disabled]");
public function testPageMaps_SimpleUpdateConstructor($map) {
$sysmapid = $map['sysmapid'];
$sqlMap = "select * from sysmaps where name='$name' order by sysmapid";
$oldHashMap = CDBHelper::getHash($sqlMap);
$sqlElements = "select * from sysmaps_elements where sysmapid=$sysmapid order by selementid";
$oldHashElements = CDBHelper::getHash($sqlElements);
$sqlLinks = "select * from sysmaps_links where sysmapid=$sysmapid order by linkid";
$oldHashLinks = CDBHelper::getHash($sqlLinks);
$sqlLinkTriggers = "SELECT slt.* FROM sysmaps_link_triggers slt, sysmaps_links sl WHERE slt.linkid = sl.linkid AND sl.sysmapid=$sysmapid ORDER BY slt.linktriggerid";
$oldHashLinkTriggers = CDBHelper::getHash($sqlLinkTriggers);
$this->zbxTestLogin('sysmaps.php');
$this->zbxTestCheckTitle('Configuration of network maps');
$this->zbxTestClickLinkText($name);
$element = $this->query('xpath://div[@id="flickerfreescreen_mapimg"]/div/*[name()="svg"]')
->waitUntilPresent()->one();
$this->assertScreenshotExcept($element, [
'query' => 'class:map-timestamp',
$this->zbxTestContentControlButtonClickTextWait('Edit map');
$this->zbxTestCheckHeader('Network maps');
$this->assertScreenshot($this->query('id:map-area')->waitUntilPresent()->one(), 'edit_'.$sysmapid);
$this->zbxTestClickWait('sysmap_update');
$this->zbxTestAcceptAlert();
$this->zbxTestCheckTitle('Configuration of network maps');