Commit 0d96ed312ae03bece59169bf203e6cd149c96c38
1 parent
a926053f
test
Showing
4 changed files
with
940 additions
and
1314 deletions
Show diff stats
tests/_support/_generated/AcceptanceTesterActions.php
1 | -<?php //[STAMP] 11cfc123f33c5f6417461c48aa19af00 | |
1 | +<?php //[STAMP] 584deab9f7b9cb890a39728f7857171e | |
2 | 2 | namespace _generated; |
3 | 3 | |
4 | 4 | // This class was automatically generated by build task |
5 | 5 | // You should not change it manually as it will be overwritten on next build |
6 | 6 | // @codingStandardsIgnoreFile |
7 | 7 | |
8 | -use Codeception\Module\WebDriver; | |
8 | +use Codeception\Module\PhpBrowser; | |
9 | 9 | use Helper\Acceptance; |
10 | 10 | |
11 | 11 | trait AcceptanceTesterActions |
... | ... | @@ -19,253 +19,210 @@ trait AcceptanceTesterActions |
19 | 19 | /** |
20 | 20 | * [!] Method is generated. Documentation taken from corresponding module. |
21 | 21 | * |
22 | - * Print out latest Selenium Logs in debug mode | |
23 | - * @see \Codeception\Module\WebDriver::debugWebDriverLogs() | |
22 | + * Alias to `haveHttpHeader` | |
23 | + * | |
24 | + * @param $name | |
25 | + * @param $value | |
26 | + * @see \Codeception\Module\PhpBrowser::setHeader() | |
24 | 27 | */ |
25 | - public function debugWebDriverLogs() { | |
26 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('debugWebDriverLogs', func_get_args())); | |
28 | + public function setHeader($name, $value) { | |
29 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('setHeader', func_get_args())); | |
27 | 30 | } |
28 | 31 | |
29 | 32 | |
30 | 33 | /** |
31 | 34 | * [!] Method is generated. Documentation taken from corresponding module. |
32 | 35 | * |
33 | - * Changes the subdomain for the 'url' configuration parameter. | |
34 | - * Does not open a page; use `amOnPage` for that. | |
35 | - * | |
36 | - * ``` php | |
37 | - * <?php | |
38 | - * // If config is: 'http://mysite.com' | |
39 | - * // or config is: 'http://www.mysite.com' | |
40 | - * // or config is: 'http://company.mysite.com' | |
41 | - * | |
42 | - * $I->amOnSubdomain('user'); | |
43 | - * $I->amOnPage('/'); | |
44 | - * // moves to http://user.mysite.com/ | |
45 | - * ?> | |
46 | - * ``` | |
47 | - * | |
48 | - * @param $subdomain | |
36 | + * Authenticates user for HTTP_AUTH | |
49 | 37 | * |
50 | - * @return mixed | |
51 | - * @see \Codeception\Module\WebDriver::amOnSubdomain() | |
38 | + * @param $username | |
39 | + * @param $password | |
40 | + * @see \Codeception\Module\PhpBrowser::amHttpAuthenticated() | |
52 | 41 | */ |
53 | - public function amOnSubdomain($subdomain) { | |
54 | - return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnSubdomain', func_get_args())); | |
42 | + public function amHttpAuthenticated($username, $password) { | |
43 | + return $this->getScenario()->runStep(new \Codeception\Step\Condition('amHttpAuthenticated', func_get_args())); | |
55 | 44 | } |
56 | 45 | |
57 | 46 | |
58 | 47 | /** |
59 | 48 | * [!] Method is generated. Documentation taken from corresponding module. |
60 | 49 | * |
61 | - * Takes a screenshot of the current window and saves it to `tests/_output/debug`. | |
50 | + * Open web page at the given absolute URL and sets its hostname as the base host. | |
62 | 51 | * |
63 | 52 | * ``` php |
64 | 53 | * <?php |
65 | - * $I->amOnPage('/user/edit'); | |
66 | - * $I->makeScreenshot('edit_page'); | |
67 | - * // saved to: tests/_output/debug/edit_page.png | |
54 | + * $I->amOnUrl('http://codeception.com'); | |
55 | + * $I->amOnPage('/quickstart'); // moves to http://codeception.com/quickstart | |
68 | 56 | * ?> |
69 | 57 | * ``` |
70 | - * | |
71 | - * @param $name | |
72 | - * @see \Codeception\Module\WebDriver::makeScreenshot() | |
58 | + * @see \Codeception\Module\PhpBrowser::amOnUrl() | |
73 | 59 | */ |
74 | - public function makeScreenshot($name) { | |
75 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('makeScreenshot', func_get_args())); | |
60 | + public function amOnUrl($url) { | |
61 | + return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnUrl', func_get_args())); | |
76 | 62 | } |
77 | 63 | |
78 | 64 | |
79 | 65 | /** |
80 | 66 | * [!] Method is generated. Documentation taken from corresponding module. |
81 | 67 | * |
82 | - * Resize the current window. | |
68 | + * Changes the subdomain for the 'url' configuration parameter. | |
69 | + * Does not open a page; use `amOnPage` for that. | |
83 | 70 | * |
84 | 71 | * ``` php |
85 | 72 | * <?php |
86 | - * $I->resizeWindow(800, 600); | |
87 | - * | |
88 | - * ``` | |
89 | - * | |
90 | - * @param int $width | |
91 | - * @param int $height | |
92 | - * @see \Codeception\Module\WebDriver::resizeWindow() | |
93 | - */ | |
94 | - public function resizeWindow($width, $height) { | |
95 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('resizeWindow', func_get_args())); | |
96 | - } | |
97 | - | |
98 | - | |
99 | - /** | |
100 | - * [!] Method is generated. Documentation taken from corresponding module. | |
101 | - * | |
102 | - * Checks that a cookie with the given name is set. | |
103 | - * You can set additional cookie params like `domain`, `path` as array passed in last argument. | |
73 | + * // If config is: 'http://mysite.com' | |
74 | + * // or config is: 'http://www.mysite.com' | |
75 | + * // or config is: 'http://company.mysite.com' | |
104 | 76 | * |
105 | - * ``` php | |
106 | - * <?php | |
107 | - * $I->seeCookie('PHPSESSID'); | |
77 | + * $I->amOnSubdomain('user'); | |
78 | + * $I->amOnPage('/'); | |
79 | + * // moves to http://user.mysite.com/ | |
108 | 80 | * ?> |
109 | 81 | * ``` |
110 | 82 | * |
111 | - * @param $cookie | |
112 | - * @param array $params | |
113 | - * @return mixed | |
114 | - * Conditional Assertion: Test won't be stopped on fail | |
115 | - * @see \Codeception\Module\WebDriver::seeCookie() | |
116 | - */ | |
117 | - public function canSeeCookie($cookie, $params = null) { | |
118 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCookie', func_get_args())); | |
119 | - } | |
120 | - /** | |
121 | - * [!] Method is generated. Documentation taken from corresponding module. | |
122 | - * | |
123 | - * Checks that a cookie with the given name is set. | |
124 | - * You can set additional cookie params like `domain`, `path` as array passed in last argument. | |
125 | - * | |
126 | - * ``` php | |
127 | - * <?php | |
128 | - * $I->seeCookie('PHPSESSID'); | |
129 | - * ?> | |
130 | - * ``` | |
83 | + * @param $subdomain | |
131 | 84 | * |
132 | - * @param $cookie | |
133 | - * @param array $params | |
134 | 85 | * @return mixed |
135 | - * @see \Codeception\Module\WebDriver::seeCookie() | |
86 | + * @see \Codeception\Module\PhpBrowser::amOnSubdomain() | |
136 | 87 | */ |
137 | - public function seeCookie($cookie, $params = null) { | |
138 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeCookie', func_get_args())); | |
88 | + public function amOnSubdomain($subdomain) { | |
89 | + return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnSubdomain', func_get_args())); | |
139 | 90 | } |
140 | 91 | |
141 | 92 | |
142 | 93 | /** |
143 | 94 | * [!] Method is generated. Documentation taken from corresponding module. |
144 | 95 | * |
145 | - * Checks that there isn't a cookie with the given name. | |
146 | - * You can set additional cookie params like `domain`, `path` as array passed in last argument. | |
147 | - * | |
148 | - * @param $cookie | |
149 | - * | |
150 | - * @param array $params | |
151 | - * @return mixed | |
152 | - * Conditional Assertion: Test won't be stopped on fail | |
153 | - * @see \Codeception\Module\WebDriver::dontSeeCookie() | |
154 | - */ | |
155 | - public function cantSeeCookie($cookie, $params = null) { | |
156 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCookie', func_get_args())); | |
157 | - } | |
158 | - /** | |
159 | - * [!] Method is generated. Documentation taken from corresponding module. | |
160 | - * | |
161 | - * Checks that there isn't a cookie with the given name. | |
162 | - * You can set additional cookie params like `domain`, `path` as array passed in last argument. | |
163 | - * | |
164 | - * @param $cookie | |
165 | - * | |
166 | - * @param array $params | |
167 | - * @return mixed | |
168 | - * @see \Codeception\Module\WebDriver::dontSeeCookie() | |
169 | - */ | |
170 | - public function dontSeeCookie($cookie, $params = null) { | |
171 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeCookie', func_get_args())); | |
172 | - } | |
173 | - | |
174 | - | |
175 | - /** | |
176 | - * [!] Method is generated. Documentation taken from corresponding module. | |
96 | + * Low-level API method. | |
97 | + * If Codeception commands are not enough, use [Guzzle HTTP Client](http://guzzlephp.org/) methods directly | |
177 | 98 | * |
178 | - * Sets a cookie with the given name and value. | |
179 | - * You can set additional cookie params like `domain`, `path`, `expires`, `secure` in array passed as last argument. | |
99 | + * Example: | |
180 | 100 | * |
181 | 101 | * ``` php |
182 | 102 | * <?php |
183 | - * $I->setCookie('PHPSESSID', 'el4ukv0kqbvoirg7nkp4dncpk3'); | |
103 | + * $I->executeInGuzzle(function (\GuzzleHttp\Client $client) { | |
104 | + * $client->get('/get', ['query' => ['foo' => 'bar']]); | |
105 | + * }); | |
184 | 106 | * ?> |
185 | 107 | * ``` |
186 | 108 | * |
187 | - * @param $name | |
188 | - * @param $val | |
189 | - * @param array $params | |
109 | + * It is not recommended to use this command on a regular basis. | |
110 | + * If Codeception lacks important Guzzle Client methods, implement them and submit patches. | |
190 | 111 | * |
191 | - * @return mixed | |
192 | - * @see \Codeception\Module\WebDriver::setCookie() | |
112 | + * @param callable $function | |
113 | + * @see \Codeception\Module\PhpBrowser::executeInGuzzle() | |
193 | 114 | */ |
194 | - public function setCookie($cookie, $value, $params = null) { | |
195 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('setCookie', func_get_args())); | |
115 | + public function executeInGuzzle($function) { | |
116 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('executeInGuzzle', func_get_args())); | |
196 | 117 | } |
197 | 118 | |
198 | 119 | |
199 | 120 | /** |
200 | 121 | * [!] Method is generated. Documentation taken from corresponding module. |
201 | 122 | * |
202 | - * Unsets cookie with the given name. | |
203 | - * You can set additional cookie params like `domain`, `path` in array passed as last argument. | |
123 | + * Sets the HTTP header to the passed value - which is used on | |
124 | + * subsequent HTTP requests through PhpBrowser. | |
204 | 125 | * |
205 | - * @param $cookie | |
126 | + * Example: | |
127 | + * ```php | |
128 | + * <?php | |
129 | + * $I->setHeader('X-Requested-With', 'Codeception'); | |
130 | + * $I->amOnPage('test-headers.php'); | |
131 | + * ?> | |
132 | + * ``` | |
206 | 133 | * |
207 | - * @param array $params | |
208 | - * @return mixed | |
209 | - * @see \Codeception\Module\WebDriver::resetCookie() | |
134 | + * @param string $name the name of the request header | |
135 | + * @param string $value the value to set it to for subsequent | |
136 | + * requests | |
137 | + * @see \Codeception\Lib\InnerBrowser::haveHttpHeader() | |
210 | 138 | */ |
211 | - public function resetCookie($cookie, $params = null) { | |
212 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('resetCookie', func_get_args())); | |
139 | + public function haveHttpHeader($name, $value) { | |
140 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('haveHttpHeader', func_get_args())); | |
213 | 141 | } |
214 | 142 | |
215 | 143 | |
216 | 144 | /** |
217 | 145 | * [!] Method is generated. Documentation taken from corresponding module. |
218 | 146 | * |
219 | - * Grabs a cookie value. | |
220 | - * You can set additional cookie params like `domain`, `path` in array passed as last argument. | |
147 | + * Deletes the header with the passed name. Subsequent requests | |
148 | + * will not have the deleted header in its request. | |
221 | 149 | * |
222 | - * @param $cookie | |
150 | + * Example: | |
151 | + * ```php | |
152 | + * <?php | |
153 | + * $I->haveHttpHeader('X-Requested-With', 'Codeception'); | |
154 | + * $I->amOnPage('test-headers.php'); | |
155 | + * // ... | |
156 | + * $I->deleteHeader('X-Requested-With'); | |
157 | + * $I->amOnPage('some-other-page.php'); | |
158 | + * ?> | |
159 | + * ``` | |
223 | 160 | * |
224 | - * @param array $params | |
225 | - * @return mixed | |
226 | - * @see \Codeception\Module\WebDriver::grabCookie() | |
161 | + * @param string $name the name of the header to delete. | |
162 | + * @see \Codeception\Lib\InnerBrowser::deleteHeader() | |
227 | 163 | */ |
228 | - public function grabCookie($cookie, $params = null) { | |
229 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('grabCookie', func_get_args())); | |
164 | + public function deleteHeader($name) { | |
165 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('deleteHeader', func_get_args())); | |
230 | 166 | } |
231 | 167 | |
232 | 168 | |
233 | 169 | /** |
234 | 170 | * [!] Method is generated. Documentation taken from corresponding module. |
235 | 171 | * |
236 | - * Open web page at the given absolute URL and sets its hostname as the base host. | |
172 | + * Opens the page for the given relative URI. | |
237 | 173 | * |
238 | 174 | * ``` php |
239 | 175 | * <?php |
240 | - * $I->amOnUrl('http://codeception.com'); | |
241 | - * $I->amOnPage('/quickstart'); // moves to http://codeception.com/quickstart | |
242 | - * ?> | |
176 | + * // opens front page | |
177 | + * $I->amOnPage('/'); | |
178 | + * // opens /register page | |
179 | + * $I->amOnPage('/register'); | |
243 | 180 | * ``` |
244 | - * @see \Codeception\Module\WebDriver::amOnUrl() | |
181 | + * | |
182 | + * @param $page | |
183 | + * @see \Codeception\Lib\InnerBrowser::amOnPage() | |
245 | 184 | */ |
246 | - public function amOnUrl($url) { | |
247 | - return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnUrl', func_get_args())); | |
185 | + public function amOnPage($page) { | |
186 | + return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnPage', func_get_args())); | |
248 | 187 | } |
249 | 188 | |
250 | 189 | |
251 | 190 | /** |
252 | 191 | * [!] Method is generated. Documentation taken from corresponding module. |
253 | 192 | * |
254 | - * Opens the page for the given relative URI. | |
193 | + * Perform a click on a link or a button, given by a locator. | |
194 | + * If a fuzzy locator is given, the page will be searched for a button, link, or image matching the locator string. | |
195 | + * For buttons, the "value" attribute, "name" attribute, and inner text are searched. | |
196 | + * For links, the link text is searched. | |
197 | + * For images, the "alt" attribute and inner text of any parent links are searched. | |
198 | + * | |
199 | + * The second parameter is a context (CSS or XPath locator) to narrow the search. | |
200 | + * | |
201 | + * Note that if the locator matches a button of type `submit`, the form will be submitted. | |
255 | 202 | * |
256 | 203 | * ``` php |
257 | 204 | * <?php |
258 | - * // opens front page | |
259 | - * $I->amOnPage('/'); | |
260 | - * // opens /register page | |
261 | - * $I->amOnPage('/register'); | |
205 | + * // simple link | |
206 | + * $I->click('Logout'); | |
207 | + * // button of form | |
208 | + * $I->click('Submit'); | |
209 | + * // CSS button | |
210 | + * $I->click('#form input[type=submit]'); | |
211 | + * // XPath | |
212 | + * $I->click('//form/*[@type=submit]'); | |
213 | + * // link in context | |
214 | + * $I->click('Logout', '#nav'); | |
215 | + * // using strict locator | |
216 | + * $I->click(['link' => 'Login']); | |
217 | + * ?> | |
262 | 218 | * ``` |
263 | 219 | * |
264 | - * @param $page | |
265 | - * @see \Codeception\Module\WebDriver::amOnPage() | |
220 | + * @param $link | |
221 | + * @param $context | |
222 | + * @see \Codeception\Lib\InnerBrowser::click() | |
266 | 223 | */ |
267 | - public function amOnPage($page) { | |
268 | - return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnPage', func_get_args())); | |
224 | + public function click($link, $context = null) { | |
225 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('click', func_get_args())); | |
269 | 226 | } |
270 | 227 | |
271 | 228 | |
... | ... | @@ -301,7 +258,7 @@ trait AcceptanceTesterActions |
301 | 258 | * @param $text |
302 | 259 | * @param null $selector |
303 | 260 | * Conditional Assertion: Test won't be stopped on fail |
304 | - * @see \Codeception\Module\WebDriver::see() | |
261 | + * @see \Codeception\Lib\InnerBrowser::see() | |
305 | 262 | */ |
306 | 263 | public function canSee($text, $selector = null) { |
307 | 264 | return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('see', func_get_args())); |
... | ... | @@ -337,7 +294,7 @@ trait AcceptanceTesterActions |
337 | 294 | * |
338 | 295 | * @param $text |
339 | 296 | * @param null $selector |
340 | - * @see \Codeception\Module\WebDriver::see() | |
297 | + * @see \Codeception\Lib\InnerBrowser::see() | |
341 | 298 | */ |
342 | 299 | public function see($text, $selector = null) { |
343 | 300 | return $this->getScenario()->runStep(new \Codeception\Step\Assertion('see', func_get_args())); |
... | ... | @@ -374,7 +331,7 @@ trait AcceptanceTesterActions |
374 | 331 | * @param $text |
375 | 332 | * @param null $selector |
376 | 333 | * Conditional Assertion: Test won't be stopped on fail |
377 | - * @see \Codeception\Module\WebDriver::dontSee() | |
334 | + * @see \Codeception\Lib\InnerBrowser::dontSee() | |
378 | 335 | */ |
379 | 336 | public function cantSee($text, $selector = null) { |
380 | 337 | return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSee', func_get_args())); |
... | ... | @@ -408,7 +365,7 @@ trait AcceptanceTesterActions |
408 | 365 | * |
409 | 366 | * @param $text |
410 | 367 | * @param null $selector |
411 | - * @see \Codeception\Module\WebDriver::dontSee() | |
368 | + * @see \Codeception\Lib\InnerBrowser::dontSee() | |
412 | 369 | */ |
413 | 370 | public function dontSee($text, $selector = null) { |
414 | 371 | return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSee', func_get_args())); |
... | ... | @@ -428,7 +385,7 @@ trait AcceptanceTesterActions |
428 | 385 | * |
429 | 386 | * @param $raw |
430 | 387 | * Conditional Assertion: Test won't be stopped on fail |
431 | - * @see \Codeception\Module\WebDriver::seeInSource() | |
388 | + * @see \Codeception\Lib\InnerBrowser::seeInSource() | |
432 | 389 | */ |
433 | 390 | public function canSeeInSource($raw) { |
434 | 391 | return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInSource', func_get_args())); |
... | ... | @@ -445,7 +402,7 @@ trait AcceptanceTesterActions |
445 | 402 | * ``` |
446 | 403 | * |
447 | 404 | * @param $raw |
448 | - * @see \Codeception\Module\WebDriver::seeInSource() | |
405 | + * @see \Codeception\Lib\InnerBrowser::seeInSource() | |
449 | 406 | */ |
450 | 407 | public function seeInSource($raw) { |
451 | 408 | return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInSource', func_get_args())); |
... | ... | @@ -465,7 +422,7 @@ trait AcceptanceTesterActions |
465 | 422 | * |
466 | 423 | * @param $raw |
467 | 424 | * Conditional Assertion: Test won't be stopped on fail |
468 | - * @see \Codeception\Module\WebDriver::dontSeeInSource() | |
425 | + * @see \Codeception\Lib\InnerBrowser::dontSeeInSource() | |
469 | 426 | */ |
470 | 427 | public function cantSeeInSource($raw) { |
471 | 428 | return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInSource', func_get_args())); |
... | ... | @@ -482,7 +439,7 @@ trait AcceptanceTesterActions |
482 | 439 | * ``` |
483 | 440 | * |
484 | 441 | * @param $raw |
485 | - * @see \Codeception\Module\WebDriver::dontSeeInSource() | |
442 | + * @see \Codeception\Lib\InnerBrowser::dontSeeInSource() | |
486 | 443 | */ |
487 | 444 | public function dontSeeInSource($raw) { |
488 | 445 | return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInSource', func_get_args())); |
... | ... | @@ -492,192 +449,93 @@ trait AcceptanceTesterActions |
492 | 449 | /** |
493 | 450 | * [!] Method is generated. Documentation taken from corresponding module. |
494 | 451 | * |
495 | - * Checks that the page source contains the given string. | |
452 | + * Checks that there's a link with the specified text. | |
453 | + * Give a full URL as the second parameter to match links with that exact URL. | |
496 | 454 | * |
497 | - * ```php | |
455 | + * ``` php | |
498 | 456 | * <?php |
499 | - * $I->seeInPageSource('<link rel="apple-touch-icon"'); | |
457 | + * $I->seeLink('Logout'); // matches <a href="#">Logout</a> | |
458 | + * $I->seeLink('Logout','/logout'); // matches <a href="/logout">Logout</a> | |
459 | + * ?> | |
500 | 460 | * ``` |
501 | 461 | * |
502 | - * @param $text | |
462 | + * @param $text | |
463 | + * @param null $url | |
503 | 464 | * Conditional Assertion: Test won't be stopped on fail |
504 | - * @see \Codeception\Module\WebDriver::seeInPageSource() | |
465 | + * @see \Codeception\Lib\InnerBrowser::seeLink() | |
505 | 466 | */ |
506 | - public function canSeeInPageSource($text) { | |
507 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInPageSource', func_get_args())); | |
467 | + public function canSeeLink($text, $url = null) { | |
468 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeLink', func_get_args())); | |
508 | 469 | } |
509 | 470 | /** |
510 | 471 | * [!] Method is generated. Documentation taken from corresponding module. |
511 | 472 | * |
512 | - * Checks that the page source contains the given string. | |
473 | + * Checks that there's a link with the specified text. | |
474 | + * Give a full URL as the second parameter to match links with that exact URL. | |
513 | 475 | * |
514 | - * ```php | |
476 | + * ``` php | |
515 | 477 | * <?php |
516 | - * $I->seeInPageSource('<link rel="apple-touch-icon"'); | |
478 | + * $I->seeLink('Logout'); // matches <a href="#">Logout</a> | |
479 | + * $I->seeLink('Logout','/logout'); // matches <a href="/logout">Logout</a> | |
480 | + * ?> | |
517 | 481 | * ``` |
518 | 482 | * |
519 | - * @param $text | |
520 | - * @see \Codeception\Module\WebDriver::seeInPageSource() | |
483 | + * @param $text | |
484 | + * @param null $url | |
485 | + * @see \Codeception\Lib\InnerBrowser::seeLink() | |
521 | 486 | */ |
522 | - public function seeInPageSource($text) { | |
523 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInPageSource', func_get_args())); | |
487 | + public function seeLink($text, $url = null) { | |
488 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeLink', func_get_args())); | |
524 | 489 | } |
525 | 490 | |
526 | 491 | |
527 | 492 | /** |
528 | 493 | * [!] Method is generated. Documentation taken from corresponding module. |
529 | 494 | * |
530 | - * Checks that the page source doesn't contain the given string. | |
495 | + * Checks that the page doesn't contain a link with the given string. | |
496 | + * If the second parameter is given, only links with a matching "href" attribute will be checked. | |
497 | + * | |
498 | + * ``` php | |
499 | + * <?php | |
500 | + * $I->dontSeeLink('Logout'); // I suppose user is not logged in | |
501 | + * $I->dontSeeLink('Checkout now', '/store/cart.php'); | |
502 | + * ?> | |
503 | + * ``` | |
531 | 504 | * |
532 | 505 | * @param $text |
506 | + * @param null $url | |
533 | 507 | * Conditional Assertion: Test won't be stopped on fail |
534 | - * @see \Codeception\Module\WebDriver::dontSeeInPageSource() | |
508 | + * @see \Codeception\Lib\InnerBrowser::dontSeeLink() | |
535 | 509 | */ |
536 | - public function cantSeeInPageSource($text) { | |
537 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInPageSource', func_get_args())); | |
510 | + public function cantSeeLink($text, $url = null) { | |
511 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeLink', func_get_args())); | |
538 | 512 | } |
539 | 513 | /** |
540 | 514 | * [!] Method is generated. Documentation taken from corresponding module. |
541 | 515 | * |
542 | - * Checks that the page source doesn't contain the given string. | |
516 | + * Checks that the page doesn't contain a link with the given string. | |
517 | + * If the second parameter is given, only links with a matching "href" attribute will be checked. | |
518 | + * | |
519 | + * ``` php | |
520 | + * <?php | |
521 | + * $I->dontSeeLink('Logout'); // I suppose user is not logged in | |
522 | + * $I->dontSeeLink('Checkout now', '/store/cart.php'); | |
523 | + * ?> | |
524 | + * ``` | |
543 | 525 | * |
544 | 526 | * @param $text |
545 | - * @see \Codeception\Module\WebDriver::dontSeeInPageSource() | |
527 | + * @param null $url | |
528 | + * @see \Codeception\Lib\InnerBrowser::dontSeeLink() | |
546 | 529 | */ |
547 | - public function dontSeeInPageSource($text) { | |
548 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInPageSource', func_get_args())); | |
530 | + public function dontSeeLink($text, $url = null) { | |
531 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeLink', func_get_args())); | |
549 | 532 | } |
550 | 533 | |
551 | 534 | |
552 | 535 | /** |
553 | 536 | * [!] Method is generated. Documentation taken from corresponding module. |
554 | 537 | * |
555 | - * Perform a click on a link or a button, given by a locator. | |
556 | - * If a fuzzy locator is given, the page will be searched for a button, link, or image matching the locator string. | |
557 | - * For buttons, the "value" attribute, "name" attribute, and inner text are searched. | |
558 | - * For links, the link text is searched. | |
559 | - * For images, the "alt" attribute and inner text of any parent links are searched. | |
560 | - * | |
561 | - * The second parameter is a context (CSS or XPath locator) to narrow the search. | |
562 | - * | |
563 | - * Note that if the locator matches a button of type `submit`, the form will be submitted. | |
564 | - * | |
565 | - * ``` php | |
566 | - * <?php | |
567 | - * // simple link | |
568 | - * $I->click('Logout'); | |
569 | - * // button of form | |
570 | - * $I->click('Submit'); | |
571 | - * // CSS button | |
572 | - * $I->click('#form input[type=submit]'); | |
573 | - * // XPath | |
574 | - * $I->click('//form/*[@type=submit]'); | |
575 | - * // link in context | |
576 | - * $I->click('Logout', '#nav'); | |
577 | - * // using strict locator | |
578 | - * $I->click(['link' => 'Login']); | |
579 | - * ?> | |
580 | - * ``` | |
581 | - * | |
582 | - * @param $link | |
583 | - * @param $context | |
584 | - * @see \Codeception\Module\WebDriver::click() | |
585 | - */ | |
586 | - public function click($link, $context = null) { | |
587 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('click', func_get_args())); | |
588 | - } | |
589 | - | |
590 | - | |
591 | - /** | |
592 | - * [!] Method is generated. Documentation taken from corresponding module. | |
593 | - * | |
594 | - * Checks that there's a link with the specified text. | |
595 | - * Give a full URL as the second parameter to match links with that exact URL. | |
596 | - * | |
597 | - * ``` php | |
598 | - * <?php | |
599 | - * $I->seeLink('Logout'); // matches <a href="#">Logout</a> | |
600 | - * $I->seeLink('Logout','/logout'); // matches <a href="/logout">Logout</a> | |
601 | - * ?> | |
602 | - * ``` | |
603 | - * | |
604 | - * @param $text | |
605 | - * @param null $url | |
606 | - * Conditional Assertion: Test won't be stopped on fail | |
607 | - * @see \Codeception\Module\WebDriver::seeLink() | |
608 | - */ | |
609 | - public function canSeeLink($text, $url = null) { | |
610 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeLink', func_get_args())); | |
611 | - } | |
612 | - /** | |
613 | - * [!] Method is generated. Documentation taken from corresponding module. | |
614 | - * | |
615 | - * Checks that there's a link with the specified text. | |
616 | - * Give a full URL as the second parameter to match links with that exact URL. | |
617 | - * | |
618 | - * ``` php | |
619 | - * <?php | |
620 | - * $I->seeLink('Logout'); // matches <a href="#">Logout</a> | |
621 | - * $I->seeLink('Logout','/logout'); // matches <a href="/logout">Logout</a> | |
622 | - * ?> | |
623 | - * ``` | |
624 | - * | |
625 | - * @param $text | |
626 | - * @param null $url | |
627 | - * @see \Codeception\Module\WebDriver::seeLink() | |
628 | - */ | |
629 | - public function seeLink($text, $url = null) { | |
630 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeLink', func_get_args())); | |
631 | - } | |
632 | - | |
633 | - | |
634 | - /** | |
635 | - * [!] Method is generated. Documentation taken from corresponding module. | |
636 | - * | |
637 | - * Checks that the page doesn't contain a link with the given string. | |
638 | - * If the second parameter is given, only links with a matching "href" attribute will be checked. | |
639 | - * | |
640 | - * ``` php | |
641 | - * <?php | |
642 | - * $I->dontSeeLink('Logout'); // I suppose user is not logged in | |
643 | - * $I->dontSeeLink('Checkout now', '/store/cart.php'); | |
644 | - * ?> | |
645 | - * ``` | |
646 | - * | |
647 | - * @param $text | |
648 | - * @param null $url | |
649 | - * Conditional Assertion: Test won't be stopped on fail | |
650 | - * @see \Codeception\Module\WebDriver::dontSeeLink() | |
651 | - */ | |
652 | - public function cantSeeLink($text, $url = null) { | |
653 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeLink', func_get_args())); | |
654 | - } | |
655 | - /** | |
656 | - * [!] Method is generated. Documentation taken from corresponding module. | |
657 | - * | |
658 | - * Checks that the page doesn't contain a link with the given string. | |
659 | - * If the second parameter is given, only links with a matching "href" attribute will be checked. | |
660 | - * | |
661 | - * ``` php | |
662 | - * <?php | |
663 | - * $I->dontSeeLink('Logout'); // I suppose user is not logged in | |
664 | - * $I->dontSeeLink('Checkout now', '/store/cart.php'); | |
665 | - * ?> | |
666 | - * ``` | |
667 | - * | |
668 | - * @param $text | |
669 | - * @param null $url | |
670 | - * @see \Codeception\Module\WebDriver::dontSeeLink() | |
671 | - */ | |
672 | - public function dontSeeLink($text, $url = null) { | |
673 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeLink', func_get_args())); | |
674 | - } | |
675 | - | |
676 | - | |
677 | - /** | |
678 | - * [!] Method is generated. Documentation taken from corresponding module. | |
679 | - * | |
680 | - * Checks that current URI contains the given string. | |
538 | + * Checks that current URI contains the given string. | |
681 | 539 | * |
682 | 540 | * ``` php |
683 | 541 | * <?php |
... | ... | @@ -690,7 +548,7 @@ trait AcceptanceTesterActions |
690 | 548 | * |
691 | 549 | * @param $uri |
692 | 550 | * Conditional Assertion: Test won't be stopped on fail |
693 | - * @see \Codeception\Module\WebDriver::seeInCurrentUrl() | |
551 | + * @see \Codeception\Lib\InnerBrowser::seeInCurrentUrl() | |
694 | 552 | */ |
695 | 553 | public function canSeeInCurrentUrl($uri) { |
696 | 554 | return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInCurrentUrl', func_get_args())); |
... | ... | @@ -710,7 +568,7 @@ trait AcceptanceTesterActions |
710 | 568 | * ``` |
711 | 569 | * |
712 | 570 | * @param $uri |
713 | - * @see \Codeception\Module\WebDriver::seeInCurrentUrl() | |
571 | + * @see \Codeception\Lib\InnerBrowser::seeInCurrentUrl() | |
714 | 572 | */ |
715 | 573 | public function seeInCurrentUrl($uri) { |
716 | 574 | return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInCurrentUrl', func_get_args())); |
... | ... | @@ -720,158 +578,158 @@ trait AcceptanceTesterActions |
720 | 578 | /** |
721 | 579 | * [!] Method is generated. Documentation taken from corresponding module. |
722 | 580 | * |
723 | - * Checks that the current URL is equal to the given string. | |
724 | - * Unlike `seeInCurrentUrl`, this only matches the full URL. | |
581 | + * Checks that the current URI doesn't contain the given string. | |
725 | 582 | * |
726 | 583 | * ``` php |
727 | 584 | * <?php |
728 | - * // to match root url | |
729 | - * $I->seeCurrentUrlEquals('/'); | |
585 | + * $I->dontSeeInCurrentUrl('/users/'); | |
730 | 586 | * ?> |
731 | 587 | * ``` |
732 | 588 | * |
733 | 589 | * @param $uri |
734 | 590 | * Conditional Assertion: Test won't be stopped on fail |
735 | - * @see \Codeception\Module\WebDriver::seeCurrentUrlEquals() | |
591 | + * @see \Codeception\Lib\InnerBrowser::dontSeeInCurrentUrl() | |
736 | 592 | */ |
737 | - public function canSeeCurrentUrlEquals($uri) { | |
738 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlEquals', func_get_args())); | |
593 | + public function cantSeeInCurrentUrl($uri) { | |
594 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInCurrentUrl', func_get_args())); | |
739 | 595 | } |
740 | 596 | /** |
741 | 597 | * [!] Method is generated. Documentation taken from corresponding module. |
742 | 598 | * |
743 | - * Checks that the current URL is equal to the given string. | |
744 | - * Unlike `seeInCurrentUrl`, this only matches the full URL. | |
599 | + * Checks that the current URI doesn't contain the given string. | |
745 | 600 | * |
746 | 601 | * ``` php |
747 | 602 | * <?php |
748 | - * // to match root url | |
749 | - * $I->seeCurrentUrlEquals('/'); | |
603 | + * $I->dontSeeInCurrentUrl('/users/'); | |
750 | 604 | * ?> |
751 | 605 | * ``` |
752 | 606 | * |
753 | 607 | * @param $uri |
754 | - * @see \Codeception\Module\WebDriver::seeCurrentUrlEquals() | |
608 | + * @see \Codeception\Lib\InnerBrowser::dontSeeInCurrentUrl() | |
755 | 609 | */ |
756 | - public function seeCurrentUrlEquals($uri) { | |
757 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeCurrentUrlEquals', func_get_args())); | |
610 | + public function dontSeeInCurrentUrl($uri) { | |
611 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInCurrentUrl', func_get_args())); | |
758 | 612 | } |
759 | 613 | |
760 | 614 | |
761 | 615 | /** |
762 | 616 | * [!] Method is generated. Documentation taken from corresponding module. |
763 | 617 | * |
764 | - * Checks that the current URL matches the given regular expression. | |
618 | + * Checks that the current URL is equal to the given string. | |
619 | + * Unlike `seeInCurrentUrl`, this only matches the full URL. | |
765 | 620 | * |
766 | 621 | * ``` php |
767 | 622 | * <?php |
768 | 623 | * // to match root url |
769 | - * $I->seeCurrentUrlMatches('~$/users/(\d+)~'); | |
624 | + * $I->seeCurrentUrlEquals('/'); | |
770 | 625 | * ?> |
771 | 626 | * ``` |
772 | 627 | * |
773 | 628 | * @param $uri |
774 | 629 | * Conditional Assertion: Test won't be stopped on fail |
775 | - * @see \Codeception\Module\WebDriver::seeCurrentUrlMatches() | |
630 | + * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlEquals() | |
776 | 631 | */ |
777 | - public function canSeeCurrentUrlMatches($uri) { | |
778 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlMatches', func_get_args())); | |
632 | + public function canSeeCurrentUrlEquals($uri) { | |
633 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlEquals', func_get_args())); | |
779 | 634 | } |
780 | 635 | /** |
781 | 636 | * [!] Method is generated. Documentation taken from corresponding module. |
782 | 637 | * |
783 | - * Checks that the current URL matches the given regular expression. | |
638 | + * Checks that the current URL is equal to the given string. | |
639 | + * Unlike `seeInCurrentUrl`, this only matches the full URL. | |
784 | 640 | * |
785 | 641 | * ``` php |
786 | 642 | * <?php |
787 | 643 | * // to match root url |
788 | - * $I->seeCurrentUrlMatches('~$/users/(\d+)~'); | |
644 | + * $I->seeCurrentUrlEquals('/'); | |
789 | 645 | * ?> |
790 | 646 | * ``` |
791 | 647 | * |
792 | 648 | * @param $uri |
793 | - * @see \Codeception\Module\WebDriver::seeCurrentUrlMatches() | |
649 | + * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlEquals() | |
794 | 650 | */ |
795 | - public function seeCurrentUrlMatches($uri) { | |
796 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeCurrentUrlMatches', func_get_args())); | |
651 | + public function seeCurrentUrlEquals($uri) { | |
652 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeCurrentUrlEquals', func_get_args())); | |
797 | 653 | } |
798 | 654 | |
799 | 655 | |
800 | 656 | /** |
801 | 657 | * [!] Method is generated. Documentation taken from corresponding module. |
802 | 658 | * |
803 | - * Checks that the current URI doesn't contain the given string. | |
659 | + * Checks that the current URL doesn't equal the given string. | |
660 | + * Unlike `dontSeeInCurrentUrl`, this only matches the full URL. | |
804 | 661 | * |
805 | 662 | * ``` php |
806 | 663 | * <?php |
807 | - * $I->dontSeeInCurrentUrl('/users/'); | |
664 | + * // current url is not root | |
665 | + * $I->dontSeeCurrentUrlEquals('/'); | |
808 | 666 | * ?> |
809 | 667 | * ``` |
810 | 668 | * |
811 | 669 | * @param $uri |
812 | 670 | * Conditional Assertion: Test won't be stopped on fail |
813 | - * @see \Codeception\Module\WebDriver::dontSeeInCurrentUrl() | |
671 | + * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlEquals() | |
814 | 672 | */ |
815 | - public function cantSeeInCurrentUrl($uri) { | |
816 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInCurrentUrl', func_get_args())); | |
673 | + public function cantSeeCurrentUrlEquals($uri) { | |
674 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlEquals', func_get_args())); | |
817 | 675 | } |
818 | 676 | /** |
819 | 677 | * [!] Method is generated. Documentation taken from corresponding module. |
820 | 678 | * |
821 | - * Checks that the current URI doesn't contain the given string. | |
679 | + * Checks that the current URL doesn't equal the given string. | |
680 | + * Unlike `dontSeeInCurrentUrl`, this only matches the full URL. | |
822 | 681 | * |
823 | 682 | * ``` php |
824 | 683 | * <?php |
825 | - * $I->dontSeeInCurrentUrl('/users/'); | |
684 | + * // current url is not root | |
685 | + * $I->dontSeeCurrentUrlEquals('/'); | |
826 | 686 | * ?> |
827 | 687 | * ``` |
828 | 688 | * |
829 | 689 | * @param $uri |
830 | - * @see \Codeception\Module\WebDriver::dontSeeInCurrentUrl() | |
690 | + * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlEquals() | |
831 | 691 | */ |
832 | - public function dontSeeInCurrentUrl($uri) { | |
833 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInCurrentUrl', func_get_args())); | |
692 | + public function dontSeeCurrentUrlEquals($uri) { | |
693 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeCurrentUrlEquals', func_get_args())); | |
834 | 694 | } |
835 | 695 | |
836 | 696 | |
837 | 697 | /** |
838 | 698 | * [!] Method is generated. Documentation taken from corresponding module. |
839 | 699 | * |
840 | - * Checks that the current URL doesn't equal the given string. | |
841 | - * Unlike `dontSeeInCurrentUrl`, this only matches the full URL. | |
700 | + * Checks that the current URL matches the given regular expression. | |
842 | 701 | * |
843 | 702 | * ``` php |
844 | 703 | * <?php |
845 | - * // current url is not root | |
846 | - * $I->dontSeeCurrentUrlEquals('/'); | |
704 | + * // to match root url | |
705 | + * $I->seeCurrentUrlMatches('~$/users/(\d+)~'); | |
847 | 706 | * ?> |
848 | 707 | * ``` |
849 | 708 | * |
850 | 709 | * @param $uri |
851 | 710 | * Conditional Assertion: Test won't be stopped on fail |
852 | - * @see \Codeception\Module\WebDriver::dontSeeCurrentUrlEquals() | |
711 | + * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlMatches() | |
853 | 712 | */ |
854 | - public function cantSeeCurrentUrlEquals($uri) { | |
855 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlEquals', func_get_args())); | |
713 | + public function canSeeCurrentUrlMatches($uri) { | |
714 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlMatches', func_get_args())); | |
856 | 715 | } |
857 | 716 | /** |
858 | 717 | * [!] Method is generated. Documentation taken from corresponding module. |
859 | 718 | * |
860 | - * Checks that the current URL doesn't equal the given string. | |
861 | - * Unlike `dontSeeInCurrentUrl`, this only matches the full URL. | |
719 | + * Checks that the current URL matches the given regular expression. | |
862 | 720 | * |
863 | 721 | * ``` php |
864 | 722 | * <?php |
865 | - * // current url is not root | |
866 | - * $I->dontSeeCurrentUrlEquals('/'); | |
723 | + * // to match root url | |
724 | + * $I->seeCurrentUrlMatches('~$/users/(\d+)~'); | |
867 | 725 | * ?> |
868 | 726 | * ``` |
869 | 727 | * |
870 | 728 | * @param $uri |
871 | - * @see \Codeception\Module\WebDriver::dontSeeCurrentUrlEquals() | |
729 | + * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlMatches() | |
872 | 730 | */ |
873 | - public function dontSeeCurrentUrlEquals($uri) { | |
874 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeCurrentUrlEquals', func_get_args())); | |
731 | + public function seeCurrentUrlMatches($uri) { | |
732 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeCurrentUrlMatches', func_get_args())); | |
875 | 733 | } |
876 | 734 | |
877 | 735 | |
... | ... | @@ -889,7 +747,7 @@ trait AcceptanceTesterActions |
889 | 747 | * |
890 | 748 | * @param $uri |
891 | 749 | * Conditional Assertion: Test won't be stopped on fail |
892 | - * @see \Codeception\Module\WebDriver::dontSeeCurrentUrlMatches() | |
750 | + * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlMatches() | |
893 | 751 | */ |
894 | 752 | public function cantSeeCurrentUrlMatches($uri) { |
895 | 753 | return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlMatches', func_get_args())); |
... | ... | @@ -907,7 +765,7 @@ trait AcceptanceTesterActions |
907 | 765 | * ``` |
908 | 766 | * |
909 | 767 | * @param $uri |
910 | - * @see \Codeception\Module\WebDriver::dontSeeCurrentUrlMatches() | |
768 | + * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlMatches() | |
911 | 769 | */ |
912 | 770 | public function dontSeeCurrentUrlMatches($uri) { |
913 | 771 | return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeCurrentUrlMatches', func_get_args())); |
... | ... | @@ -930,7 +788,7 @@ trait AcceptanceTesterActions |
930 | 788 | * @param null $uri |
931 | 789 | * |
932 | 790 | * @return mixed |
933 | - * @see \Codeception\Module\WebDriver::grabFromCurrentUrl() | |
791 | + * @see \Codeception\Lib\InnerBrowser::grabFromCurrentUrl() | |
934 | 792 | */ |
935 | 793 | public function grabFromCurrentUrl($uri = null) { |
936 | 794 | return $this->getScenario()->runStep(new \Codeception\Step\Action('grabFromCurrentUrl', func_get_args())); |
... | ... | @@ -952,7 +810,7 @@ trait AcceptanceTesterActions |
952 | 810 | * |
953 | 811 | * @param $checkbox |
954 | 812 | * Conditional Assertion: Test won't be stopped on fail |
955 | - * @see \Codeception\Module\WebDriver::seeCheckboxIsChecked() | |
813 | + * @see \Codeception\Lib\InnerBrowser::seeCheckboxIsChecked() | |
956 | 814 | */ |
957 | 815 | public function canSeeCheckboxIsChecked($checkbox) { |
958 | 816 | return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCheckboxIsChecked', func_get_args())); |
... | ... | @@ -971,7 +829,7 @@ trait AcceptanceTesterActions |
971 | 829 | * ``` |
972 | 830 | * |
973 | 831 | * @param $checkbox |
974 | - * @see \Codeception\Module\WebDriver::seeCheckboxIsChecked() | |
832 | + * @see \Codeception\Lib\InnerBrowser::seeCheckboxIsChecked() | |
975 | 833 | */ |
976 | 834 | public function seeCheckboxIsChecked($checkbox) { |
977 | 835 | return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeCheckboxIsChecked', func_get_args())); |
... | ... | @@ -992,7 +850,7 @@ trait AcceptanceTesterActions |
992 | 850 | * |
993 | 851 | * @param $checkbox |
994 | 852 | * Conditional Assertion: Test won't be stopped on fail |
995 | - * @see \Codeception\Module\WebDriver::dontSeeCheckboxIsChecked() | |
853 | + * @see \Codeception\Lib\InnerBrowser::dontSeeCheckboxIsChecked() | |
996 | 854 | */ |
997 | 855 | public function cantSeeCheckboxIsChecked($checkbox) { |
998 | 856 | return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCheckboxIsChecked', func_get_args())); |
... | ... | @@ -1010,7 +868,7 @@ trait AcceptanceTesterActions |
1010 | 868 | * ``` |
1011 | 869 | * |
1012 | 870 | * @param $checkbox |
1013 | - * @see \Codeception\Module\WebDriver::dontSeeCheckboxIsChecked() | |
871 | + * @see \Codeception\Lib\InnerBrowser::dontSeeCheckboxIsChecked() | |
1014 | 872 | */ |
1015 | 873 | public function dontSeeCheckboxIsChecked($checkbox) { |
1016 | 874 | return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeCheckboxIsChecked', func_get_args())); |
... | ... | @@ -1037,7 +895,7 @@ trait AcceptanceTesterActions |
1037 | 895 | * @param $field |
1038 | 896 | * @param $value |
1039 | 897 | * Conditional Assertion: Test won't be stopped on fail |
1040 | - * @see \Codeception\Module\WebDriver::seeInField() | |
898 | + * @see \Codeception\Lib\InnerBrowser::seeInField() | |
1041 | 899 | */ |
1042 | 900 | public function canSeeInField($field, $value) { |
1043 | 901 | return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInField', func_get_args())); |
... | ... | @@ -1061,7 +919,7 @@ trait AcceptanceTesterActions |
1061 | 919 | * |
1062 | 920 | * @param $field |
1063 | 921 | * @param $value |
1064 | - * @see \Codeception\Module\WebDriver::seeInField() | |
922 | + * @see \Codeception\Lib\InnerBrowser::seeInField() | |
1065 | 923 | */ |
1066 | 924 | public function seeInField($field, $value) { |
1067 | 925 | return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInField', func_get_args())); |
... | ... | @@ -1088,7 +946,7 @@ trait AcceptanceTesterActions |
1088 | 946 | * @param $field |
1089 | 947 | * @param $value |
1090 | 948 | * Conditional Assertion: Test won't be stopped on fail |
1091 | - * @see \Codeception\Module\WebDriver::dontSeeInField() | |
949 | + * @see \Codeception\Lib\InnerBrowser::dontSeeInField() | |
1092 | 950 | */ |
1093 | 951 | public function cantSeeInField($field, $value) { |
1094 | 952 | return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInField', func_get_args())); |
... | ... | @@ -1112,7 +970,7 @@ trait AcceptanceTesterActions |
1112 | 970 | * |
1113 | 971 | * @param $field |
1114 | 972 | * @param $value |
1115 | - * @see \Codeception\Module\WebDriver::dontSeeInField() | |
973 | + * @see \Codeception\Lib\InnerBrowser::dontSeeInField() | |
1116 | 974 | */ |
1117 | 975 | public function dontSeeInField($field, $value) { |
1118 | 976 | return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInField', func_get_args())); |
... | ... | @@ -1182,7 +1040,7 @@ trait AcceptanceTesterActions |
1182 | 1040 | * @param $formSelector |
1183 | 1041 | * @param $params |
1184 | 1042 | * Conditional Assertion: Test won't be stopped on fail |
1185 | - * @see \Codeception\Module\WebDriver::seeInFormFields() | |
1043 | + * @see \Codeception\Lib\InnerBrowser::seeInFormFields() | |
1186 | 1044 | */ |
1187 | 1045 | public function canSeeInFormFields($formSelector, $params) { |
1188 | 1046 | return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInFormFields', func_get_args())); |
... | ... | @@ -1249,7 +1107,7 @@ trait AcceptanceTesterActions |
1249 | 1107 | * |
1250 | 1108 | * @param $formSelector |
1251 | 1109 | * @param $params |
1252 | - * @see \Codeception\Module\WebDriver::seeInFormFields() | |
1110 | + * @see \Codeception\Lib\InnerBrowser::seeInFormFields() | |
1253 | 1111 | */ |
1254 | 1112 | public function seeInFormFields($formSelector, $params) { |
1255 | 1113 | return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInFormFields', func_get_args())); |
... | ... | @@ -1299,7 +1157,7 @@ trait AcceptanceTesterActions |
1299 | 1157 | * @param $formSelector |
1300 | 1158 | * @param $params |
1301 | 1159 | * Conditional Assertion: Test won't be stopped on fail |
1302 | - * @see \Codeception\Module\WebDriver::dontSeeInFormFields() | |
1160 | + * @see \Codeception\Lib\InnerBrowser::dontSeeInFormFields() | |
1303 | 1161 | */ |
1304 | 1162 | public function cantSeeInFormFields($formSelector, $params) { |
1305 | 1163 | return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInFormFields', func_get_args())); |
... | ... | @@ -1346,7 +1204,7 @@ trait AcceptanceTesterActions |
1346 | 1204 | * |
1347 | 1205 | * @param $formSelector |
1348 | 1206 | * @param $params |
1349 | - * @see \Codeception\Module\WebDriver::dontSeeInFormFields() | |
1207 | + * @see \Codeception\Lib\InnerBrowser::dontSeeInFormFields() | |
1350 | 1208 | */ |
1351 | 1209 | public function dontSeeInFormFields($formSelector, $params) { |
1352 | 1210 | return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInFormFields', func_get_args())); |
... | ... | @@ -1356,100 +1214,277 @@ trait AcceptanceTesterActions |
1356 | 1214 | /** |
1357 | 1215 | * [!] Method is generated. Documentation taken from corresponding module. |
1358 | 1216 | * |
1359 | - * Selects an option in a select tag or in radio button group. | |
1217 | + * Submits the given form on the page, optionally with the given form | |
1218 | + * values. Pass the form field's values as an array in the second | |
1219 | + * parameter. | |
1360 | 1220 | * |
1361 | - * ``` php | |
1362 | - * <?php | |
1363 | - * $I->selectOption('form select[name=account]', 'Premium'); | |
1364 | - * $I->selectOption('form input[name=payment]', 'Monthly'); | |
1365 | - * $I->selectOption('//form/select[@name=account]', 'Monthly'); | |
1366 | - * ?> | |
1367 | - * ``` | |
1221 | + * Although this function can be used as a short-hand version of | |
1222 | + * `fillField()`, `selectOption()`, `click()` etc. it has some important | |
1223 | + * differences: | |
1224 | + * | |
1225 | + * * Only field *names* may be used, not CSS/XPath selectors nor field labels | |
1226 | + * * If a field is sent to this function that does *not* exist on the page, | |
1227 | + * it will silently be added to the HTTP request. This is helpful for testing | |
1228 | + * some types of forms, but be aware that you will *not* get an exception | |
1229 | + * like you would if you called `fillField()` or `selectOption()` with | |
1230 | + * a missing field. | |
1231 | + * | |
1232 | + * Fields that are not provided will be filled by their values from the page, | |
1233 | + * or from any previous calls to `fillField()`, `selectOption()` etc. | |
1234 | + * You don't need to click the 'Submit' button afterwards. | |
1235 | + * This command itself triggers the request to form's action. | |
1368 | 1236 | * |
1369 | - * Provide an array for the second argument to select multiple options: | |
1237 | + * You can optionally specify which button's value to include | |
1238 | + * in the request with the last parameter (as an alternative to | |
1239 | + * explicitly setting its value in the second parameter), as | |
1240 | + * button values are not otherwise included in the request. | |
1241 | + * | |
1242 | + * Examples: | |
1370 | 1243 | * |
1371 | 1244 | * ``` php |
1372 | 1245 | * <?php |
1373 | - * $I->selectOption('Which OS do you use?', array('Windows','Linux')); | |
1374 | - * ?> | |
1375 | - * ``` | |
1246 | + * $I->submitForm('#login', [ | |
1247 | + * 'login' => 'davert', | |
1248 | + * 'password' => '123456' | |
1249 | + * ]); | |
1250 | + * // or | |
1251 | + * $I->submitForm('#login', [ | |
1252 | + * 'login' => 'davert', | |
1253 | + * 'password' => '123456' | |
1254 | + * ], 'submitButtonName'); | |
1376 | 1255 | * |
1377 | - * @param $select | |
1378 | - * @param $option | |
1379 | - * @see \Codeception\Module\WebDriver::selectOption() | |
1380 | - */ | |
1381 | - public function selectOption($select, $option) { | |
1382 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('selectOption', func_get_args())); | |
1383 | - } | |
1384 | - | |
1385 | - | |
1386 | - /** | |
1387 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1256 | + * ``` | |
1388 | 1257 | * |
1258 | + * For example, given this sample "Sign Up" form: | |
1389 | 1259 | * |
1390 | - * @see \Codeception\Module\WebDriver::unselectOption() | |
1391 | - */ | |
1392 | - public function unselectOption($select, $option) { | |
1393 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('unselectOption', func_get_args())); | |
1394 | - } | |
1395 | - | |
1396 | - | |
1397 | - /** | |
1398 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1260 | + * ``` html | |
1261 | + * <form action="/sign_up"> | |
1262 | + * Login: | |
1263 | + * <input type="text" name="user[login]" /><br/> | |
1264 | + * Password: | |
1265 | + * <input type="password" name="user[password]" /><br/> | |
1266 | + * Do you agree to our terms? | |
1267 | + * <input type="checkbox" name="user[agree]" /><br/> | |
1268 | + * Select pricing plan: | |
1269 | + * <select name="plan"> | |
1270 | + * <option value="1">Free</option> | |
1271 | + * <option value="2" selected="selected">Paid</option> | |
1272 | + * </select> | |
1273 | + * <input type="submit" name="submitButton" value="Submit" /> | |
1274 | + * </form> | |
1275 | + * ``` | |
1399 | 1276 | * |
1400 | - * Ticks a checkbox. For radio buttons, use the `selectOption` method instead. | |
1277 | + * You could write the following to submit it: | |
1401 | 1278 | * |
1402 | 1279 | * ``` php |
1403 | 1280 | * <?php |
1404 | - * $I->checkOption('#agree'); | |
1405 | - * ?> | |
1406 | - * ``` | |
1407 | - * | |
1408 | - * @param $option | |
1409 | - * @see \Codeception\Module\WebDriver::checkOption() | |
1281 | + * $I->submitForm( | |
1282 | + * '#userForm', | |
1283 | + * [ | |
1284 | + * 'user' => [ | |
1285 | + * 'login' => 'Davert', | |
1286 | + * 'password' => '123456', | |
1287 | + * 'agree' => true | |
1288 | + * ] | |
1289 | + * ], | |
1290 | + * 'submitButton' | |
1291 | + * ); | |
1292 | + * ``` | |
1293 | + * Note that "2" will be the submitted value for the "plan" field, as it is | |
1294 | + * the selected option. | |
1295 | + * | |
1296 | + * You can also emulate a JavaScript submission by not specifying any | |
1297 | + * buttons in the third parameter to submitForm. | |
1298 | + * | |
1299 | + * ```php | |
1300 | + * <?php | |
1301 | + * $I->submitForm( | |
1302 | + * '#userForm', | |
1303 | + * [ | |
1304 | + * 'user' => [ | |
1305 | + * 'login' => 'Davert', | |
1306 | + * 'password' => '123456', | |
1307 | + * 'agree' => true | |
1308 | + * ] | |
1309 | + * ] | |
1310 | + * ); | |
1311 | + * ``` | |
1312 | + * | |
1313 | + * This function works well when paired with `seeInFormFields()` | |
1314 | + * for quickly testing CRUD interfaces and form validation logic. | |
1315 | + * | |
1316 | + * ``` php | |
1317 | + * <?php | |
1318 | + * $form = [ | |
1319 | + * 'field1' => 'value', | |
1320 | + * 'field2' => 'another value', | |
1321 | + * 'checkbox1' => true, | |
1322 | + * // ... | |
1323 | + * ]; | |
1324 | + * $I->submitForm('#my-form', $form, 'submitButton'); | |
1325 | + * // $I->amOnPage('/path/to/form-page') may be needed | |
1326 | + * $I->seeInFormFields('#my-form', $form); | |
1327 | + * ``` | |
1328 | + * | |
1329 | + * Parameter values can be set to arrays for multiple input fields | |
1330 | + * of the same name, or multi-select combo boxes. For checkboxes, | |
1331 | + * you can use either the string value or boolean `true`/`false` which will | |
1332 | + * be replaced by the checkbox's value in the DOM. | |
1333 | + * | |
1334 | + * ``` php | |
1335 | + * <?php | |
1336 | + * $I->submitForm('#my-form', [ | |
1337 | + * 'field1' => 'value', | |
1338 | + * 'checkbox' => [ | |
1339 | + * 'value of first checkbox', | |
1340 | + * 'value of second checkbox', | |
1341 | + * ], | |
1342 | + * 'otherCheckboxes' => [ | |
1343 | + * true, | |
1344 | + * false, | |
1345 | + * false | |
1346 | + * ], | |
1347 | + * 'multiselect' => [ | |
1348 | + * 'first option value', | |
1349 | + * 'second option value' | |
1350 | + * ] | |
1351 | + * ]); | |
1352 | + * ``` | |
1353 | + * | |
1354 | + * Mixing string and boolean values for a checkbox's value is not supported | |
1355 | + * and may produce unexpected results. | |
1356 | + * | |
1357 | + * Field names ending in `[]` must be passed without the trailing square | |
1358 | + * bracket characters, and must contain an array for its value. This allows | |
1359 | + * submitting multiple values with the same name, consider: | |
1360 | + * | |
1361 | + * ```php | |
1362 | + * <?php | |
1363 | + * // This will NOT work correctly | |
1364 | + * $I->submitForm('#my-form', [ | |
1365 | + * 'field[]' => 'value', | |
1366 | + * 'field[]' => 'another value', // 'field[]' is already a defined key | |
1367 | + * ]); | |
1368 | + * ``` | |
1369 | + * | |
1370 | + * The solution is to pass an array value: | |
1371 | + * | |
1372 | + * ```php | |
1373 | + * <?php | |
1374 | + * // This way both values are submitted | |
1375 | + * $I->submitForm('#my-form', [ | |
1376 | + * 'field' => [ | |
1377 | + * 'value', | |
1378 | + * 'another value', | |
1379 | + * ] | |
1380 | + * ]); | |
1381 | + * ``` | |
1382 | + * | |
1383 | + * @param $selector | |
1384 | + * @param $params | |
1385 | + * @param $button | |
1386 | + * @see \Codeception\Lib\InnerBrowser::submitForm() | |
1410 | 1387 | */ |
1411 | - public function checkOption($option) { | |
1412 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('checkOption', func_get_args())); | |
1388 | + public function submitForm($selector, $params, $button = null) { | |
1389 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('submitForm', func_get_args())); | |
1413 | 1390 | } |
1414 | 1391 | |
1415 | 1392 | |
1416 | 1393 | /** |
1417 | 1394 | * [!] Method is generated. Documentation taken from corresponding module. |
1418 | 1395 | * |
1419 | - * Unticks a checkbox. | |
1396 | + * Fills a text field or textarea with the given string. | |
1420 | 1397 | * |
1421 | 1398 | * ``` php |
1422 | 1399 | * <?php |
1423 | - * $I->uncheckOption('#notify'); | |
1400 | + * $I->fillField("//input[@type='text']", "Hello World!"); | |
1401 | + * $I->fillField(['name' => 'email'], 'jon@mail.com'); | |
1402 | + * ?> | |
1403 | + * ``` | |
1404 | + * | |
1405 | + * @param $field | |
1406 | + * @param $value | |
1407 | + * @see \Codeception\Lib\InnerBrowser::fillField() | |
1408 | + */ | |
1409 | + public function fillField($field, $value) { | |
1410 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('fillField', func_get_args())); | |
1411 | + } | |
1412 | + | |
1413 | + | |
1414 | + /** | |
1415 | + * [!] Method is generated. Documentation taken from corresponding module. | |
1416 | + * | |
1417 | + * Selects an option in a select tag or in radio button group. | |
1418 | + * | |
1419 | + * ``` php | |
1420 | + * <?php | |
1421 | + * $I->selectOption('form select[name=account]', 'Premium'); | |
1422 | + * $I->selectOption('form input[name=payment]', 'Monthly'); | |
1423 | + * $I->selectOption('//form/select[@name=account]', 'Monthly'); | |
1424 | 1424 | * ?> |
1425 | 1425 | * ``` |
1426 | 1426 | * |
1427 | + * Provide an array for the second argument to select multiple options: | |
1428 | + * | |
1429 | + * ``` php | |
1430 | + * <?php | |
1431 | + * $I->selectOption('Which OS do you use?', array('Windows','Linux')); | |
1432 | + * ?> | |
1433 | + * ``` | |
1434 | + * | |
1435 | + * Or provide an associative array for the second argument to specifically define which selection method should be used: | |
1436 | + * | |
1437 | + * ``` php | |
1438 | + * <?php | |
1439 | + * $I->selectOption('Which OS do you use?', array('text' => 'Windows')); // Only search by text 'Windows' | |
1440 | + * $I->selectOption('Which OS do you use?', array('value' => 'windows')); // Only search by value 'windows' | |
1441 | + * ?> | |
1442 | + + ``` | |
1443 | + * | |
1444 | + * @param $select | |
1427 | 1445 | * @param $option |
1428 | - * @see \Codeception\Module\WebDriver::uncheckOption() | |
1446 | + * @see \Codeception\Lib\InnerBrowser::selectOption() | |
1429 | 1447 | */ |
1430 | - public function uncheckOption($option) { | |
1431 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('uncheckOption', func_get_args())); | |
1448 | + public function selectOption($select, $option) { | |
1449 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('selectOption', func_get_args())); | |
1432 | 1450 | } |
1433 | 1451 | |
1434 | 1452 | |
1435 | 1453 | /** |
1436 | 1454 | * [!] Method is generated. Documentation taken from corresponding module. |
1437 | 1455 | * |
1438 | - * Fills a text field or textarea with the given string. | |
1456 | + * Ticks a checkbox. For radio buttons, use the `selectOption` method instead. | |
1439 | 1457 | * |
1440 | 1458 | * ``` php |
1441 | 1459 | * <?php |
1442 | - * $I->fillField("//input[@type='text']", "Hello World!"); | |
1443 | - * $I->fillField(['name' => 'email'], 'jon@mail.com'); | |
1460 | + * $I->checkOption('#agree'); | |
1444 | 1461 | * ?> |
1445 | 1462 | * ``` |
1446 | 1463 | * |
1447 | - * @param $field | |
1448 | - * @param $value | |
1449 | - * @see \Codeception\Module\WebDriver::fillField() | |
1464 | + * @param $option | |
1465 | + * @see \Codeception\Lib\InnerBrowser::checkOption() | |
1450 | 1466 | */ |
1451 | - public function fillField($field, $value) { | |
1452 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('fillField', func_get_args())); | |
1467 | + public function checkOption($option) { | |
1468 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('checkOption', func_get_args())); | |
1469 | + } | |
1470 | + | |
1471 | + | |
1472 | + /** | |
1473 | + * [!] Method is generated. Documentation taken from corresponding module. | |
1474 | + * | |
1475 | + * Unticks a checkbox. | |
1476 | + * | |
1477 | + * ``` php | |
1478 | + * <?php | |
1479 | + * $I->uncheckOption('#notify'); | |
1480 | + * ?> | |
1481 | + * ``` | |
1482 | + * | |
1483 | + * @param $option | |
1484 | + * @see \Codeception\Lib\InnerBrowser::uncheckOption() | |
1485 | + */ | |
1486 | + public function uncheckOption($option) { | |
1487 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('uncheckOption', func_get_args())); | |
1453 | 1488 | } |
1454 | 1489 | |
1455 | 1490 | |
... | ... | @@ -1467,7 +1502,7 @@ trait AcceptanceTesterActions |
1467 | 1502 | * |
1468 | 1503 | * @param $field |
1469 | 1504 | * @param $filename |
1470 | - * @see \Codeception\Module\WebDriver::attachFile() | |
1505 | + * @see \Codeception\Lib\InnerBrowser::attachFile() | |
1471 | 1506 | */ |
1472 | 1507 | public function attachFile($field, $filename) { |
1473 | 1508 | return $this->getScenario()->runStep(new \Codeception\Step\Action('attachFile', func_get_args())); |
... | ... | @@ -1477,13 +1512,71 @@ trait AcceptanceTesterActions |
1477 | 1512 | /** |
1478 | 1513 | * [!] Method is generated. Documentation taken from corresponding module. |
1479 | 1514 | * |
1480 | - * Grabs all visible text from the current page. | |
1515 | + * If your page triggers an ajax request, you can perform it manually. | |
1516 | + * This action sends a GET ajax request with specified params. | |
1517 | + * | |
1518 | + * See ->sendAjaxPostRequest for examples. | |
1519 | + * | |
1520 | + * @param $uri | |
1521 | + * @param $params | |
1522 | + * @see \Codeception\Lib\InnerBrowser::sendAjaxGetRequest() | |
1523 | + */ | |
1524 | + public function sendAjaxGetRequest($uri, $params = null) { | |
1525 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('sendAjaxGetRequest', func_get_args())); | |
1526 | + } | |
1527 | + | |
1528 | + | |
1529 | + /** | |
1530 | + * [!] Method is generated. Documentation taken from corresponding module. | |
1531 | + * | |
1532 | + * If your page triggers an ajax request, you can perform it manually. | |
1533 | + * This action sends a POST ajax request with specified params. | |
1534 | + * Additional params can be passed as array. | |
1535 | + * | |
1536 | + * Example: | |
1537 | + * | |
1538 | + * Imagine that by clicking checkbox you trigger ajax request which updates user settings. | |
1539 | + * We emulate that click by running this ajax request manually. | |
1540 | + * | |
1541 | + * ``` php | |
1542 | + * <?php | |
1543 | + * $I->sendAjaxPostRequest('/updateSettings', array('notifications' => true)); // POST | |
1544 | + * $I->sendAjaxGetRequest('/updateSettings', array('notifications' => true)); // GET | |
1545 | + * | |
1546 | + * ``` | |
1547 | + * | |
1548 | + * @param $uri | |
1549 | + * @param $params | |
1550 | + * @see \Codeception\Lib\InnerBrowser::sendAjaxPostRequest() | |
1551 | + */ | |
1552 | + public function sendAjaxPostRequest($uri, $params = null) { | |
1553 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('sendAjaxPostRequest', func_get_args())); | |
1554 | + } | |
1555 | + | |
1556 | + | |
1557 | + /** | |
1558 | + * [!] Method is generated. Documentation taken from corresponding module. | |
1559 | + * | |
1560 | + * If your page triggers an ajax request, you can perform it manually. | |
1561 | + * This action sends an ajax request with specified method and params. | |
1562 | + * | |
1563 | + * Example: | |
1564 | + * | |
1565 | + * You need to perform an ajax request specifying the HTTP method. | |
1481 | 1566 | * |
1482 | - * @return string | |
1483 | - * @see \Codeception\Module\WebDriver::getVisibleText() | |
1567 | + * ``` php | |
1568 | + * <?php | |
1569 | + * $I->sendAjaxRequest('PUT', '/posts/7', array('title' => 'new title')); | |
1570 | + * | |
1571 | + * ``` | |
1572 | + * | |
1573 | + * @param $method | |
1574 | + * @param $uri | |
1575 | + * @param $params | |
1576 | + * @see \Codeception\Lib\InnerBrowser::sendAjaxRequest() | |
1484 | 1577 | */ |
1485 | - public function getVisibleText() { | |
1486 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('getVisibleText', func_get_args())); | |
1578 | + public function sendAjaxRequest($method, $uri, $params = null) { | |
1579 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('sendAjaxRequest', func_get_args())); | |
1487 | 1580 | } |
1488 | 1581 | |
1489 | 1582 | |
... | ... | @@ -1504,7 +1597,7 @@ trait AcceptanceTesterActions |
1504 | 1597 | * @param $cssOrXPathOrRegex |
1505 | 1598 | * |
1506 | 1599 | * @return mixed |
1507 | - * @see \Codeception\Module\WebDriver::grabTextFrom() | |
1600 | + * @see \Codeception\Lib\InnerBrowser::grabTextFrom() | |
1508 | 1601 | */ |
1509 | 1602 | public function grabTextFrom($cssOrXPathOrRegex) { |
1510 | 1603 | return $this->getScenario()->runStep(new \Codeception\Step\Action('grabTextFrom', func_get_args())); |
... | ... | @@ -1528,7 +1621,7 @@ trait AcceptanceTesterActions |
1528 | 1621 | * @param $attribute |
1529 | 1622 | * |
1530 | 1623 | * @return mixed |
1531 | - * @see \Codeception\Module\WebDriver::grabAttributeFrom() | |
1624 | + * @see \Codeception\Lib\InnerBrowser::grabAttributeFrom() | |
1532 | 1625 | */ |
1533 | 1626 | public function grabAttributeFrom($cssOrXpath, $attribute) { |
1534 | 1627 | return $this->getScenario()->runStep(new \Codeception\Step\Action('grabAttributeFrom', func_get_args())); |
... | ... | @@ -1538,31 +1631,6 @@ trait AcceptanceTesterActions |
1538 | 1631 | /** |
1539 | 1632 | * [!] Method is generated. Documentation taken from corresponding module. |
1540 | 1633 | * |
1541 | - * Finds the value for the given form field. | |
1542 | - * If a fuzzy locator is used, the field is found by field name, CSS, and XPath. | |
1543 | - * | |
1544 | - * ``` php | |
1545 | - * <?php | |
1546 | - * $name = $I->grabValueFrom('Name'); | |
1547 | - * $name = $I->grabValueFrom('input[name=username]'); | |
1548 | - * $name = $I->grabValueFrom('descendant-or-self::form/descendant::input[@name = 'username']'); | |
1549 | - * $name = $I->grabValueFrom(['name' => 'username']); | |
1550 | - * ?> | |
1551 | - * ``` | |
1552 | - * | |
1553 | - * @param $field | |
1554 | - * | |
1555 | - * @return mixed | |
1556 | - * @see \Codeception\Module\WebDriver::grabValueFrom() | |
1557 | - */ | |
1558 | - public function grabValueFrom($field) { | |
1559 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('grabValueFrom', func_get_args())); | |
1560 | - } | |
1561 | - | |
1562 | - | |
1563 | - /** | |
1564 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1565 | - * | |
1566 | 1634 | * Grabs either the text content, or attribute values, of nodes |
1567 | 1635 | * matched by $cssOrXpath and returns them as an array. |
1568 | 1636 | * |
... | ... | @@ -1585,7 +1653,7 @@ trait AcceptanceTesterActions |
1585 | 1653 | * @param $cssOrXpath |
1586 | 1654 | * @param $attribute |
1587 | 1655 | * @return string[] |
1588 | - * @see \Codeception\Module\WebDriver::grabMultiple() | |
1656 | + * @see \Codeception\Lib\InnerBrowser::grabMultiple() | |
1589 | 1657 | */ |
1590 | 1658 | public function grabMultiple($cssOrXpath, $attribute = null) { |
1591 | 1659 | return $this->getScenario()->runStep(new \Codeception\Step\Action('grabMultiple', func_get_args())); |
... | ... | @@ -1595,1092 +1663,534 @@ trait AcceptanceTesterActions |
1595 | 1663 | /** |
1596 | 1664 | * [!] Method is generated. Documentation taken from corresponding module. |
1597 | 1665 | * |
1598 | - * Checks that the given element exists on the page and is visible. | |
1599 | - * You can also specify expected attributes of this element. | |
1600 | - * | |
1601 | - * ``` php | |
1602 | - * <?php | |
1603 | - * $I->seeElement('.error'); | |
1604 | - * $I->seeElement('//form/input[1]'); | |
1605 | - * $I->seeElement('input', ['name' => 'login']); | |
1606 | - * $I->seeElement('input', ['value' => '123456']); | |
1607 | - * | |
1608 | - * // strict locator in first arg, attributes in second | |
1609 | - * $I->seeElement(['css' => 'form input'], ['name' => 'login']); | |
1610 | - * ?> | |
1611 | - * ``` | |
1666 | + * @param $field | |
1612 | 1667 | * |
1613 | - * @param $selector | |
1614 | - * @param array $attributes | |
1615 | - * @return | |
1616 | - * Conditional Assertion: Test won't be stopped on fail | |
1617 | - * @see \Codeception\Module\WebDriver::seeElement() | |
1668 | + * @return array|mixed|null|string | |
1669 | + * @see \Codeception\Lib\InnerBrowser::grabValueFrom() | |
1618 | 1670 | */ |
1619 | - public function canSeeElement($selector, $attributes = null) { | |
1620 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeElement', func_get_args())); | |
1671 | + public function grabValueFrom($field) { | |
1672 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('grabValueFrom', func_get_args())); | |
1621 | 1673 | } |
1674 | + | |
1675 | + | |
1622 | 1676 | /** |
1623 | 1677 | * [!] Method is generated. Documentation taken from corresponding module. |
1624 | 1678 | * |
1625 | - * Checks that the given element exists on the page and is visible. | |
1626 | - * You can also specify expected attributes of this element. | |
1679 | + * Sets a cookie with the given name and value. | |
1680 | + * You can set additional cookie params like `domain`, `path`, `expires`, `secure` in array passed as last argument. | |
1627 | 1681 | * |
1628 | 1682 | * ``` php |
1629 | 1683 | * <?php |
1630 | - * $I->seeElement('.error'); | |
1631 | - * $I->seeElement('//form/input[1]'); | |
1632 | - * $I->seeElement('input', ['name' => 'login']); | |
1633 | - * $I->seeElement('input', ['value' => '123456']); | |
1634 | - * | |
1635 | - * // strict locator in first arg, attributes in second | |
1636 | - * $I->seeElement(['css' => 'form input'], ['name' => 'login']); | |
1684 | + * $I->setCookie('PHPSESSID', 'el4ukv0kqbvoirg7nkp4dncpk3'); | |
1637 | 1685 | * ?> |
1638 | 1686 | * ``` |
1639 | 1687 | * |
1640 | - * @param $selector | |
1641 | - * @param array $attributes | |
1642 | - * @return | |
1643 | - * @see \Codeception\Module\WebDriver::seeElement() | |
1644 | - */ | |
1645 | - public function seeElement($selector, $attributes = null) { | |
1646 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeElement', func_get_args())); | |
1647 | - } | |
1648 | - | |
1649 | - | |
1650 | - /** | |
1651 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1652 | - * | |
1653 | - * Checks that the given element is invisible or not present on the page. | |
1654 | - * You can also specify expected attributes of this element. | |
1655 | - * | |
1656 | - * ``` php | |
1657 | - * <?php | |
1658 | - * $I->dontSeeElement('.error'); | |
1659 | - * $I->dontSeeElement('//form/input[1]'); | |
1660 | - * $I->dontSeeElement('input', ['name' => 'login']); | |
1661 | - * $I->dontSeeElement('input', ['value' => '123456']); | |
1662 | - * ?> | |
1663 | - * ``` | |
1664 | - * | |
1665 | - * @param $selector | |
1666 | - * @param array $attributes | |
1667 | - * Conditional Assertion: Test won't be stopped on fail | |
1668 | - * @see \Codeception\Module\WebDriver::dontSeeElement() | |
1669 | - */ | |
1670 | - public function cantSeeElement($selector, $attributes = null) { | |
1671 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeElement', func_get_args())); | |
1672 | - } | |
1673 | - /** | |
1674 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1675 | - * | |
1676 | - * Checks that the given element is invisible or not present on the page. | |
1677 | - * You can also specify expected attributes of this element. | |
1678 | - * | |
1679 | - * ``` php | |
1680 | - * <?php | |
1681 | - * $I->dontSeeElement('.error'); | |
1682 | - * $I->dontSeeElement('//form/input[1]'); | |
1683 | - * $I->dontSeeElement('input', ['name' => 'login']); | |
1684 | - * $I->dontSeeElement('input', ['value' => '123456']); | |
1685 | - * ?> | |
1686 | - * ``` | |
1687 | - * | |
1688 | - * @param $selector | |
1689 | - * @param array $attributes | |
1690 | - * @see \Codeception\Module\WebDriver::dontSeeElement() | |
1691 | - */ | |
1692 | - public function dontSeeElement($selector, $attributes = null) { | |
1693 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeElement', func_get_args())); | |
1694 | - } | |
1695 | - | |
1696 | - | |
1697 | - /** | |
1698 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1699 | - * | |
1700 | - * Checks that the given element exists on the page, even it is invisible. | |
1701 | - * | |
1702 | - * ``` php | |
1703 | - * <?php | |
1704 | - * $I->seeElementInDOM('//form/input[type=hidden]'); | |
1705 | - * ?> | |
1706 | - * ``` | |
1707 | - * | |
1708 | - * @param $selector | |
1709 | - * Conditional Assertion: Test won't be stopped on fail | |
1710 | - * @see \Codeception\Module\WebDriver::seeElementInDOM() | |
1711 | - */ | |
1712 | - public function canSeeElementInDOM($selector, $attributes = null) { | |
1713 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeElementInDOM', func_get_args())); | |
1714 | - } | |
1715 | - /** | |
1716 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1717 | - * | |
1718 | - * Checks that the given element exists on the page, even it is invisible. | |
1719 | - * | |
1720 | - * ``` php | |
1721 | - * <?php | |
1722 | - * $I->seeElementInDOM('//form/input[type=hidden]'); | |
1723 | - * ?> | |
1724 | - * ``` | |
1725 | - * | |
1726 | - * @param $selector | |
1727 | - * @see \Codeception\Module\WebDriver::seeElementInDOM() | |
1728 | - */ | |
1729 | - public function seeElementInDOM($selector, $attributes = null) { | |
1730 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeElementInDOM', func_get_args())); | |
1731 | - } | |
1732 | - | |
1733 | - | |
1734 | - /** | |
1735 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1736 | - * | |
1737 | - * Opposite of `seeElementInDOM`. | |
1738 | - * | |
1739 | - * @param $selector | |
1740 | - * Conditional Assertion: Test won't be stopped on fail | |
1741 | - * @see \Codeception\Module\WebDriver::dontSeeElementInDOM() | |
1742 | - */ | |
1743 | - public function cantSeeElementInDOM($selector, $attributes = null) { | |
1744 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeElementInDOM', func_get_args())); | |
1745 | - } | |
1746 | - /** | |
1747 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1748 | - * | |
1749 | - * Opposite of `seeElementInDOM`. | |
1750 | - * | |
1751 | - * @param $selector | |
1752 | - * @see \Codeception\Module\WebDriver::dontSeeElementInDOM() | |
1753 | - */ | |
1754 | - public function dontSeeElementInDOM($selector, $attributes = null) { | |
1755 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeElementInDOM', func_get_args())); | |
1756 | - } | |
1757 | - | |
1758 | - | |
1759 | - /** | |
1760 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1761 | - * | |
1762 | - * Checks that there are a certain number of elements matched by the given locator on the page. | |
1763 | - * | |
1764 | - * ``` php | |
1765 | - * <?php | |
1766 | - * $I->seeNumberOfElements('tr', 10); | |
1767 | - * $I->seeNumberOfElements('tr', [0,10]); //between 0 and 10 elements | |
1768 | - * ?> | |
1769 | - * ``` | |
1770 | - * @param $selector | |
1771 | - * @param mixed $expected : | |
1772 | - * - string: strict number | |
1773 | - * - array: range of numbers [0,10] | |
1774 | - * Conditional Assertion: Test won't be stopped on fail | |
1775 | - * @see \Codeception\Module\WebDriver::seeNumberOfElements() | |
1776 | - */ | |
1777 | - public function canSeeNumberOfElements($selector, $expected) { | |
1778 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeNumberOfElements', func_get_args())); | |
1779 | - } | |
1780 | - /** | |
1781 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1782 | - * | |
1783 | - * Checks that there are a certain number of elements matched by the given locator on the page. | |
1784 | - * | |
1785 | - * ``` php | |
1786 | - * <?php | |
1787 | - * $I->seeNumberOfElements('tr', 10); | |
1788 | - * $I->seeNumberOfElements('tr', [0,10]); //between 0 and 10 elements | |
1789 | - * ?> | |
1790 | - * ``` | |
1791 | - * @param $selector | |
1792 | - * @param mixed $expected : | |
1793 | - * - string: strict number | |
1794 | - * - array: range of numbers [0,10] | |
1795 | - * @see \Codeception\Module\WebDriver::seeNumberOfElements() | |
1796 | - */ | |
1797 | - public function seeNumberOfElements($selector, $expected) { | |
1798 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeNumberOfElements', func_get_args())); | |
1799 | - } | |
1800 | - | |
1801 | - | |
1802 | - /** | |
1803 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1804 | - * | |
1805 | - * | |
1806 | - * Conditional Assertion: Test won't be stopped on fail | |
1807 | - * @see \Codeception\Module\WebDriver::seeNumberOfElementsInDOM() | |
1808 | - */ | |
1809 | - public function canSeeNumberOfElementsInDOM($selector, $expected) { | |
1810 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeNumberOfElementsInDOM', func_get_args())); | |
1811 | - } | |
1812 | - /** | |
1813 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1814 | - * | |
1815 | - * | |
1816 | - * @see \Codeception\Module\WebDriver::seeNumberOfElementsInDOM() | |
1817 | - */ | |
1818 | - public function seeNumberOfElementsInDOM($selector, $expected) { | |
1819 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeNumberOfElementsInDOM', func_get_args())); | |
1820 | - } | |
1821 | - | |
1822 | - | |
1823 | - /** | |
1824 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1825 | - * | |
1826 | - * Checks that the given option is selected. | |
1827 | - * | |
1828 | - * ``` php | |
1829 | - * <?php | |
1830 | - * $I->seeOptionIsSelected('#form input[name=payment]', 'Visa'); | |
1831 | - * ?> | |
1832 | - * ``` | |
1833 | - * | |
1834 | - * @param $selector | |
1835 | - * @param $optionText | |
1836 | - * | |
1837 | - * @return mixed | |
1838 | - * Conditional Assertion: Test won't be stopped on fail | |
1839 | - * @see \Codeception\Module\WebDriver::seeOptionIsSelected() | |
1840 | - */ | |
1841 | - public function canSeeOptionIsSelected($selector, $optionText) { | |
1842 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeOptionIsSelected', func_get_args())); | |
1843 | - } | |
1844 | - /** | |
1845 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1846 | - * | |
1847 | - * Checks that the given option is selected. | |
1848 | - * | |
1849 | - * ``` php | |
1850 | - * <?php | |
1851 | - * $I->seeOptionIsSelected('#form input[name=payment]', 'Visa'); | |
1852 | - * ?> | |
1853 | - * ``` | |
1854 | - * | |
1855 | - * @param $selector | |
1856 | - * @param $optionText | |
1688 | + * @param $name | |
1689 | + * @param $val | |
1690 | + * @param array $params | |
1857 | 1691 | * |
1858 | 1692 | * @return mixed |
1859 | - * @see \Codeception\Module\WebDriver::seeOptionIsSelected() | |
1693 | + * @see \Codeception\Lib\InnerBrowser::setCookie() | |
1860 | 1694 | */ |
1861 | - public function seeOptionIsSelected($selector, $optionText) { | |
1862 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeOptionIsSelected', func_get_args())); | |
1695 | + public function setCookie($name, $val, $params = null) { | |
1696 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('setCookie', func_get_args())); | |
1863 | 1697 | } |
1864 | 1698 | |
1865 | 1699 | |
1866 | 1700 | /** |
1867 | 1701 | * [!] Method is generated. Documentation taken from corresponding module. |
1868 | 1702 | * |
1869 | - * Checks that the given option is not selected. | |
1870 | - * | |
1871 | - * ``` php | |
1872 | - * <?php | |
1873 | - * $I->dontSeeOptionIsSelected('#form input[name=payment]', 'Visa'); | |
1874 | - * ?> | |
1875 | - * ``` | |
1876 | - * | |
1877 | - * @param $selector | |
1878 | - * @param $optionText | |
1879 | - * | |
1880 | - * @return mixed | |
1881 | - * Conditional Assertion: Test won't be stopped on fail | |
1882 | - * @see \Codeception\Module\WebDriver::dontSeeOptionIsSelected() | |
1883 | - */ | |
1884 | - public function cantSeeOptionIsSelected($selector, $optionText) { | |
1885 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeOptionIsSelected', func_get_args())); | |
1886 | - } | |
1887 | - /** | |
1888 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1889 | - * | |
1890 | - * Checks that the given option is not selected. | |
1891 | - * | |
1892 | - * ``` php | |
1893 | - * <?php | |
1894 | - * $I->dontSeeOptionIsSelected('#form input[name=payment]', 'Visa'); | |
1895 | - * ?> | |
1896 | - * ``` | |
1703 | + * Grabs a cookie value. | |
1704 | + * You can set additional cookie params like `domain`, `path` in array passed as last argument. | |
1897 | 1705 | * |
1898 | - * @param $selector | |
1899 | - * @param $optionText | |
1706 | + * @param $cookie | |
1900 | 1707 | * |
1708 | + * @param array $params | |
1901 | 1709 | * @return mixed |
1902 | - * @see \Codeception\Module\WebDriver::dontSeeOptionIsSelected() | |
1710 | + * @see \Codeception\Lib\InnerBrowser::grabCookie() | |
1903 | 1711 | */ |
1904 | - public function dontSeeOptionIsSelected($selector, $optionText) { | |
1905 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeOptionIsSelected', func_get_args())); | |
1712 | + public function grabCookie($cookie, $params = null) { | |
1713 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('grabCookie', func_get_args())); | |
1906 | 1714 | } |
1907 | 1715 | |
1908 | 1716 | |
1909 | 1717 | /** |
1910 | 1718 | * [!] Method is generated. Documentation taken from corresponding module. |
1911 | 1719 | * |
1912 | - * Checks that the page title contains the given string. | |
1720 | + * Checks that a cookie with the given name is set. | |
1721 | + * You can set additional cookie params like `domain`, `path` as array passed in last argument. | |
1913 | 1722 | * |
1914 | 1723 | * ``` php |
1915 | 1724 | * <?php |
1916 | - * $I->seeInTitle('Blog - Post #1'); | |
1725 | + * $I->seeCookie('PHPSESSID'); | |
1917 | 1726 | * ?> |
1918 | 1727 | * ``` |
1919 | 1728 | * |
1920 | - * @param $title | |
1921 | - * | |
1729 | + * @param $cookie | |
1730 | + * @param array $params | |
1922 | 1731 | * @return mixed |
1923 | 1732 | * Conditional Assertion: Test won't be stopped on fail |
1924 | - * @see \Codeception\Module\WebDriver::seeInTitle() | |
1733 | + * @see \Codeception\Lib\InnerBrowser::seeCookie() | |
1925 | 1734 | */ |
1926 | - public function canSeeInTitle($title) { | |
1927 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInTitle', func_get_args())); | |
1735 | + public function canSeeCookie($cookie, $params = null) { | |
1736 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCookie', func_get_args())); | |
1928 | 1737 | } |
1929 | 1738 | /** |
1930 | 1739 | * [!] Method is generated. Documentation taken from corresponding module. |
1931 | 1740 | * |
1932 | - * Checks that the page title contains the given string. | |
1741 | + * Checks that a cookie with the given name is set. | |
1742 | + * You can set additional cookie params like `domain`, `path` as array passed in last argument. | |
1933 | 1743 | * |
1934 | 1744 | * ``` php |
1935 | 1745 | * <?php |
1936 | - * $I->seeInTitle('Blog - Post #1'); | |
1746 | + * $I->seeCookie('PHPSESSID'); | |
1937 | 1747 | * ?> |
1938 | 1748 | * ``` |
1939 | 1749 | * |
1940 | - * @param $title | |
1941 | - * | |
1942 | - * @return mixed | |
1943 | - * @see \Codeception\Module\WebDriver::seeInTitle() | |
1944 | - */ | |
1945 | - public function seeInTitle($title) { | |
1946 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInTitle', func_get_args())); | |
1947 | - } | |
1948 | - | |
1949 | - | |
1950 | - /** | |
1951 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1952 | - * | |
1953 | - * Checks that the page title does not contain the given string. | |
1954 | - * | |
1955 | - * @param $title | |
1956 | - * | |
1957 | - * @return mixed | |
1958 | - * Conditional Assertion: Test won't be stopped on fail | |
1959 | - * @see \Codeception\Module\WebDriver::dontSeeInTitle() | |
1960 | - */ | |
1961 | - public function cantSeeInTitle($title) { | |
1962 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInTitle', func_get_args())); | |
1963 | - } | |
1964 | - /** | |
1965 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1966 | - * | |
1967 | - * Checks that the page title does not contain the given string. | |
1968 | - * | |
1969 | - * @param $title | |
1970 | - * | |
1750 | + * @param $cookie | |
1751 | + * @param array $params | |
1971 | 1752 | * @return mixed |
1972 | - * @see \Codeception\Module\WebDriver::dontSeeInTitle() | |
1973 | - */ | |
1974 | - public function dontSeeInTitle($title) { | |
1975 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInTitle', func_get_args())); | |
1976 | - } | |
1977 | - | |
1978 | - | |
1979 | - /** | |
1980 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1981 | - * | |
1982 | - * Accepts the active JavaScript native popup window, as created by `window.alert`|`window.confirm`|`window.prompt`. | |
1983 | - * Don't confuse popups with modal windows, as created by [various libraries](http://jster.net/category/windows-modals-popups). | |
1984 | - * @see \Codeception\Module\WebDriver::acceptPopup() | |
1985 | - */ | |
1986 | - public function acceptPopup() { | |
1987 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('acceptPopup', func_get_args())); | |
1988 | - } | |
1989 | - | |
1990 | - | |
1991 | - /** | |
1992 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1993 | - * | |
1994 | - * Dismisses the active JavaScript popup, as created by `window.alert`|`window.confirm`|`window.prompt`. | |
1995 | - * @see \Codeception\Module\WebDriver::cancelPopup() | |
1996 | - */ | |
1997 | - public function cancelPopup() { | |
1998 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('cancelPopup', func_get_args())); | |
1999 | - } | |
2000 | - | |
2001 | - | |
2002 | - /** | |
2003 | - * [!] Method is generated. Documentation taken from corresponding module. | |
2004 | - * | |
2005 | - * Checks that the active JavaScript popup, as created by `window.alert`|`window.confirm`|`window.prompt`, contains the given string. | |
2006 | - * | |
2007 | - * @param $text | |
2008 | - * Conditional Assertion: Test won't be stopped on fail | |
2009 | - * @see \Codeception\Module\WebDriver::seeInPopup() | |
2010 | - */ | |
2011 | - public function canSeeInPopup($text) { | |
2012 | - return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInPopup', func_get_args())); | |
2013 | - } | |
2014 | - /** | |
2015 | - * [!] Method is generated. Documentation taken from corresponding module. | |
2016 | - * | |
2017 | - * Checks that the active JavaScript popup, as created by `window.alert`|`window.confirm`|`window.prompt`, contains the given string. | |
2018 | - * | |
2019 | - * @param $text | |
2020 | - * @see \Codeception\Module\WebDriver::seeInPopup() | |
2021 | - */ | |
2022 | - public function seeInPopup($text) { | |
2023 | - return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInPopup', func_get_args())); | |
2024 | - } | |
2025 | - | |
2026 | - | |
2027 | - /** | |
2028 | - * [!] Method is generated. Documentation taken from corresponding module. | |
2029 | - * | |
2030 | - * Enters text into a native JavaScript prompt popup, as created by `window.prompt`. | |
2031 | - * | |
2032 | - * @param $keys | |
2033 | - * @see \Codeception\Module\WebDriver::typeInPopup() | |
2034 | - */ | |
2035 | - public function typeInPopup($keys) { | |
2036 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('typeInPopup', func_get_args())); | |
2037 | - } | |
2038 | - | |
2039 | - | |
2040 | - /** | |
2041 | - * [!] Method is generated. Documentation taken from corresponding module. | |
2042 | - * | |
2043 | - * Reloads the current page. | |
2044 | - * @see \Codeception\Module\WebDriver::reloadPage() | |
1753 | + * @see \Codeception\Lib\InnerBrowser::seeCookie() | |
2045 | 1754 | */ |
2046 | - public function reloadPage() { | |
2047 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('reloadPage', func_get_args())); | |
2048 | - } | |
2049 | - | |
2050 | - | |
2051 | - /** | |
2052 | - * [!] Method is generated. Documentation taken from corresponding module. | |
2053 | - * | |
2054 | - * Moves back in history. | |
2055 | - * @see \Codeception\Module\WebDriver::moveBack() | |
2056 | - */ | |
2057 | - public function moveBack() { | |
2058 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('moveBack', func_get_args())); | |
2059 | - } | |
2060 | - | |
2061 | - | |
2062 | - /** | |
2063 | - * [!] Method is generated. Documentation taken from corresponding module. | |
2064 | - * | |
2065 | - * Moves forward in history. | |
2066 | - * @see \Codeception\Module\WebDriver::moveForward() | |
2067 | - */ | |
2068 | - public function moveForward() { | |
2069 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('moveForward', func_get_args())); | |
1755 | + public function seeCookie($cookie, $params = null) { | |
1756 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeCookie', func_get_args())); | |
2070 | 1757 | } |
2071 | 1758 | |
2072 | 1759 | |
2073 | 1760 | /** |
2074 | 1761 | * [!] Method is generated. Documentation taken from corresponding module. |
2075 | 1762 | * |
2076 | - * Submits the given form on the page, optionally with the given form | |
2077 | - * values. Give the form fields values as an array. Note that hidden fields | |
2078 | - * can't be accessed. | |
2079 | - * | |
2080 | - * Skipped fields will be filled by their values from the page. | |
2081 | - * You don't need to click the 'Submit' button afterwards. | |
2082 | - * This command itself triggers the request to form's action. | |
2083 | - * | |
2084 | - * You can optionally specify what button's value to include | |
2085 | - * in the request with the last parameter as an alternative to | |
2086 | - * explicitly setting its value in the second parameter, as | |
2087 | - * button values are not otherwise included in the request. | |
2088 | - * | |
2089 | - * Examples: | |
2090 | - * | |
2091 | - * ``` php | |
2092 | - * <?php | |
2093 | - * $I->submitForm('#login', [ | |
2094 | - * 'login' => 'davert', | |
2095 | - * 'password' => '123456' | |
2096 | - * ]); | |
2097 | - * // or | |
2098 | - * $I->submitForm('#login', [ | |
2099 | - * 'login' => 'davert', | |
2100 | - * 'password' => '123456' | |
2101 | - * ], 'submitButtonName'); | |
2102 | - * | |
2103 | - * ``` | |
2104 | - * | |
2105 | - * For example, given this sample "Sign Up" form: | |
2106 | - * | |
2107 | - * ``` html | |
2108 | - * <form action="/sign_up"> | |
2109 | - * Login: | |
2110 | - * <input type="text" name="user[login]" /><br/> | |
2111 | - * Password: | |
2112 | - * <input type="password" name="user[password]" /><br/> | |
2113 | - * Do you agree to our terms? | |
2114 | - * <input type="checkbox" name="user[agree]" /><br/> | |
2115 | - * Select pricing plan: | |
2116 | - * <select name="plan"> | |
2117 | - * <option value="1">Free</option> | |
2118 | - * <option value="2" selected="selected">Paid</option> | |
2119 | - * </select> | |
2120 | - * <input type="submit" name="submitButton" value="Submit" /> | |
2121 | - * </form> | |
2122 | - * ``` | |
2123 | - * | |
2124 | - * You could write the following to submit it: | |
2125 | - * | |
2126 | - * ``` php | |
2127 | - * <?php | |
2128 | - * $I->submitForm( | |
2129 | - * '#userForm', | |
2130 | - * [ | |
2131 | - * 'user[login]' => 'Davert', | |
2132 | - * 'user[password]' => '123456', | |
2133 | - * 'user[agree]' => true | |
2134 | - * ], | |
2135 | - * 'submitButton' | |
2136 | - * ); | |
2137 | - * ``` | |
2138 | - * Note that "2" will be the submitted value for the "plan" field, as it is | |
2139 | - * the selected option. | |
2140 | - * | |
2141 | - * Also note that this differs from PhpBrowser, in that | |
2142 | - * ```'user' => [ 'login' => 'Davert' ]``` is not supported at the moment. | |
2143 | - * Named array keys *must* be included in the name as above. | |
2144 | - * | |
2145 | - * Pair this with seeInFormFields for quick testing magic. | |
2146 | - * | |
2147 | - * ``` php | |
2148 | - * <?php | |
2149 | - * $form = [ | |
2150 | - * 'field1' => 'value', | |
2151 | - * 'field2' => 'another value', | |
2152 | - * 'checkbox1' => true, | |
2153 | - * // ... | |
2154 | - * ]; | |
2155 | - * $I->submitForm('//form[@id=my-form]', $form, 'submitButton'); | |
2156 | - * // $I->amOnPage('/path/to/form-page') may be needed | |
2157 | - * $I->seeInFormFields('//form[@id=my-form]', $form); | |
2158 | - * ?> | |
2159 | - * ``` | |
2160 | - * | |
2161 | - * Parameter values must be set to arrays for multiple input fields | |
2162 | - * of the same name, or multi-select combo boxes. For checkboxes, | |
2163 | - * either the string value can be used, or boolean values which will | |
2164 | - * be replaced by the checkbox's value in the DOM. | |
2165 | - * | |
2166 | - * ``` php | |
2167 | - * <?php | |
2168 | - * $I->submitForm('#my-form', [ | |
2169 | - * 'field1' => 'value', | |
2170 | - * 'checkbox' => [ | |
2171 | - * 'value of first checkbox', | |
2172 | - * 'value of second checkbox, | |
2173 | - * ], | |
2174 | - * 'otherCheckboxes' => [ | |
2175 | - * true, | |
2176 | - * false, | |
2177 | - * false | |
2178 | - * ], | |
2179 | - * 'multiselect' => [ | |
2180 | - * 'first option value', | |
2181 | - * 'second option value' | |
2182 | - * ] | |
2183 | - * ]); | |
2184 | - * ?> | |
2185 | - * ``` | |
2186 | - * | |
2187 | - * Mixing string and boolean values for a checkbox's value is not supported | |
2188 | - * and may produce unexpected results. | |
2189 | - * | |
2190 | - * Field names ending in "[]" must be passed without the trailing square | |
2191 | - * bracket characters, and must contain an array for its value. This allows | |
2192 | - * submitting multiple values with the same name, consider: | |
2193 | - * | |
2194 | - * ```php | |
2195 | - * $I->submitForm('#my-form', [ | |
2196 | - * 'field[]' => 'value', | |
2197 | - * 'field[]' => 'another value', // 'field[]' is already a defined key | |
2198 | - * ]); | |
2199 | - * ``` | |
1763 | + * Checks that there isn't a cookie with the given name. | |
1764 | + * You can set additional cookie params like `domain`, `path` as array passed in last argument. | |
2200 | 1765 | * |
2201 | - * The solution is to pass an array value: | |
1766 | + * @param $cookie | |
2202 | 1767 | * |
2203 | - * ```php | |
2204 | - * // this way both values are submitted | |
2205 | - * $I->submitForm('#my-form', [ | |
2206 | - * 'field' => [ | |
2207 | - * 'value', | |
2208 | - * 'another value', | |
2209 | - * ] | |
2210 | - * ]); | |
2211 | - * ``` | |
2212 | - * @param $selector | |
2213 | - * @param $params | |
2214 | - * @param $button | |
2215 | - * @see \Codeception\Module\WebDriver::submitForm() | |
1768 | + * @param array $params | |
1769 | + * @return mixed | |
1770 | + * Conditional Assertion: Test won't be stopped on fail | |
1771 | + * @see \Codeception\Lib\InnerBrowser::dontSeeCookie() | |
2216 | 1772 | */ |
2217 | - public function submitForm($selector, $params, $button = null) { | |
2218 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('submitForm', func_get_args())); | |
1773 | + public function cantSeeCookie($cookie, $params = null) { | |
1774 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCookie', func_get_args())); | |
2219 | 1775 | } |
2220 | - | |
2221 | - | |
2222 | 1776 | /** |
2223 | 1777 | * [!] Method is generated. Documentation taken from corresponding module. |
2224 | 1778 | * |
2225 | - * Waits up to $timeout seconds for the given element to change. | |
2226 | - * Element "change" is determined by a callback function which is called repeatedly until the return value evaluates to true. | |
1779 | + * Checks that there isn't a cookie with the given name. | |
1780 | + * You can set additional cookie params like `domain`, `path` as array passed in last argument. | |
2227 | 1781 | * |
2228 | - * ``` php | |
2229 | - * <?php | |
2230 | - * use \Facebook\WebDriver\WebDriverElement | |
2231 | - * $I->waitForElementChange('#menu', function(WebDriverElement $el) { | |
2232 | - * return $el->isDisplayed(); | |
2233 | - * }, 100); | |
2234 | - * ?> | |
2235 | - * ``` | |
1782 | + * @param $cookie | |
2236 | 1783 | * |
2237 | - * @param $element | |
2238 | - * @param \Closure $callback | |
2239 | - * @param int $timeout seconds | |
2240 | - * @throws \Codeception\Exception\ElementNotFound | |
2241 | - * @see \Codeception\Module\WebDriver::waitForElementChange() | |
1784 | + * @param array $params | |
1785 | + * @return mixed | |
1786 | + * @see \Codeception\Lib\InnerBrowser::dontSeeCookie() | |
2242 | 1787 | */ |
2243 | - public function waitForElementChange($element, $callback, $timeout = null) { | |
2244 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForElementChange', func_get_args())); | |
1788 | + public function dontSeeCookie($cookie, $params = null) { | |
1789 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeCookie', func_get_args())); | |
2245 | 1790 | } |
2246 | 1791 | |
2247 | 1792 | |
2248 | 1793 | /** |
2249 | 1794 | * [!] Method is generated. Documentation taken from corresponding module. |
2250 | 1795 | * |
2251 | - * Waits up to $timeout seconds for an element to appear on the page. | |
2252 | - * If the element doesn't appear, a timeout exception is thrown. | |
1796 | + * Unsets cookie with the given name. | |
1797 | + * You can set additional cookie params like `domain`, `path` in array passed as last argument. | |
2253 | 1798 | * |
2254 | - * ``` php | |
2255 | - * <?php | |
2256 | - * $I->waitForElement('#agree_button', 30); // secs | |
2257 | - * $I->click('#agree_button'); | |
2258 | - * ?> | |
2259 | - * ``` | |
1799 | + * @param $cookie | |
2260 | 1800 | * |
2261 | - * @param $element | |
2262 | - * @param int $timeout seconds | |
2263 | - * @throws \Exception | |
2264 | - * @see \Codeception\Module\WebDriver::waitForElement() | |
1801 | + * @param array $params | |
1802 | + * @return mixed | |
1803 | + * @see \Codeception\Lib\InnerBrowser::resetCookie() | |
2265 | 1804 | */ |
2266 | - public function waitForElement($element, $timeout = null) { | |
2267 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForElement', func_get_args())); | |
1805 | + public function resetCookie($name, $params = null) { | |
1806 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('resetCookie', func_get_args())); | |
2268 | 1807 | } |
2269 | 1808 | |
2270 | 1809 | |
2271 | 1810 | /** |
2272 | 1811 | * [!] Method is generated. Documentation taken from corresponding module. |
2273 | 1812 | * |
2274 | - * Waits up to $timeout seconds for the given element to be visible on the page. | |
2275 | - * If element doesn't appear, a timeout exception is thrown. | |
1813 | + * Checks that the given element exists on the page and is visible. | |
1814 | + * You can also specify expected attributes of this element. | |
2276 | 1815 | * |
2277 | 1816 | * ``` php |
2278 | 1817 | * <?php |
2279 | - * $I->waitForElementVisible('#agree_button', 30); // secs | |
2280 | - * $I->click('#agree_button'); | |
1818 | + * $I->seeElement('.error'); | |
1819 | + * $I->seeElement('//form/input[1]'); | |
1820 | + * $I->seeElement('input', ['name' => 'login']); | |
1821 | + * $I->seeElement('input', ['value' => '123456']); | |
1822 | + * | |
1823 | + * // strict locator in first arg, attributes in second | |
1824 | + * $I->seeElement(['css' => 'form input'], ['name' => 'login']); | |
2281 | 1825 | * ?> |
2282 | 1826 | * ``` |
2283 | 1827 | * |
2284 | - * @param $element | |
2285 | - * @param int $timeout seconds | |
2286 | - * @throws \Exception | |
2287 | - * @see \Codeception\Module\WebDriver::waitForElementVisible() | |
1828 | + * @param $selector | |
1829 | + * @param array $attributes | |
1830 | + * @return | |
1831 | + * Conditional Assertion: Test won't be stopped on fail | |
1832 | + * @see \Codeception\Lib\InnerBrowser::seeElement() | |
2288 | 1833 | */ |
2289 | - public function waitForElementVisible($element, $timeout = null) { | |
2290 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForElementVisible', func_get_args())); | |
1834 | + public function canSeeElement($selector, $attributes = null) { | |
1835 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeElement', func_get_args())); | |
2291 | 1836 | } |
2292 | - | |
2293 | - | |
2294 | 1837 | /** |
2295 | 1838 | * [!] Method is generated. Documentation taken from corresponding module. |
2296 | 1839 | * |
2297 | - * Waits up to $timeout seconds for the given element to become invisible. | |
2298 | - * If element stays visible, a timeout exception is thrown. | |
1840 | + * Checks that the given element exists on the page and is visible. | |
1841 | + * You can also specify expected attributes of this element. | |
2299 | 1842 | * |
2300 | 1843 | * ``` php |
2301 | 1844 | * <?php |
2302 | - * $I->waitForElementNotVisible('#agree_button', 30); // secs | |
1845 | + * $I->seeElement('.error'); | |
1846 | + * $I->seeElement('//form/input[1]'); | |
1847 | + * $I->seeElement('input', ['name' => 'login']); | |
1848 | + * $I->seeElement('input', ['value' => '123456']); | |
1849 | + * | |
1850 | + * // strict locator in first arg, attributes in second | |
1851 | + * $I->seeElement(['css' => 'form input'], ['name' => 'login']); | |
2303 | 1852 | * ?> |
2304 | 1853 | * ``` |
2305 | 1854 | * |
2306 | - * @param $element | |
2307 | - * @param int $timeout seconds | |
2308 | - * @throws \Exception | |
2309 | - * @see \Codeception\Module\WebDriver::waitForElementNotVisible() | |
1855 | + * @param $selector | |
1856 | + * @param array $attributes | |
1857 | + * @return | |
1858 | + * @see \Codeception\Lib\InnerBrowser::seeElement() | |
2310 | 1859 | */ |
2311 | - public function waitForElementNotVisible($element, $timeout = null) { | |
2312 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForElementNotVisible', func_get_args())); | |
1860 | + public function seeElement($selector, $attributes = null) { | |
1861 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeElement', func_get_args())); | |
2313 | 1862 | } |
2314 | 1863 | |
2315 | 1864 | |
2316 | 1865 | /** |
2317 | 1866 | * [!] Method is generated. Documentation taken from corresponding module. |
2318 | 1867 | * |
2319 | - * Waits up to $timeout seconds for the given string to appear on the page. | |
2320 | - * Can also be passed a selector to search in. | |
2321 | - * If the given text doesn't appear, a timeout exception is thrown. | |
1868 | + * Checks that the given element is invisible or not present on the page. | |
1869 | + * You can also specify expected attributes of this element. | |
2322 | 1870 | * |
2323 | 1871 | * ``` php |
2324 | 1872 | * <?php |
2325 | - * $I->waitForText('foo', 30); // secs | |
2326 | - * $I->waitForText('foo', 30, '.title'); // secs | |
1873 | + * $I->dontSeeElement('.error'); | |
1874 | + * $I->dontSeeElement('//form/input[1]'); | |
1875 | + * $I->dontSeeElement('input', ['name' => 'login']); | |
1876 | + * $I->dontSeeElement('input', ['value' => '123456']); | |
2327 | 1877 | * ?> |
2328 | 1878 | * ``` |
2329 | 1879 | * |
2330 | - * @param string $text | |
2331 | - * @param int $timeout seconds | |
2332 | - * @param null $selector | |
2333 | - * @throws \Exception | |
2334 | - * @see \Codeception\Module\WebDriver::waitForText() | |
2335 | - */ | |
2336 | - public function waitForText($text, $timeout = null, $selector = null) { | |
2337 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForText', func_get_args())); | |
2338 | - } | |
2339 | - | |
2340 | - | |
2341 | - /** | |
2342 | - * [!] Method is generated. Documentation taken from corresponding module. | |
2343 | - * | |
2344 | - * Wait for $timeout seconds. | |
2345 | - * | |
2346 | - * @param int $timeout secs | |
2347 | - * @throws \Codeception\Exception\TestRuntimeException | |
2348 | - * @see \Codeception\Module\WebDriver::wait() | |
1880 | + * @param $selector | |
1881 | + * @param array $attributes | |
1882 | + * Conditional Assertion: Test won't be stopped on fail | |
1883 | + * @see \Codeception\Lib\InnerBrowser::dontSeeElement() | |
2349 | 1884 | */ |
2350 | - public function wait($timeout) { | |
2351 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('wait', func_get_args())); | |
1885 | + public function cantSeeElement($selector, $attributes = null) { | |
1886 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeElement', func_get_args())); | |
2352 | 1887 | } |
2353 | - | |
2354 | - | |
2355 | 1888 | /** |
2356 | 1889 | * [!] Method is generated. Documentation taken from corresponding module. |
2357 | 1890 | * |
2358 | - * Low-level API method. | |
2359 | - * If Codeception commands are not enough, this allows you to use Selenium WebDriver methods directly: | |
1891 | + * Checks that the given element is invisible or not present on the page. | |
1892 | + * You can also specify expected attributes of this element. | |
2360 | 1893 | * |
2361 | 1894 | * ``` php |
2362 | - * $I->executeInSelenium(function(\Facebook\WebDriver\Remote\RemoteWebDriver $webdriver) { | |
2363 | - * $webdriver->get('http://google.com'); | |
2364 | - * }); | |
1895 | + * <?php | |
1896 | + * $I->dontSeeElement('.error'); | |
1897 | + * $I->dontSeeElement('//form/input[1]'); | |
1898 | + * $I->dontSeeElement('input', ['name' => 'login']); | |
1899 | + * $I->dontSeeElement('input', ['value' => '123456']); | |
1900 | + * ?> | |
2365 | 1901 | * ``` |
2366 | 1902 | * |
2367 | - * This runs in the context of the [RemoteWebDriver class](https://github.com/facebook/php-webdriver/blob/master/lib/remote/RemoteWebDriver.php). | |
2368 | - * Try not to use this command on a regular basis. | |
2369 | - * If Codeception lacks a feature you need, please implement it and submit a patch. | |
2370 | - * | |
2371 | - * @param callable $function | |
2372 | - * @see \Codeception\Module\WebDriver::executeInSelenium() | |
1903 | + * @param $selector | |
1904 | + * @param array $attributes | |
1905 | + * @see \Codeception\Lib\InnerBrowser::dontSeeElement() | |
2373 | 1906 | */ |
2374 | - public function executeInSelenium($function) { | |
2375 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('executeInSelenium', func_get_args())); | |
1907 | + public function dontSeeElement($selector, $attributes = null) { | |
1908 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeElement', func_get_args())); | |
2376 | 1909 | } |
2377 | 1910 | |
2378 | 1911 | |
2379 | 1912 | /** |
2380 | 1913 | * [!] Method is generated. Documentation taken from corresponding module. |
2381 | 1914 | * |
2382 | - * Switch to another window identified by name. | |
2383 | - * | |
2384 | - * The window can only be identified by name. If the $name parameter is blank, the parent window will be used. | |
2385 | - * | |
2386 | - * Example: | |
2387 | - * ``` html | |
2388 | - * <input type="button" value="Open window" onclick="window.open('http://example.com', 'another_window')"> | |
2389 | - * ``` | |
2390 | - * | |
2391 | - * ``` php | |
2392 | - * <?php | |
2393 | - * $I->click("Open window"); | |
2394 | - * # switch to another window | |
2395 | - * $I->switchToWindow("another_window"); | |
2396 | - * # switch to parent window | |
2397 | - * $I->switchToWindow(); | |
2398 | - * ?> | |
2399 | - * ``` | |
2400 | - * | |
2401 | - * If the window has no name, the only way to access it is via the `executeInSelenium()` method, like so: | |
1915 | + * Checks that there are a certain number of elements matched by the given locator on the page. | |
2402 | 1916 | * |
2403 | 1917 | * ``` php |
2404 | 1918 | * <?php |
2405 | - * $I->executeInSelenium(function (\Facebook\WebDriver\Remote\RemoteWebDriver $webdriver) { | |
2406 | - * $handles=$webdriver->getWindowHandles(); | |
2407 | - * $last_window = end($handles); | |
2408 | - * $webdriver->switchTo()->window($last_window); | |
2409 | - * }); | |
1919 | + * $I->seeNumberOfElements('tr', 10); | |
1920 | + * $I->seeNumberOfElements('tr', [0,10]); //between 0 and 10 elements | |
2410 | 1921 | * ?> |
2411 | 1922 | * ``` |
2412 | - * | |
2413 | - * @param string|null $name | |
2414 | - * @see \Codeception\Module\WebDriver::switchToWindow() | |
1923 | + * @param $selector | |
1924 | + * @param mixed $expected : | |
1925 | + * - string: strict number | |
1926 | + * - array: range of numbers [0,10] | |
1927 | + * Conditional Assertion: Test won't be stopped on fail | |
1928 | + * @see \Codeception\Lib\InnerBrowser::seeNumberOfElements() | |
2415 | 1929 | */ |
2416 | - public function switchToWindow($name = null) { | |
2417 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('switchToWindow', func_get_args())); | |
1930 | + public function canSeeNumberOfElements($selector, $expected) { | |
1931 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeNumberOfElements', func_get_args())); | |
2418 | 1932 | } |
2419 | - | |
2420 | - | |
2421 | 1933 | /** |
2422 | 1934 | * [!] Method is generated. Documentation taken from corresponding module. |
2423 | 1935 | * |
2424 | - * Switch to another frame on the page. | |
2425 | - * | |
2426 | - * Example: | |
2427 | - * ``` html | |
2428 | - * <iframe name="another_frame" src="http://example.com"> | |
2429 | - * | |
2430 | - * ``` | |
1936 | + * Checks that there are a certain number of elements matched by the given locator on the page. | |
2431 | 1937 | * |
2432 | 1938 | * ``` php |
2433 | 1939 | * <?php |
2434 | - * # switch to iframe | |
2435 | - * $I->switchToIFrame("another_frame"); | |
2436 | - * # switch to parent page | |
2437 | - * $I->switchToIFrame(); | |
2438 | - * | |
1940 | + * $I->seeNumberOfElements('tr', 10); | |
1941 | + * $I->seeNumberOfElements('tr', [0,10]); //between 0 and 10 elements | |
1942 | + * ?> | |
2439 | 1943 | * ``` |
2440 | - * | |
2441 | - * @param string|null $name | |
2442 | - * @see \Codeception\Module\WebDriver::switchToIFrame() | |
1944 | + * @param $selector | |
1945 | + * @param mixed $expected : | |
1946 | + * - string: strict number | |
1947 | + * - array: range of numbers [0,10] | |
1948 | + * @see \Codeception\Lib\InnerBrowser::seeNumberOfElements() | |
2443 | 1949 | */ |
2444 | - public function switchToIFrame($name = null) { | |
2445 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('switchToIFrame', func_get_args())); | |
1950 | + public function seeNumberOfElements($selector, $expected) { | |
1951 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeNumberOfElements', func_get_args())); | |
2446 | 1952 | } |
2447 | 1953 | |
2448 | 1954 | |
2449 | 1955 | /** |
2450 | 1956 | * [!] Method is generated. Documentation taken from corresponding module. |
2451 | 1957 | * |
2452 | - * Executes JavaScript and waits up to $timeout seconds for it to return true. | |
2453 | - * | |
2454 | - * In this example we will wait up to 60 seconds for all jQuery AJAX requests to finish. | |
1958 | + * Checks that the given option is selected. | |
2455 | 1959 | * |
2456 | 1960 | * ``` php |
2457 | 1961 | * <?php |
2458 | - * $I->waitForJS("return $.active == 0;", 60); | |
1962 | + * $I->seeOptionIsSelected('#form input[name=payment]', 'Visa'); | |
2459 | 1963 | * ?> |
2460 | 1964 | * ``` |
2461 | 1965 | * |
2462 | - * @param string $script | |
2463 | - * @param int $timeout seconds | |
2464 | - * @see \Codeception\Module\WebDriver::waitForJS() | |
1966 | + * @param $selector | |
1967 | + * @param $optionText | |
1968 | + * | |
1969 | + * @return mixed | |
1970 | + * Conditional Assertion: Test won't be stopped on fail | |
1971 | + * @see \Codeception\Lib\InnerBrowser::seeOptionIsSelected() | |
2465 | 1972 | */ |
2466 | - public function waitForJS($script, $timeout = null) { | |
2467 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForJS', func_get_args())); | |
1973 | + public function canSeeOptionIsSelected($selector, $optionText) { | |
1974 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeOptionIsSelected', func_get_args())); | |
2468 | 1975 | } |
2469 | - | |
2470 | - | |
2471 | 1976 | /** |
2472 | 1977 | * [!] Method is generated. Documentation taken from corresponding module. |
2473 | 1978 | * |
2474 | - * Executes custom JavaScript. | |
2475 | - * | |
2476 | - * This example uses jQuery to get a value and assigns that value to a PHP variable: | |
1979 | + * Checks that the given option is selected. | |
2477 | 1980 | * |
2478 | - * ```php | |
1981 | + * ``` php | |
2479 | 1982 | * <?php |
2480 | - * $myVar = $I->executeJS('return $("#myField").val()'); | |
1983 | + * $I->seeOptionIsSelected('#form input[name=payment]', 'Visa'); | |
2481 | 1984 | * ?> |
2482 | 1985 | * ``` |
2483 | 1986 | * |
2484 | - * @param $script | |
2485 | - * @return mixed | |
2486 | - * @see \Codeception\Module\WebDriver::executeJS() | |
2487 | - */ | |
2488 | - public function executeJS($script) { | |
2489 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('executeJS', func_get_args())); | |
2490 | - } | |
2491 | - | |
2492 | - | |
2493 | - /** | |
2494 | - * [!] Method is generated. Documentation taken from corresponding module. | |
1987 | + * @param $selector | |
1988 | + * @param $optionText | |
2495 | 1989 | * |
2496 | - * Maximizes the current window. | |
2497 | - * @see \Codeception\Module\WebDriver::maximizeWindow() | |
1990 | + * @return mixed | |
1991 | + * @see \Codeception\Lib\InnerBrowser::seeOptionIsSelected() | |
2498 | 1992 | */ |
2499 | - public function maximizeWindow() { | |
2500 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('maximizeWindow', func_get_args())); | |
1993 | + public function seeOptionIsSelected($selector, $optionText) { | |
1994 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeOptionIsSelected', func_get_args())); | |
2501 | 1995 | } |
2502 | 1996 | |
2503 | 1997 | |
2504 | 1998 | /** |
2505 | 1999 | * [!] Method is generated. Documentation taken from corresponding module. |
2506 | 2000 | * |
2507 | - * Performs a simple mouse drag-and-drop operation. | |
2001 | + * Checks that the given option is not selected. | |
2508 | 2002 | * |
2509 | 2003 | * ``` php |
2510 | 2004 | * <?php |
2511 | - * $I->dragAndDrop('#drag', '#drop'); | |
2005 | + * $I->dontSeeOptionIsSelected('#form input[name=payment]', 'Visa'); | |
2512 | 2006 | * ?> |
2513 | 2007 | * ``` |
2514 | 2008 | * |
2515 | - * @param string $source (CSS ID or XPath) | |
2516 | - * @param string $target (CSS ID or XPath) | |
2517 | - * @see \Codeception\Module\WebDriver::dragAndDrop() | |
2009 | + * @param $selector | |
2010 | + * @param $optionText | |
2011 | + * | |
2012 | + * @return mixed | |
2013 | + * Conditional Assertion: Test won't be stopped on fail | |
2014 | + * @see \Codeception\Lib\InnerBrowser::dontSeeOptionIsSelected() | |
2518 | 2015 | */ |
2519 | - public function dragAndDrop($source, $target) { | |
2520 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('dragAndDrop', func_get_args())); | |
2016 | + public function cantSeeOptionIsSelected($selector, $optionText) { | |
2017 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeOptionIsSelected', func_get_args())); | |
2521 | 2018 | } |
2522 | - | |
2523 | - | |
2524 | 2019 | /** |
2525 | 2020 | * [!] Method is generated. Documentation taken from corresponding module. |
2526 | 2021 | * |
2527 | - * Move mouse over the first element matched by the given locator. | |
2528 | - * If the second and third parameters are given, then the mouse is moved to an offset of the element's top-left corner. | |
2529 | - * Otherwise, the mouse is moved to the center of the element. | |
2022 | + * Checks that the given option is not selected. | |
2530 | 2023 | * |
2531 | 2024 | * ``` php |
2532 | 2025 | * <?php |
2533 | - * $I->moveMouseOver(['css' => '.checkout'], 20, 50); | |
2026 | + * $I->dontSeeOptionIsSelected('#form input[name=payment]', 'Visa'); | |
2534 | 2027 | * ?> |
2535 | 2028 | * ``` |
2536 | 2029 | * |
2537 | - * @param string $cssOrXPath css or xpath of the web element | |
2538 | - * @param int $offsetX | |
2539 | - * @param int $offsetY | |
2030 | + * @param $selector | |
2031 | + * @param $optionText | |
2540 | 2032 | * |
2541 | - * @throws \Codeception\Exception\ElementNotFound | |
2542 | - * @see \Codeception\Module\WebDriver::moveMouseOver() | |
2033 | + * @return mixed | |
2034 | + * @see \Codeception\Lib\InnerBrowser::dontSeeOptionIsSelected() | |
2543 | 2035 | */ |
2544 | - public function moveMouseOver($cssOrXPath, $offsetX = null, $offsetY = null) { | |
2545 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('moveMouseOver', func_get_args())); | |
2036 | + public function dontSeeOptionIsSelected($selector, $optionText) { | |
2037 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeOptionIsSelected', func_get_args())); | |
2546 | 2038 | } |
2547 | 2039 | |
2548 | 2040 | |
2549 | 2041 | /** |
2550 | 2042 | * [!] Method is generated. Documentation taken from corresponding module. |
2551 | 2043 | * |
2552 | - * Performs contextual click with the right mouse button on an element. | |
2044 | + * Asserts that current page has 404 response status code. | |
2045 | + * Conditional Assertion: Test won't be stopped on fail | |
2046 | + * @see \Codeception\Lib\InnerBrowser::seePageNotFound() | |
2047 | + */ | |
2048 | + public function canSeePageNotFound() { | |
2049 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seePageNotFound', func_get_args())); | |
2050 | + } | |
2051 | + /** | |
2052 | + * [!] Method is generated. Documentation taken from corresponding module. | |
2553 | 2053 | * |
2554 | - * @param $cssOrXPath | |
2555 | - * @throws \Codeception\Exception\ElementNotFound | |
2556 | - * @see \Codeception\Module\WebDriver::clickWithRightButton() | |
2054 | + * Asserts that current page has 404 response status code. | |
2055 | + * @see \Codeception\Lib\InnerBrowser::seePageNotFound() | |
2557 | 2056 | */ |
2558 | - public function clickWithRightButton($cssOrXPath) { | |
2559 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('clickWithRightButton', func_get_args())); | |
2057 | + public function seePageNotFound() { | |
2058 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seePageNotFound', func_get_args())); | |
2560 | 2059 | } |
2561 | 2060 | |
2562 | 2061 | |
2563 | 2062 | /** |
2564 | 2063 | * [!] Method is generated. Documentation taken from corresponding module. |
2565 | 2064 | * |
2566 | - * Pauses test execution in debug mode. | |
2567 | - * To proceed test press "ENTER" in console. | |
2065 | + * Checks that response code is equal to value provided. | |
2568 | 2066 | * |
2569 | - * This method is useful while writing tests, since it allows you to inspect the current page in the middle of a test case. | |
2570 | - * @see \Codeception\Module\WebDriver::pauseExecution() | |
2067 | + * @param $code | |
2068 | + * | |
2069 | + * @return mixed | |
2070 | + * Conditional Assertion: Test won't be stopped on fail | |
2071 | + * @see \Codeception\Lib\InnerBrowser::seeResponseCodeIs() | |
2571 | 2072 | */ |
2572 | - public function pauseExecution() { | |
2573 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('pauseExecution', func_get_args())); | |
2073 | + public function canSeeResponseCodeIs($code) { | |
2074 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseCodeIs', func_get_args())); | |
2574 | 2075 | } |
2575 | - | |
2576 | - | |
2577 | 2076 | /** |
2578 | 2077 | * [!] Method is generated. Documentation taken from corresponding module. |
2579 | 2078 | * |
2580 | - * Performs a double-click on an element matched by CSS or XPath. | |
2079 | + * Checks that response code is equal to value provided. | |
2080 | + * | |
2081 | + * @param $code | |
2581 | 2082 | * |
2582 | - * @param $cssOrXPath | |
2583 | - * @throws \Codeception\Exception\ElementNotFound | |
2584 | - * @see \Codeception\Module\WebDriver::doubleClick() | |
2083 | + * @return mixed | |
2084 | + * @see \Codeception\Lib\InnerBrowser::seeResponseCodeIs() | |
2585 | 2085 | */ |
2586 | - public function doubleClick($cssOrXPath) { | |
2587 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('doubleClick', func_get_args())); | |
2086 | + public function seeResponseCodeIs($code) { | |
2087 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseCodeIs', func_get_args())); | |
2588 | 2088 | } |
2589 | 2089 | |
2590 | 2090 | |
2591 | 2091 | /** |
2592 | 2092 | * [!] Method is generated. Documentation taken from corresponding module. |
2593 | 2093 | * |
2594 | - * Presses the given key on the given element. | |
2595 | - * To specify a character and modifier (e.g. ctrl, alt, shift, meta), pass an array for $char with | |
2596 | - * the modifier as the first element and the character as the second. | |
2597 | - * For special keys use key constants from WebDriverKeys class. | |
2094 | + * Checks that the page title contains the given string. | |
2598 | 2095 | * |
2599 | 2096 | * ``` php |
2600 | 2097 | * <?php |
2601 | - * // <input id="page" value="old" /> | |
2602 | - * $I->pressKey('#page','a'); // => olda | |
2603 | - * $I->pressKey('#page',array('ctrl','a'),'new'); //=> new | |
2604 | - * $I->pressKey('#page',array('shift','111'),'1','x'); //=> old!!!1x | |
2605 | - * $I->pressKey('descendant-or-self::*[@id='page']','u'); //=> oldu | |
2606 | - * $I->pressKey('#name', array('ctrl', 'a'), \Facebook\WebDriver\WebDriverKeys::DELETE); //=>'' | |
2098 | + * $I->seeInTitle('Blog - Post #1'); | |
2607 | 2099 | * ?> |
2608 | 2100 | * ``` |
2609 | 2101 | * |
2610 | - * @param $element | |
2611 | - * @param $char Can be char or array with modifier. You can provide several chars. | |
2612 | - * @throws \Codeception\Exception\ElementNotFound | |
2613 | - * @see \Codeception\Module\WebDriver::pressKey() | |
2102 | + * @param $title | |
2103 | + * | |
2104 | + * @return mixed | |
2105 | + * Conditional Assertion: Test won't be stopped on fail | |
2106 | + * @see \Codeception\Lib\InnerBrowser::seeInTitle() | |
2614 | 2107 | */ |
2615 | - public function pressKey($element, $char) { | |
2616 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('pressKey', func_get_args())); | |
2108 | + public function canSeeInTitle($title) { | |
2109 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInTitle', func_get_args())); | |
2617 | 2110 | } |
2618 | - | |
2619 | - | |
2620 | 2111 | /** |
2621 | 2112 | * [!] Method is generated. Documentation taken from corresponding module. |
2622 | 2113 | * |
2623 | - * Append the given text to the given element. | |
2624 | - * Can also add a selection to a select box. | |
2114 | + * Checks that the page title contains the given string. | |
2625 | 2115 | * |
2626 | 2116 | * ``` php |
2627 | 2117 | * <?php |
2628 | - * $I->appendField('#mySelectbox', 'SelectValue'); | |
2629 | - * $I->appendField('#myTextField', 'appended'); | |
2118 | + * $I->seeInTitle('Blog - Post #1'); | |
2630 | 2119 | * ?> |
2631 | 2120 | * ``` |
2632 | 2121 | * |
2633 | - * @param string $field | |
2634 | - * @param string $value | |
2635 | - * @throws \Codeception\Exception\ElementNotFound | |
2636 | - * @see \Codeception\Module\WebDriver::appendField() | |
2122 | + * @param $title | |
2123 | + * | |
2124 | + * @return mixed | |
2125 | + * @see \Codeception\Lib\InnerBrowser::seeInTitle() | |
2637 | 2126 | */ |
2638 | - public function appendField($field, $value) { | |
2639 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('appendField', func_get_args())); | |
2127 | + public function seeInTitle($title) { | |
2128 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInTitle', func_get_args())); | |
2640 | 2129 | } |
2641 | 2130 | |
2642 | 2131 | |
2643 | 2132 | /** |
2644 | 2133 | * [!] Method is generated. Documentation taken from corresponding module. |
2645 | 2134 | * |
2646 | - * @param string $name | |
2647 | - * @see \Codeception\Module\WebDriver::saveSessionSnapshot() | |
2135 | + * Checks that the page title does not contain the given string. | |
2136 | + * | |
2137 | + * @param $title | |
2138 | + * | |
2139 | + * @return mixed | |
2140 | + * Conditional Assertion: Test won't be stopped on fail | |
2141 | + * @see \Codeception\Lib\InnerBrowser::dontSeeInTitle() | |
2648 | 2142 | */ |
2649 | - public function saveSessionSnapshot($name) { | |
2650 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('saveSessionSnapshot', func_get_args())); | |
2143 | + public function cantSeeInTitle($title) { | |
2144 | + return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInTitle', func_get_args())); | |
2651 | 2145 | } |
2652 | - | |
2653 | - | |
2654 | 2146 | /** |
2655 | 2147 | * [!] Method is generated. Documentation taken from corresponding module. |
2656 | 2148 | * |
2657 | - * @param string $name | |
2658 | - * @return bool | |
2659 | - * @see \Codeception\Module\WebDriver::loadSessionSnapshot() | |
2149 | + * Checks that the page title does not contain the given string. | |
2150 | + * | |
2151 | + * @param $title | |
2152 | + * | |
2153 | + * @return mixed | |
2154 | + * @see \Codeception\Lib\InnerBrowser::dontSeeInTitle() | |
2660 | 2155 | */ |
2661 | - public function loadSessionSnapshot($name) { | |
2662 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('loadSessionSnapshot', func_get_args())); | |
2156 | + public function dontSeeInTitle($title) { | |
2157 | + return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInTitle', func_get_args())); | |
2663 | 2158 | } |
2664 | 2159 | |
2665 | 2160 | |
2666 | 2161 | /** |
2667 | 2162 | * [!] Method is generated. Documentation taken from corresponding module. |
2668 | 2163 | * |
2669 | - * Move to the middle of the given element matched by the given locator. | |
2670 | - * Extra shift, calculated from the top-left corner of the element, can be set by passing $offsetX and $offsetY parameters. | |
2164 | + * Switch to iframe or frame on the page. | |
2165 | + * | |
2166 | + * Example: | |
2167 | + * ``` html | |
2168 | + * <iframe name="another_frame" src="http://example.com"> | |
2169 | + * ``` | |
2671 | 2170 | * |
2672 | 2171 | * ``` php |
2673 | 2172 | * <?php |
2674 | - * $I->scrollTo(['css' => '.checkout'], 20, 50); | |
2675 | - * ?> | |
2173 | + * # switch to iframe | |
2174 | + * $I->switchToIframe("another_frame"); | |
2676 | 2175 | * ``` |
2677 | 2176 | * |
2678 | - * @param $selector | |
2679 | - * @param int $offsetX | |
2680 | - * @param int $offsetY | |
2681 | - * @see \Codeception\Module\WebDriver::scrollTo() | |
2177 | + * @param string $name | |
2178 | + * @see \Codeception\Lib\InnerBrowser::switchToIframe() | |
2179 | + */ | |
2180 | + public function switchToIframe($name) { | |
2181 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('switchToIframe', func_get_args())); | |
2182 | + } | |
2183 | + | |
2184 | + | |
2185 | + /** | |
2186 | + * [!] Method is generated. Documentation taken from corresponding module. | |
2187 | + * | |
2188 | + * Moves back in history. | |
2189 | + * | |
2190 | + * @param int $numberOfSteps (default value 1) | |
2191 | + * @see \Codeception\Lib\InnerBrowser::moveBack() | |
2682 | 2192 | */ |
2683 | - public function scrollTo($selector, $offsetX = null, $offsetY = null) { | |
2684 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('scrollTo', func_get_args())); | |
2193 | + public function moveBack($numberOfSteps = null) { | |
2194 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('moveBack', func_get_args())); | |
2685 | 2195 | } |
2686 | 2196 | } | ... | ... |
tests/_support/_generated/FunctionalTesterActions.php
tests/_support/_generated/UnitTesterActions.php
1 | -<?php //[STAMP] afe236e24211133b48645948576bce9f | |
1 | +<?php //[STAMP] d534c7efe0c90e2049d137a1fc54d008 | |
2 | 2 | namespace _generated; |
3 | 3 | |
4 | 4 | // This class was automatically generated by build task |
... | ... | @@ -54,6 +54,7 @@ trait UnitTesterActions |
54 | 54 | * @param $expected |
55 | 55 | * @param $actual |
56 | 56 | * @param string $message |
57 | + * @return mixed|void | |
57 | 58 | * @see \Codeception\Module\Asserts::assertSame() |
58 | 59 | */ |
59 | 60 | public function assertSame($expected, $actual, $message = null) { |
... | ... | @@ -94,17 +95,6 @@ trait UnitTesterActions |
94 | 95 | /** |
95 | 96 | * [!] Method is generated. Documentation taken from corresponding module. |
96 | 97 | * |
97 | - * @deprecated | |
98 | - * @see \Codeception\Module\Asserts::assertGreaterThen() | |
99 | - */ | |
100 | - public function assertGreaterThen($expected, $actual, $message = null) { | |
101 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('assertGreaterThen', func_get_args())); | |
102 | - } | |
103 | - | |
104 | - | |
105 | - /** | |
106 | - * [!] Method is generated. Documentation taken from corresponding module. | |
107 | - * | |
108 | 98 | * Checks that actual is greater or equal than expected |
109 | 99 | * |
110 | 100 | * @param $expected |
... | ... | @@ -120,17 +110,6 @@ trait UnitTesterActions |
120 | 110 | /** |
121 | 111 | * [!] Method is generated. Documentation taken from corresponding module. |
122 | 112 | * |
123 | - * @deprecated | |
124 | - * @see \Codeception\Module\Asserts::assertGreaterThenOrEqual() | |
125 | - */ | |
126 | - public function assertGreaterThenOrEqual($expected, $actual, $message = null) { | |
127 | - return $this->getScenario()->runStep(new \Codeception\Step\Action('assertGreaterThenOrEqual', func_get_args())); | |
128 | - } | |
129 | - | |
130 | - | |
131 | - /** | |
132 | - * [!] Method is generated. Documentation taken from corresponding module. | |
133 | - * | |
134 | 113 | * Checks that actual is less than expected |
135 | 114 | * |
136 | 115 | * @param $expected |
... | ... | @@ -333,6 +312,109 @@ trait UnitTesterActions |
333 | 312 | /** |
334 | 313 | * [!] Method is generated. Documentation taken from corresponding module. |
335 | 314 | * |
315 | + * @param $expected | |
316 | + * @param $actual | |
317 | + * @param $description | |
318 | + * @see \Codeception\Module\Asserts::assertGreaterOrEquals() | |
319 | + */ | |
320 | + public function assertGreaterOrEquals($expected, $actual, $description = null) { | |
321 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('assertGreaterOrEquals', func_get_args())); | |
322 | + } | |
323 | + | |
324 | + | |
325 | + /** | |
326 | + * [!] Method is generated. Documentation taken from corresponding module. | |
327 | + * | |
328 | + * @param $expected | |
329 | + * @param $actual | |
330 | + * @param $description | |
331 | + * @see \Codeception\Module\Asserts::assertLessOrEquals() | |
332 | + */ | |
333 | + public function assertLessOrEquals($expected, $actual, $description = null) { | |
334 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('assertLessOrEquals', func_get_args())); | |
335 | + } | |
336 | + | |
337 | + | |
338 | + /** | |
339 | + * [!] Method is generated. Documentation taken from corresponding module. | |
340 | + * | |
341 | + * @param $actual | |
342 | + * @param $description | |
343 | + * @see \Codeception\Module\Asserts::assertIsEmpty() | |
344 | + */ | |
345 | + public function assertIsEmpty($actual, $description = null) { | |
346 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('assertIsEmpty', func_get_args())); | |
347 | + } | |
348 | + | |
349 | + | |
350 | + /** | |
351 | + * [!] Method is generated. Documentation taken from corresponding module. | |
352 | + * | |
353 | + * @param $key | |
354 | + * @param $actual | |
355 | + * @param $description | |
356 | + * @see \Codeception\Module\Asserts::assertArrayHasKey() | |
357 | + */ | |
358 | + public function assertArrayHasKey($key, $actual, $description = null) { | |
359 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('assertArrayHasKey', func_get_args())); | |
360 | + } | |
361 | + | |
362 | + | |
363 | + /** | |
364 | + * [!] Method is generated. Documentation taken from corresponding module. | |
365 | + * | |
366 | + * @param $key | |
367 | + * @param $actual | |
368 | + * @param $description | |
369 | + * @see \Codeception\Module\Asserts::assertArrayNotHasKey() | |
370 | + */ | |
371 | + public function assertArrayNotHasKey($key, $actual, $description = null) { | |
372 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('assertArrayNotHasKey', func_get_args())); | |
373 | + } | |
374 | + | |
375 | + | |
376 | + /** | |
377 | + * [!] Method is generated. Documentation taken from corresponding module. | |
378 | + * | |
379 | + * @param $class | |
380 | + * @param $actual | |
381 | + * @param $description | |
382 | + * @see \Codeception\Module\Asserts::assertInstanceOf() | |
383 | + */ | |
384 | + public function assertInstanceOf($class, $actual, $description = null) { | |
385 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('assertInstanceOf', func_get_args())); | |
386 | + } | |
387 | + | |
388 | + | |
389 | + /** | |
390 | + * [!] Method is generated. Documentation taken from corresponding module. | |
391 | + * | |
392 | + * @param $class | |
393 | + * @param $actual | |
394 | + * @param $description | |
395 | + * @see \Codeception\Module\Asserts::assertNotInstanceOf() | |
396 | + */ | |
397 | + public function assertNotInstanceOf($class, $actual, $description = null) { | |
398 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotInstanceOf', func_get_args())); | |
399 | + } | |
400 | + | |
401 | + | |
402 | + /** | |
403 | + * [!] Method is generated. Documentation taken from corresponding module. | |
404 | + * | |
405 | + * @param $type | |
406 | + * @param $actual | |
407 | + * @param $description | |
408 | + * @see \Codeception\Module\Asserts::assertInternalType() | |
409 | + */ | |
410 | + public function assertInternalType($type, $actual, $description = null) { | |
411 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('assertInternalType', func_get_args())); | |
412 | + } | |
413 | + | |
414 | + | |
415 | + /** | |
416 | + * [!] Method is generated. Documentation taken from corresponding module. | |
417 | + * | |
336 | 418 | * Fails the test with message. |
337 | 419 | * |
338 | 420 | * @param $message |
... | ... | @@ -341,4 +423,38 @@ trait UnitTesterActions |
341 | 423 | public function fail($message) { |
342 | 424 | return $this->getScenario()->runStep(new \Codeception\Step\Action('fail', func_get_args())); |
343 | 425 | } |
426 | + | |
427 | + | |
428 | + /** | |
429 | + * [!] Method is generated. Documentation taken from corresponding module. | |
430 | + * | |
431 | + * Handles and checks exception called inside callback function. | |
432 | + * Either exception class name or exception instance should be provided. | |
433 | + * | |
434 | + * ```php | |
435 | + * <?php | |
436 | + * $I->expectException(MyException::class, function() { | |
437 | + * $this->doSomethingBad(); | |
438 | + * }); | |
439 | + * | |
440 | + * $I->expectException(new MyException(), function() { | |
441 | + * $this->doSomethingBad(); | |
442 | + * }); | |
443 | + * ``` | |
444 | + * If you want to check message or exception code, you can pass them with exception instance: | |
445 | + * ```php | |
446 | + * <?php | |
447 | + * // will check that exception MyException is thrown with "Don't do bad things" message | |
448 | + * $I->expectException(new MyException("Don't do bad things"), function() { | |
449 | + * $this->doSomethingBad(); | |
450 | + * }); | |
451 | + * ``` | |
452 | + * | |
453 | + * @param $exception string or \Exception | |
454 | + * @param $callback | |
455 | + * @see \Codeception\Module\Asserts::expectException() | |
456 | + */ | |
457 | + public function expectException($exception, $callback) { | |
458 | + return $this->getScenario()->runStep(new \Codeception\Step\Action('expectException', func_get_args())); | |
459 | + } | |
344 | 460 | } | ... | ... |
tests/acceptance.suite.yml