Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLarisa Grigorjeva <larisa.grigorjeva@zabbix.com>2022-10-28 09:43:25 +0300
committerLarisa Grigorjeva <larisa.grigorjeva@zabbix.com>2022-10-28 11:25:09 +0300
commit1bdcedc04d1deb98de7d440d0f892a8946535f15 (patch)
tree74b941ec7859b798b5d50d2985a020167edbcd27
parentd54a96cd0f0675d96a55bf14f5537f7f84df89ed (diff)
.......... [ZBXNEXT-686] fixed time related tests
(cherry picked from commit 737aef0b96a1a5926946343af9c6201f46348d55)
-rw-r--r--ui/tests/include/helpers/CAPIHelper.php4
-rw-r--r--ui/tests/selenium/testPageReportsActionLog.php5
-rw-r--r--ui/tests/selenium/testPageReportsTriggerTop.php219
3 files changed, 172 insertions, 56 deletions
diff --git a/ui/tests/include/helpers/CAPIHelper.php b/ui/tests/include/helpers/CAPIHelper.php
index 9817c20e926..788f776bc09 100644
--- a/ui/tests/include/helpers/CAPIHelper.php
+++ b/ui/tests/include/helpers/CAPIHelper.php
@@ -19,6 +19,7 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once 'vendor/autoload.php';
require_once dirname(__FILE__).'/../../../include/defines.inc.php';
@@ -75,12 +76,13 @@ class CAPIHelper {
]
];
- $handle = fopen($URL, 'rb', false, stream_context_create($params));
+ $handle = @fopen($URL, 'rb', false, stream_context_create($params));
if ($handle) {
$response = @stream_get_contents($handle);
fclose($handle);
}
else {
+ $php_errormsg = CTestArrayHelper::get(error_get_last(), 'message');
$response = false;
}
diff --git a/ui/tests/selenium/testPageReportsActionLog.php b/ui/tests/selenium/testPageReportsActionLog.php
index a737538a204..e0c0424df28 100644
--- a/ui/tests/selenium/testPageReportsActionLog.php
+++ b/ui/tests/selenium/testPageReportsActionLog.php
@@ -18,15 +18,14 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../include/CLegacyWebTest.php';
class testPageReportsActionLog extends CLegacyWebTest {
public function testPageReportsActionLog_CheckLayout() {
- // from: 2012-02-20 09:00:00
- // to: 2014-02-19 09:00:00
// dates can be in relative format, example: now-1y/y, now-1w, now
- $this->zbxTestLogin('auditacts.php?from=2012-02-20+09%3A00%3A00&to=2014-02-19+09%3A00%3A00');
+ $this->zbxTestLogin('auditacts.php?from=now-2y&to=now');
$this->zbxTestCheckTitle('Action log');
$this->zbxTestAssertElementPresentId('config');
$this->zbxTestCheckHeader('Action log');
diff --git a/ui/tests/selenium/testPageReportsTriggerTop.php b/ui/tests/selenium/testPageReportsTriggerTop.php
index 66748610ee6..8a752bc5036 100644
--- a/ui/tests/selenium/testPageReportsTriggerTop.php
+++ b/ui/tests/selenium/testPageReportsTriggerTop.php
@@ -18,12 +18,139 @@
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
+
require_once dirname(__FILE__).'/../include/CLegacyWebTest.php';
use Facebook\WebDriver\WebDriverBy;
+/**
+ * @backup hosts
+ *
+ * @onBefore prepareTriggersData
+ */
class testPageReportsTriggerTop extends CLegacyWebTest {
+ /**
+ * Id of the host with problems.
+ *
+ * @var integer
+ */
+ protected static $hostid;
+
+ /**
+ * Ids of the triggers for problems.
+ *
+ * @var array
+ */
+ protected static $triggerids;
+
+ /**
+ * Time when events were created.
+ *
+ * @var int
+ */
+ protected static $one_year_ago_approx;
+ protected static $two_years_ago_approx;
+ protected static $three_months_ago_approx;
+ protected static $two_months_ago_approx;
+
+ public function prepareTriggersData() {
+ // Create hostgroup for hosts with items triggers.
+ $hostgroups = CDataHelper::call('hostgroup.create', [['name' => 'Group for Reports Trigger']]);
+ $this->assertArrayHasKey('groupids', $hostgroups);
+ $groupid = $hostgroups['groupids'][0];
+
+ // Create host for items and triggers.
+ $hosts = CDataHelper::call('host.create', [
+ 'host' => 'Host for Reports Trigger',
+ 'groups' => [['groupid' => $groupid]]
+ ]);
+
+ $this->assertArrayHasKey('hostids', $hosts);
+ self::$hostid = $hosts['hostids'][0];
+
+ // Create items on previously created host.
+ $item_names = ['float', 'char', 'log', 'unsigned'];
+
+ $items_data = [];
+ foreach ($item_names as $i => $item) {
+ $items_data[] = [
+ 'hostid' => self::$hostid,
+ 'name' => $item,
+ 'key_' => $item,
+ 'type' => 2,
+ 'value_type' => $i
+ ];
+ }
+
+ $items = CDataHelper::call('item.create', $items_data);
+ $this->assertArrayHasKey('itemids', $items);
+
+ // Create triggers based on items.
+ $triggers_data = [];
+ foreach ($item_names as $i => $item) {
+ $triggers_data[] = [
+ 'description' => 'Reports trigger '.$i,
+ 'expression' => 'last(/Host for Reports Trigger/'.$item.')=0',
+ 'priority' => $i
+ ];
+ }
+
+ $triggers = CDataHelper::call('trigger.create', $triggers_data);
+ $this->assertArrayHasKey('triggerids', $triggers);
+ self::$triggerids = CDataHelper::getIds('description');
+
+ // Make timestamp a little less 1 year ago.
+ self::$one_year_ago_approx = time()-31449600;
+
+ // Make timestamp a little less than 2 years ago.
+ self::$two_years_ago_approx = time()-62985600;
+
+ // Make timestamp a little less than 3 months ago.
+ self::$three_months_ago_approx = time()-7872000;
+
+ // Make timestamp a little less than 2 months ago.
+ self::$two_months_ago_approx = time()-5184000;
+
+ DBexecute('INSERT INTO events (eventid, source, object, objectid, clock, ns, value, name, severity) VALUES (1005500, 0, 0, '.
+ zbx_dbstr(self::$triggerids['Reports trigger 0']).', '.self::$one_year_ago_approx.', 0, 1, '.zbx_dbstr('Reports trigger 0').', 0)'
+ );
+
+ DBexecute('INSERT INTO events (eventid, source, object, objectid, clock, ns, value, name, severity) VALUES (1005501, 0, 0, '.
+ zbx_dbstr(self::$triggerids['Reports trigger 1']).', '.self::$two_years_ago_approx.', 0, 1, '.zbx_dbstr('Reports trigger 1').', 1)'
+ );
+
+ DBexecute('INSERT INTO events (eventid, source, object, objectid, clock, ns, value, name, severity) VALUES (1005502, 0, 0, '.
+ zbx_dbstr(self::$triggerids['Reports trigger 2']).', '.self::$three_months_ago_approx.', 0, 1, '.zbx_dbstr('Reports trigger 2').', 2)'
+ );
+
+ DBexecute('INSERT INTO events (eventid, source, object, objectid, clock, ns, value, name, severity) VALUES (1005503, 0, 0, '.
+ zbx_dbstr(self::$triggerids['Reports trigger 3']).', '.self::$two_months_ago_approx.', 0, 1, '.zbx_dbstr('Reports trigger 3').', 3)'
+ );
+
+ // Create problems.
+ DBexecute('INSERT INTO problem (eventid, source, object, objectid, clock, ns, name, severity) VALUES (1005500, 0, 0, '.
+ zbx_dbstr(self::$triggerids['Reports trigger 0']).', '.self::$one_year_ago_approx.', 0, '.zbx_dbstr('Reports trigger 0').', 0)'
+ );
+
+ DBexecute('INSERT INTO problem (eventid, source, object, objectid, clock, ns, name, severity) VALUES (1005501, 0, 0, '.
+ zbx_dbstr(self::$triggerids['Reports trigger 1']).', '.self::$two_years_ago_approx.', 0, '.zbx_dbstr('Reports trigger 1').', 1)'
+ );
+
+ DBexecute('INSERT INTO problem (eventid, source, object, objectid, clock, ns, name, severity) VALUES (1005502, 0, 0, '.
+ zbx_dbstr(self::$triggerids['Reports trigger 2']).', '.self::$three_months_ago_approx.', 0, '.zbx_dbstr('Reports trigger 2').', 2)'
+ );
+
+ DBexecute('INSERT INTO problem (eventid, source, object, objectid, clock, ns, name, severity) VALUES (1005503, 0, 0, '.
+ zbx_dbstr(self::$triggerids['Reports trigger 3']).', '.self::$two_months_ago_approx.', 0, '.zbx_dbstr('Reports trigger 3').', 3)'
+ );
+
+ // Change triggers' state to Problem.
+ DBexecute('UPDATE triggers SET value = 1 WHERE description IN ('.zbx_dbstr('Reports trigger 0').', '.
+ zbx_dbstr('Reports trigger 1').', '.zbx_dbstr('Reports trigger 2').', '.zbx_dbstr('Reports trigger 3').')'
+ );
+ }
+
public function testPageReportsTriggerTop_FilterLayout() {
$this->zbxTestLogin('toptriggers.php');
$this->zbxTestCheckTitle('100 busiest triggers');
@@ -53,22 +180,22 @@ class testPageReportsTriggerTop extends CLegacyWebTest {
[
[
'filter' => [
- 'host_group' => 'Zabbix servers'
+ 'host_group' => 'Group for Reports Trigger'
],
'date' => [
- 'from' => '2020-10-23 00:00',
- 'to' => 'now/d'
+ 'from' => 'now-2y',
+ 'to' => 'now'
],
'result' => [
- 'Test trigger to check tag filter on problem page',
- 'Test trigger with tag'
+ 'Reports trigger 0',
+ 'Reports trigger 1'
]
]
],
[
[
'filter' => [
- 'host_group' => 'Zabbix servers'
+ 'host_group' => 'Group for Reports Trigger'
],
'date' => [
'from' => 'now/d',
@@ -79,21 +206,23 @@ class testPageReportsTriggerTop extends CLegacyWebTest {
[
[
'filter' => [
- 'host_group' => 'Zabbix servers',
- 'host' => 'ЗАББИКС Сервер'
+ 'host_group' => 'Group for Reports Trigger',
+ 'host' => 'Host for Reports Trigger'
],
'date' => [
- 'from' => '2020-10-23 17:00'
+ // Time is now - 2 years exactly.
+ 'from' => date('Y-m-d H:i', time()-62985600)
],
'result' => [
- 'Test trigger with tag'
+ 'Reports trigger 0',
+ 'Reports trigger 1'
]
]
],
[
[
'filter' => [
- 'host_group' => 'Zabbix servers',
+ 'host_group' => 'Group for Reports Trigger',
'host' => 'Host ZBX6663'
],
'date' => [
@@ -105,39 +234,40 @@ class testPageReportsTriggerTop extends CLegacyWebTest {
[
[
'filter' => [
- 'host_group' => 'Zabbix servers',
- 'host' => 'ЗАББИКС Сервер'
+ 'host_group' => 'Group for Reports Trigger',
+ 'host' => 'Host for Reports Trigger'
],
'date' => [
- 'from' => '2020-10-22 04:01',
- 'to' => '2020-10-24 04:01'
+ // Time around 1 year ago.
+ 'from' => date('Y-m-d H:i', time()-31449700),
+ 'to' => date('Y-m-d H:i', time()-31449500)
],
'result' => [
- 'Test trigger to check tag filter on problem page',
- 'Test trigger with tag'
+ 'Reports trigger 0'
]
]
],
[
[
'filter' => [
- 'host_group' => 'Zabbix servers',
- 'host' => 'ЗАББИКС Сервер'
+ 'host_group' => 'Group for Reports Trigger',
+ 'host' => 'Host for Reports Trigger'
],
'date' => [
- 'from' => '2020-10-26 00:00',
- 'to' => 'now/d'
+ 'from' => date('Y-m-d H:i', time()-5183000),
+ 'to' => 'now-1d/d'
]
]
],
[
[
'date' => [
- 'from' => '2020-10-23 15:35',
- 'to' => '2020-10-23 15:36'
+ // Time around 3 months ago.
+ 'from' => date('Y-m-d H:i', time()-7872400),
+ 'to' => date('Y-m-d H:i', time()-7870800)
],
'result' => [
- 'Trigger for tag permissions MySQL'
+ 'Reports trigger 2'
]
]
],
@@ -145,16 +275,16 @@ class testPageReportsTriggerTop extends CLegacyWebTest {
[
'filter' => [
'severities' => [
- 'Average',
+ 'Warning',
'High',
'Disaster'
]
],
'date' => [
- 'from' => '2020-10-22 00:00'
+ 'from' => 'now-2y'
],
'result' => [
- 'Test trigger to check tag filter on problem page'
+ 'Reports trigger 2'
]
]
],
@@ -167,19 +297,20 @@ class testPageReportsTriggerTop extends CLegacyWebTest {
]
],
'date' => [
- 'from' => '2020-10-22 00:00'
+ 'from' => 'now-2y'
]
]
],
[
[
'date' => [
- 'from' => '2020-10-23 15:33',
- 'to' => '2020-10-23 15:36'
+ // Time interval 3 -2 months ago.
+ 'from' => date('Y-m-d H:i', time()-7872400),
+ 'to' => date('Y-m-d H:i', time()-5183000)
],
'result' => [
- 'Test trigger to check tag filter on problem page',
- 'Trigger for tag permissions MySQL'
+ 'Reports trigger 2',
+ 'Reports trigger 3'
]
]
]
@@ -196,33 +327,17 @@ class testPageReportsTriggerTop extends CLegacyWebTest {
$this->zbxTestClickButtonText('Reset');
$this->zbxTestWaitForPageToLoad();
+ $filter_form = $this->query('name:zbx_filter')->asForm()->one();
+
if (array_key_exists('filter', $data)) {
$filter = $data['filter'];
if (array_key_exists('host_group', $filter)) {
- $this->zbxTestClickButtonMultiselect('groupids_');
- $this->zbxTestLaunchOverlayDialog('Host groups');
- $this->zbxTestClickLinkTextWait($filter['host_group']);
- $this->zbxTestWaitUntilElementNotVisible(WebDriverBy::xpath('//div[contains(@class, "overlay-dialogue modal")]'));
- $this->zbxTestMultiselectAssertSelected('groupids_', $filter['host_group']);
+ $filter_form->fill(['Host groups' => $filter['host_group']]);
}
if (array_key_exists('host', $filter)) {
- $this->zbxTestClickButtonMultiselect('hostids_');
- $this->zbxTestLaunchOverlayDialog('Hosts');
- COverlayDialogElement::find()->one()->query('class:multiselect-button')->one()->click();
- $this->zbxTestLaunchOverlayDialog('Host groups');
- $groups_form = $this->query('name:hostGroupsform')->one();
- $all_groups = $groups_form->query('xpath:.//a')->all()->asText();
- $groups = ['Host group for tag permissions', 'Zabbix servers', 'ZBX6648 All Triggers',
- 'ZBX6648 Disabled Triggers', 'ZBX6648 Enabled Triggers'];
- $this->assertTrue(count(array_diff($groups, $all_groups)) === 0);
- $groups_form->query('xpath://a[text()="Zabbix servers"]')->one()->click();
- COverlayDialogElement::find()->one()->waitUntilReady();
- $this->zbxTestClickXpathWait('//div[contains(@class, "overlay-dialogue modal")]//a[text()="'.
- $filter['host'].'"]');
- $this->zbxTestWaitUntilElementNotVisible(WebDriverBy::xpath('//div[contains(@class, "overlay-dialogue modal")]'));
- $this->zbxTestMultiselectAssertSelected('hostids_', $filter['host']);
+ $filter_form->fill(['Hosts' => $filter['host']]);
}
if (array_key_exists('severities', $filter)) {