diff --git a/tests/_bootstrap.php b/tests/_bootstrap.php new file mode 100644 index 0000000..b3d9bbc --- /dev/null +++ b/tests/_bootstrap.php @@ -0,0 +1 @@ +guy = $I; + } + + /** + * @return $this + */ + public static function of($I) + { + return new static($I); + } + +} diff --git a/tests/_pages/ContactPage.php b/tests/_pages/ContactPage.php new file mode 100644 index 0000000..b5694c2 --- /dev/null +++ b/tests/_pages/ContactPage.php @@ -0,0 +1,63 @@ +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 new file mode 100644 index 0000000..87d5e99 --- /dev/null +++ b/tests/_pages/LoginPage.php @@ -0,0 +1,40 @@ +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 index 4965d89..78d590c 100644 --- a/tests/acceptance.suite.dist.yml +++ b/tests/acceptance.suite.dist.yml @@ -11,8 +11,9 @@ class_name: WebGuy modules: enabled: - - PhpBrowser - WebHelper + - WebDriver config: - PhpBrowser: - url: 'http://localhost/index-test.php' + WebDriver: + url: 'http://localhost/basic/web/index-test-accept.php' + browser: firefox diff --git a/tests/acceptance/AboutCept.php b/tests/acceptance/AboutCept.php index 65102c7..7e95f80 100644 --- a/tests/acceptance/AboutCept.php +++ b/tests/acceptance/AboutCept.php @@ -1,5 +1,7 @@ wantTo('ensure that about works'); -$I->amOnPage('?r=site/about'); +$I->amOnPage(AboutPage::$URL); $I->see('About', 'h1'); diff --git a/tests/acceptance/ContactCept.php b/tests/acceptance/ContactCept.php index 5ec5641..de7e642 100644 --- a/tests/acceptance/ContactCept.php +++ b/tests/acceptance/ContactCept.php @@ -1,10 +1,16 @@ wantTo('ensure that contact works'); -$I->amOnPage('?r=site/contact'); +$contactPage = ContactPage::of($I); + +$I->amOnPage(ContactPage::$URL); $I->see('Contact', 'h1'); -$I->submitForm('#contact-form', []); +$I->amGoingTo('submit contact form with no data'); +$contactPage->submit([]); +$I->expectTo('see validations errors'); $I->see('Contact', 'h1'); $I->see('Name cannot be blank'); $I->see('Email cannot be blank'); @@ -12,25 +18,29 @@ $I->see('Subject cannot be blank'); $I->see('Body cannot be blank'); $I->see('The verification code is incorrect'); -$I->submitForm('#contact-form', [ - 'ContactForm[name]' => 'tester', - 'ContactForm[email]' => 'tester.email', - 'ContactForm[subject]' => 'test subject', - 'ContactForm[body]' => 'test content', - 'ContactForm[verifyCode]' => 'testme', +$I->amGoingTo('submit contact form with not correct email'); +$contactPage->submit([ + 'name' => 'tester', + 'email' => 'tester.email', + 'subject' => 'test subject', + 'body' => 'test content', + 'verifyCode' => 'testme', ]); +$I->expectTo('see that email adress is wrong'); $I->dontSee('Name cannot be blank', '.help-inline'); $I->see('Email is not a valid email address.'); $I->dontSee('Subject cannot be blank', '.help-inline'); $I->dontSee('Body cannot be blank', '.help-inline'); $I->dontSee('The verification code is incorrect', '.help-inline'); -$I->submitForm('#contact-form', [ - 'ContactForm[name]' => 'tester', - 'ContactForm[email]' => 'tester@example.com', - 'ContactForm[subject]' => 'test subject', - 'ContactForm[body]' => 'test content', - 'ContactForm[verifyCode]' => 'testme', +$I->amGoingTo('submit contact form with correct data'); +$contactPage->submit([ + 'name' => 'tester', + 'email' => 'tester@example.com', + 'subject' => 'test subject', + 'body' => 'test content', + 'verifyCode' => 'testme', ]); +$I->wait(3); $I->dontSeeElement('#contact-form'); $I->see('Thank you for contacting us. We will respond to you as soon as possible.'); diff --git a/tests/acceptance/LoginCept.php b/tests/acceptance/LoginCept.php index 5621b15..ba939ff 100644 --- a/tests/acceptance/LoginCept.php +++ b/tests/acceptance/LoginCept.php @@ -1,23 +1,26 @@ wantTo('ensure that login works'); -$I->amOnPage('?r=site/login'); +$loginPage = LoginPage::of($I); + +$I->amOnPage(LoginPage::$URL); $I->see('Login', 'h1'); -$I->submitForm('#login-form', []); -$I->dontSee('Logout (admin)'); -$I->see('Username cannot be blank'); -$I->see('Password cannot be blank'); +$I->amGoingTo('try to login with empty credentials'); +$loginPage->login('', ''); +$I->expectTo('see validations errors'); +$I->see('Username cannot be blank.'); +$I->see('Password cannot be blank.'); -$I->submitForm('#login-form', [ - 'LoginForm[username]' => 'admin', - 'LoginForm[password]' => 'wrong', -]); -$I->dontSee('Logout (admin)'); -$I->see('Incorrect username or password'); +$I->amGoingTo('try to login with wrong credentials'); +$loginPage->login('admin', 'wrong'); +$I->expectTo('see validations errors'); +$I->see('Incorrect username or password.'); -$I->submitForm('#login-form', [ - 'LoginForm[username]' => 'admin', - 'LoginForm[password]' => 'admin', -]); +$I->amGoingTo('try to login with correct credentials'); +$loginPage->login('admin', 'admin'); +$I->wait(3); +$I->expectTo('see user info'); $I->see('Logout (admin)'); diff --git a/tests/acceptance/WebGuy.php b/tests/acceptance/WebGuy.php index 5f74a2c..77fd17a 100644 --- a/tests/acceptance/WebGuy.php +++ b/tests/acceptance/WebGuy.php @@ -5,8 +5,8 @@ use \Codeception\Maybe; -use Codeception\Module\PhpBrowser; use Codeception\Module\WebHelper; +use Codeception\Module\WebDriver; /** * Inherited methods @@ -26,55 +26,18 @@ use Codeception\Module\WebHelper; class WebGuy extends \Codeception\AbstractGuy { - + /** * 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. * - * Skipped fields will be filled by their values from page. - * You don't need to click the 'Submit' button afterwards. - * 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 - * - *
- * ``` - * 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() + * @see Codeception\Module::getName() * @return \Codeception\Maybe */ - public function submitForm($selector, $params) { - $this->scenario->addStep(new \Codeception\Step\Action('submitForm', func_get_args())); + public function getName() { + $this->scenario->addStep(new \Codeception\Step\Action('getName', func_get_args())); if ($this->scenario->running()) { $result = $this->scenario->runStep(); return new Maybe($result); @@ -82,357 +45,7 @@ class WebGuy extends \Codeception\AbstractGuy 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. - * ---------------------------------------------- - * - * 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. @@ -454,7 +67,7 @@ class WebGuy extends \Codeception\AbstractGuy * ``` * @param $subdomain * @return mixed - * @see Codeception\Util\Mink::amOnSubdomain() + * @see Codeception\Module\WebDriver::amOnSubdomain() * @return \Codeception\Maybe */ public function amOnSubdomain($subdomain) { @@ -466,22 +79,80 @@ class WebGuy extends \Codeception\AbstractGuy return new Maybe(); } - + /** * This method is generated. * Documentation taken from corresponding module. * ---------------------------------------------- * - * @param string $text - * @param string $selector + * Makes a screenshot of current window and saves it to `tests/_log/debug`. * - * @return void + * ``` 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 * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::dontSee() + * @see Codeception\Module\WebDriver::seeCookie() * @return \Codeception\Maybe */ - public function cantSee($text, $selector = null) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSee', func_get_args())); + 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); @@ -493,15 +164,15 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * @param string $text - * @param string $selector + * Checks that cookie is set. * - * @return void - * @see Codeception\Util\Mink::dontSee() + * @param $cookie + * @return mixed + * @see Codeception\Module\WebDriver::seeCookie() * @return \Codeception\Maybe */ - public function dontSee($text, $selector = null) { - $this->scenario->addStep(new \Codeception\Step\Assertion('dontSee', func_get_args())); + 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); @@ -509,7 +180,150 @@ class WebGuy extends \Codeception\AbstractGuy 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())); + if ($this->scenario->running()) { + $result = $this->scenario->runStep(); + return new Maybe($result); + } + return new Maybe(); + } + + /** * This method is generated. * Documentation taken from corresponding module. @@ -531,7 +345,7 @@ class WebGuy extends \Codeception\AbstractGuy * @param $text * @param null $selector * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::see() + * @see Codeception\Module\WebDriver::see() * @return \Codeception\Maybe */ public function canSee($text, $selector = null) { @@ -562,7 +376,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $text * @param null $selector - * @see Codeception\Util\Mink::see() + * @see Codeception\Module\WebDriver::see() * @return \Codeception\Maybe */ public function see($text, $selector = null) { @@ -574,32 +388,33 @@ class WebGuy extends \Codeception\AbstractGuy return new Maybe(); } - + /** * This method is generated. * Documentation taken from corresponding module. * ---------------------------------------------- * - * Checks if there is a link with text specified. - * Specify url to match link with exact this url. + * Check if current page doesn't contain the text specified. + * Specify the css selector to match only specific region. * * Examples: * - * ``` php + * ```php * seeLink('Logout'); // matches Logout - * $I->seeLink('Logout','/logout'); // matches Logout + * $I->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 * ?> * ``` * * @param $text - * @param null $url + * @param null $selector * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::seeLink() + * @see Codeception\Module\WebDriver::dontSee() * @return \Codeception\Maybe */ - public function canSeeLink($text, $url = null) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeLink', 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); @@ -611,25 +426,26 @@ 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. + * Check if current page doesn't contain the text specified. + * Specify the css selector to match only specific region. * * Examples: * - * ``` php + * ```php * seeLink('Logout'); // matches Logout - * $I->seeLink('Logout','/logout'); // matches Logout + * $I->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 * ?> * ``` * * @param $text - * @param null $url - * @see Codeception\Util\Mink::seeLink() + * @param null $selector + * @see Codeception\Module\WebDriver::dontSee() * @return \Codeception\Maybe */ - public function seeLink($text, $url = null) { - $this->scenario->addStep(new \Codeception\Step\Assertion('seeLink', 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); @@ -637,68 +453,7 @@ class WebGuy extends \Codeception\AbstractGuy 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); - } - return new Maybe(); - } - - + /** * This method is generated. * Documentation taken from corresponding module. @@ -732,7 +487,7 @@ class WebGuy extends \Codeception\AbstractGuy * ``` * @param $link * @param $context - * @see Codeception\Util\Mink::click() + * @see Codeception\Module\WebDriver::click() * @return \Codeception\Maybe */ public function click($link, $context = null) { @@ -744,27 +499,32 @@ class WebGuy extends \Codeception\AbstractGuy return new Maybe(); } - + /** * This method is generated. * Documentation taken from corresponding module. * ---------------------------------------------- * - * Checks if element exists on a page, matching it by CSS or XPath + * Checks if there is a link with text specified. + * Specify url to match link with exact this url. + * + * Examples: * * ``` php * seeElement('.error'); - * $I->seeElement('//form/input[1]'); + * $I->seeLink('Logout'); // matches Logout + * $I->seeLink('Logout','/logout'); // matches Logout * ?> * ``` - * @param $selector + * + * @param $text + * @param null $url * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::seeElement() + * @see Codeception\Module\WebDriver::seeLink() * @return \Codeception\Maybe */ - public function canSeeElement($selector) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeElement', 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); @@ -776,20 +536,25 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Checks if element exists on a page, matching it by CSS or XPath + * Checks if there is a link with text specified. + * Specify url to match link with exact this url. + * + * Examples: * * ``` php * seeElement('.error'); - * $I->seeElement('//form/input[1]'); + * $I->seeLink('Logout'); // matches Logout + * $I->seeLink('Logout','/logout'); // matches Logout * ?> * ``` - * @param $selector - * @see Codeception\Util\Mink::seeElement() + * + * @param $text + * @param null $url + * @see Codeception\Module\WebDriver::seeLink() * @return \Codeception\Maybe */ - public function seeElement($selector) { - $this->scenario->addStep(new \Codeception\Step\Assertion('seeElement', 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); @@ -797,29 +562,31 @@ class WebGuy extends \Codeception\AbstractGuy return new Maybe(); } - + /** * This method is generated. * Documentation taken from corresponding module. * ---------------------------------------------- * - * Checks if element does not exist (or is visible) on a page, matching it by CSS or XPath + * Checks if page doesn't contain the link with text specified. + * Specify url to narrow the results. * - * Example: + * Examples: * * ``` php * dontSeeElement('.error'); - * $I->dontSeeElement('//form/input[1]'); + * $I->dontSeeLink('Logout'); // I suppose user is not logged in * ?> * ``` - * @param $selector + * + * @param $text + * @param null $url * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::dontSeeElement() + * @see Codeception\Module\WebDriver::dontSeeLink() * @return \Codeception\Maybe */ - public function cantSeeElement($selector) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeElement', func_get_args())); + 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); @@ -831,109 +598,24 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Checks if element does not exist (or is visible) on a page, matching it by CSS or XPath + * Checks if page doesn't contain the link with text specified. + * Specify url to narrow the results. * - * Example: + * Examples: * * ``` php * dontSeeElement('.error'); - * $I->dontSeeElement('//form/input[1]'); - * ?> - * ``` - * @param $selector - * @see Codeception\Util\Mink::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. - * ---------------------------------------------- - * - * Reloads current page - * @see Codeception\Util\Mink::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\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 - * fillField("//input[@type='text']", "Hello World!"); + * $I->dontSeeLink('Logout'); // I suppose user is not logged in * ?> * ``` * - * @param $field - * @param $value - * @see Codeception\Util\Mink::fillField() + * @param $text + * @param null $url + * @see Codeception\Module\WebDriver::dontSeeLink() * @return \Codeception\Maybe */ - public function fillField($field, $value) { - $this->scenario->addStep(new \Codeception\Step\Action('fillField', func_get_args())); + 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); @@ -941,106 +623,7 @@ class WebGuy extends \Codeception\AbstractGuy return new Maybe(); } - - /** - * This method is generated. - * Documentation taken from corresponding module. - * ---------------------------------------------- - * - * Selects an option in select tag or in radio button group. - * - * Example: - * - * ``` php - * selectOption('form select[name=account]', 'Premium'); - * $I->selectOption('form input[name=payment]', 'Monthly'); - * $I->selectOption('//form/select[@name=account]', 'Monthly'); - * ?> - * ``` - * - * Can select multiple options if second argument is array: - * - * ``` php - * selectOption('Which OS do you use?', array('Windows','Linux')); - * ?> - * ``` - * - * @param $select - * @param $option - * @see Codeception\Util\Mink::selectOption() - * @return \Codeception\Maybe - */ - public function selectOption($select, $option) { - $this->scenario->addStep(new \Codeception\Step\Action('selectOption', 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. - * ---------------------------------------------- - * - * Ticks a checkbox. - * For radio buttons use `selectOption` method. - * - * Example: - * - * ``` php - * checkOption('#agree'); - * ?> - * ``` - * - * @param $option - * @see Codeception\Util\Mink::checkOption() - * @return \Codeception\Maybe - */ - public function checkOption($option) { - $this->scenario->addStep(new \Codeception\Step\Action('checkOption', 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. - * ---------------------------------------------- - * - * Unticks a checkbox. - * - * Example: - * - * ``` php - * uncheckOption('#notify'); - * ?> - * ``` - * - * @param $option - * @see Codeception\Util\Mink::uncheckOption() - * @return \Codeception\Maybe - */ - public function uncheckOption($option) { - $this->scenario->addStep(new \Codeception\Step\Action('uncheckOption', 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. @@ -1059,7 +642,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $uri * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::seeInCurrentUrl() + * @see Codeception\Module\WebDriver::seeInCurrentUrl() * @return \Codeception\Maybe */ public function canSeeInCurrentUrl($uri) { @@ -1087,7 +670,7 @@ class WebGuy extends \Codeception\AbstractGuy * ``` * * @param $uri - * @see Codeception\Util\Mink::seeInCurrentUrl() + * @see Codeception\Module\WebDriver::seeInCurrentUrl() * @return \Codeception\Maybe */ public function seeInCurrentUrl($uri) { @@ -1099,60 +682,7 @@ class WebGuy extends \Codeception\AbstractGuy 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. @@ -1170,7 +700,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $uri * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::seeCurrentUrlEquals() + * @see Codeception\Module\WebDriver::seeCurrentUrlEquals() * @return \Codeception\Maybe */ public function canSeeCurrentUrlEquals($uri) { @@ -1197,7 +727,7 @@ class WebGuy extends \Codeception\AbstractGuy * ``` * * @param $uri - * @see Codeception\Util\Mink::seeCurrentUrlEquals() + * @see Codeception\Module\WebDriver::seeCurrentUrlEquals() * @return \Codeception\Maybe */ public function seeCurrentUrlEquals($uri) { @@ -1209,7 +739,115 @@ class WebGuy extends \Codeception\AbstractGuy 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. @@ -1227,7 +865,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $uri * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::dontSeeCurrentUrlEquals() + * @see Codeception\Module\WebDriver::dontSeeCurrentUrlEquals() * @return \Codeception\Maybe */ public function cantSeeCurrentUrlEquals($uri) { @@ -1254,7 +892,7 @@ class WebGuy extends \Codeception\AbstractGuy * ``` * * @param $uri - * @see Codeception\Util\Mink::dontSeeCurrentUrlEquals() + * @see Codeception\Module\WebDriver::dontSeeCurrentUrlEquals() * @return \Codeception\Maybe */ public function dontSeeCurrentUrlEquals($uri) { @@ -1266,62 +904,7 @@ class WebGuy extends \Codeception\AbstractGuy 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. @@ -1338,7 +921,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $uri * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::dontSeeCurrentUrlMatches() + * @see Codeception\Module\WebDriver::dontSeeCurrentUrlMatches() * @return \Codeception\Maybe */ public function cantSeeCurrentUrlMatches($uri) { @@ -1364,7 +947,7 @@ class WebGuy extends \Codeception\AbstractGuy * ``` * * @param $uri - * @see Codeception\Util\Mink::dontSeeCurrentUrlMatches() + * @see Codeception\Module\WebDriver::dontSeeCurrentUrlMatches() * @return \Codeception\Maybe */ public function dontSeeCurrentUrlMatches($uri) { @@ -1376,160 +959,7 @@ class WebGuy extends \Codeception\AbstractGuy 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. @@ -1548,7 +978,7 @@ class WebGuy extends \Codeception\AbstractGuy * @param null $uri * @internal param $url * @return mixed - * @see Codeception\Util\Mink::grabFromCurrentUrl() + * @see Codeception\Module\WebDriver::grabFromCurrentUrl() * @return \Codeception\Maybe */ public function grabFromCurrentUrl($uri = null) { @@ -1560,60 +990,32 @@ class WebGuy extends \Codeception\AbstractGuy return new Maybe(); } - + /** * This method is generated. * Documentation taken from corresponding module. * ---------------------------------------------- * - * Attaches file from Codeception data directory to upload field. + * Assert if the specified checkbox is checked. + * Use css selector or xpath to match. * * Example: * * ``` php * attachFile('input[@type="file"]', 'prices.xls'); + * $I->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 $field - * @param $filename - * @see Codeception\Util\Mink::attachFile() - * @return \Codeception\Maybe - */ - public function attachFile($field, $filename) { - $this->scenario->addStep(new \Codeception\Step\Action('attachFile', 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 + * @param $checkbox * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::seeOptionIsSelected() + * @see Codeception\Module\WebDriver::seeCheckboxIsChecked() * @return \Codeception\Maybe */ - public function canSeeOptionIsSelected($select, $text) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('seeOptionIsSelected', func_get_args())); + 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); @@ -1625,22 +1027,25 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Checks if option is selected in select field. + * Assert if the specified checkbox is checked. + * Use css selector or xpath to match. + * + * Example: * * ``` php * seeOptionIsSelected('#form input[name=payment]', 'Visa'); + * $I->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 $selector - * @param $optionText - * @return mixed - * @see Codeception\Util\Mink::seeOptionIsSelected() + * @param $checkbox + * @see Codeception\Module\WebDriver::seeCheckboxIsChecked() * @return \Codeception\Maybe */ - public function seeOptionIsSelected($select, $text) { - $this->scenario->addStep(new \Codeception\Step\Assertion('seeOptionIsSelected', func_get_args())); + 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); @@ -1648,29 +1053,31 @@ class WebGuy extends \Codeception\AbstractGuy return new Maybe(); } - + /** * This method is generated. * Documentation taken from corresponding module. * ---------------------------------------------- * - * Checks if option is not selected in select field. + * Assert if the specified checkbox is unchecked. + * Use css selector or xpath to match. + * + * Example: * * ``` php * dontSeeOptionIsSelected('#form input[name=payment]', 'Visa'); + * $I->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 $selector - * @param $optionText - * @return mixed + * @param $checkbox * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::dontSeeOptionIsSelected() + * @see Codeception\Module\WebDriver::dontSeeCheckboxIsChecked() * @return \Codeception\Maybe */ - public function cantSeeOptionIsSelected($select, $text) { - $this->scenario->addStep(new \Codeception\Step\ConditionalAssertion('dontSeeOptionIsSelected', func_get_args())); + 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); @@ -1682,22 +1089,24 @@ class WebGuy extends \Codeception\AbstractGuy * Documentation taken from corresponding module. * ---------------------------------------------- * - * Checks if option is not selected in select field. + * Assert if the specified checkbox is unchecked. + * Use css selector or xpath to match. + * + * Example: * * ``` php * dontSeeOptionIsSelected('#form input[name=payment]', 'Visa'); + * $I->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 $selector - * @param $optionText - * @return mixed - * @see Codeception\Util\Mink::dontSeeOptionIsSelected() + * @param $checkbox + * @see Codeception\Module\WebDriver::dontSeeCheckboxIsChecked() * @return \Codeception\Maybe */ - public function dontSeeOptionIsSelected($select, $text) { - $this->scenario->addStep(new \Codeception\Step\Assertion('dontSeeOptionIsSelected', func_get_args())); + 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); @@ -1705,7 +1114,7 @@ class WebGuy extends \Codeception\AbstractGuy return new Maybe(); } - + /** * This method is generated. * Documentation taken from corresponding module. @@ -1729,7 +1138,7 @@ class WebGuy extends \Codeception\AbstractGuy * @param $field * @param $value * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::seeInField() + * @see Codeception\Module\WebDriver::seeInField() * @return \Codeception\Maybe */ public function canSeeInField($field, $value) { @@ -1762,7 +1171,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $field * @param $value - * @see Codeception\Util\Mink::seeInField() + * @see Codeception\Module\WebDriver::seeInField() * @return \Codeception\Maybe */ public function seeInField($field, $value) { @@ -1774,7 +1183,7 @@ class WebGuy extends \Codeception\AbstractGuy return new Maybe(); } - + /** * This method is generated. * Documentation taken from corresponding module. @@ -1797,7 +1206,7 @@ class WebGuy extends \Codeception\AbstractGuy * @param $field * @param $value * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::dontSeeInField() + * @see Codeception\Module\WebDriver::dontSeeInField() * @return \Codeception\Maybe */ public function cantSeeInField($field, $value) { @@ -1829,7 +1238,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $field * @param $value - * @see Codeception\Util\Mink::dontSeeInField() + * @see Codeception\Module\WebDriver::dontSeeInField() * @return \Codeception\Maybe */ public function dontSeeInField($field, $value) { @@ -1841,7 +1250,186 @@ class WebGuy extends \Codeception\AbstractGuy return new Maybe(); } + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Selects an option in select tag or in radio button group. + * + * Example: + * + * ``` php + * selectOption('form select[name=account]', 'Premium'); + * $I->selectOption('form input[name=payment]', 'Monthly'); + * $I->selectOption('//form/select[@name=account]', 'Monthly'); + * ?> + * ``` + * + * Can select multiple options if second argument is array: + * + * ``` php + * selectOption('Which OS do you use?', array('Windows','Linux')); + * ?> + * ``` + * + * @param $select + * @param $option + * @see Codeception\Module\WebDriver::selectOption() + * @return \Codeception\Maybe + */ + public function selectOption($select, $option) { + $this->scenario->addStep(new \Codeception\Step\Action('selectOption', 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. + * ---------------------------------------------- + * + * + * @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. + * ---------------------------------------------- + * + * Ticks a checkbox. + * For radio buttons use `selectOption` method. + * + * Example: + * + * ``` php + * checkOption('#agree'); + * ?> + * ``` + * + * @param $option + * @see Codeception\Module\WebDriver::checkOption() + * @return \Codeception\Maybe + */ + public function checkOption($option) { + $this->scenario->addStep(new \Codeception\Step\Action('checkOption', 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. + * ---------------------------------------------- + * + * Unticks a checkbox. + * + * Example: + * + * ``` php + * uncheckOption('#notify'); + * ?> + * ``` + * + * @param $option + * @see Codeception\Module\WebDriver::uncheckOption() + * @return \Codeception\Maybe + */ + public function uncheckOption($option) { + $this->scenario->addStep(new \Codeception\Step\Action('uncheckOption', 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 + * fillField("//input[@type='text']", "Hello World!"); + * ?> + * ``` + * + * @param $field + * @param $value + * @see Codeception\Module\WebDriver::fillField() + * @return \Codeception\Maybe + */ + 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); + } + return new Maybe(); + } + + + /** + * This method is generated. + * Documentation taken from corresponding module. + * ---------------------------------------------- + * + * Attaches file from Codeception data directory to upload field. + * + * Example: + * + * ``` php + * attachFile('input[@type="file"]', 'prices.xls'); + * ?> + * ``` + * + * @param $field + * @param $filename + * @see Codeception\Module\WebDriver::attachFile() + * @return \Codeception\Maybe + */ + public function attachFile($field, $filename) { + $this->scenario->addStep(new \Codeception\Step\Action('attachFile', 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. @@ -1862,7 +1450,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $cssOrXPathOrRegex * @return mixed - * @see Codeception\Util\Mink::grabTextFrom() + * @see Codeception\Module\WebDriver::grabTextFrom() * @return \Codeception\Maybe */ public function grabTextFrom($cssOrXPathOrRegex) { @@ -1874,7 +1462,7 @@ class WebGuy extends \Codeception\AbstractGuy return new Maybe(); } - + /** * This method is generated. * Documentation taken from corresponding module. @@ -1895,7 +1483,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $field * @return mixed - * @see Codeception\Util\Mink::grabValueFrom() + * @see Codeception\Module\WebDriver::grabValueFrom() * @return \Codeception\Maybe */ public function grabValueFrom($field) { @@ -1907,7 +1495,323 @@ class WebGuy extends \Codeception\AbstractGuy 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 + * 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. @@ -1924,7 +1828,7 @@ class WebGuy extends \Codeception\AbstractGuy * @param $title * @return mixed * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::seeInTitle() + * @see Codeception\Module\WebDriver::seeInTitle() * @return \Codeception\Maybe */ public function canSeeInTitle($title) { @@ -1950,7 +1854,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $title * @return mixed - * @see Codeception\Util\Mink::seeInTitle() + * @see Codeception\Module\WebDriver::seeInTitle() * @return \Codeception\Maybe */ public function seeInTitle($title) { @@ -1962,7 +1866,7 @@ class WebGuy extends \Codeception\AbstractGuy return new Maybe(); } - + /** * This method is generated. * Documentation taken from corresponding module. @@ -1973,7 +1877,7 @@ class WebGuy extends \Codeception\AbstractGuy * @param $title * @return mixed * Conditional Assertion: Test won't be stopped on fail - * @see Codeception\Util\Mink::dontSeeInTitle() + * @see Codeception\Module\WebDriver::dontSeeInTitle() * @return \Codeception\Maybe */ public function cantSeeInTitle($title) { @@ -1993,7 +1897,7 @@ class WebGuy extends \Codeception\AbstractGuy * * @param $title * @return mixed - * @see Codeception\Util\Mink::dontSeeInTitle() + * @see Codeception\Module\WebDriver::dontSeeInTitle() * @return \Codeception\Maybe */ public function dontSeeInTitle($title) { @@ -2004,5 +1908,776 @@ 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 + *