<?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'; class testFormAdministrationGeneralTriggerSeverities extends CLegacyWebTest { public static function allValues() { return CDBHelper::getDataProvider('SELECT severity_name_0,severity_color_0,severity_name_1,severity_color_1,'. 'severity_name_2,severity_color_2,severity_name_3,severity_color_3,severity_name_4,'. 'severity_color_4,severity_name_5,severity_color_5 FROM config ORDER BY configid'); } /** * @dataProvider allValues */ public function testFormAdministrationGeneralTriggerSeverities_CheckLayout($allValues) { $this->zbxTestLogin('zabbix.php?action=trigseverity.edit'); $this->zbxTestCheckTitle('Configuration of trigger severities'); $this->zbxTestCheckHeader('Trigger severities'); $this->zbxTestTextPresent(['Not classified', 'Information', 'Warning', 'Average', 'High', 'Disaster']); $this->zbxTestTextPresent(['Info', 'Custom severity names affect all locales and require manual translation!']); $this->zbxTestAssertElementPresentId('severity_name_0'); $this->zbxTestAssertElementPresentId('severity_name_1'); $this->zbxTestAssertElementPresentId('severity_name_2'); $this->zbxTestAssertElementPresentId('severity_name_3'); $this->zbxTestAssertElementPresentId('severity_name_4'); $this->zbxTestAssertElementPresentId('severity_name_5'); $this->zbxTestAssertElementPresentId('severity_color_0'); $this->zbxTestAssertElementPresentId('severity_color_1'); $this->zbxTestAssertElementPresentId('severity_color_2'); $this->zbxTestAssertElementPresentId('severity_color_3'); $this->zbxTestAssertElementPresentId('severity_color_4'); $this->zbxTestAssertElementPresentId('severity_color_5'); $this->zbxTestAssertElementPresentId('lbl_severity_color_0'); $this->zbxTestAssertElementPresentId('lbl_severity_color_1'); $this->zbxTestAssertElementPresentId('lbl_severity_color_2'); $this->zbxTestAssertElementPresentId('lbl_severity_color_3'); $this->zbxTestAssertElementPresentId('lbl_severity_color_4'); $this->zbxTestAssertElementPresentId('lbl_severity_color_5'); $this->zbxTestAssertAttribute("//input[@id='severity_name_0']", "maxlength", '32'); $this->zbxTestAssertAttribute("//input[@id='severity_name_0']", "size", '20'); $this->zbxTestAssertAttribute("//input[@id='severity_name_1']", "maxlength", '32'); $this->zbxTestAssertAttribute("//input[@id='severity_name_1']", "size", '20'); $this->zbxTestAssertAttribute("//input[@id='severity_name_2']", "maxlength", '32'); $this->zbxTestAssertAttribute("//input[@id='severity_name_2']", "size", '20'); $this->zbxTestAssertAttribute("//input[@id='severity_name_3']", "maxlength", '32'); $this->zbxTestAssertAttribute("//input[@id='severity_name_3']", "size", '20'); $this->zbxTestAssertAttribute("//input[@id='severity_name_4']", "maxlength", '32'); $this->zbxTestAssertAttribute("//input[@id='severity_name_4']", "size", '20'); $this->zbxTestAssertAttribute("//input[@id='severity_name_5']", "maxlength", '32'); $this->zbxTestAssertAttribute("//input[@id='severity_name_5']", "size", '20'); // checking values in this report $this->zbxTestAssertElementValue('severity_name_0', $allValues['severity_name_0']); $this->zbxTestAssertElementValue('severity_name_1', $allValues['severity_name_1']); $this->zbxTestAssertElementValue('severity_name_2', $allValues['severity_name_2']); $this->zbxTestAssertElementValue('severity_name_3', $allValues['severity_name_3']); $this->zbxTestAssertElementValue('severity_name_4', $allValues['severity_name_4']); $this->zbxTestAssertElementValue('severity_name_5', $allValues['severity_name_5']); $this->zbxTestAssertElementValue('severity_color_0', $allValues['severity_color_0']); $this->zbxTestAssertElementValue('severity_color_1', $allValues['severity_color_1']); $this->zbxTestAssertElementValue('severity_color_2', $allValues['severity_color_2']); $this->zbxTestAssertElementValue('severity_color_3', $allValues['severity_color_3']); $this->zbxTestAssertElementValue('severity_color_4', $allValues['severity_color_4']); $this->zbxTestAssertElementValue('severity_color_5', $allValues['severity_color_5']); } public function testFormAdministrationGeneralTriggerSeverities_ChangeTriggerSeverities() { $this->zbxTestLogin('zabbix.php?action=trigseverity.edit'); $this->zbxTestCheckTitle('Configuration of trigger severities'); $this->zbxTestCheckHeader('Trigger severities'); $this->zbxTestTextPresent('Custom severity names affect all locales and require manual translation!'); $this->zbxTestInputType('severity_name_0', 'Not classified2'); $this->zbxTestInputType('severity_name_1', 'Information2'); $this->zbxTestInputType('severity_name_2', 'Warning2'); $this->zbxTestInputType('severity_name_3', 'Average2'); $this->zbxTestInputType('severity_name_4', 'High2'); $this->zbxTestInputType('severity_name_5', 'Disaster2'); $this->zbxTestClick('lbl_severity_color_5'); $this->zbxTestClickXpath('//div[@title="#FF0000"]'); $this->zbxTestClick('lbl_severity_color_4'); $this->zbxTestClickXpath('//div[@title="#CC6600"]'); $this->zbxTestClick('lbl_severity_color_3'); $this->zbxTestClickXpath('//div[@title="#E57373"]'); $this->zbxTestClick('lbl_severity_color_2'); $this->zbxTestClickXpath('//div[@title="#FFA000"]'); $this->zbxTestClick('lbl_severity_color_1'); $this->zbxTestClickXpath('//div[@title="#0097A7"]'); $this->zbxTestClick('lbl_severity_color_0'); $this->zbxTestClickXpath('//div[@title="#A5A5A5"]'); $this->zbxTestClickWait('update'); $this->zbxTestTextPresent('Configuration updated'); $sql = 'SELECT severity_name_0 FROM config WHERE severity_name_0='.zbx_dbstr('Not classified2'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity name in the DB field "severity_name_0"'); $sql = 'SELECT severity_name_1 FROM config WHERE severity_name_1='.zbx_dbstr('Information2'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity name in the DB field "severity_name_1"'); $sql = 'SELECT severity_name_2 FROM config WHERE severity_name_2='.zbx_dbstr('Warning2'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity name in the DB field "severity_name_2"'); $sql = 'SELECT severity_name_3 FROM config WHERE severity_name_3='.zbx_dbstr('Average2'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity name in the DB field "severity_name_3"'); $sql = 'SELECT severity_name_4 FROM config WHERE severity_name_4='.zbx_dbstr('High2'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity name in the DB field "severity_name_4"'); $sql = 'SELECT severity_name_5 FROM config WHERE severity_name_5='.zbx_dbstr('Disaster2'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity name in the DB field "severity_name_5"'); // checking severity colors in the DB $sql = 'SELECT severity_color_0 FROM config where severity_color_0='.zbx_dbstr('A5A5A5'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity color in the DB field "severity_color_0"'); $sql = 'SELECT severity_color_1 FROM config WHERE severity_color_1='.zbx_dbstr('0097A7'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity color in the DB field "severity_color_1"'); $sql = 'SELECT severity_color_2 FROM config WHERE severity_color_2='.zbx_dbstr('FFA000'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity color in the DB field "severity_color_2"'); $sql = 'SELECT severity_color_3 FROM config WHERE severity_color_3='.zbx_dbstr('E57373'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity color in the DB field "severity_color_3"'); $sql = 'SELECT severity_color_4 FROM config WHERE severity_color_4='.zbx_dbstr('CC6600'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity color in the DB field "severity_color_4"'); $sql = 'SELECT severity_color_5 FROM config WHERE severity_color_5='.zbx_dbstr('FF0000'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity color in the DB field "severity_color_5"'); } public function testFormAdministrationGeneralTriggerSeverities_ResetDefaults() { $this->zbxTestLogin('zabbix.php?action=trigseverity.edit'); $this->zbxTestCheckHeader('Trigger severities'); $this->zbxTestCheckTitle('Configuration of trigger severities'); $this->zbxTestTextPresent( [ 'Trigger severities', 'Custom severity names affect all locales and require manual translation!' ] ); $this->zbxTestClick('resetDefaults'); $this->zbxTestClickXpath("//div[contains(@class, 'overlay-dialogue modal')]//button[text()='Reset defaults']"); $this->zbxTestClickWait('update'); $this->zbxTestTextPresent('Configuration updated'); $this->zbxTestTextPresent('Trigger severities'); // checking that values were reset in the DB $sql = 'SELECT severity_name_0 FROM config WHERE severity_name_0='.zbx_dbstr('Not classified'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity name in the DB field "severity_name_0"'); $sql = 'SELECT severity_name_1 FROM config WHERE severity_name_1='.zbx_dbstr('Information'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity name in the DB field "severity_name_1"'); $sql = 'SELECT severity_name_2 FROM config WHERE severity_name_2='.zbx_dbstr('Warning'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity name in the DB field "severity_name_2"'); $sql = 'SELECT severity_name_3 FROM config WHERE severity_name_3='.zbx_dbstr('Average'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity name in the DB field "severity_name_3"'); $sql = 'SELECT severity_name_4 FROM config WHERE severity_name_4='.zbx_dbstr('High'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity name in the DB field "severity_name_4"'); $sql = 'SELECT severity_name_5 FROM config WHERE severity_name_5='.zbx_dbstr('Disaster'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity name in the DB field "severity_name_5"'); $sql = 'SELECT severity_color_0 FROM config WHERE severity_color_0='.zbx_dbstr('97AAB3'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity color in the DB field "severity_color_0"'); $sql = 'SELECT severity_color_1 FROM config WHERE severity_color_1='.zbx_dbstr('7499FF'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity color in the DB field "severity_color_2"'); $sql = 'SELECT severity_color_2 FROM config WHERE severity_color_2='.zbx_dbstr('FFC859'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity color in the DB field "severity_color_3"'); $sql = 'SELECT severity_color_3 FROM config WHERE severity_color_3='.zbx_dbstr('FFA059'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity color in the DB field "severity_color_3"'); $sql = 'SELECT severity_color_4 FROM config WHERE severity_color_4='.zbx_dbstr('E97659'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity color in the DB field "severity_color_4"'); $sql = 'SELECT severity_color_5 FROM config WHERE severity_color_5='.zbx_dbstr('E45959'); $this->assertEquals(1, CDBHelper::getCount($sql), 'Chuck Norris: Incorrect severity color in the DB field "severity_color_5"'); // TODO: can also check that trigger severities have NOT been reset after clicking Cancel in the "Reset confirmation" dialog box after clicking "Reset defaults" button } }