haveHttpHeader('Content-Type', 'application/json'); * // all next requests will contain this header * ?> * ``` * * @param $name * @param $value * @part json * @part xml * @see \Codeception\Module\REST::haveHttpHeader() */ public function haveHttpHeader($name, $value) { return $this->getScenario()->runStep(new \Codeception\Step\Action('haveHttpHeader', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Deletes the header with the passed name. Subsequent requests * will not have the deleted header in its request. * * Example: * ```php * haveHttpHeader('X-Requested-With', 'Codeception'); * $I->sendGET('test-headers.php'); * // ... * $I->deleteHeader('X-Requested-With'); * $I->sendPOST('some-other-page.php'); * ?> * ``` * * @param string $name the name of the header to delete. * @part json * @part xml * @see \Codeception\Module\REST::deleteHeader() */ public function deleteHeader($name) { return $this->getScenario()->runStep(new \Codeception\Step\Action('deleteHeader', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks over the given HTTP header and (optionally) * its value, asserting that are there * * @param $name * @param $value * @part json * @part xml * @see \Codeception\Module\REST::seeHttpHeader() */ public function seeHttpHeader($name, $value = null) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeHttpHeader', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks over the given HTTP header and (optionally) * its value, asserting that are there * * @param $name * @param $value * @part json * @part xml * @see \Codeception\Module\REST::seeHttpHeader() */ public function canSeeHttpHeader($name, $value = null) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeHttpHeader', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks over the given HTTP header and (optionally) * its value, asserting that are not there * * @param $name * @param $value * @part json * @part xml * @see \Codeception\Module\REST::dontSeeHttpHeader() */ public function dontSeeHttpHeader($name, $value = null) { return $this->getScenario()->runStep(new \Codeception\Step\Action('dontSeeHttpHeader', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks over the given HTTP header and (optionally) * its value, asserting that are not there * * @param $name * @param $value * @part json * @part xml * @see \Codeception\Module\REST::dontSeeHttpHeader() */ public function cantSeeHttpHeader($name, $value = null) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeHttpHeader', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks that http response header is received only once. * HTTP RFC2616 allows multiple response headers with the same name. * You can check that you didn't accidentally sent the same header twice. * * ``` php * seeHttpHeaderOnce('Cache-Control'); * ?>> * ``` * * @param $name * @part json * @part xml * @see \Codeception\Module\REST::seeHttpHeaderOnce() */ public function seeHttpHeaderOnce($name) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeHttpHeaderOnce', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks that http response header is received only once. * HTTP RFC2616 allows multiple response headers with the same name. * You can check that you didn't accidentally sent the same header twice. * * ``` php * seeHttpHeaderOnce('Cache-Control'); * ?>> * ``` * * @param $name * @part json * @part xml * @see \Codeception\Module\REST::seeHttpHeaderOnce() */ public function canSeeHttpHeaderOnce($name) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeHttpHeaderOnce', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Returns the value of the specified header name * * @param $name * @param Boolean $first Whether to return the first value or all header values * * @return string|array The first header value if $first is true, an array of values otherwise * @part json * @part xml * @see \Codeception\Module\REST::grabHttpHeader() */ public function grabHttpHeader($name, $first = null) { return $this->getScenario()->runStep(new \Codeception\Step\Action('grabHttpHeader', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Adds HTTP authentication via username/password. * * @param $username * @param $password * @part json * @part xml * @see \Codeception\Module\REST::amHttpAuthenticated() */ public function amHttpAuthenticated($username, $password) { return $this->getScenario()->runStep(new \Codeception\Step\Condition('amHttpAuthenticated', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Adds Digest authentication via username/password. * * @param $username * @param $password * @part json * @part xml * @see \Codeception\Module\REST::amDigestAuthenticated() */ public function amDigestAuthenticated($username, $password) { return $this->getScenario()->runStep(new \Codeception\Step\Condition('amDigestAuthenticated', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Adds Bearer authentication via access token. * * @param $accessToken * @part json * @part xml * @see \Codeception\Module\REST::amBearerAuthenticated() */ public function amBearerAuthenticated($accessToken) { return $this->getScenario()->runStep(new \Codeception\Step\Condition('amBearerAuthenticated', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Adds NTLM authentication via username/password. * Requires client to be Guzzle >=6.3.0 * Out of scope for functional modules. * * Example: * ```php * amNTLMAuthenticated('jon_snow', 'targaryen'); * ?> * ``` * * @param $username * @param $password * @throws ModuleException * @part json * @part xml * @see \Codeception\Module\REST::amNTLMAuthenticated() */ public function amNTLMAuthenticated($username, $password) { return $this->getScenario()->runStep(new \Codeception\Step\Condition('amNTLMAuthenticated', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Allows to send REST request using AWS Authorization * * Only works with PhpBrowser * Example Config: * ```yml * modules: * enabled: * - REST: * aws: * key: accessKey * secret: accessSecret * service: awsService * region: awsRegion * ``` * Code: * ```php * amAWSAuthenticated(); * ?> * ``` * @param array $additionalAWSConfig * @throws ModuleException * @see \Codeception\Module\REST::amAWSAuthenticated() */ public function amAWSAuthenticated($additionalAWSConfig = null) { return $this->getScenario()->runStep(new \Codeception\Step\Condition('amAWSAuthenticated', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Sends a POST request to given uri. Parameters and files can be provided separately. * * Example: * ```php * sendPOST('/message', ['subject' => 'Read this!', 'to' => 'johndoe@example.com']); * //simple upload method * $I->sendPOST('/message/24', ['inline' => 0], ['attachmentFile' => codecept_data_dir('sample_file.pdf')]); * //uploading a file with a custom name and mime-type. This is also useful to simulate upload errors. * $I->sendPOST('/message/24', ['inline' => 0], [ * 'attachmentFile' => [ * 'name' => 'document.pdf', * 'type' => 'application/pdf', * 'error' => UPLOAD_ERR_OK, * 'size' => filesize(codecept_data_dir('sample_file.pdf')), * 'tmp_name' => codecept_data_dir('sample_file.pdf') * ] * ]); * ``` * * @param $url * @param array|\JsonSerializable $params * @param array $files A list of filenames or "mocks" of $_FILES (each entry being an array with the following * keys: name, type, error, size, tmp_name (pointing to the real file path). Each key works * as the "name" attribute of a file input field. * * @see http://php.net/manual/en/features.file-upload.post-method.php * @see codecept_data_dir() * @part json * @part xml * @see \Codeception\Module\REST::sendPOST() */ public function sendPOST($url, $params = null, $files = null) { return $this->getScenario()->runStep(new \Codeception\Step\Action('sendPOST', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Sends a HEAD request to given uri. * * @param $url * @param array $params * @part json * @part xml * @see \Codeception\Module\REST::sendHEAD() */ public function sendHEAD($url, $params = null) { return $this->getScenario()->runStep(new \Codeception\Step\Action('sendHEAD', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Sends an OPTIONS request to given uri. * * @param $url * @param array $params * @part json * @part xml * @see \Codeception\Module\REST::sendOPTIONS() */ public function sendOPTIONS($url, $params = null) { return $this->getScenario()->runStep(new \Codeception\Step\Action('sendOPTIONS', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Sends a GET request to given uri. * * @param $url * @param array $params * @part json * @part xml * @see \Codeception\Module\REST::sendGET() */ public function sendGET($url, $params = null) { return $this->getScenario()->runStep(new \Codeception\Step\Action('sendGET', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Sends PUT request to given uri. * * @param $url * @param array $params * @param array $files * @part json * @part xml * @see \Codeception\Module\REST::sendPUT() */ public function sendPUT($url, $params = null, $files = null) { return $this->getScenario()->runStep(new \Codeception\Step\Action('sendPUT', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Sends PATCH request to given uri. * * @param $url * @param array $params * @param array $files * @part json * @part xml * @see \Codeception\Module\REST::sendPATCH() */ public function sendPATCH($url, $params = null, $files = null) { return $this->getScenario()->runStep(new \Codeception\Step\Action('sendPATCH', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Sends DELETE request to given uri. * * @param $url * @param array $params * @param array $files * @part json * @part xml * @see \Codeception\Module\REST::sendDELETE() */ public function sendDELETE($url, $params = null, $files = null) { return $this->getScenario()->runStep(new \Codeception\Step\Action('sendDELETE', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Sends LINK request to given uri. * * @param $url * @param array $linkEntries (entry is array with keys "uri" and "link-param") * * @link http://tools.ietf.org/html/rfc2068#section-19.6.2.4 * * @author samva.ua@gmail.com * @part json * @part xml * @see \Codeception\Module\REST::sendLINK() */ public function sendLINK($url, $linkEntries) { return $this->getScenario()->runStep(new \Codeception\Step\Action('sendLINK', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Sends UNLINK request to given uri. * * @param $url * @param array $linkEntries (entry is array with keys "uri" and "link-param") * @link http://tools.ietf.org/html/rfc2068#section-19.6.2.4 * @author samva.ua@gmail.com * @part json * @part xml * @see \Codeception\Module\REST::sendUNLINK() */ public function sendUNLINK($url, $linkEntries) { return $this->getScenario()->runStep(new \Codeception\Step\Action('sendUNLINK', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks whether last response was valid JSON. * This is done with json_last_error function. * * @part json * @see \Codeception\Module\REST::seeResponseIsJson() */ public function seeResponseIsJson() { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseIsJson', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks whether last response was valid JSON. * This is done with json_last_error function. * * @part json * @see \Codeception\Module\REST::seeResponseIsJson() */ public function canSeeResponseIsJson() { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseIsJson', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks whether the last response contains text. * * @param $text * @part json * @part xml * @see \Codeception\Module\REST::seeResponseContains() */ public function seeResponseContains($text) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseContains', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks whether the last response contains text. * * @param $text * @part json * @part xml * @see \Codeception\Module\REST::seeResponseContains() */ public function canSeeResponseContains($text) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseContains', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks whether last response do not contain text. * * @param $text * @part json * @part xml * @see \Codeception\Module\REST::dontSeeResponseContains() */ public function dontSeeResponseContains($text) { return $this->getScenario()->runStep(new \Codeception\Step\Action('dontSeeResponseContains', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks whether last response do not contain text. * * @param $text * @part json * @part xml * @see \Codeception\Module\REST::dontSeeResponseContains() */ public function cantSeeResponseContains($text) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeResponseContains', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks whether the last JSON response contains provided array. * The response is converted to array with json_decode($response, true) * Thus, JSON is represented by associative array. * This method matches that response array contains provided array. * * Examples: * * ``` php * seeResponseContainsJson(array('name' => 'john')); * * // response {user: john, profile: { email: john@gmail.com }} * $I->seeResponseContainsJson(array('email' => 'john@gmail.com')); * * ?> * ``` * * This method recursively checks if one array can be found inside of another. * * @param array $json * @part json * @see \Codeception\Module\REST::seeResponseContainsJson() */ public function seeResponseContainsJson($json = null) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseContainsJson', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks whether the last JSON response contains provided array. * The response is converted to array with json_decode($response, true) * Thus, JSON is represented by associative array. * This method matches that response array contains provided array. * * Examples: * * ``` php * seeResponseContainsJson(array('name' => 'john')); * * // response {user: john, profile: { email: john@gmail.com }} * $I->seeResponseContainsJson(array('email' => 'john@gmail.com')); * * ?> * ``` * * This method recursively checks if one array can be found inside of another. * * @param array $json * @part json * @see \Codeception\Module\REST::seeResponseContainsJson() */ public function canSeeResponseContainsJson($json = null) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseContainsJson', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks whether last response matches the supplied json schema (https://json-schema.org/) * Supply schema as json string. * * Examples: * * ``` php * seeResponseIsValidOnJsonSchemaString('{"type": "object"}'); * * // response {"name": "john", "age": 20} * $schema = [ * "properties" => [ * "age" => [ * "type" => "integer", * "minimum" => 18 * ] * ] * ]; * $I->seeResponseIsValidOnJsonSchemaString(json_encode($schema)); * * ?> * ``` * * @param string $schema * @part json * @see \Codeception\Module\REST::seeResponseIsValidOnJsonSchemaString() */ public function seeResponseIsValidOnJsonSchemaString($schema) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseIsValidOnJsonSchemaString', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks whether last response matches the supplied json schema (https://json-schema.org/) * Supply schema as json string. * * Examples: * * ``` php * seeResponseIsValidOnJsonSchemaString('{"type": "object"}'); * * // response {"name": "john", "age": 20} * $schema = [ * "properties" => [ * "age" => [ * "type" => "integer", * "minimum" => 18 * ] * ] * ]; * $I->seeResponseIsValidOnJsonSchemaString(json_encode($schema)); * * ?> * ``` * * @param string $schema * @part json * @see \Codeception\Module\REST::seeResponseIsValidOnJsonSchemaString() */ public function canSeeResponseIsValidOnJsonSchemaString($schema) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseIsValidOnJsonSchemaString', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks whether last response matches the supplied json schema (https://json-schema.org/) * Supply schema as relative file path in your project directory or an absolute path * * @see codecept_absolute_path() * * @param string $schemaFilename * @part json * @see \Codeception\Module\REST::seeResponseIsValidOnJsonSchema() */ public function seeResponseIsValidOnJsonSchema($schemaFilename) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseIsValidOnJsonSchema', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks whether last response matches the supplied json schema (https://json-schema.org/) * Supply schema as relative file path in your project directory or an absolute path * * @see codecept_absolute_path() * * @param string $schemaFilename * @part json * @see \Codeception\Module\REST::seeResponseIsValidOnJsonSchema() */ public function canSeeResponseIsValidOnJsonSchema($schemaFilename) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseIsValidOnJsonSchema', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Returns current response so that it can be used in next scenario steps. * * Example: * * ``` php * grabResponse(); * $I->sendPUT('/user', array('id' => $user_id, 'name' => 'davert')); * ?> * ``` * * @return string * @part json * @part xml * @version 1.1 * @see \Codeception\Module\REST::grabResponse() */ public function grabResponse() { return $this->getScenario()->runStep(new \Codeception\Step\Action('grabResponse', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Returns data from the current JSON response using [JSONPath](http://goessner.net/articles/JsonPath/) as selector. * JsonPath is XPath equivalent for querying Json structures. * Try your JsonPath expressions [online](http://jsonpath.curiousconcept.com/). * Even for a single value an array is returned. * * This method **require [`flow/jsonpath` > 0.2](https://github.com/FlowCommunications/JSONPath/) library to be installed**. * * Example: * * ``` php * grabDataFromResponseByJsonPath('$..users[0].id'); * $I->sendPUT('/user', array('id' => $firstUserId[0], 'name' => 'davert')); * ?> * ``` * * @param string $jsonPath * @return array Array of matching items * @throws \Exception * @part json * @version 2.0.9 * @see \Codeception\Module\REST::grabDataFromResponseByJsonPath() */ public function grabDataFromResponseByJsonPath($jsonPath) { return $this->getScenario()->runStep(new \Codeception\Step\Action('grabDataFromResponseByJsonPath', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks if json structure in response matches the xpath provided. * JSON is not supposed to be checked against XPath, yet it can be converted to xml and used with XPath. * This assertion allows you to check the structure of response json. * * * ```json * { "store": { * "book": [ * { "category": "reference", * "author": "Nigel Rees", * "title": "Sayings of the Century", * "price": 8.95 * }, * { "category": "fiction", * "author": "Evelyn Waugh", * "title": "Sword of Honour", * "price": 12.99 * } * ], * "bicycle": { * "color": "red", * "price": 19.95 * } * } * } * ``` * * ```php * seeResponseJsonMatchesXpath('//store/book/author'); * // first book in store has author * $I->seeResponseJsonMatchesXpath('//store/book[1]/author'); * // at least one item in store has price * $I->seeResponseJsonMatchesXpath('/store//price'); * ?> * ``` * @param string $xpath * @part json * @version 2.0.9 * @see \Codeception\Module\REST::seeResponseJsonMatchesXpath() */ public function seeResponseJsonMatchesXpath($xpath) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseJsonMatchesXpath', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks if json structure in response matches the xpath provided. * JSON is not supposed to be checked against XPath, yet it can be converted to xml and used with XPath. * This assertion allows you to check the structure of response json. * * * ```json * { "store": { * "book": [ * { "category": "reference", * "author": "Nigel Rees", * "title": "Sayings of the Century", * "price": 8.95 * }, * { "category": "fiction", * "author": "Evelyn Waugh", * "title": "Sword of Honour", * "price": 12.99 * } * ], * "bicycle": { * "color": "red", * "price": 19.95 * } * } * } * ``` * * ```php * seeResponseJsonMatchesXpath('//store/book/author'); * // first book in store has author * $I->seeResponseJsonMatchesXpath('//store/book[1]/author'); * // at least one item in store has price * $I->seeResponseJsonMatchesXpath('/store//price'); * ?> * ``` * @param string $xpath * @part json * @version 2.0.9 * @see \Codeception\Module\REST::seeResponseJsonMatchesXpath() */ public function canSeeResponseJsonMatchesXpath($xpath) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseJsonMatchesXpath', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Opposite to seeResponseJsonMatchesXpath * * @param string $xpath * @part json * @see \Codeception\Module\REST::dontSeeResponseJsonMatchesXpath() */ public function dontSeeResponseJsonMatchesXpath($xpath) { return $this->getScenario()->runStep(new \Codeception\Step\Action('dontSeeResponseJsonMatchesXpath', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Opposite to seeResponseJsonMatchesXpath * * @param string $xpath * @part json * @see \Codeception\Module\REST::dontSeeResponseJsonMatchesXpath() */ public function cantSeeResponseJsonMatchesXpath($xpath) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeResponseJsonMatchesXpath', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks if json structure in response matches [JsonPath](http://goessner.net/articles/JsonPath/). * JsonPath is XPath equivalent for querying Json structures. * Try your JsonPath expressions [online](http://jsonpath.curiousconcept.com/). * This assertion allows you to check the structure of response json. * * This method **require [`flow/jsonpath` > 0.2](https://github.com/FlowCommunications/JSONPath/) library to be installed**. * * ```json * { "store": { * "book": [ * { "category": "reference", * "author": "Nigel Rees", * "title": "Sayings of the Century", * "price": 8.95 * }, * { "category": "fiction", * "author": "Evelyn Waugh", * "title": "Sword of Honour", * "price": 12.99 * } * ], * "bicycle": { * "color": "red", * "price": 19.95 * } * } * } * ``` * * ```php * seeResponseJsonMatchesJsonPath('$.store.book[*].author'); * // first book in store has author * $I->seeResponseJsonMatchesJsonPath('$.store.book[0].author'); * // at least one item in store has price * $I->seeResponseJsonMatchesJsonPath('$.store..price'); * ?> * ``` * * @param string $jsonPath * @part json * @version 2.0.9 * @see \Codeception\Module\REST::seeResponseJsonMatchesJsonPath() */ public function seeResponseJsonMatchesJsonPath($jsonPath) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseJsonMatchesJsonPath', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks if json structure in response matches [JsonPath](http://goessner.net/articles/JsonPath/). * JsonPath is XPath equivalent for querying Json structures. * Try your JsonPath expressions [online](http://jsonpath.curiousconcept.com/). * This assertion allows you to check the structure of response json. * * This method **require [`flow/jsonpath` > 0.2](https://github.com/FlowCommunications/JSONPath/) library to be installed**. * * ```json * { "store": { * "book": [ * { "category": "reference", * "author": "Nigel Rees", * "title": "Sayings of the Century", * "price": 8.95 * }, * { "category": "fiction", * "author": "Evelyn Waugh", * "title": "Sword of Honour", * "price": 12.99 * } * ], * "bicycle": { * "color": "red", * "price": 19.95 * } * } * } * ``` * * ```php * seeResponseJsonMatchesJsonPath('$.store.book[*].author'); * // first book in store has author * $I->seeResponseJsonMatchesJsonPath('$.store.book[0].author'); * // at least one item in store has price * $I->seeResponseJsonMatchesJsonPath('$.store..price'); * ?> * ``` * * @param string $jsonPath * @part json * @version 2.0.9 * @see \Codeception\Module\REST::seeResponseJsonMatchesJsonPath() */ public function canSeeResponseJsonMatchesJsonPath($jsonPath) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseJsonMatchesJsonPath', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Opposite to seeResponseJsonMatchesJsonPath * * @param string $jsonPath * @part json * @see \Codeception\Module\REST::dontSeeResponseJsonMatchesJsonPath() */ public function dontSeeResponseJsonMatchesJsonPath($jsonPath) { return $this->getScenario()->runStep(new \Codeception\Step\Action('dontSeeResponseJsonMatchesJsonPath', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Opposite to seeResponseJsonMatchesJsonPath * * @param string $jsonPath * @part json * @see \Codeception\Module\REST::dontSeeResponseJsonMatchesJsonPath() */ public function cantSeeResponseJsonMatchesJsonPath($jsonPath) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeResponseJsonMatchesJsonPath', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Opposite to seeResponseContainsJson * * @part json * @param array $json * @see \Codeception\Module\REST::dontSeeResponseContainsJson() */ public function dontSeeResponseContainsJson($json = null) { return $this->getScenario()->runStep(new \Codeception\Step\Action('dontSeeResponseContainsJson', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Opposite to seeResponseContainsJson * * @part json * @param array $json * @see \Codeception\Module\REST::dontSeeResponseContainsJson() */ public function cantSeeResponseContainsJson($json = null) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeResponseContainsJson', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks that JSON matches provided types. * In case you don't know the actual values of JSON data returned you can match them by type. * It starts the check with a root element. If JSON data is an array it will check all elements of it. * You can specify the path in the json which should be checked with JsonPath * * Basic example: * * ```php * seeResponseMatchesJsonType([ * 'user_id' => 'integer', * 'name' => 'string|null', * 'is_active' => 'boolean' * ]); * * // narrow down matching with JsonPath: * // {"users": [{ "name": "davert"}, {"id": 1}]} * $I->seeResponseMatchesJsonType(['name' => 'string'], '$.users[0]'); * ?> * ``` * * You can check if the record contains fields with the data types you expect. * The list of possible data types: * * * string * * integer * * float * * array (json object is array as well) * * boolean * * null * * You can also use nested data type structures, and define multiple types for the same field: * * ```php * seeResponseMatchesJsonType([ * 'user_id' => 'integer|string', // multiple types * 'company' => ['name' => 'string'] * ]); * ?> * ``` * * You can also apply filters to check values. Filter can be applied with a `:` char after the type declaration, * or after another filter if you need more than one. * * Here is the list of possible filters: * * * `integer:>{val}` - checks that integer is greater than {val} (works with float and string types too). * * `integer:<{val}` - checks that integer is lower than {val} (works with float and string types too). * * `string:url` - checks that value is valid url. * * `string:date` - checks that value is date in JavaScript format: https://weblog.west-wind.com/posts/2014/Jan/06/JavaScript-JSON-Date-Parsing-and-real-Dates * * `string:email` - checks that value is a valid email according to http://emailregex.com/ * * `string:regex({val})` - checks that string matches a regex provided with {val} * * This is how filters can be used: * * ```php * 'davert@codeception.com'} * $I->seeResponseMatchesJsonType([ * 'user_id' => 'string:>0:<1000', // multiple filters can be used * 'email' => 'string:regex(~\@~)' // we just check that @ char is included * ]); * * // {'user_id': '1'} * $I->seeResponseMatchesJsonType([ * 'user_id' => 'string:>0', // works with strings as well * ]); * ?> * ``` * * You can also add custom filters by using `{@link JsonType::addCustomFilter()}`. * See [JsonType reference](http://codeception.com/docs/reference/JsonType). * * @part json * @param array $jsonType * @param string $jsonPath * @see JsonType * @version 2.1.3 * @see \Codeception\Module\REST::seeResponseMatchesJsonType() */ public function seeResponseMatchesJsonType($jsonType, $jsonPath = null) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseMatchesJsonType', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks that JSON matches provided types. * In case you don't know the actual values of JSON data returned you can match them by type. * It starts the check with a root element. If JSON data is an array it will check all elements of it. * You can specify the path in the json which should be checked with JsonPath * * Basic example: * * ```php * seeResponseMatchesJsonType([ * 'user_id' => 'integer', * 'name' => 'string|null', * 'is_active' => 'boolean' * ]); * * // narrow down matching with JsonPath: * // {"users": [{ "name": "davert"}, {"id": 1}]} * $I->seeResponseMatchesJsonType(['name' => 'string'], '$.users[0]'); * ?> * ``` * * You can check if the record contains fields with the data types you expect. * The list of possible data types: * * * string * * integer * * float * * array (json object is array as well) * * boolean * * null * * You can also use nested data type structures, and define multiple types for the same field: * * ```php * seeResponseMatchesJsonType([ * 'user_id' => 'integer|string', // multiple types * 'company' => ['name' => 'string'] * ]); * ?> * ``` * * You can also apply filters to check values. Filter can be applied with a `:` char after the type declaration, * or after another filter if you need more than one. * * Here is the list of possible filters: * * * `integer:>{val}` - checks that integer is greater than {val} (works with float and string types too). * * `integer:<{val}` - checks that integer is lower than {val} (works with float and string types too). * * `string:url` - checks that value is valid url. * * `string:date` - checks that value is date in JavaScript format: https://weblog.west-wind.com/posts/2014/Jan/06/JavaScript-JSON-Date-Parsing-and-real-Dates * * `string:email` - checks that value is a valid email according to http://emailregex.com/ * * `string:regex({val})` - checks that string matches a regex provided with {val} * * This is how filters can be used: * * ```php * 'davert@codeception.com'} * $I->seeResponseMatchesJsonType([ * 'user_id' => 'string:>0:<1000', // multiple filters can be used * 'email' => 'string:regex(~\@~)' // we just check that @ char is included * ]); * * // {'user_id': '1'} * $I->seeResponseMatchesJsonType([ * 'user_id' => 'string:>0', // works with strings as well * ]); * ?> * ``` * * You can also add custom filters by using `{@link JsonType::addCustomFilter()}`. * See [JsonType reference](http://codeception.com/docs/reference/JsonType). * * @part json * @param array $jsonType * @param string $jsonPath * @see JsonType * @version 2.1.3 * @see \Codeception\Module\REST::seeResponseMatchesJsonType() */ public function canSeeResponseMatchesJsonType($jsonType, $jsonPath = null) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseMatchesJsonType', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Opposite to `seeResponseMatchesJsonType`. * * @part json * @param $jsonType jsonType structure * @param null $jsonPath optionally set specific path to structure with JsonPath * @see seeResponseMatchesJsonType * @version 2.1.3 * @see \Codeception\Module\REST::dontSeeResponseMatchesJsonType() */ public function dontSeeResponseMatchesJsonType($jsonType, $jsonPath = null) { return $this->getScenario()->runStep(new \Codeception\Step\Action('dontSeeResponseMatchesJsonType', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Opposite to `seeResponseMatchesJsonType`. * * @part json * @param $jsonType jsonType structure * @param null $jsonPath optionally set specific path to structure with JsonPath * @see seeResponseMatchesJsonType * @version 2.1.3 * @see \Codeception\Module\REST::dontSeeResponseMatchesJsonType() */ public function cantSeeResponseMatchesJsonType($jsonType, $jsonPath = null) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeResponseMatchesJsonType', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks if response is exactly the same as provided. * * @part json * @part xml * @param $response * @see \Codeception\Module\REST::seeResponseEquals() */ public function seeResponseEquals($expected) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseEquals', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks if response is exactly the same as provided. * * @part json * @part xml * @param $response * @see \Codeception\Module\REST::seeResponseEquals() */ public function canSeeResponseEquals($expected) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseEquals', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks response code equals to provided value. * * ```php * seeResponseCodeIs(200); * * // preferred to use \Codeception\Util\HttpCode * $I->seeResponseCodeIs(\Codeception\Util\HttpCode::OK); * ``` * * @part json * @part xml * @param $code * @see \Codeception\Module\REST::seeResponseCodeIs() */ public function seeResponseCodeIs($code) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseCodeIs', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks response code equals to provided value. * * ```php * seeResponseCodeIs(200); * * // preferred to use \Codeception\Util\HttpCode * $I->seeResponseCodeIs(\Codeception\Util\HttpCode::OK); * ``` * * @part json * @part xml * @param $code * @see \Codeception\Module\REST::seeResponseCodeIs() */ public function canSeeResponseCodeIs($code) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseCodeIs', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks that response code is not equal to provided value. * * ```php * dontSeeResponseCodeIs(200); * * // preferred to use \Codeception\Util\HttpCode * $I->dontSeeResponseCodeIs(\Codeception\Util\HttpCode::OK); * ``` * * @part json * @part xml * @param $code * @see \Codeception\Module\REST::dontSeeResponseCodeIs() */ public function dontSeeResponseCodeIs($code) { return $this->getScenario()->runStep(new \Codeception\Step\Action('dontSeeResponseCodeIs', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks that response code is not equal to provided value. * * ```php * dontSeeResponseCodeIs(200); * * // preferred to use \Codeception\Util\HttpCode * $I->dontSeeResponseCodeIs(\Codeception\Util\HttpCode::OK); * ``` * * @part json * @part xml * @param $code * @see \Codeception\Module\REST::dontSeeResponseCodeIs() */ public function cantSeeResponseCodeIs($code) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeResponseCodeIs', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks that the response code is 2xx * * @part json * @part xml * @see \Codeception\Module\REST::seeResponseCodeIsSuccessful() */ public function seeResponseCodeIsSuccessful() { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseCodeIsSuccessful', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks that the response code is 2xx * * @part json * @part xml * @see \Codeception\Module\REST::seeResponseCodeIsSuccessful() */ public function canSeeResponseCodeIsSuccessful() { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseCodeIsSuccessful', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks that the response code 3xx * * @part json * @part xml * @see \Codeception\Module\REST::seeResponseCodeIsRedirection() */ public function seeResponseCodeIsRedirection() { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseCodeIsRedirection', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks that the response code 3xx * * @part json * @part xml * @see \Codeception\Module\REST::seeResponseCodeIsRedirection() */ public function canSeeResponseCodeIsRedirection() { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseCodeIsRedirection', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks that the response code is 4xx * * @part json * @part xml * @see \Codeception\Module\REST::seeResponseCodeIsClientError() */ public function seeResponseCodeIsClientError() { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseCodeIsClientError', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks that the response code is 4xx * * @part json * @part xml * @see \Codeception\Module\REST::seeResponseCodeIsClientError() */ public function canSeeResponseCodeIsClientError() { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseCodeIsClientError', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks that the response code is 5xx * * @part json * @part xml * @see \Codeception\Module\REST::seeResponseCodeIsServerError() */ public function seeResponseCodeIsServerError() { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseCodeIsServerError', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks that the response code is 5xx * * @part json * @part xml * @see \Codeception\Module\REST::seeResponseCodeIsServerError() */ public function canSeeResponseCodeIsServerError() { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseCodeIsServerError', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks whether last response was valid XML. * This is done with libxml_get_last_error function. * * @part xml * @see \Codeception\Module\REST::seeResponseIsXml() */ public function seeResponseIsXml() { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseIsXml', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks whether last response was valid XML. * This is done with libxml_get_last_error function. * * @part xml * @see \Codeception\Module\REST::seeResponseIsXml() */ public function canSeeResponseIsXml() { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseIsXml', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks whether XML response matches XPath * * ```php * seeXmlResponseMatchesXpath('//root/user[@id=1]'); * ``` * @part xml * @param $xpath * @see \Codeception\Module\REST::seeXmlResponseMatchesXpath() */ public function seeXmlResponseMatchesXpath($xpath) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeXmlResponseMatchesXpath', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks whether XML response matches XPath * * ```php * seeXmlResponseMatchesXpath('//root/user[@id=1]'); * ``` * @part xml * @param $xpath * @see \Codeception\Module\REST::seeXmlResponseMatchesXpath() */ public function canSeeXmlResponseMatchesXpath($xpath) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeXmlResponseMatchesXpath', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks whether XML response does not match XPath * * ```php * dontSeeXmlResponseMatchesXpath('//root/user[@id=1]'); * ``` * @part xml * @param $xpath * @see \Codeception\Module\REST::dontSeeXmlResponseMatchesXpath() */ public function dontSeeXmlResponseMatchesXpath($xpath) { return $this->getScenario()->runStep(new \Codeception\Step\Action('dontSeeXmlResponseMatchesXpath', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks whether XML response does not match XPath * * ```php * dontSeeXmlResponseMatchesXpath('//root/user[@id=1]'); * ``` * @part xml * @param $xpath * @see \Codeception\Module\REST::dontSeeXmlResponseMatchesXpath() */ public function cantSeeXmlResponseMatchesXpath($xpath) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeXmlResponseMatchesXpath', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Finds and returns text contents of element. * Element is matched by either CSS or XPath * * @param $cssOrXPath * @return string * @part xml * @see \Codeception\Module\REST::grabTextContentFromXmlElement() */ public function grabTextContentFromXmlElement($cssOrXPath) { return $this->getScenario()->runStep(new \Codeception\Step\Action('grabTextContentFromXmlElement', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Finds and returns attribute of element. * Element is matched by either CSS or XPath * * @param $cssOrXPath * @param $attribute * @return string * @part xml * @see \Codeception\Module\REST::grabAttributeFromXmlElement() */ public function grabAttributeFromXmlElement($cssOrXPath, $attribute) { return $this->getScenario()->runStep(new \Codeception\Step\Action('grabAttributeFromXmlElement', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks XML response equals provided XML. * Comparison is done by canonicalizing both xml`s. * * Parameters can be passed either as DOMDocument, DOMNode, XML string, or array (if no attributes). * * @param $xml * @part xml * @see \Codeception\Module\REST::seeXmlResponseEquals() */ public function seeXmlResponseEquals($xml) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeXmlResponseEquals', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks XML response equals provided XML. * Comparison is done by canonicalizing both xml`s. * * Parameters can be passed either as DOMDocument, DOMNode, XML string, or array (if no attributes). * * @param $xml * @part xml * @see \Codeception\Module\REST::seeXmlResponseEquals() */ public function canSeeXmlResponseEquals($xml) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeXmlResponseEquals', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks XML response does not equal to provided XML. * Comparison is done by canonicalizing both xml`s. * * Parameter can be passed either as XmlBuilder, DOMDocument, DOMNode, XML string, or array (if no attributes). * * @param $xml * @part xml * @see \Codeception\Module\REST::dontSeeXmlResponseEquals() */ public function dontSeeXmlResponseEquals($xml) { return $this->getScenario()->runStep(new \Codeception\Step\Action('dontSeeXmlResponseEquals', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks XML response does not equal to provided XML. * Comparison is done by canonicalizing both xml`s. * * Parameter can be passed either as XmlBuilder, DOMDocument, DOMNode, XML string, or array (if no attributes). * * @param $xml * @part xml * @see \Codeception\Module\REST::dontSeeXmlResponseEquals() */ public function cantSeeXmlResponseEquals($xml) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeXmlResponseEquals', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks XML response includes provided XML. * Comparison is done by canonicalizing both xml`s. * Parameter can be passed either as XmlBuilder, DOMDocument, DOMNode, XML string, or array (if no attributes). * * Example: * * ``` php * seeXmlResponseIncludes("1"); * ?> * ``` * * @param $xml * @part xml * @see \Codeception\Module\REST::seeXmlResponseIncludes() */ public function seeXmlResponseIncludes($xml) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeXmlResponseIncludes', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks XML response includes provided XML. * Comparison is done by canonicalizing both xml`s. * Parameter can be passed either as XmlBuilder, DOMDocument, DOMNode, XML string, or array (if no attributes). * * Example: * * ``` php * seeXmlResponseIncludes("1"); * ?> * ``` * * @param $xml * @part xml * @see \Codeception\Module\REST::seeXmlResponseIncludes() */ public function canSeeXmlResponseIncludes($xml) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeXmlResponseIncludes', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks XML response does not include provided XML. * Comparison is done by canonicalizing both xml`s. * Parameter can be passed either as XmlBuilder, DOMDocument, DOMNode, XML string, or array (if no attributes). * * @param $xml * @part xml * @see \Codeception\Module\REST::dontSeeXmlResponseIncludes() */ public function dontSeeXmlResponseIncludes($xml) { return $this->getScenario()->runStep(new \Codeception\Step\Action('dontSeeXmlResponseIncludes', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks XML response does not include provided XML. * Comparison is done by canonicalizing both xml`s. * Parameter can be passed either as XmlBuilder, DOMDocument, DOMNode, XML string, or array (if no attributes). * * @param $xml * @part xml * @see \Codeception\Module\REST::dontSeeXmlResponseIncludes() */ public function cantSeeXmlResponseIncludes($xml) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeXmlResponseIncludes', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks if the hash of a binary response is exactly the same as provided. * Parameter can be passed as any hash string supported by hash(), with an * optional second parameter to specify the hash type, which defaults to md5. * * Example: Using md5 hash key * * ```php * seeBinaryResponseEquals("8c90748342f19b195b9c6b4eff742ded"); * ?> * ``` * * Example: Using md5 for a file contents * * ```php * seeBinaryResponseEquals(md5($fileData)); * ?> * ``` * Example: Using sha256 hash * * ```php * seeBinaryResponseEquals(hash("sha256", base64_decode($fileData)), 'sha256'); * ?> * ``` * * @param $hash the hashed data response expected * @param $algo the hash algorithm to use. Default md5. * @part json * @part xml * @see \Codeception\Module\REST::seeBinaryResponseEquals() */ public function seeBinaryResponseEquals($hash, $algo = null) { return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeBinaryResponseEquals', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks if the hash of a binary response is exactly the same as provided. * Parameter can be passed as any hash string supported by hash(), with an * optional second parameter to specify the hash type, which defaults to md5. * * Example: Using md5 hash key * * ```php * seeBinaryResponseEquals("8c90748342f19b195b9c6b4eff742ded"); * ?> * ``` * * Example: Using md5 for a file contents * * ```php * seeBinaryResponseEquals(md5($fileData)); * ?> * ``` * Example: Using sha256 hash * * ```php * seeBinaryResponseEquals(hash("sha256", base64_decode($fileData)), 'sha256'); * ?> * ``` * * @param $hash the hashed data response expected * @param $algo the hash algorithm to use. Default md5. * @part json * @part xml * @see \Codeception\Module\REST::seeBinaryResponseEquals() */ public function canSeeBinaryResponseEquals($hash, $algo = null) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeBinaryResponseEquals', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Checks if the hash of a binary response is not the same as provided. * * ```php * dontSeeBinaryResponseEquals("8c90748342f19b195b9c6b4eff742ded"); * ?> * ``` * Opposite to `seeBinaryResponseEquals` * * @param $hash the hashed data response expected * @param $algo the hash algorithm to use. Default md5. * @part json * @part xml * @see \Codeception\Module\REST::dontSeeBinaryResponseEquals() */ public function dontSeeBinaryResponseEquals($hash, $algo = null) { return $this->getScenario()->runStep(new \Codeception\Step\Action('dontSeeBinaryResponseEquals', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * [!] Conditional Assertion: Test won't be stopped on fail * Checks if the hash of a binary response is not the same as provided. * * ```php * dontSeeBinaryResponseEquals("8c90748342f19b195b9c6b4eff742ded"); * ?> * ``` * Opposite to `seeBinaryResponseEquals` * * @param $hash the hashed data response expected * @param $algo the hash algorithm to use. Default md5. * @part json * @part xml * @see \Codeception\Module\REST::dontSeeBinaryResponseEquals() */ public function cantSeeBinaryResponseEquals($hash, $algo = null) { return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeBinaryResponseEquals', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Prevents automatic redirects to be followed by the client * * ```php * stopFollowingRedirects(); * ``` * * @part xml * @part json * @see \Codeception\Module\REST::stopFollowingRedirects() */ public function stopFollowingRedirects() { return $this->getScenario()->runStep(new \Codeception\Step\Action('stopFollowingRedirects', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Enables automatic redirects to be followed by the client * * ```php * startFollowingRedirects(); * ``` * * @part xml * @part json * @see \Codeception\Module\REST::startFollowingRedirects() */ public function startFollowingRedirects() { return $this->getScenario()->runStep(new \Codeception\Step\Action('startFollowingRedirects', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Sets SERVER parameters valid for all next requests. * this will remove old ones. * * ```php * $I->setServerParameters([]); * ``` * @see \Codeception\Module\REST::setServerParameters() */ public function setServerParameters($params) { return $this->getScenario()->runStep(new \Codeception\Step\Action('setServerParameters', func_get_args())); } /** * [!] Method is generated. Documentation taken from corresponding module. * * Sets SERVER parameter valid for all next requests. * * ```php * $I->haveServerParameter('name', 'value'); * ``` * @see \Codeception\Module\REST::haveServerParameter() */ public function haveServerParameter($name, $value) { return $this->getScenario()->runStep(new \Codeception\Step\Action('haveServerParameter', func_get_args())); } }