You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
2.7 KiB

<?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/gettextwrapper.inc.php';
require_once dirname(__FILE__).'/../../include/defines.inc.php';
require_once dirname(__FILE__).'/../../conf/zabbix.conf.php';
require_once dirname(__FILE__).'/../../include/func.inc.php';
require_once dirname(__FILE__).'/../../include/db.inc.php';
require_once dirname(__FILE__).'/../../include/items.inc.php';
require_once dirname(__FILE__).'/../../include/classes/core/APP.php';
function error($error) {
echo "\nError reported: $error\n";
return true;
}
use PHPUnit\Framework\TestCase;
class class_CDescription extends TestCase {
public static function setUpBeforeClass() {
$app = new App();
$app->run();
DBconnect($error);
}
public static function providerTriggers() {
return [
[
'13517',
'trigger host.host:Host for trigger description macros | '.
'host.host2:{HOST.HOST2} | host.name:Host for trigger description macros | '.
'item.value:5 | item.value1:5 | item.lastvalue:5 | host.ip:127.0.0.1 | '.
'host.dns: | host.conn:127.0.0.1'
]
];
}
public static function providerReferenceMacros() {
return [
[
'expression' => '{123}=1',
'text' => 'd $1'
],
[
'expression' => '{1}=1&{2}>2',
'text' => 'd $1 $2 $3'
],
[
'expression' => '{1}=123&{2}>{$MACRO}',
'text' => 'd $1 $2 $3'
]
];
}
/**
* @dataProvider providerTriggers
*/
public function test_expandTrigger($triggerId, $expectedDescription) {
$trigger = DBfetch(DBselect(
'SELECT t.triggerid,t.expression,t.description'.
' FROM triggers t'.
' WHERE t.triggerid='.$triggerId
));
$description = CMacrosResolverHelper::resolveTriggerName($trigger);
$this->assertEquals($expectedDescription, $description);
}
/**
* @dataProvider providerReferenceMacros
*/
public function test_resolveTriggerReference($expression, $text) {
$result = CMacrosResolverHelper::resolveTriggerReference($expression, $text);
$this->assertEquals($text, $result);
}
}