Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | CRAP |
<?php | |
namespace Codeception\Util; | |
/** | |
* Interface for all Framework connectors. | |
* PhpBrowser acts similarly, as universal connectorm thus implements it too. | |
* | |
*/ | |
interface FrameworkInterface | |
{ | |
/** | |
* Opens the page. | |
* Requires relative uri as parameter | |
* | |
* Example: | |
* | |
* ``` php | |
* <?php | |
* // opens front page | |
* $I->amOnPage('/'); | |
* // opens /register page | |
* $I->amOnPage('/register'); | |
* ?> | |
* ``` | |
* | |
* @param $page | |
*/ | |
public function amOnPage($page); | |
/** | |
* Check if current page contains the text specified. | |
* Specify the css selector to match only specific region. | |
* | |
* Examples: | |
* | |
* ``` php | |
* <?php | |
* $I->see('Logout'); // I can suppose user is logged in | |
* $I->see('Sign Up','h1'); // I can suppose it's a signup page | |
* $I->see('Sign Up','//body/h1'); // with XPath | |
* | |
* ``` | |
* | |
* @param $text | |
* @param null $selector | |
*/ | |
public function see($text, $selector = null); | |
/** | |
* Check if current page doesn't contain the text specified. | |
* Specify the css selector to match only specific region. | |
* | |
* Examples: | |
* | |
* ```php | |
* <?php | |
* $I->dontSee('Login'); // I can suppose user is already logged in | |
* $I->dontSee('Sign Up','h1'); // I can suppose it's not a signup page | |
* $I->dontSee('Sign Up','//body/h1'); // with XPath | |
* ``` | |
* | |
* @param $text | |
* @param null $selector | |
*/ | |
public function dontSee($text, $selector = null); | |
/** | |
* Perform a click on link or button. | |
* Link or button are found by their names or CSS selector. | |
* Submits a form if button is a submit type. | |
* | |
* If link is an image it's found by alt attribute value of image. | |
* If button is image button is found by it's value | |
* If link or button can't be found by name they are searched by CSS selector. | |
* | |
* Examples: | |
* | |
* ``` php | |
* <?php | |
* // simple link | |
* $I->click('Logout'); | |
* // button of form | |
* $I->click('Submit'); | |
* // CSS button | |
* $I->click('#form input[type=submit]'); | |
* // XPath | |
* $I->click('//form/*[@type=submit]') | |
* ?> | |
* ``` | |
* @param $link | |
*/ | |
public function click($link); | |
/** | |
* 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()); | |
/** | |
* Checks if there is a link with text specified. | |
* Specify url to match link with exact this url. | |
* | |
* Examples: | |
* | |
* ``` php | |
* <?php | |
* $I->seeLink('Logout'); // matches <a href="#">Logout</a> | |
* $I->seeLink('Logout','/logout'); // matches <a href="/logout">Logout</a> | |
* | |
* ``` | |
* | |
* @param $text | |
* @param null $url | |
*/ | |
public function seeLink($text, $url = null); | |
/** | |
* Checks if page doesn't contain the link with text specified. | |
* Specify url to narrow the results. | |
* | |
* Examples: | |
* | |
* ``` php | |
* <?php | |
* $I->dontSeeLink('Logout'); // I suppose user is not logged in | |
* | |
* ``` | |
* | |
* @param $text | |
* @param null $url | |
*/ | |
public function dontSeeLink($text, $url = null); | |
/** | |
* Checks that current uri contains value | |
* | |
* @param $uri | |
*/ | |
public function seeInCurrentUrl($uri); | |
/** | |
* Assert if the specified checkbox is checked. | |
* Use css selector or xpath to match. | |
* | |
* Example: | |
* | |
* ``` php | |
* <?php | |
* $I->seeCheckboxIsChecked('#agree'); // I suppose user agreed to terms | |
* $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user agreed to terms, If there is only one checkbox in form. | |
* $I->seeCheckboxIsChecked('//form/input[@type=checkbox and @name=agree]'); | |
* | |
* ``` | |
* | |
* @param $checkbox | |
*/ | |
public function seeCheckboxIsChecked($checkbox); | |
/** | |
* Assert if the specified checkbox is unchecked. | |
* Use css selector or xpath to match. | |
* | |
* Example: | |
* | |
* ``` php | |
* <?php | |
* $I->dontSeeCheckboxIsChecked('#agree'); // I suppose user didn't agree to terms | |
* $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user didn't check the first checkbox in form. | |
* | |
* ``` | |
* | |
* @param $checkbox | |
*/ | |
public function dontSeeCheckboxIsChecked($checkbox); | |
/** | |
* Checks that an input field or textarea contains value. | |
* | |
* Example: | |
* | |
* ``` php | |
* <?php | |
* $I->seeInField('form textarea[name=body]','Type your comment here'); | |
* $I->seeInField('form input[type=hidden]','hidden_value'); | |
* $I->seeInField('#searchform input','Search'); | |
* $I->seeInField('//form/*[@name=search]','Search'); | |
* ?> | |
* ``` | |
* | |
* @param $field | |
* @param $value | |
*/ | |
public function seeInField($field, $value); | |
/** | |
* Checks that an input field or textarea doesn't contain value. | |
* | |
* Example: | |
* | |
* ``` php | |
* <?php | |
* $I->dontSeeInField('form textarea[name=body]','Type your comment here'); | |
* $I->dontSeeInField('form input[type=hidden]','hidden_value'); | |
* $I->dontSeeInField('#searchform input','Search'); | |
* $I->dontSeeInField('//form/*[@name=search]','Search'); | |
* ?> | |
* ``` | |
* | |
* @param $field | |
* @param $value | |
*/ | |
public function dontSeeInField($field, $value); | |
/** | |
* Selects an option in select tag or in radio button group. | |
* | |
* Example: | |
* | |
* ``` php | |
* <?php | |
* $I->selectOption('form select[name=account]', 'Premium'); | |
* $I->selectOption('form input[name=payment]', 'Monthly'); | |
* $I->selectOption('//form/select[@name=account]', 'Monthly'); | |
* ?> | |
* ``` | |
* | |
* @param $select | |
* @param $option | |
*/ | |
public function selectOption($select, $option); | |
/** | |
* Ticks a checkbox. | |
* For radio buttons use `selectOption` method. | |
* | |
* @param $option | |
*/ | |
public function checkOption($option); | |
/** | |
* Unticks a checkbox. | |
* For radio buttons use `selectOption` method. | |
* | |
* @param $option | |
*/ | |
public function uncheckOption($option); | |
/** | |
* Fills a text field or textarea with value. | |
* | |
* @param $field | |
* @param $value | |
*/ | |
public function fillField($field, $value); | |
/** | |
* Attaches file from Codeception data directory to upload field. | |
* | |
* Example: | |
* | |
* ``` php | |
* <?php | |
* // file is stored in 'tests/data/tests.xls' | |
* $I->attachFile('prices.xls'); | |
* ?> | |
* ``` | |
* | |
* @param $field | |
* @param $filename | |
*/ | |
public function attachFile($field, $filename); | |
/** | |
* Finds and returns text contents of element. | |
* Element is searched by CSS selector, XPath or matcher by regex. | |
* | |
* Example: | |
* | |
* ``` php | |
* <?php | |
* $heading = $I->grabTextFrom('h1'); | |
* $heading = $I->grabTextFrom('descendant-or-self::h1'); | |
* $value = $I->grabTextFrom('~<input value=(.*?)]~sgi'); | |
* ?> | |
* ``` | |
* | |
* @param $cssOrXPathOrRegex | |
* @return mixed | |
*/ | |
public function grabTextFrom($cssOrXPathOrRegex); | |
/** | |
* Finds and returns field and returns it's value. | |
* Searches by field name, then by CSS, then by XPath | |
* | |
* Example: | |
* | |
* ``` php | |
* <?php | |
* $name = $I->grabValueFrom('Name'); | |
* $name = $I->grabValueFrom('input[name=username]'); | |
* $name = $I->grabValueFrom('descendant-or-self::form/descendant::input[@name = 'username']'); | |
* ?> | |
* ``` | |
* | |
* @param $field | |
* @return mixed | |
*/ | |
public function grabValueFrom($field); | |
} |