$this->assertTrue($this->query('xpath://*[not(self::script)][contains(text(),"'.$string.'")]')->count() === 0, '"'.$string.'" must not exist.');
require_once 'vendor/autoload.php';
require_once dirname(__FILE__).'/CWebTest.php';
use Facebook\WebDriver\WebDriverBy;
use Facebook\WebDriver\Exception\StaleElementReferenceException;
class CLegacyWebTest extends CWebTest {
const WAIT_ITERATION = 50;
public $failIfNotExists = [
protected function putBreak() {
fwrite(STDOUT, "\033[s \033[93m[Breakpoint] Press \033[1;93m[RETURN]\033[0;93m to continue...\033[0m");
while (fgets(STDIN, 1024) == '') {}
fwrite(STDOUT, "\033[u");
public function authenticate() {
$this->page->login('09e7d4286dfdca4ba7be15e0f3b2b55a', 1);
public function authenticateUser($sessionid, $userId) {
$this->page->login($sessionid, $userId);
public function zbxTestOpen($url) {
public function zbxTestLogin($url, $server_name = true) {
$this->page->login()->open($url);
if ($server_name && $ZBX_SERVER_NAME !== '') {
$this->zbxTestWaitUntilMessageTextPresent('server-name', $ZBX_SERVER_NAME);
$this->zbxTestTextNotPresent('Incorrect user name or password or account is temporarily blocked.');
public function zbxTestLogout() {
$this->query('xpath://a[@href="#signout"]')->one()->click();
public function zbxTestCheckMandatoryStrings() {
$this->zbxTestTextPresent($this->failIfNotExists);
public function zbxTestCheckTitle($title, $check_server_name = true) {
if ($check_server_name && $ZBX_SERVER_NAME !== '') {
$title = $ZBX_SERVER_NAME.NAME_DELIMITER.$title;
$this->assertEquals($title, $this->page->getTitle());
public function zbxTestCheckHeader($header) {
$this->assertEquals($header, $this->query('tag:h1')->waitUntilVisible()->one()->getText());
public function zbxTestHeaderNotPresent($header) {