Repository navigation
Expand file tree
/
Copy pathFrameworkInterface.php
More file actions
127 lines (119 loc) · 3.67 KB
/
Copy pathFrameworkInterface.php
File metadata and controls
127 lines (119 loc) · 3.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
namespace Codeception\Util;
/**
* Interface for all Framework connectors.
* PhpBrowser acts similarly, as universal connector thus implements it too.
*
*/
interface FrameworkInterface extends WebInterface
{
/**
* Submits a form located on page.
* Specify the form by it's css or xpath selector.
* Fill the form fields values as array.
*
* Skipped fields will be filled by their values from page.
* You don't need to click the 'Submit' button afterwards.
* This command itself triggers the request to form's action.
*
* Examples:
*
* ``` php
* <?php
* $I->submitForm('#login', array('login' => 'davert', 'password' => '123456'));
*
* ```
*
* For sample Sign Up form:
*
* ``` html
* <form action="/sign_up">
* Login: <input type="text" name="user[login]" /><br/>
* Password: <input type="password" name="user[password]" /><br/>
* Do you agree to out terms? <input type="checkbox" name="user[agree]" /><br/>
* Select pricing plan <select name="plan"><option value="1">Free</option><option value="2" selected="selected">Paid</option></select>
* <input type="submit" value="Submit" />
* </form>
* ```
* I can write this:
*
* ``` php
* <?php
* $I->submitForm('#userForm', array('user' => array('login' => 'Davert', 'password' => '123456', 'agree' => true)));
*
* ```
* Note, that pricing plan will be set to Paid, as it's selected on page.
*
* @param $selector
* @param $params
*/
public function submitForm($selector, $params);
/**
* If your page triggers an ajax request, you can perform it manually.
* This action sends a POST ajax request with specified params.
* Additional params can be passed as array.
*
* Example:
*
* Imagine that by clicking checkbox you trigger ajax request which updates user settings.
* We emulate that click by running this ajax request manually.
*
* ``` php
* <?php
* $I->sendAjaxPostRequest('/updateSettings', array('notifications' => true)); // POST
* $I->sendAjaxGetRequest('/updateSettings', array('notifications' => true)); // GET
*
* ```
*
* @param $uri
* @param $params
*/
public function sendAjaxPostRequest($uri, $params = array());
/**
* If your page triggers an ajax request, you can perform it manually.
* This action sends a GET ajax request with specified params.
*
* See ->sendAjaxPostRequest for examples.
*
* @param $uri
* @param $params
*/
public function sendAjaxGetRequest($uri, $params = array());
/**
* If your page triggers an ajax request, you can perform it manually.
* This action sends an ajax request with specified method and params.
*
* Example:
*
* You need to perform an ajax request specifying the HTTP method.
*
* ``` php
* <?php
* $I->sendAjaxRequest('PUT', /posts/7', array('title' => 'new title');
*
* ```
*
* @param $method
* @param $uri
* @param $params
*/
public function sendAjaxRequest($method, $uri, $params = array());
/**
* Asserts that current page has 404 response status code.
*/
public function seePageNotFound();
/**
* Checks that response code is equal to value provided.
*
* @param $code
* @return mixed
*/
public function seeResponseCodeIs($code);
/**
* Adds HTTP authentication via username/password.
*
* @param $username
* @param $password
*/
public function amHttpAuthenticated($username, $password);
}