<?php /* ** Zabbix ** Copyright (C) 2001-2022 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'; /** * @backup config */ class testFormConfigTriggerSeverity extends CLegacyWebTest { // Data provider public static function providerTriggerSeverity() { // array of data, saveResult, db fields value // if saveResult is false. values should not change $data = [ [ [ 'severity_name_0' => 'sev 0', 'severity_color_0' => '000000', 'severity_name_1' => 'sev 1', 'severity_color_1' => '111111', 'severity_name_2' => 'sev 2', 'severity_color_2' => '222222', 'severity_name_3' => 'sev 3', 'severity_color_3' => '333333', 'severity_name_4' => 'sev 4', 'severity_color_4' => '444444', 'severity_name_5' => 'sev 5', 'severity_color_5' => '555555' ], true, [ 'severity_name_0' => 'sev 0', 'severity_color_0' => '000000', 'severity_name_1' => 'sev 1', 'severity_color_1' => '111111', 'severity_name_2' => 'sev 2', 'severity_color_2' => '222222', 'severity_name_3' => 'sev 3', 'severity_color_3' => '333333', 'severity_name_4' => 'sev 4', 'severity_color_4' => '444444', 'severity_name_5' => 'sev 5', 'severity_color_5' => '555555' ] ], [ [ 'severity_name_0' => '' ], false, null ], [ [ 'severity_color_0' => '' ], false, null ], [ [ 'severity_color_0' => 'ccc' ], false, null ], [ [ 'severity_color_0' => 'yuttrt' ], false, null ], [ [ 'severity_color_0' => '1234567' ], true, [ 'severity_color_0' => '123456' ] ], [ [ 'severity_name_0' => 'iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii more than 32 chars' ], true, [ 'severity_name_0' => 'iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' ] ] ]; return $data; } public function testFormTriggerSeverity_Layout() { $this->zbxTestLogin('zabbix.php?action=trigseverity.edit'); $this->zbxTestCheckTitle('Configuration of trigger severities'); $this->zbxTestCheckHeader('Trigger severities'); $this->query('id:page-title-general')->asPopupButton()->one()->select('Trigger severities'); $this->zbxTestTextPresent(['Not classified', 'Information', 'Warning', 'Average', 'High', 'Disaster']); $this->zbxTestAssertElementPresentId('severity_name_0'); $this->zbxTestAssertElementPresentId('severity_color_0'); $this->zbxTestAssertElementPresentId('lbl_severity_color_0'); $this->zbxTestAssertElementPresentId('severity_name_1'); $this->zbxTestAssertElementPresentId('severity_color_1'); $this->zbxTestAssertElementPresentId('lbl_severity_color_1'); $this->zbxTestAssertElementPresentId('severity_name_2'); $this->zbxTestAssertElementPresentId('severity_color_2'); $this->zbxTestAssertElementPresentId('lbl_severity_color_2'); $this->zbxTestAssertElementPresentId('severity_name_3'); $this->zbxTestAssertElementPresentId('severity_color_3'); $this->zbxTestAssertElementPresentId('lbl_severity_color_3'); $this->zbxTestAssertElementPresentId('severity_name_4'); $this->zbxTestAssertElementPresentId('severity_color_4'); $this->zbxTestAssertElementPresentId('lbl_severity_color_4'); $this->zbxTestAssertElementPresentId('severity_name_5'); $this->zbxTestAssertElementPresentId('severity_color_5'); $this->zbxTestAssertElementPresentId('lbl_severity_color_5'); $this->zbxTestAssertElementPresentId('update'); $this->zbxTestAssertElementPresentXpath('//div[@class="overlay-dialogue"]/div[@class="color-picker"]'); $this->zbxTestAssertNotVisibleXpath('//div[@class="color-picker"]'); $this->zbxTestClick('lbl_severity_color_0'); $this->zbxTestAssertVisibleXpath('//div[@class="color-picker"]'); } /** * @dataProvider providerTriggerSeverity */ public function testFormTriggerSeverity_Update($data, $resultSave, $DBvalues) { $this->zbxTestLogin('zabbix.php?action=trigseverity.edit'); $this->zbxTestCheckTitle('Configuration of trigger severities'); $this->zbxTestCheckHeader('Trigger severities'); foreach ($data as $field => $value) { $this->zbxTestInputType($field, $value); } $sql = 'SELECT '.implode(', ', array_keys($data)).' FROM config'; if (!$resultSave) { $hash = CDBHelper::getHash($sql); } $this->zbxTestClickWait('update'); if ($resultSave) { $this->zbxTestTextPresent('Configuration updated'); $dbres = DBfetch(DBselect($sql)); foreach ($dbres as $field => $value) { $this->assertEquals($value, $DBvalues[$field], "Value for '$field' was not updated."); } } else { $this->zbxTestTextPresent('Cannot update configuration'); $this->assertEquals($hash, CDBHelper::getHash($sql), "DB fields changed after unsuccessful save."); } } }