<?php
require_once __DIR__.'/../../include/CLegacyWebTest.php';
use Facebook\WebDriver\WebDriverBy;
class testPageHostGraph extends CLegacyWebTest {
public function getBehaviors() {
return [
'class' => CMessageBehavior::class
];
}
public function testPageHostGraph_CheckLayout() {
$host_name = 'Host to check graph 1';
$sql = 'SELECT graphid, name, width, height, graphtype'.
' FROM graphs'.
' WHERE graphid IN'.
'(SELECT graphid'.
' FROM graphs_items'.
' WHERE itemid IN'.
'(SELECT itemid'.
' FROM items'.
' WHERE hostid IN'.
'(SELECT hostid'.
' FROM hosts'.
' WHERE host='.zbx_dbstr($host_name).
')'.
')'.
')'.
'ORDER BY name';
$hostid = $this->openPageHostGraphs($host_name, 'host');
$this->zbxTestCheckTitle('Configuration of graphs');
$this->zbxTestCheckHeader('Graphs');
$filter = $this->query('name:zbx_filter')->asForm()->one();
$filter->checkValue(['Hosts' => $host_name]);
$this->zbxTestAssertElementPresentXpath('//button[@type="button"][text()="Create graph"]');
$this->zbxTestAssertElementPresentXpath('//span[@class="green"][text()="Enabled"]');
$this->zbxTestAssertElementPresentXpath('//span[@class="status-grey"][text()="ZBX"]');
$filter->getField('Hosts')->fill($host_name);
$filter->submit();
$this->page->waitUntilReady();
$breadcrumbs = [
self::HOST_LIST_PAGE => 'All hosts',
(new CUrl('zabbix.php'))
->setArgument('action', 'host.edit')
->setArgument('hostid', $hostid)
->getUrl() => $host_name,
'zabbix.php?action=item.list&filter_set=1&filter_hostids%5B0%5D='.$hostid.'&context=host' => 'Items',
'zabbix.php?action=trigger.list&filter_set=1&filter_hostids%5B0%5D='.$hostid.'&context=host' => 'Triggers',
'graphs.php?filter_set=1&filter_hostids%5B0%5D='.$hostid.'&context=host' => 'Graphs',
'host_discovery.php?filter_set=1&filter_hostids%5B0%5D='.$hostid.'&context=host' => 'Discovery rules',
'httpconf.php?filter_set=1&filter_hostids%5B0%5D='.$hostid.'&context=host' => 'Web scenarios'
];
$count_items = CDBHelper::getValue('SELECT COUNT(*) FROM items WHERE hostid='.$hostid);
$count_graphs = CDBHelper::getCount($sql);
foreach ($breadcrumbs as $url => $text) {
$this->assertTrue($this->query('xpath://a[@href="'.$url.'"][text()="'.$text.'"]')
->one()->isVisible()
);