|
|
|
<?php
|
|
|
|
|
|
|
|
namespace yii\codeception;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Represents a web page to test
|
|
|
|
*
|
|
|
|
* Pages extend from this class and declare UI map for this page via
|
|
|
|
* static properties. CSS or XPath allowed.
|
|
|
|
*
|
|
|
|
* Here is an example:
|
|
|
|
*
|
|
|
|
* ```php
|
|
|
|
* public static $usernameField = '#username';
|
|
|
|
* public static $formSubmitButton = "#mainForm input[type=submit]";
|
|
|
|
* ```
|
|
|
|
*
|
|
|
|
* @author Mark Jebri <mark.github@yandex.ru>
|
|
|
|
* @since 2.0
|
|
|
|
*/
|
|
|
|
abstract class BasePage
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @var string include url of current page. This property has to be overwritten by subclasses
|
|
|
|
*/
|
|
|
|
public static $URL = '';
|
|
|
|
/**
|
|
|
|
* @var \Codeception\AbstractGuy
|
|
|
|
*/
|
|
|
|
protected $guy;
|
|
|
|
|
|
|
|
public function __construct($I)
|
|
|
|
{
|
|
|
|
$this->guy = $I;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Basic route example for your current URL
|
|
|
|
* You can append any additional parameter to URL
|
|
|
|
* and use it in tests like: EditPage::route('/123-post');
|
|
|
|
*/
|
|
|
|
public static function route($param)
|
|
|
|
{
|
|
|
|
return static::$URL.$param;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param $I
|
|
|
|
* @return static
|
|
|
|
*/
|
|
|
|
public static function of($I)
|
|
|
|
{
|
|
|
|
return new static($I);
|
|
|
|
}
|
|
|
|
}
|