<?php /* ** Zabbix ** Copyright (C) 2001-2023 Zabbix SIA ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation; either version 2 of the License, or ** (at your option) any later version. ** ** 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 General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program; if not, write to the Free Software ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ require_once dirname(__FILE__).'/../include/CLegacyWebTest.php'; class testZBX6648 extends CLegacyWebTest { // Returns test data public static function zbx_data() { return [ [ [ 'host' => 'ZBX6648 All Triggers Host', 'hostgroup' => 'ZBX6648 All Triggers', 'triggers' => 'both' ] ], [ [ 'host' => 'ZBX6648 Enabled Triggers Host', 'hostgroup' => 'ZBX6648 Enabled Triggers', 'triggers' => 'enabled' ] ], [ [ 'hostgroup' => 'ZBX6648 Disabled Triggers', 'triggers' => 'disabled' ] ], [ [ 'host' => 'Test item host', 'hostgroup' => 'Zabbix servers', 'triggers' => 'no triggers' ] ], [ [ 'hostgroup' => 'ZBX6648 Group No Hosts', 'triggers' => 'no hosts' ] ] ]; } /** * @dataProvider zbx_data */ public function testZBX6648_eventFilter($zbx_data) { $this->page->login()->open('zabbix.php?action=problem.view')->waitUntilReady(); $this->zbxTestClickButtonMultiselect('triggerids_0'); $this->zbxTestLaunchOverlayDialog('Triggers'); $host_overlay = COverlayDialogElement::find()->one()->waitUntilReady() ->asForm(['normalized' => true])->getField('Host')->edit(); switch ($zbx_data['triggers']) { case 'both' : case 'enabled' : // TODO: DEV-2703 Unstable test on Jenkins with slow connection "Cannot reload stalled element" // if use setDataContext() method or code are: // $host = COverlayDialogElement::find()->one()->waitUntilReady()->query('class:multiselect-control') // ->asMultiselect()->one()->waitUntilVisible(); // $host->fill([ // 'values' => $zbx_data['host'], // 'context' => $zbx_data['hostgroup'] // ]); $host_overlay->asForm(['normalized' => true])->getField('Host group')->select($zbx_data['hostgroup']); $host_overlay->waitUntilReady()->query('link', $zbx_data['host'])->waitUntilClickable()->one()->click(); $host_overlay->waitUntilNotVisible(); $this->zbxTestLaunchOverlayDialog('Triggers'); break; case 'disabled' : case 'no hosts' : $this->zbxTestLaunchOverlayDialog('Hosts'); COverlayDialogElement::find()->all()->last()->waitUntilReady()->query('class:multiselect-button')->one()->click(); $this->zbxTestLaunchOverlayDialog('Host groups'); $this->zbxTestAssertElementNotPresentXpath('//a[text()="'.$zbx_data['hostgroup'].'"]'); break; case 'no triggers' : $host_overlay->asForm(['normalized' => true])->getField('Host group')->select($zbx_data['hostgroup']); $this->assertEquals('Hosts', $host_overlay->waitUntilReady()->getTitle()); $this->zbxTestAssertElementNotPresentXpath('//a[text()="'.$zbx_data['host'].'"]'); break; } } }