Source
xxxxxxxxxx
<?php
/*
** Copyright (C) 2001-2025 Zabbix SIA
**
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
**
** 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 Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
**/
require_once dirname(__FILE__).'/../common/testMultiselectDialogs.php';
/**
* Test for checking multiselects dialogs on Problems page.
*
* @backup hosts
*
* @onBefore prepareTriggerData
*/
class testMultiselectsProblems extends testMultiselectDialogs {
public static function getCheckDialogsData() {
return [
// #0.
[
[
'fields' => [
'Host groups' => 'Zabbix servers'
]
]
],
// #1.
[
[
'fields' => [
'Hosts' => 'ЗАББИКС Сервер'
]
]
],
// #2.
[
[
'fields' => [
'Triggers' => 'First test trigger with tag priority'
]
]
]
];
}
/**
* Test for checking that multiselects' dialogs do not contain any errors before and after filling.
*
* @dataProvider getCheckDialogsData
*/
public function testMultiselectsProblems_CheckDialogs($data) {
$this->page->login()->open('zabbix.php?action=problem.view');
$filter_form = $this->query('name:zbx_filter')->asForm()->one();
$multiselects = [
['Host groups' => ['title' => 'Host groups']],
['Hosts' => ['title' => 'Hosts'], 'Host group' => ['title' => 'Host groups']],
['Triggers' => ['title' => 'Triggers'], 'Host' => ['title' => 'Hosts'], 'Host group' => ['title' => 'Host groups']]
];
// Check all multiselects in filter before one of the multiselects is filled.
$this->checkMultiselectDialogs($filter_form, $multiselects);
$filter_form->fill($data['fields']);
// Check all multiselects in filter after one of the multiselects is filled.
$this->checkMultiselectDialogs($filter_form, $multiselects);
$this->query('button:Reset')->waitUntilClickable()->one()->click();
}
public static function prepareTriggerData() {
// Create host groups.
CDataHelper::call('hostgroup.create', [
['name' => 'All Triggers'],
['name' => 'Enabled Triggers'],
['name' => 'Disabled Triggers'],
['name' => 'Group No Hosts']
]);
$groupids = CDataHelper::getIds('name');
CDataHelper::createHosts([