require_once dirname(__FILE__).'/../../include/CLegacyWebTest.php';
use Facebook\WebDriver\WebDriverBy;
class testPageHostGraph extends CLegacyWebTest {
public function getBehaviors() {
'class' => CMessageBehavior::class
public function testPageHostGraph_CheckLayout() {
$host_name = 'Host to check graph 1';
$sql = 'SELECT graphid, name, width, height, graphtype'.
' WHERE host='.zbx_dbstr($host_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);
$this->page->waitUntilReady();
self::HOST_LIST_PAGE => 'All hosts',
'zabbix.php?action=popup&popup=host.edit&hostid='.$hostid => $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->zbxTestAssertElementPresentXpath('//a[@href="'.$url.'"][text()="'.$text.'"]');
if ($text === 'Items' || $text === 'Graphs') {
$get_number = $this->zbxTestGetText('//a[@href="'.$url.'"]/..//sup');
$this->assertEquals($get_number, ($text === 'Items') ? $count_items : $count_graphs);