From 09237c013edb3490b93089e2802d4e9c81e1684c Mon Sep 17 00:00:00 2001 From: Carsten Brandt Date: Tue, 17 Dec 2013 00:27:33 +0100 Subject: [PATCH] cleanup and re-aranged codeception tests for basic app follow up to PR #1393 --- commands/HelloController.php | 2 +- composer.json | 4 +- config/codeception/acceptance.php | 2 + config/codeception/functional.php | 2 + config/codeception/unit.php | 4 +- config/web-test.php | 9 - config/web.php | 14 +- tests/README.md | 32 +- tests/_bootstrap.php | 8 +- tests/_helpers/CodeHelper.php | 3 +- tests/_helpers/TestHelper.php | 3 +- tests/_helpers/WebHelper.php | 3 +- tests/_pages/AboutPage.php | 6 +- tests/_pages/ContactPage.php | 21 +- tests/_pages/LoginPage.php | 12 +- tests/acceptance.suite.dist.yml | 19 - tests/acceptance.suite.yml | 24 + tests/acceptance/AboutCept.php | 1 + tests/acceptance/ContactCept.php | 1 + tests/acceptance/HomeCept.php | 1 + tests/acceptance/LoginCept.php | 1 + tests/acceptance/WebGuy.php | 3370 +++++++---------- tests/acceptance/_bootstrap.php | 5 +- ...al.suite.dist.yml => functional.suite.yml} | 9 +- tests/functional/ContactCept.php | 1 + tests/functional/HomeCept.php | 1 + tests/functional/LoginCept.php | 1 + tests/functional/TestGuy.php | 38 +- tests/functional/_bootstrap.php | 4 +- tests/functional/_pages/ContactPage.php | 15 +- tests/functional/_pages/LoginPage.php | 9 +- tests/unit/_bootstrap.php | 7 +- tests/unit/models/ContactFormTest.php | 6 +- tests/unit/models/LoginFormTest.php | 6 +- tests/unit/models/UserTest.php | 17 +- tests/yii_bootstrap.php | 10 - web/index-debug.php | 13 - ...t-accept.php => index-test-acceptance.php} | 9 +- web/index-test-func.php | 16 - web/index-test-functional.php | 11 + web/index.php | 4 +- 41 files changed, 1557 insertions(+), 2167 deletions(-) delete mode 100644 config/web-test.php delete mode 100644 tests/acceptance.suite.dist.yml create mode 100644 tests/acceptance.suite.yml rename tests/{functional.suite.dist.yml => functional.suite.yml} (69%) delete mode 100644 tests/yii_bootstrap.php delete mode 100644 web/index-debug.php rename web/{index-test-accept.php => index-test-acceptance.php} (56%) delete mode 100644 web/index-test-func.php create mode 100644 web/index-test-functional.php diff --git a/commands/HelloController.php b/commands/HelloController.php index db36c5a..b62e5bb 100644 --- a/commands/HelloController.php +++ b/commands/HelloController.php @@ -10,7 +10,7 @@ namespace app\commands; use yii\console\Controller; /** - * This command echoes what the first argument that you have entered. + * This command echoes the first argument that you have entered. * * This command is provided as an example for you to learn how to create console commands. * diff --git a/composer.json b/composer.json index a248d05..63e3d92 100644 --- a/composer.json +++ b/composer.json @@ -16,11 +16,11 @@ "require": { "php": ">=5.4.0", "yiisoft/yii2": "*", - "yiisoft/yii2-swiftmailer": "*", "yiisoft/yii2-bootstrap": "*", "yiisoft/yii2-codeception": "*", "yiisoft/yii2-debug": "*", - "yiisoft/yii2-gii": "*" + "yiisoft/yii2-gii": "*", + "yiisoft/yii2-swiftmailer": "*" }, "scripts": { "post-create-project-cmd": [ diff --git a/config/codeception/acceptance.php b/config/codeception/acceptance.php index d8c8841..6036f88 100644 --- a/config/codeception/acceptance.php +++ b/config/codeception/acceptance.php @@ -1,5 +1,7 @@ [ 'db' => [ diff --git a/config/codeception/functional.php b/config/codeception/functional.php index 4ce22d3..760dcef 100644 --- a/config/codeception/functional.php +++ b/config/codeception/functional.php @@ -1,5 +1,7 @@ [ 'db' => [ diff --git a/config/codeception/unit.php b/config/codeception/unit.php index d4a6ce1..fd66970 100644 --- a/config/codeception/unit.php +++ b/config/codeception/unit.php @@ -1,10 +1,12 @@ [ 'fixture' => [ 'class' => 'yii\test\DbFixtureManager', - 'basePath' => '@app/tests/unit/fixtures', + 'basePath' => '@tests/unit/fixtures', ], 'db' => [ 'dsn' => 'mysql:host=localhost;dbname=yii2basic_unit', diff --git a/config/web-test.php b/config/web-test.php deleted file mode 100644 index e69a7b7..0000000 --- a/config/web-test.php +++ /dev/null @@ -1,9 +0,0 @@ - $params, ]; -if (YII_ENV_DEV) { +if (YII_ENV_DEV) +{ + // configuration adjustments for 'dev' environment $config['preload'][] = 'debug'; $config['modules']['debug'] = 'yii\debug\Module'; $config['modules']['gii'] = 'yii\gii\Module'; } +if (YII_ENV_TEST) +{ + // configuration adjustments for 'test' environment. + // configuration for codeception test environments can be found in codeception folder. + + // if needed, customize $config here. +} + return $config; diff --git a/tests/README.md b/tests/README.md index c87f762..117ab5b 100644 --- a/tests/README.md +++ b/tests/README.md @@ -3,18 +3,26 @@ These tests are developed with [Codeception PHP Testing Framework](http://codece To run the tests, follow these steps: -1. [Install Codeception](http://codeception.com/quickstart) if you do not have it yet. -2. Create test configuration files based on your environment: - - Copy `acceptance.suite.dist.yml` to `acceptance.suite.yml` and customize it; - - Copy `functional.suite.dist.yml` to `functional.suite.yml` and customize it; - - Copy `unit.suite.dist.yml` to `unit.suite.yml` and customize it. -3. Switch to the parent folder and run tests: - -``` -cd .. -php codecept.phar build // rebuild test scripts, only need to be run once -php codecept.phar run // run all available tests -``` +1. Download Codeception([Quickstart step 1](http://codeception.com/quickstart)) and put the codeception.phar in the + application base directory (not in this `tests` directory!). +2. Adjust the test configuration files based on your environment: + - Configure the URL for [acceptance tests](http://codeception.com/docs/04-AcceptanceTests) in `acceptance.suite.yml`. + The URL should point to the `index-test-acceptance.php` file that is located under the `web` directory of the application. + - `functional.suite.yml` for [functional testing](http://codeception.com/docs/05-FunctionalTests) and + `unit.suite.yml` for [unit testing](http://codeception.com/docs/06-UnitTests) should already work out of the box + and should not need to be adjusted. +3. Go to the application base directory and build the test suites: + ``` + php codecept.phar build // rebuild test scripts, only need to be run once + ``` +4. Run the tests: + ``` + php codecept.phar run // run all available tests + // you can also run a test suite alone: + php codecept.phar run acceptance + php codecept.phar run functional + php codecept.phar run unit + ``` Please refer to [Codeception tutorial](http://codeception.com/docs/01-Introduction) for more details about writing acceptance, functional and unit tests. diff --git a/tests/_bootstrap.php b/tests/_bootstrap.php index e2dcb10..ec9390e 100644 --- a/tests/_bootstrap.php +++ b/tests/_bootstrap.php @@ -1,3 +1,9 @@ guy->fillField($this->name,$contactData['name']); - $this->guy->fillField($this->email,$contactData['email']); - $this->guy->fillField($this->subject,$contactData['subject']); - $this->guy->fillField($this->body,$contactData['body']); - $this->guy->fillField($this->verifyCode,$contactData['verifyCode']); + $this->guy->fillField($this->name, $contactData['name']); + $this->guy->fillField($this->email, $contactData['email']); + $this->guy->fillField($this->subject, $contactData['subject']); + $this->guy->fillField($this->body, $contactData['body']); + $this->guy->fillField($this->verifyCode, $contactData['verifyCode']); } $this->guy->click($this->button); } - } diff --git a/tests/_pages/LoginPage.php b/tests/_pages/LoginPage.php index 6dad5ed..74725d1 100644 --- a/tests/_pages/LoginPage.php +++ b/tests/_pages/LoginPage.php @@ -2,9 +2,10 @@ namespace tests\_pages; -class LoginPage extends \yii\codeception\BasePage -{ +use yii\codeception\BasePage; +class LoginPage extends BasePage +{ public static $URL = '?r=site/login'; /** @@ -12,13 +13,11 @@ class LoginPage extends \yii\codeception\BasePage * @var string */ public $username = 'input[name="LoginForm[username]"]'; - /** * login form password text field locator * @var string */ public $password = 'input[name="LoginForm[password]"]'; - /** * login form submit button locator * @var string @@ -32,9 +31,8 @@ class LoginPage extends \yii\codeception\BasePage */ public function login($username, $password) { - $this->guy->fillField($this->username,$username); - $this->guy->fillField($this->password,$password); + $this->guy->fillField($this->username, $username); + $this->guy->fillField($this->password, $password); $this->guy->click($this->button); } - } diff --git a/tests/acceptance.suite.dist.yml b/tests/acceptance.suite.dist.yml deleted file mode 100644 index 78d590c..0000000 --- a/tests/acceptance.suite.dist.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Codeception Test Suite Configuration - -# suite for acceptance tests. -# perform tests in browser using the Selenium-like tools. -# powered by Mink (http://mink.behat.org). -# (tip: that's what your customer will see). -# (tip: test your ajax and javascript by one of Mink drivers). - -# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES. - -class_name: WebGuy -modules: - enabled: - - WebHelper - - WebDriver - config: - WebDriver: - url: 'http://localhost/basic/web/index-test-accept.php' - browser: firefox diff --git a/tests/acceptance.suite.yml b/tests/acceptance.suite.yml new file mode 100644 index 0000000..2f37e16 --- /dev/null +++ b/tests/acceptance.suite.yml @@ -0,0 +1,24 @@ +# Codeception Test Suite Configuration + +# suite for acceptance tests. +# perform tests in browser using the Selenium-like tools. +# powered by Mink (http://mink.behat.org). +# (tip: that's what your customer will see). +# (tip: test your ajax and javascript by one of Mink drivers). + +# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES. + +class_name: WebGuy +modules: + enabled: + - WebHelper + - PhpBrowser +# you can use WebDriver instead of PhpBrowser to test javascript and ajax. +# This will require you to install selenium. See http://codeception.com/docs/04-AcceptanceTests#Selenium +# - WebDriver + config: + PhpBrowser: + url: 'http://localhost/basic-app/web/index-test-acceptance.php' +# WebDriver: +# url: 'http://localhost/basic-app/web/index-test-acceptance.php' +# browser: firefox diff --git a/tests/acceptance/AboutCept.php b/tests/acceptance/AboutCept.php index 7e95f80..b6be2f3 100644 --- a/tests/acceptance/AboutCept.php +++ b/tests/acceptance/AboutCept.php @@ -1,4 +1,5 @@ wantTo('ensure that home page works'); $I->amOnPage(''); diff --git a/tests/acceptance/LoginCept.php b/tests/acceptance/LoginCept.php index ba939ff..00ba0de 100644 --- a/tests/acceptance/LoginCept.php +++ b/tests/acceptance/LoginCept.php @@ -1,4 +1,5 @@ submitForm('#login', array('login' => 'davert', 'password' => '123456')); + * + * ``` + * + * For sample Sign Up form: + * + * ``` html + *
+ * Login:
+ * Password:
+ * Do you agree to out terms?
+ * Select pricing plan + * + *
+ * ``` + * I can write this: + * + * ``` php + * submitForm('#userForm', array('user' => array('login' => 'Davert', 'password' => '123456', 'agree' => true))); + * + * ``` + * Note, that pricing plan will be set to Paid, as it's selected on page. + * + * @param $selector + * @param $params + * @see Codeception\Module\PhpBrowser::submitForm() + * @return \Codeception\Maybe + */ + public function submitForm($selector, $params) { + $this->scenario->addStep(new \Codeception\Step\Action('submitForm', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * If your page triggers an ajax request, you can perform it manually. + * This action sends a POST ajax request with specified params. + * Additional params can be passed as array. + * + * Example: + * + * Imagine that by clicking checkbox you trigger ajax request which updates user settings. + * We emulate that click by running this ajax request manually. + * + * ``` php + * sendAjaxPostRequest('/updateSettings', array('notifications' => true)); // POST + * $I->sendAjaxGetRequest('/updateSettings', array('notifications' => true)); // GET + * + * ``` + * + * @param $uri + * @param $params + * @see Codeception\Module\PhpBrowser::sendAjaxPostRequest() + * @return \Codeception\Maybe + */ + public function sendAjaxPostRequest($uri, $params = null) { + $this->scenario->addStep(new \Codeception\Step\Action('sendAjaxPostRequest', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * If your page triggers an ajax request, you can perform it manually. + * This action sends a GET ajax request with specified params. + * + * See ->sendAjaxPostRequest for examples. + * + * @param $uri + * @param $params + * @see Codeception\Module\PhpBrowser::sendAjaxGetRequest() + * @return \Codeception\Maybe + */ + public function sendAjaxGetRequest($uri, $params = null) { + $this->scenario->addStep(new \Codeception\Step\Action('sendAjaxGetRequest', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * If your page triggers an ajax request, you can perform it manually. + * This action sends an ajax request with specified method and params. + * + * Example: + * + * You need to perform an ajax request specifying the HTTP method. + * + * ``` php + * sendAjaxRequest('PUT', /posts/7', array('title' => 'new title'); + * + * ``` + * + * @param $method + * @param $uri + * @param $params + * @see Codeception\Module\PhpBrowser::sendAjaxRequest() + * @return \Codeception\Maybe + */ + public function sendAjaxRequest($method, $uri, $params = null) { + $this->scenario->addStep(new \Codeception\Step\Action('sendAjaxRequest', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Asserts that current page has 404 response status code. + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Module\PhpBrowser::seePageNotFound() + * @return \Codeception\Maybe + */ + public function canSeePageNotFound() { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seePageNotFound', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Asserts that current page has 404 response status code. + * @see Codeception\Module\PhpBrowser::seePageNotFound() + * @return \Codeception\Maybe + */ + public function seePageNotFound() { + $this->scenario->addStep(new \Codeception\Step\Assertion('seePageNotFound', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that response code is equal to value provided. + * + * @param $code + * @return mixed + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Module\PhpBrowser::seeResponseCodeIs() + * @return \Codeception\Maybe + */ + public function canSeeResponseCodeIs($code) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeResponseCodeIs', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that response code is equal to value provided. + * + * @param $code + * @return mixed + * @see Codeception\Module\PhpBrowser::seeResponseCodeIs() + * @return \Codeception\Maybe + */ + public function seeResponseCodeIs($code) { + $this->scenario->addStep(new \Codeception\Step\Assertion('seeResponseCodeIs', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Adds HTTP authentication via username/password. + * + * @param $username + * @param $password + * @see Codeception\Module\PhpBrowser::amHttpAuthenticated() + * @return \Codeception\Maybe + */ + public function amHttpAuthenticated($username, $password) { + $this->scenario->addStep(new \Codeception\Step\Condition('amHttpAuthenticated', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Low-level API method. + * If Codeception commands are not enough, use [Guzzle HTTP Client](http://guzzlephp.org/) methods directly + * + * Example: + * + * ``` php + * amGoingTo('Sign all requests with OAuth'); + * $I->executeInGuzzle(function (\Guzzle\Http\Client $client) { + * $client->addSubscriber(new Guzzle\Plugin\Oauth\OauthPlugin(array( + * 'consumer_key' => '***', + * 'consumer_secret' => '***', + * 'token' => '***', + * 'token_secret' => '***' + * ))); + * }); + * ?> + * ``` + * + * Not recommended this command too be used on regular basis. + * If Codeception lacks important Guzzle Client methods implement then and submit patches. + * + * @param callable $function + * @see Codeception\Module\PhpBrowser::executeInGuzzle() + * @return \Codeception\Maybe + */ + public function executeInGuzzle($function) { + $this->scenario->addStep(new \Codeception\Step\Action('executeInGuzzle', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Assert if the specified checkbox is checked. + * Use css selector or xpath to match. + * + * Example: + * + * ``` php + * seeCheckboxIsChecked('#agree'); // I suppose user agreed to terms + * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user agreed to terms, If there is only one checkbox in form. + * $I->seeCheckboxIsChecked('//form/input[@type=checkbox and @name=agree]'); + * ?> + * ``` + * + * @param $checkbox + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Module\PhpBrowser::seeCheckboxIsChecked() + * @return \Codeception\Maybe + */ + public function canSeeCheckboxIsChecked($checkbox) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeCheckboxIsChecked', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Assert if the specified checkbox is checked. + * Use css selector or xpath to match. + * + * Example: + * + * ``` php + * seeCheckboxIsChecked('#agree'); // I suppose user agreed to terms + * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user agreed to terms, If there is only one checkbox in form. + * $I->seeCheckboxIsChecked('//form/input[@type=checkbox and @name=agree]'); + * ?> + * ``` + * + * @param $checkbox + * @see Codeception\Module\PhpBrowser::seeCheckboxIsChecked() + * @return \Codeception\Maybe + */ + public function seeCheckboxIsChecked($checkbox) { + $this->scenario->addStep(new \Codeception\Step\Assertion('seeCheckboxIsChecked', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Assert if the specified checkbox is unchecked. + * Use css selector or xpath to match. + * + * Example: + * + * ``` php + * dontSeeCheckboxIsChecked('#agree'); // I suppose user didn't agree to terms + * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user didn't check the first checkbox in form. + * ?> + * ``` + * + * @param $checkbox + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Module\PhpBrowser::dontSeeCheckboxIsChecked() + * @return \Codeception\Maybe + */ + public function cantSeeCheckboxIsChecked($checkbox) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeCheckboxIsChecked', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Assert if the specified checkbox is unchecked. + * Use css selector or xpath to match. + * + * Example: + * + * ``` php + * dontSeeCheckboxIsChecked('#agree'); // I suppose user didn't agree to terms + * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user didn't check the first checkbox in form. + * ?> + * ``` + * + * @param $checkbox + * @see Codeception\Module\PhpBrowser::dontSeeCheckboxIsChecked() + * @return \Codeception\Maybe + */ + public function dontSeeCheckboxIsChecked($checkbox) { + $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeCheckboxIsChecked', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Opens the page. + * + * @param $page + * @see Codeception\Util\Mink::amOnPage() + * @return \Codeception\Maybe + */ + public function amOnPage($page) { + $this->scenario->addStep(new \Codeception\Step\Condition('amOnPage', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + /** * This method is generated. * Documentation taken from corresponding module. @@ -67,7 +507,7 @@ class WebGuy extends \Codeception\AbstractGuy * ``` * @param $subdomain * @return mixed - * @see Codeception\Module\WebDriver::amOnSubdomain() + * @see Codeception\Util\Mink::amOnSubdomain() * @return \Codeception\Maybe */ public function amOnSubdomain($subdomain) { @@ -85,74 +525,16 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Makes a screenshot of current window and saves it to `tests/_log/debug`. + * @param string $text + * @param string $selector * - * ``` php - * amOnPage('/user/edit'); - * $I->makeScreenshot('edit page'); - * // saved to: tests/_log/debug/UserEdit - edit page.png - * ?> - * ``` - * - * @param $name - * @see Codeception\Module\WebDriver::makeScreenshot() - * @return \Codeception\Maybe - */ - public function makeScreenshot($name) { - $this->scenario->addStep(new \Codeception\Step\Action('makeScreenshot', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Resize current window - * - * Example: - * ``` php - * resizeWindow(800, 600); - * - * ``` - * - * @param int $width - * @param int $height - * @see Codeception\Module\WebDriver::resizeWindow() - * @return \Codeception\Maybe - */ - public function resizeWindow($width, $height) { - $this->scenario->addStep(new \Codeception\Step\Action('resizeWindow', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that cookie is set. - * - * @param $cookie - * @return mixed + * @return void * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::seeCookie() + * @see Codeception\Util\Mink::dontSee() * @return \Codeception\Maybe */ - public function canSeeCookie($cookie) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeCookie', func_get_args())); + public function cantSee($text, $selector = null) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSee', func_get_args())); if ($this->scenario->running()) { $result = $this->scenario->runStep(); return new Maybe($result); @@ -164,158 +546,15 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Checks that cookie is set. + * @param string $text + * @param string $selector * - * @param $cookie - * @return mixed - * @see Codeception\Module\WebDriver::seeCookie() + * @return void + * @see Codeception\Util\Mink::dontSee() * @return \Codeception\Maybe */ - public function seeCookie($cookie) { - $this->scenario->addStep(new \Codeception\Step\Assertion('seeCookie', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that cookie doesn't exist - * - * @param $cookie - * @return mixed - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::dontSeeCookie() - * @return \Codeception\Maybe - */ - public function cantSeeCookie($cookie) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeCookie', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that cookie doesn't exist - * - * @param $cookie - * @return mixed - * @see Codeception\Module\WebDriver::dontSeeCookie() - * @return \Codeception\Maybe - */ - public function dontSeeCookie($cookie) { - $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeCookie', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Sets a cookie. - * - * @param $cookie - * @param $value - * @return mixed - * @see Codeception\Module\WebDriver::setCookie() - * @return \Codeception\Maybe - */ - public function setCookie($cookie, $value) { - $this->scenario->addStep(new \Codeception\Step\Action('setCookie', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Unsets cookie - * - * @param $cookie - * @return mixed - * @see Codeception\Module\WebDriver::resetCookie() - * @return \Codeception\Maybe - */ - public function resetCookie($cookie) { - $this->scenario->addStep(new \Codeception\Step\Action('resetCookie', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Grabs a cookie value. - * - * @param $cookie - * @return mixed - * @see Codeception\Module\WebDriver::grabCookie() - * @return \Codeception\Maybe - */ - public function grabCookie($cookie) { - $this->scenario->addStep(new \Codeception\Step\Action('grabCookie', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Opens the page. - * Requires relative uri as parameter - * - * Example: - * - * ``` php - * amOnPage('/'); - * // opens /register page - * $I->amOnPage('/register'); - * ?> - * ``` - * - * @param $page - * @see Codeception\Module\WebDriver::amOnPage() - * @return \Codeception\Maybe - */ - public function amOnPage($page) { - $this->scenario->addStep(new \Codeception\Step\Condition('amOnPage', func_get_args())); + public function dontSee($text, $selector = null) { + $this->scenario->addStep(new \Codeception\Step\Assertion('dontSee', func_get_args())); if ($this->scenario->running()) { $result = $this->scenario->runStep(); return new Maybe($result); @@ -345,7 +584,7 @@ class WebGuy extends \Codeception\AbstractGuy * @param $text * @param null $selector * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::see() + * @see Codeception\Util\Mink::see() * @return \Codeception\Maybe */ public function canSee($text, $selector = null) { @@ -376,7 +615,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $text * @param null $selector - * @see Codeception\Module\WebDriver::see() + * @see Codeception\Util\Mink::see() * @return \Codeception\Maybe */ public function see($text, $selector = null) { @@ -394,27 +633,26 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Check if current page doesn't contain the text specified. - * Specify the css selector to match only specific region. + * Checks if there is a link with text specified. + * Specify url to match link with exact this url. * * Examples: * - * ```php + * ``` php * dontSee('Login'); // I can suppose user is already logged in - * $I->dontSee('Sign Up','h1'); // I can suppose it's not a signup page - * $I->dontSee('Sign Up','//body/h1'); // with XPath + * $I->seeLink('Logout'); // matches Logout + * $I->seeLink('Logout','/logout'); // matches Logout * ?> * ``` * * @param $text - * @param null $selector + * @param null $url * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::dontSee() + * @see Codeception\Util\Mink::seeLink() * @return \Codeception\Maybe */ - public function cantSee($text, $selector = null) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSee', func_get_args())); + public function canSeeLink($text, $url = null) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeLink', func_get_args())); if ($this->scenario->running()) { $result = $this->scenario->runStep(); return new Maybe($result); @@ -426,26 +664,86 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Check if current page doesn't contain the text specified. - * Specify the css selector to match only specific region. + * Checks if there is a link with text specified. + * Specify url to match link with exact this url. * * Examples: * - * ```php + * ``` php * dontSee('Login'); // I can suppose user is already logged in - * $I->dontSee('Sign Up','h1'); // I can suppose it's not a signup page - * $I->dontSee('Sign Up','//body/h1'); // with XPath + * $I->seeLink('Logout'); // matches Logout + * $I->seeLink('Logout','/logout'); // matches Logout * ?> * ``` * * @param $text - * @param null $selector - * @see Codeception\Module\WebDriver::dontSee() + * @param null $url + * @see Codeception\Util\Mink::seeLink() * @return \Codeception\Maybe */ - public function dontSee($text, $selector = null) { - $this->scenario->addStep(new \Codeception\Step\Assertion('dontSee', func_get_args())); + public function seeLink($text, $url = null) { + $this->scenario->addStep(new \Codeception\Step\Assertion('seeLink', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks if page doesn't contain the link with text specified. + * Specify url to narrow the results. + * + * Examples: + * + * ``` php + * dontSeeLink('Logout'); // I suppose user is not logged in + * ?> + * ``` + * + * @param $text + * @param null $url + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Util\Mink::dontSeeLink() + * @return \Codeception\Maybe + */ + public function cantSeeLink($text, $url = null) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeLink', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks if page doesn't contain the link with text specified. + * Specify url to narrow the results. + * + * Examples: + * + * ``` php + * dontSeeLink('Logout'); // I suppose user is not logged in + * ?> + * ``` + * + * @param $text + * @param null $url + * @see Codeception\Util\Mink::dontSeeLink() + * @return \Codeception\Maybe + */ + public function dontSeeLink($text, $url = null) { + $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeLink', func_get_args())); if ($this->scenario->running()) { $result = $this->scenario->runStep(); return new Maybe($result); @@ -487,7 +785,7 @@ class WebGuy extends \Codeception\AbstractGuy * ``` * @param $link * @param $context - * @see Codeception\Module\WebDriver::click() + * @see Codeception\Util\Mink::click() * @return \Codeception\Maybe */ public function click($link, $context = null) { @@ -505,26 +803,21 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Checks if there is a link with text specified. - * Specify url to match link with exact this url. - * - * Examples: + * Checks if element exists on a page, matching it by CSS or XPath * * ``` php * seeLink('Logout'); // matches Logout - * $I->seeLink('Logout','/logout'); // matches Logout + * $I->seeElement('.error'); + * $I->seeElement('//form/input[1]'); * ?> * ``` - * - * @param $text - * @param null $url + * @param $selector * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::seeLink() + * @see Codeception\Util\Mink::seeElement() * @return \Codeception\Maybe */ - public function canSeeLink($text, $url = null) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeLink', func_get_args())); + public function canSeeElement($selector) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeElement', func_get_args())); if ($this->scenario->running()) { $result = $this->scenario->runStep(); return new Maybe($result); @@ -536,25 +829,20 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Checks if there is a link with text specified. - * Specify url to match link with exact this url. - * - * Examples: + * Checks if element exists on a page, matching it by CSS or XPath * * ``` php * seeLink('Logout'); // matches Logout - * $I->seeLink('Logout','/logout'); // matches Logout + * $I->seeElement('.error'); + * $I->seeElement('//form/input[1]'); * ?> * ``` - * - * @param $text - * @param null $url - * @see Codeception\Module\WebDriver::seeLink() + * @param $selector + * @see Codeception\Util\Mink::seeElement() * @return \Codeception\Maybe */ - public function seeLink($text, $url = null) { - $this->scenario->addStep(new \Codeception\Step\Assertion('seeLink', func_get_args())); + public function seeElement($selector) { + $this->scenario->addStep(new \Codeception\Step\Assertion('seeElement', func_get_args())); if ($this->scenario->running()) { $result = $this->scenario->runStep(); return new Maybe($result); @@ -568,454 +856,23 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Checks if page doesn't contain the link with text specified. - * Specify url to narrow the results. - * - * Examples: - * - * ``` php - * dontSeeLink('Logout'); // I suppose user is not logged in - * ?> - * ``` - * - * @param $text - * @param null $url - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::dontSeeLink() - * @return \Codeception\Maybe - */ - public function cantSeeLink($text, $url = null) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeLink', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks if page doesn't contain the link with text specified. - * Specify url to narrow the results. - * - * Examples: - * - * ``` php - * dontSeeLink('Logout'); // I suppose user is not logged in - * ?> - * ``` - * - * @param $text - * @param null $url - * @see Codeception\Module\WebDriver::dontSeeLink() - * @return \Codeception\Maybe - */ - public function dontSeeLink($text, $url = null) { - $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeLink', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that current uri contains a value - * - * ``` php - * seeInCurrentUrl('home'); - * // to match: /users/1 - * $I->seeInCurrentUrl('/users/'); - * ?> - * ``` - * - * @param $uri - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::seeInCurrentUrl() - * @return \Codeception\Maybe - */ - public function canSeeInCurrentUrl($uri) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeInCurrentUrl', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that current uri contains a value - * - * ``` php - * seeInCurrentUrl('home'); - * // to match: /users/1 - * $I->seeInCurrentUrl('/users/'); - * ?> - * ``` - * - * @param $uri - * @see Codeception\Module\WebDriver::seeInCurrentUrl() - * @return \Codeception\Maybe - */ - public function seeInCurrentUrl($uri) { - $this->scenario->addStep(new \Codeception\Step\Assertion('seeInCurrentUrl', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that current url is equal to value. - * Unlike `seeInCurrentUrl` performs a strict check. - * - * ``` php - * seeCurrentUrlEquals('/'); - * ?> - * ``` - * - * @param $uri - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::seeCurrentUrlEquals() - * @return \Codeception\Maybe - */ - public function canSeeCurrentUrlEquals($uri) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlEquals', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that current url is equal to value. - * Unlike `seeInCurrentUrl` performs a strict check. - * - * ``` php - * seeCurrentUrlEquals('/'); - * ?> - * ``` - * - * @param $uri - * @see Codeception\Module\WebDriver::seeCurrentUrlEquals() - * @return \Codeception\Maybe - */ - public function seeCurrentUrlEquals($uri) { - $this->scenario->addStep(new \Codeception\Step\Assertion('seeCurrentUrlEquals', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that current url is matches a RegEx value - * - * ``` php - * seeCurrentUrlMatches('~$/users/(\d+)~'); - * ?> - * ``` - * - * @param $uri - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::seeCurrentUrlMatches() - * @return \Codeception\Maybe - */ - public function canSeeCurrentUrlMatches($uri) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlMatches', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that current url is matches a RegEx value - * - * ``` php - * seeCurrentUrlMatches('~$/users/(\d+)~'); - * ?> - * ``` - * - * @param $uri - * @see Codeception\Module\WebDriver::seeCurrentUrlMatches() - * @return \Codeception\Maybe - */ - public function seeCurrentUrlMatches($uri) { - $this->scenario->addStep(new \Codeception\Step\Assertion('seeCurrentUrlMatches', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that current uri does not contain a value - * - * ``` php - * dontSeeInCurrentUrl('/users/'); - * ?> - * ``` - * - * @param $uri - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::dontSeeInCurrentUrl() - * @return \Codeception\Maybe - */ - public function cantSeeInCurrentUrl($uri) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeInCurrentUrl', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that current uri does not contain a value - * - * ``` php - * dontSeeInCurrentUrl('/users/'); - * ?> - * ``` - * - * @param $uri - * @see Codeception\Module\WebDriver::dontSeeInCurrentUrl() - * @return \Codeception\Maybe - */ - public function dontSeeInCurrentUrl($uri) { - $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeInCurrentUrl', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that current url is not equal to value. - * Unlike `dontSeeInCurrentUrl` performs a strict check. - * - * ``` php - * dontSeeCurrentUrlEquals('/'); - * ?> - * ``` - * - * @param $uri - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::dontSeeCurrentUrlEquals() - * @return \Codeception\Maybe - */ - public function cantSeeCurrentUrlEquals($uri) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlEquals', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that current url is not equal to value. - * Unlike `dontSeeInCurrentUrl` performs a strict check. - * - * ``` php - * dontSeeCurrentUrlEquals('/'); - * ?> - * ``` - * - * @param $uri - * @see Codeception\Module\WebDriver::dontSeeCurrentUrlEquals() - * @return \Codeception\Maybe - */ - public function dontSeeCurrentUrlEquals($uri) { - $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeCurrentUrlEquals', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that current url does not match a RegEx value - * - * ``` php - * dontSeeCurrentUrlMatches('~$/users/(\d+)~'); - * ?> - * ``` - * - * @param $uri - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::dontSeeCurrentUrlMatches() - * @return \Codeception\Maybe - */ - public function cantSeeCurrentUrlMatches($uri) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlMatches', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that current url does not match a RegEx value - * - * ``` php - * dontSeeCurrentUrlMatches('~$/users/(\d+)~'); - * ?> - * ``` - * - * @param $uri - * @see Codeception\Module\WebDriver::dontSeeCurrentUrlMatches() - * @return \Codeception\Maybe - */ - public function dontSeeCurrentUrlMatches($uri) { - $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeCurrentUrlMatches', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Takes a parameters from current URI by RegEx. - * If no url provided returns full URI. - * - * ``` php - * grabFromCurrentUrl('~$/user/(\d+)/~'); - * $uri = $I->grabFromCurrentUrl(); - * ?> - * ``` - * - * @param null $uri - * @internal param $url - * @return mixed - * @see Codeception\Module\WebDriver::grabFromCurrentUrl() - * @return \Codeception\Maybe - */ - public function grabFromCurrentUrl($uri = null) { - $this->scenario->addStep(new \Codeception\Step\Action('grabFromCurrentUrl', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Assert if the specified checkbox is checked. - * Use css selector or xpath to match. + * Checks if element does not exist (or is visible) on a page, matching it by CSS or XPath * * Example: - * + * * ``` php * seeCheckboxIsChecked('#agree'); // I suppose user agreed to terms - * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user agreed to terms, If there is only one checkbox in form. - * $I->seeCheckboxIsChecked('//form/input[@type=checkbox and @name=agree]'); + * $I->dontSeeElement('.error'); + * $I->dontSeeElement('//form/input[1]'); * ?> * ``` - * - * @param $checkbox + * @param $selector * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::seeCheckboxIsChecked() + * @see Codeception\Util\Mink::dontSeeElement() * @return \Codeception\Maybe */ - public function canSeeCheckboxIsChecked($checkbox) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeCheckboxIsChecked', func_get_args())); + public function cantSeeElement($selector) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeElement', func_get_args())); if ($this->scenario->running()) { $result = $this->scenario->runStep(); return new Maybe($result); @@ -1027,25 +884,22 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Assert if the specified checkbox is checked. - * Use css selector or xpath to match. + * Checks if element does not exist (or is visible) on a page, matching it by CSS or XPath * * Example: - * + * * ``` php * seeCheckboxIsChecked('#agree'); // I suppose user agreed to terms - * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user agreed to terms, If there is only one checkbox in form. - * $I->seeCheckboxIsChecked('//form/input[@type=checkbox and @name=agree]'); + * $I->dontSeeElement('.error'); + * $I->dontSeeElement('//form/input[1]'); * ?> * ``` - * - * @param $checkbox - * @see Codeception\Module\WebDriver::seeCheckboxIsChecked() + * @param $selector + * @see Codeception\Util\Mink::dontSeeElement() * @return \Codeception\Maybe */ - public function seeCheckboxIsChecked($checkbox) { - $this->scenario->addStep(new \Codeception\Step\Assertion('seeCheckboxIsChecked', func_get_args())); + public function dontSeeElement($selector) { + $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeElement', func_get_args())); if ($this->scenario->running()) { $result = $this->scenario->runStep(); return new Maybe($result); @@ -1059,54 +913,12 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Assert if the specified checkbox is unchecked. - * Use css selector or xpath to match. - * - * Example: - * - * ``` php - * dontSeeCheckboxIsChecked('#agree'); // I suppose user didn't agree to terms - * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user didn't check the first checkbox in form. - * ?> - * ``` - * - * @param $checkbox - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::dontSeeCheckboxIsChecked() + * Reloads current page + * @see Codeception\Util\Mink::reloadPage() * @return \Codeception\Maybe */ - public function cantSeeCheckboxIsChecked($checkbox) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeCheckboxIsChecked', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Assert if the specified checkbox is unchecked. - * Use css selector or xpath to match. - * - * Example: - * - * ``` php - * dontSeeCheckboxIsChecked('#agree'); // I suppose user didn't agree to terms - * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user didn't check the first checkbox in form. - * ?> - * ``` - * - * @param $checkbox - * @see Codeception\Module\WebDriver::dontSeeCheckboxIsChecked() - * @return \Codeception\Maybe - */ - public function dontSeeCheckboxIsChecked($checkbox) { - $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeCheckboxIsChecked', func_get_args())); + public function reloadPage() { + $this->scenario->addStep(new \Codeception\Step\Action('reloadPage', func_get_args())); if ($this->scenario->running()) { $result = $this->scenario->runStep(); return new Maybe($result); @@ -1120,129 +932,61 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Checks that an input field or textarea contains value. - * Field is matched either by label or CSS or Xpath + * Moves back in history + * @see Codeception\Util\Mink::moveBack() + * @return \Codeception\Maybe + */ + public function moveBack() { + $this->scenario->addStep(new \Codeception\Step\Action('moveBack', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- * + * Moves forward in history + * @see Codeception\Util\Mink::moveForward() + * @return \Codeception\Maybe + */ + public function moveForward() { + $this->scenario->addStep(new \Codeception\Step\Action('moveForward', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Fills a text field or textarea with value. + * * Example: - * + * * ``` php * seeInField('Body','Type your comment here'); - * $I->seeInField('form textarea[name=body]','Type your comment here'); - * $I->seeInField('form input[type=hidden]','hidden_value'); - * $I->seeInField('#searchform input','Search'); - * $I->seeInField('//form/*[@name=search]','Search'); + * $I->fillField("//input[@type='text']", "Hello World!"); * ?> * ``` * * @param $field * @param $value - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::seeInField() + * @see Codeception\Util\Mink::fillField() * @return \Codeception\Maybe */ - public function canSeeInField($field, $value) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeInField', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that an input field or textarea contains value. - * Field is matched either by label or CSS or Xpath - * - * Example: - * - * ``` php - * seeInField('Body','Type your comment here'); - * $I->seeInField('form textarea[name=body]','Type your comment here'); - * $I->seeInField('form input[type=hidden]','hidden_value'); - * $I->seeInField('#searchform input','Search'); - * $I->seeInField('//form/*[@name=search]','Search'); - * ?> - * ``` - * - * @param $field - * @param $value - * @see Codeception\Module\WebDriver::seeInField() - * @return \Codeception\Maybe - */ - public function seeInField($field, $value) { - $this->scenario->addStep(new \Codeception\Step\Assertion('seeInField', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that an input field or textarea doesn't contain value. - * Field is matched either by label or CSS or Xpath - * Example: - * - * ``` php - * dontSeeInField('Body','Type your comment here'); - * $I->dontSeeInField('form textarea[name=body]','Type your comment here'); - * $I->dontSeeInField('form input[type=hidden]','hidden_value'); - * $I->dontSeeInField('#searchform input','Search'); - * $I->dontSeeInField('//form/*[@name=search]','Search'); - * ?> - * ``` - * - * @param $field - * @param $value - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::dontSeeInField() - * @return \Codeception\Maybe - */ - public function cantSeeInField($field, $value) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeInField', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that an input field or textarea doesn't contain value. - * Field is matched either by label or CSS or Xpath - * Example: - * - * ``` php - * dontSeeInField('Body','Type your comment here'); - * $I->dontSeeInField('form textarea[name=body]','Type your comment here'); - * $I->dontSeeInField('form input[type=hidden]','hidden_value'); - * $I->dontSeeInField('#searchform input','Search'); - * $I->dontSeeInField('//form/*[@name=search]','Search'); - * ?> - * ``` - * - * @param $field - * @param $value - * @see Codeception\Module\WebDriver::dontSeeInField() - * @return \Codeception\Maybe - */ - public function dontSeeInField($field, $value) { - $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeInField', func_get_args())); + public function fillField($field, $value) { + $this->scenario->addStep(new \Codeception\Step\Action('fillField', func_get_args())); if ($this->scenario->running()) { $result = $this->scenario->runStep(); return new Maybe($result); @@ -1278,7 +1022,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $select * @param $option - * @see Codeception\Module\WebDriver::selectOption() + * @see Codeception\Util\Mink::selectOption() * @return \Codeception\Maybe */ public function selectOption($select, $option) { @@ -1291,25 +1035,6 @@ class WebGuy extends \Codeception\AbstractGuy } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * - * @see Codeception\Module\WebDriver::unselectOption() - * @return \Codeception\Maybe - */ - public function unselectOption($select, $option) { - $this->scenario->addStep(new \Codeception\Step\Action('unselectOption', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - /** * This method is generated. * Documentation taken from corresponding module. @@ -1327,7 +1052,7 @@ class WebGuy extends \Codeception\AbstractGuy * ``` * * @param $option - * @see Codeception\Module\WebDriver::checkOption() + * @see Codeception\Util\Mink::checkOption() * @return \Codeception\Maybe */ public function checkOption($option) { @@ -1356,7 +1081,7 @@ class WebGuy extends \Codeception\AbstractGuy * ``` * * @param $option - * @see Codeception\Module\WebDriver::uncheckOption() + * @see Codeception\Util\Mink::uncheckOption() * @return \Codeception\Maybe */ public function uncheckOption($option) { @@ -1374,23 +1099,513 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Fills a text field or textarea with value. - * - * Example: - * + * Checks that current uri contains a value + * * ``` php * fillField("//input[@type='text']", "Hello World!"); + * // to match: /home/dashboard + * $I->seeInCurrentUrl('home'); + * // to match: /users/1 + * $I->seeInCurrentUrl('/users/'); * ?> * ``` * - * @param $field - * @param $value - * @see Codeception\Module\WebDriver::fillField() + * @param $uri + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Util\Mink::seeInCurrentUrl() * @return \Codeception\Maybe */ - public function fillField($field, $value) { - $this->scenario->addStep(new \Codeception\Step\Action('fillField', func_get_args())); + public function canSeeInCurrentUrl($uri) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeInCurrentUrl', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that current uri contains a value + * + * ``` php + * seeInCurrentUrl('home'); + * // to match: /users/1 + * $I->seeInCurrentUrl('/users/'); + * ?> + * ``` + * + * @param $uri + * @see Codeception\Util\Mink::seeInCurrentUrl() + * @return \Codeception\Maybe + */ + public function seeInCurrentUrl($uri) { + $this->scenario->addStep(new \Codeception\Step\Assertion('seeInCurrentUrl', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that current uri does not contain a value + * + * ``` php + * dontSeeInCurrentUrl('/users/'); + * ?> + * ``` + * + * @param $uri + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Util\Mink::dontSeeInCurrentUrl() + * @return \Codeception\Maybe + */ + public function cantSeeInCurrentUrl($uri) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeInCurrentUrl', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that current uri does not contain a value + * + * ``` php + * dontSeeInCurrentUrl('/users/'); + * ?> + * ``` + * + * @param $uri + * @see Codeception\Util\Mink::dontSeeInCurrentUrl() + * @return \Codeception\Maybe + */ + public function dontSeeInCurrentUrl($uri) { + $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeInCurrentUrl', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that current url is equal to value. + * Unlike `seeInCurrentUrl` performs a strict check. + * + * ``` php + * seeCurrentUrlEquals('/'); + * ?> + * ``` + * + * @param $uri + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Util\Mink::seeCurrentUrlEquals() + * @return \Codeception\Maybe + */ + public function canSeeCurrentUrlEquals($uri) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlEquals', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that current url is equal to value. + * Unlike `seeInCurrentUrl` performs a strict check. + * + * ``` php + * seeCurrentUrlEquals('/'); + * ?> + * ``` + * + * @param $uri + * @see Codeception\Util\Mink::seeCurrentUrlEquals() + * @return \Codeception\Maybe + */ + public function seeCurrentUrlEquals($uri) { + $this->scenario->addStep(new \Codeception\Step\Assertion('seeCurrentUrlEquals', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that current url is not equal to value. + * Unlike `dontSeeInCurrentUrl` performs a strict check. + * + * ``` php + * dontSeeCurrentUrlEquals('/'); + * ?> + * ``` + * + * @param $uri + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Util\Mink::dontSeeCurrentUrlEquals() + * @return \Codeception\Maybe + */ + public function cantSeeCurrentUrlEquals($uri) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlEquals', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that current url is not equal to value. + * Unlike `dontSeeInCurrentUrl` performs a strict check. + * + * ``` php + * dontSeeCurrentUrlEquals('/'); + * ?> + * ``` + * + * @param $uri + * @see Codeception\Util\Mink::dontSeeCurrentUrlEquals() + * @return \Codeception\Maybe + */ + public function dontSeeCurrentUrlEquals($uri) { + $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeCurrentUrlEquals', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that current url is matches a RegEx value + * + * ``` php + * seeCurrentUrlMatches('~$/users/(\d+)~'); + * ?> + * ``` + * + * @param $uri + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Util\Mink::seeCurrentUrlMatches() + * @return \Codeception\Maybe + */ + public function canSeeCurrentUrlMatches($uri) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlMatches', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that current url is matches a RegEx value + * + * ``` php + * seeCurrentUrlMatches('~$/users/(\d+)~'); + * ?> + * ``` + * + * @param $uri + * @see Codeception\Util\Mink::seeCurrentUrlMatches() + * @return \Codeception\Maybe + */ + public function seeCurrentUrlMatches($uri) { + $this->scenario->addStep(new \Codeception\Step\Assertion('seeCurrentUrlMatches', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that current url does not match a RegEx value + * + * ``` php + * dontSeeCurrentUrlMatches('~$/users/(\d+)~'); + * ?> + * ``` + * + * @param $uri + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Util\Mink::dontSeeCurrentUrlMatches() + * @return \Codeception\Maybe + */ + public function cantSeeCurrentUrlMatches($uri) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlMatches', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that current url does not match a RegEx value + * + * ``` php + * dontSeeCurrentUrlMatches('~$/users/(\d+)~'); + * ?> + * ``` + * + * @param $uri + * @see Codeception\Util\Mink::dontSeeCurrentUrlMatches() + * @return \Codeception\Maybe + */ + public function dontSeeCurrentUrlMatches($uri) { + $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeCurrentUrlMatches', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that cookie is set. + * + * @param $cookie + * @return mixed + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Util\Mink::seeCookie() + * @return \Codeception\Maybe + */ + public function canSeeCookie($cookie) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeCookie', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that cookie is set. + * + * @param $cookie + * @return mixed + * @see Codeception\Util\Mink::seeCookie() + * @return \Codeception\Maybe + */ + public function seeCookie($cookie) { + $this->scenario->addStep(new \Codeception\Step\Assertion('seeCookie', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that cookie doesn't exist + * + * @param $cookie + * @return mixed + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Util\Mink::dontSeeCookie() + * @return \Codeception\Maybe + */ + public function cantSeeCookie($cookie) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeCookie', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that cookie doesn't exist + * + * @param $cookie + * @return mixed + * @see Codeception\Util\Mink::dontSeeCookie() + * @return \Codeception\Maybe + */ + public function dontSeeCookie($cookie) { + $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeCookie', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Sets a cookie. + * + * @param $cookie + * @param $value + * @return mixed + * @see Codeception\Util\Mink::setCookie() + * @return \Codeception\Maybe + */ + public function setCookie($cookie, $value) { + $this->scenario->addStep(new \Codeception\Step\Action('setCookie', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Unsets cookie + * + * @param $cookie + * @return mixed + * @see Codeception\Util\Mink::resetCookie() + * @return \Codeception\Maybe + */ + public function resetCookie($cookie) { + $this->scenario->addStep(new \Codeception\Step\Action('resetCookie', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Grabs a cookie value. + * + * @param $cookie + * @return mixed + * @see Codeception\Util\Mink::grabCookie() + * @return \Codeception\Maybe + */ + public function grabCookie($cookie) { + $this->scenario->addStep(new \Codeception\Step\Action('grabCookie', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Takes a parameters from current URI by RegEx. + * If no url provided returns full URI. + * + * ``` php + * grabFromCurrentUrl('~$/user/(\d+)/~'); + * $uri = $I->grabFromCurrentUrl(); + * ?> + * ``` + * + * @param null $uri + * @internal param $url + * @return mixed + * @see Codeception\Util\Mink::grabFromCurrentUrl() + * @return \Codeception\Maybe + */ + public function grabFromCurrentUrl($uri = null) { + $this->scenario->addStep(new \Codeception\Step\Action('grabFromCurrentUrl', func_get_args())); if ($this->scenario->running()) { $result = $this->scenario->runStep(); return new Maybe($result); @@ -1417,7 +1632,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $field * @param $filename - * @see Codeception\Module\WebDriver::attachFile() + * @see Codeception\Util\Mink::attachFile() * @return \Codeception\Maybe */ public function attachFile($field, $filename) { @@ -1430,6 +1645,256 @@ class WebGuy extends \Codeception\AbstractGuy } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks if option is selected in select field. + * + * ``` php + * seeOptionIsSelected('#form input[name=payment]', 'Visa'); + * ?> + * ``` + * + * @param $selector + * @param $optionText + * @return mixed + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Util\Mink::seeOptionIsSelected() + * @return \Codeception\Maybe + */ + public function canSeeOptionIsSelected($select, $text) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeOptionIsSelected', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks if option is selected in select field. + * + * ``` php + * seeOptionIsSelected('#form input[name=payment]', 'Visa'); + * ?> + * ``` + * + * @param $selector + * @param $optionText + * @return mixed + * @see Codeception\Util\Mink::seeOptionIsSelected() + * @return \Codeception\Maybe + */ + public function seeOptionIsSelected($select, $text) { + $this->scenario->addStep(new \Codeception\Step\Assertion('seeOptionIsSelected', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks if option is not selected in select field. + * + * ``` php + * dontSeeOptionIsSelected('#form input[name=payment]', 'Visa'); + * ?> + * ``` + * + * @param $selector + * @param $optionText + * @return mixed + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Util\Mink::dontSeeOptionIsSelected() + * @return \Codeception\Maybe + */ + public function cantSeeOptionIsSelected($select, $text) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeOptionIsSelected', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks if option is not selected in select field. + * + * ``` php + * dontSeeOptionIsSelected('#form input[name=payment]', 'Visa'); + * ?> + * ``` + * + * @param $selector + * @param $optionText + * @return mixed + * @see Codeception\Util\Mink::dontSeeOptionIsSelected() + * @return \Codeception\Maybe + */ + public function dontSeeOptionIsSelected($select, $text) { + $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeOptionIsSelected', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that an input field or textarea contains value. + * Field is matched either by label or CSS or Xpath + * + * Example: + * + * ``` php + * seeInField('Body','Type your comment here'); + * $I->seeInField('form textarea[name=body]','Type your comment here'); + * $I->seeInField('form input[type=hidden]','hidden_value'); + * $I->seeInField('#searchform input','Search'); + * $I->seeInField('//form/*[@name=search]','Search'); + * ?> + * ``` + * + * @param $field + * @param $value + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Util\Mink::seeInField() + * @return \Codeception\Maybe + */ + public function canSeeInField($field, $value) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeInField', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that an input field or textarea contains value. + * Field is matched either by label or CSS or Xpath + * + * Example: + * + * ``` php + * seeInField('Body','Type your comment here'); + * $I->seeInField('form textarea[name=body]','Type your comment here'); + * $I->seeInField('form input[type=hidden]','hidden_value'); + * $I->seeInField('#searchform input','Search'); + * $I->seeInField('//form/*[@name=search]','Search'); + * ?> + * ``` + * + * @param $field + * @param $value + * @see Codeception\Util\Mink::seeInField() + * @return \Codeception\Maybe + */ + public function seeInField($field, $value) { + $this->scenario->addStep(new \Codeception\Step\Assertion('seeInField', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that an input field or textarea doesn't contain value. + * Field is matched either by label or CSS or Xpath + * Example: + * + * ``` php + * dontSeeInField('Body','Type your comment here'); + * $I->dontSeeInField('form textarea[name=body]','Type your comment here'); + * $I->dontSeeInField('form input[type=hidden]','hidden_value'); + * $I->dontSeeInField('#searchform input','Search'); + * $I->dontSeeInField('//form/*[@name=search]','Search'); + * ?> + * ``` + * + * @param $field + * @param $value + * Conditional Assertion: Test won't be stopped on fail + * @see Codeception\Util\Mink::dontSeeInField() + * @return \Codeception\Maybe + */ + public function cantSeeInField($field, $value) { + $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeInField', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Checks that an input field or textarea doesn't contain value. + * Field is matched either by label or CSS or Xpath + * Example: + * + * ``` php + * dontSeeInField('Body','Type your comment here'); + * $I->dontSeeInField('form textarea[name=body]','Type your comment here'); + * $I->dontSeeInField('form input[type=hidden]','hidden_value'); + * $I->dontSeeInField('#searchform input','Search'); + * $I->dontSeeInField('//form/*[@name=search]','Search'); + * ?> + * ``` + * + * @param $field + * @param $value + * @see Codeception\Util\Mink::dontSeeInField() + * @return \Codeception\Maybe + */ + public function dontSeeInField($field, $value) { + $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeInField', func_get_args())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + /** * This method is generated. * Documentation taken from corresponding module. @@ -1450,7 +1915,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $cssOrXPathOrRegex * @return mixed - * @see Codeception\Module\WebDriver::grabTextFrom() + * @see Codeception\Util\Mink::grabTextFrom() * @return \Codeception\Maybe */ public function grabTextFrom($cssOrXPathOrRegex) { @@ -1483,7 +1948,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $field * @return mixed - * @see Codeception\Module\WebDriver::grabValueFrom() + * @see Codeception\Util\Mink::grabValueFrom() * @return \Codeception\Maybe */ public function grabValueFrom($field) { @@ -1496,322 +1961,6 @@ class WebGuy extends \Codeception\AbstractGuy } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks for a visible element on a page, matching it by CSS or XPath - * - * ``` php - * seeElement('.error'); - * $I->seeElement('//form/input[1]'); - * ?> - * ``` - * @param $selector - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::seeElement() - * @return \Codeception\Maybe - */ - public function canSeeElement($selector) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeElement', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks for a visible element on a page, matching it by CSS or XPath - * - * ``` php - * seeElement('.error'); - * $I->seeElement('//form/input[1]'); - * ?> - * ``` - * @param $selector - * @see Codeception\Module\WebDriver::seeElement() - * @return \Codeception\Maybe - */ - public function seeElement($selector) { - $this->scenario->addStep(new \Codeception\Step\Assertion('seeElement', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that element is invisible or not present on page. - * - * ``` php - * dontSeeElement('.error'); - * $I->dontSeeElement('//form/input[1]'); - * ?> - * ``` - * - * @param $selector - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::dontSeeElement() - * @return \Codeception\Maybe - */ - public function cantSeeElement($selector) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeElement', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that element is invisible or not present on page. - * - * ``` php - * dontSeeElement('.error'); - * $I->dontSeeElement('//form/input[1]'); - * ?> - * ``` - * - * @param $selector - * @see Codeception\Module\WebDriver::dontSeeElement() - * @return \Codeception\Maybe - */ - public function dontSeeElement($selector) { - $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeElement', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks if element exists on a page even it is invisible. - * - * ``` php - * seeElementInDOM('//form/input[type=hidden]'); - * ?> - * ``` - * - * @param $selector - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::seeElementInDOM() - * @return \Codeception\Maybe - */ - public function canSeeElementInDOM($selector) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeElementInDOM', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks if element exists on a page even it is invisible. - * - * ``` php - * seeElementInDOM('//form/input[type=hidden]'); - * ?> - * ``` - * - * @param $selector - * @see Codeception\Module\WebDriver::seeElementInDOM() - * @return \Codeception\Maybe - */ - public function seeElementInDOM($selector) { - $this->scenario->addStep(new \Codeception\Step\Assertion('seeElementInDOM', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Opposite to `seeElementInDOM`. - * - * @param $selector - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::dontSeeElementInDOM() - * @return \Codeception\Maybe - */ - public function cantSeeElementInDOM($selector) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeElementInDOM', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Opposite to `seeElementInDOM`. - * - * @param $selector - * @see Codeception\Module\WebDriver::dontSeeElementInDOM() - * @return \Codeception\Maybe - */ - public function dontSeeElementInDOM($selector) { - $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeElementInDOM', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks if option is selected in select field. - * - * ``` php - * seeOptionIsSelected('#form input[name=payment]', 'Visa'); - * ?> - * ``` - * - * @param $selector - * @param $optionText - * @return mixed - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::seeOptionIsSelected() - * @return \Codeception\Maybe - */ - public function canSeeOptionIsSelected($selector, $optionText) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeOptionIsSelected', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks if option is selected in select field. - * - * ``` php - * seeOptionIsSelected('#form input[name=payment]', 'Visa'); - * ?> - * ``` - * - * @param $selector - * @param $optionText - * @return mixed - * @see Codeception\Module\WebDriver::seeOptionIsSelected() - * @return \Codeception\Maybe - */ - public function seeOptionIsSelected($selector, $optionText) { - $this->scenario->addStep(new \Codeception\Step\Assertion('seeOptionIsSelected', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks if option is not selected in select field. - * - * ``` php - * dontSeeOptionIsSelected('#form input[name=payment]', 'Visa'); - * ?> - * ``` - * - * @param $selector - * @param $optionText - * @return mixed - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::dontSeeOptionIsSelected() - * @return \Codeception\Maybe - */ - public function cantSeeOptionIsSelected($selector, $optionText) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeOptionIsSelected', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks if option is not selected in select field. - * - * ``` php - * dontSeeOptionIsSelected('#form input[name=payment]', 'Visa'); - * ?> - * ``` - * - * @param $selector - * @param $optionText - * @return mixed - * @see Codeception\Module\WebDriver::dontSeeOptionIsSelected() - * @return \Codeception\Maybe - */ - public function dontSeeOptionIsSelected($selector, $optionText) { - $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeOptionIsSelected', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - /** * This method is generated. * Documentation taken from corresponding module. @@ -1828,7 +1977,7 @@ class WebGuy extends \Codeception\AbstractGuy * @param $title * @return mixed * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::seeInTitle() + * @see Codeception\Util\Mink::seeInTitle() * @return \Codeception\Maybe */ public function canSeeInTitle($title) { @@ -1854,7 +2003,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $title * @return mixed - * @see Codeception\Module\WebDriver::seeInTitle() + * @see Codeception\Util\Mink::seeInTitle() * @return \Codeception\Maybe */ public function seeInTitle($title) { @@ -1877,7 +2026,7 @@ class WebGuy extends \Codeception\AbstractGuy * @param $title * @return mixed * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::dontSeeInTitle() + * @see Codeception\Util\Mink::dontSeeInTitle() * @return \Codeception\Maybe */ public function cantSeeInTitle($title) { @@ -1897,7 +2046,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $title * @return mixed - * @see Codeception\Module\WebDriver::dontSeeInTitle() + * @see Codeception\Util\Mink::dontSeeInTitle() * @return \Codeception\Maybe */ public function dontSeeInTitle($title) { @@ -1908,776 +2057,5 @@ class WebGuy extends \Codeception\AbstractGuy } return new Maybe(); } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Accepts JavaScript native popup window created by `window.alert`|`window.confirm`|`window.prompt`. - * Don't confuse it with modal windows, created by [various libraries](http://jster.net/category/windows-modals-popups). - * - * @see Codeception\Module\WebDriver::acceptPopup() - * @return \Codeception\Maybe - */ - public function acceptPopup() { - $this->scenario->addStep(new \Codeception\Step\Action('acceptPopup', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Dismisses active JavaScript popup created by `window.alert`|`window.confirm`|`window.prompt`. - * @see Codeception\Module\WebDriver::cancelPopup() - * @return \Codeception\Maybe - */ - public function cancelPopup() { - $this->scenario->addStep(new \Codeception\Step\Action('cancelPopup', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that active JavaScript popup created by `window.alert`|`window.confirm`|`window.prompt` contain text. - * - * @param $text - * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Module\WebDriver::seeInPopup() - * @return \Codeception\Maybe - */ - public function canSeeInPopup($text) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeInPopup', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Checks that active JavaScript popup created by `window.alert`|`window.confirm`|`window.prompt` contain text. - * - * @param $text - * @see Codeception\Module\WebDriver::seeInPopup() - * @return \Codeception\Maybe - */ - public function seeInPopup($text) { - $this->scenario->addStep(new \Codeception\Step\Assertion('seeInPopup', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Enters text into native JavaScript prompt popup created by `window.prompt`. - * - * @param $keys - * @see Codeception\Module\WebDriver::typeInPopup() - * @return \Codeception\Maybe - */ - public function typeInPopup($keys) { - $this->scenario->addStep(new \Codeception\Step\Action('typeInPopup', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Reloads current page - * @see Codeception\Module\WebDriver::reloadPage() - * @return \Codeception\Maybe - */ - public function reloadPage() { - $this->scenario->addStep(new \Codeception\Step\Action('reloadPage', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Moves back in history - * @see Codeception\Module\WebDriver::moveBack() - * @return \Codeception\Maybe - */ - public function moveBack() { - $this->scenario->addStep(new \Codeception\Step\Action('moveBack', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Moves forward in history - * @see Codeception\Module\WebDriver::moveForward() - * @return \Codeception\Maybe - */ - public function moveForward() { - $this->scenario->addStep(new \Codeception\Step\Action('moveForward', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Submits a form located on page. - * Specify the form by it's css or xpath selector. - * Fill the form fields values as array. Hidden fields can't be accessed. - * - * This command itself triggers the request to form's action. - * - * Examples: - * - * ``` php - * submitForm('#login', array('login' => 'davert', 'password' => '123456')); - * - * ``` - * - * For sample Sign Up form: - * - * ``` html - *
- * Login:
- * Password:
- * Do you agree to out terms?
- * Select pricing plan - * - *
- * ``` - * You can write this: - * - * ``` php - * submitForm('#userForm', array('user' => array('login' => 'Davert', 'password' => '123456', 'agree' => true))); - * - * ``` - * - * @param $selector - * @param $params - * @throws \Codeception\Exception\ElementNotFound - * @see Codeception\Module\WebDriver::submitForm() - * @return \Codeception\Maybe - */ - public function submitForm($selector, $params) { - $this->scenario->addStep(new \Codeception\Step\Action('submitForm', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Waits until element has changed according to callback function or for $time seconds to pass. - * - * ``` php - * waitForElementChange('#menu', function(\WebDriverElement $el) { - * return $el->isDisplayed(); - * }, 100); - * ?> - * ``` - * - * @param $element - * @param \Closure $callback - * @param int $timeout seconds - * @throws \Codeception\Exception\ElementNotFound - * @see Codeception\Module\WebDriver::waitForElementChange() - * @return \Codeception\Maybe - */ - public function waitForElementChange($element, $callback, $timeout = null) { - $this->scenario->addStep(new \Codeception\Step\Action('waitForElementChange', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Waits for element to appear on page for $timeout seconds to pass. - * If element not appears, timeout exception is thrown. - * - * ``` php - * waitForElement('#agree_button', 30); // secs - * $I->click('#agree_button'); - * ?> - * ``` - * - * @param $element - * @param int $timeout seconds - * @throws \Exception - * @see Codeception\Module\WebDriver::waitForElement() - * @return \Codeception\Maybe - */ - public function waitForElement($element, $timeout = null) { - $this->scenario->addStep(new \Codeception\Step\Action('waitForElement', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Waits for element to be visible on the page for $timeout seconds to pass. - * If element doesn't appear, timeout exception is thrown. - * - * ``` php - * waitForElementVisible('#agree_button', 30); // secs - * $I->click('#agree_button'); - * ?> - * ``` - * - * @param $element - * @param int $timeout seconds - * @throws \Exception - * @see Codeception\Module\WebDriver::waitForElementVisible() - * @return \Codeception\Maybe - */ - public function waitForElementVisible($element, $timeout = null) { - $this->scenario->addStep(new \Codeception\Step\Action('waitForElementVisible', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Waits for element to not be visible on the page for $timeout seconds to pass. - * If element stays visible, timeout exception is thrown. - * - * ``` php - * waitForElementNotVisible('#agree_button', 30); // secs - * ?> - * ``` - * - * @param $element - * @param int $timeout seconds - * @throws \Exception - * @see Codeception\Module\WebDriver::waitForElementNotVisible() - * @return \Codeception\Maybe - */ - public function waitForElementNotVisible($element, $timeout = null) { - $this->scenario->addStep(new \Codeception\Step\Action('waitForElementNotVisible', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Waits for text to appear on the page for a specific amount of time. - * Can also be passed a selector to search in. - * If text does not appear, timeout exception is thrown. - * - * ``` php - * waitForText('foo', 30); // secs - * $I->waitForText('foo', 30, '.title'); // secs - * ?> - * ``` - * - * @param string $text - * @param int $timeout seconds - * @param null $selector - * @throws \Exception - * @internal param string $element - * @see Codeception\Module\WebDriver::waitForText() - * @return \Codeception\Maybe - */ - public function waitForText($text, $timeout = null, $selector = null) { - $this->scenario->addStep(new \Codeception\Step\Action('waitForText', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Explicit wait. - * - * @param $timeout secs - * @see Codeception\Module\WebDriver::wait() - * @return \Codeception\Maybe - */ - public function wait($timeout) { - $this->scenario->addStep(new \Codeception\Step\Action('wait', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Low-level API method. - * If Codeception commands are not enough, use Selenium WebDriver methods directly - * - * ``` php - * $I->executeInSelenium(function(\WebDriver $webdriver) { - * $webdriver->get('http://google.com'); - * }); - * ``` - * - * Use [WebDriver Session API](https://github.com/facebook/php-webdriver) - * Not recommended this command too be used on regular basis. - * If Codeception lacks important Selenium methods implement then and submit patches. - * - * @param callable $function - * @see Codeception\Module\WebDriver::executeInSelenium() - * @return \Codeception\Maybe - */ - public function executeInSelenium($function) { - $this->scenario->addStep(new \Codeception\Step\Action('executeInSelenium', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Switch to another window identified by its name. - * - * The window can only be identified by its name. If the $name parameter is blank it will switch to the parent window. - * - * Example: - * ``` html - * - * ``` - * - * ``` php - * click("Open window"); - * # switch to another window - * $I->switchToWindow("another_window"); - * # switch to parent window - * $I->switchToWindow(); - * ?> - * ``` - * - * If the window has no name, the only way to access it is via the `executeInSelenium()` method like so: - * - * ``` - * executeInSelenium(function (\Webdriver $webdriver) { - * $handles=$webDriver->getWindowHandles(); - * $last_window = end($handles); - * $webDriver->switchTo()->window($name); - * }); - * ?> - * ``` - * - * @param string|null $name - * @see Codeception\Module\WebDriver::switchToWindow() - * @return \Codeception\Maybe - */ - public function switchToWindow($name = null) { - $this->scenario->addStep(new \Codeception\Step\Action('switchToWindow', func_get_args())); - if ($this->scenario->running()) { - $result = $this->scenario->runStep(); - return new Maybe($result); - } - return new Maybe(); - } - - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Switch to another frame - * - * Example: - * ``` html - *