<?php
/*
** Zabbix
** 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 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 testPageHistory extends CLegacyWebTest {

	public static function checkLayoutItems() {
		return CDBHelper::getDataProvider(
			'SELECT i.itemid,i.value_type,i.key_,i.name'.
			' FROM items i,hosts h'.
			' WHERE i.hostid=h.hostid'.
				' AND h.host=\'testPageHistory_CheckLayout\''
		);
	}

	/**
	* @dataProvider checkLayoutItems
	*/
	public function testPageHistory_CheckLayout($item) {
		$this->zbxTestLogin('history.php?action=showvalues&itemids[]='.$item['itemid']);
		$this->zbxTestCheckTitle('History [refreshed every 30 sec.]');
		$this->zbxTestCheckHeader('testPageHistory_CheckLayout: '.$item['name']);
		switch ($item['value_type']) {
			case ITEM_VALUE_TYPE_LOG:
				if (substr($item['key_'], 0, 9) === 'eventlog[') {
					$table_titles = ['Timestamp', 'Local time', 'Source', 'Severity', 'Event ID', 'Value'];
				}
				else {
					$table_titles = ['Timestamp', 'Local time', 'Value'];
				}
				break;

			default:
				$table_titles = ['Timestamp', 'Value'];
		}
		$this->zbxTestTextPresent($table_titles);

		$view_as = $this->query('id:filter-view-as')->asDropdown()->one();
		$view_as->select('500 latest values');
		$this->zbxTestCheckTitle('History [refreshed every 30 sec.]');
		$this->zbxTestCheckHeader('testPageHistory_CheckLayout: '.$item['name']);

		$this->zbxTestClickWait('plaintext');
		$this->page->waitUntilReady();
		$this->zbxTestTextPresent('testPageHistory_CheckLayout: '.$item['name']);

		$this->zbxTestOpen('history.php?action=showvalues&itemids[]='.$item['itemid']);
		$this->zbxTestCheckTitle('History [refreshed every 30 sec.]');
		$view_as->select('Values');
		$this->zbxTestCheckHeader('testPageHistory_CheckLayout: '.$item['name']);

		$this->zbxTestClickWait('plaintext');
		$this->page->waitUntilReady();
		$this->zbxTestTextPresent('testPageHistory_CheckLayout: '.$item['name']);
	}
}