Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
docker-yii2-app
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dmstr
docker-yii2-app
Commits
2bff108e
Commit
2bff108e
authored
Jun 09, 2016
by
Tobias Munk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated testing
parent
49f477bb
Pipeline
#10479
failed with stages
in 15 seconds
Changes
11
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
2740 additions
and
13 deletions
+2740
-13
README.md
README.md
+8
-1
codeception.yml
codeception.yml
+2
-7
.env-dist
tests/.env-dist
+3
-1
test.php
tests/codeception/_config/test.php
+26
-0
FunctionalTester.php
tests/codeception/_support/FunctionalTester.php
+26
-0
FunctionalTesterActions.php
...deception/_support/_generated/FunctionalTesterActions.php
+2640
-0
UnitTesterActions.php
tests/codeception/_support/_generated/UnitTesterActions.php
+1
-1
functional.suite.yml
tests/codeception/functional.suite.yml
+16
-0
ErrorPageCept.php
tests/codeception/functional/ErrorPageCept.php
+10
-0
_bootstrap.php
tests/codeception/functional/_bootstrap.php
+3
-0
docker-compose.test.yml
tests/docker-compose.test.yml
+5
-3
No files found.
README.md
View file @
2bff108e
...
...
@@ -54,8 +54,15 @@ Run package update in container
$ yii help
## Test
cd tests
cp .env-dist .env
Run tests in codeception (
`forrest`
) container
$ codecept run
docker-compose run forrest run
> :info: This is equivalent to `codecept run` inside the tester container
### CLI
...
...
codeception.yml
View file @
2bff108e
...
...
@@ -12,10 +12,5 @@ settings:
extensions
:
enabled
:
-
Codeception\Extension\RunFailed
modules
:
config
:
Db
:
dsn
:
'
'
user
:
'
'
password
:
'
'
dump
:
tests/codeception/_data/dump.sql
config
:
test_entry_url
:
http://web:80/index.php
\ No newline at end of file
tests/.env-dist
View file @
2bff108e
COMPOSE_PROJECT_NAME=test-yii2-app
COMPOSE_FILE=../docker-compose.yml:./docker-compose.test.yml
\ No newline at end of file
COMPOSE_FILE=../docker-compose.yml:./docker-compose.test.yml
STACK_PHP_IMAGE=dmstr/yii2-app
\ No newline at end of file
tests/codeception/_config/test.php
0 → 100644
View file @
2bff108e
<?php
/**
* @link http://www.diemeisterei.de/
* @copyright Copyright (c) 2016 diemeisterei GmbH, Stuttgart
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
$_SERVER
[
'SCRIPT_FILENAME'
]
=
YII_TEST_ENTRY_FILE
;
$_SERVER
[
'SCRIPT_NAME'
]
=
YII_TEST_ENTRY_URL
;
$_SERVER
[
'HOST_NAME'
]
=
'web'
;
// TODO: Functional tests load CLI config by default, these are "web-overrides"
$applicationType
=
'web'
;
return
yii\helpers\ArrayHelper
::
merge
(
require
(
__DIR__
.
'/../../../src/config/main.php'
),
[
'components'
=>
[
'request'
=>
[
'cookieValidationKey'
=>
'FUNCTIONAL_TESTING'
],
]
]
);
\ No newline at end of file
tests/codeception/_support/FunctionalTester.php
0 → 100644
View file @
2bff108e
<?php
/**
* Inherited Methods
* @method void wantToTest($text)
* @method void wantTo($text)
* @method void execute($callable)
* @method void expectTo($prediction)
* @method void expect($prediction)
* @method void amGoingTo($argumentation)
* @method void am($role)
* @method void lookForwardTo($achieveValue)
* @method void comment($description)
* @method \Codeception\Lib\Friend haveFriend($name, $actorClass = NULL)
*
* @SuppressWarnings(PHPMD)
*/
class
FunctionalTester
extends
\Codeception\Actor
{
use
_generated\FunctionalTesterActions
;
/**
* Define custom actions here
*/
}
tests/codeception/_support/_generated/FunctionalTesterActions.php
0 → 100644
View file @
2bff108e
<?php
//[STAMP] b29ce4aa7ca858b44cf43df757bf48e7
namespace
_generated
;
// This class was automatically generated by build task
// You should not change it manually as it will be overwritten on next build
// @codingStandardsIgnoreFile
use
Codeception\Module\Filesystem
;
use
Codeception\Module\Yii2
;
trait
FunctionalTesterActions
{
/**
* @return \Codeception\Scenario
*/
abstract
protected
function
getScenario
();
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Enters a directory In local filesystem.
* Project root directory is used by default
*
* @param $path
* @see \Codeception\Module\Filesystem::amInPath()
*/
public
function
amInPath
(
$path
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Condition
(
'amInPath'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Opens a file and stores it's content.
*
* Usage:
*
* ``` php
* <?php
* $I->openFile('composer.json');
* $I->seeInThisFile('codeception/codeception');
* ?>
* ```
*
* @param $filename
* @see \Codeception\Module\Filesystem::openFile()
*/
public
function
openFile
(
$filename
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'openFile'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Deletes a file
*
* ``` php
* <?php
* $I->deleteFile('composer.lock');
* ?>
* ```
*
* @param $filename
* @see \Codeception\Module\Filesystem::deleteFile()
*/
public
function
deleteFile
(
$filename
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'deleteFile'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Deletes directory with all subdirectories
*
* ``` php
* <?php
* $I->deleteDir('vendor');
* ?>
* ```
*
* @param $dirname
* @see \Codeception\Module\Filesystem::deleteDir()
*/
public
function
deleteDir
(
$dirname
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'deleteDir'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Copies directory with all contents
*
* ``` php
* <?php
* $I->copyDir('vendor','old_vendor');
* ?>
* ```
*
* @param $src
* @param $dst
* @see \Codeception\Module\Filesystem::copyDir()
*/
public
function
copyDir
(
$src
,
$dst
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'copyDir'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks If opened file has `text` in it.
*
* Usage:
*
* ``` php
* <?php
* $I->openFile('composer.json');
* $I->seeInThisFile('codeception/codeception');
* ?>
* ```
*
* @param $text
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Module\Filesystem::seeInThisFile()
*/
public
function
canSeeInThisFile
(
$text
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeInThisFile'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks If opened file has `text` in it.
*
* Usage:
*
* ``` php
* <?php
* $I->openFile('composer.json');
* $I->seeInThisFile('codeception/codeception');
* ?>
* ```
*
* @param $text
* @see \Codeception\Module\Filesystem::seeInThisFile()
*/
public
function
seeInThisFile
(
$text
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeInThisFile'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks If opened file has the `number` of new lines.
*
* Usage:
*
* ``` php
* <?php
* $I->openFile('composer.json');
* $I->seeNumberNewLines(5);
* ?>
* ```
*
* @param int $number New lines
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Module\Filesystem::seeNumberNewLines()
*/
public
function
canSeeNumberNewLines
(
$number
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeNumberNewLines'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks If opened file has the `number` of new lines.
*
* Usage:
*
* ``` php
* <?php
* $I->openFile('composer.json');
* $I->seeNumberNewLines(5);
* ?>
* ```
*
* @param int $number New lines
* @see \Codeception\Module\Filesystem::seeNumberNewLines()
*/
public
function
seeNumberNewLines
(
$number
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeNumberNewLines'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that contents of currently opened file matches $regex
*
* @param $regex
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Module\Filesystem::seeThisFileMatches()
*/
public
function
canSeeThisFileMatches
(
$regex
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeThisFileMatches'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that contents of currently opened file matches $regex
*
* @param $regex
* @see \Codeception\Module\Filesystem::seeThisFileMatches()
*/
public
function
seeThisFileMatches
(
$regex
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeThisFileMatches'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks the strict matching of file contents.
* Unlike `seeInThisFile` will fail if file has something more than expected lines.
* Better to use with HEREDOC strings.
* Matching is done after removing "\r" chars from file content.
*
* ``` php
* <?php
* $I->openFile('process.pid');
* $I->seeFileContentsEqual('3192');
* ?>
* ```
*
* @param $text
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Module\Filesystem::seeFileContentsEqual()
*/
public
function
canSeeFileContentsEqual
(
$text
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeFileContentsEqual'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks the strict matching of file contents.
* Unlike `seeInThisFile` will fail if file has something more than expected lines.
* Better to use with HEREDOC strings.
* Matching is done after removing "\r" chars from file content.
*
* ``` php
* <?php
* $I->openFile('process.pid');
* $I->seeFileContentsEqual('3192');
* ?>
* ```
*
* @param $text
* @see \Codeception\Module\Filesystem::seeFileContentsEqual()
*/
public
function
seeFileContentsEqual
(
$text
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeFileContentsEqual'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks If opened file doesn't contain `text` in it
*
* ``` php
* <?php
* $I->openFile('composer.json');
* $I->dontSeeInThisFile('codeception/codeception');
* ?>
* ```
*
* @param $text
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Module\Filesystem::dontSeeInThisFile()
*/
public
function
cantSeeInThisFile
(
$text
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeInThisFile'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks If opened file doesn't contain `text` in it
*
* ``` php
* <?php
* $I->openFile('composer.json');
* $I->dontSeeInThisFile('codeception/codeception');
* ?>
* ```
*
* @param $text
* @see \Codeception\Module\Filesystem::dontSeeInThisFile()
*/
public
function
dontSeeInThisFile
(
$text
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeInThisFile'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Deletes a file
* @see \Codeception\Module\Filesystem::deleteThisFile()
*/
public
function
deleteThisFile
()
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'deleteThisFile'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks if file exists in path.
* Opens a file when it's exists
*
* ``` php
* <?php
* $I->seeFileFound('UserModel.php','app/models');
* ?>
* ```
*
* @param $filename
* @param string $path
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Module\Filesystem::seeFileFound()
*/
public
function
canSeeFileFound
(
$filename
,
$path
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeFileFound'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks if file exists in path.
* Opens a file when it's exists
*
* ``` php
* <?php
* $I->seeFileFound('UserModel.php','app/models');
* ?>
* ```
*
* @param $filename
* @param string $path
* @see \Codeception\Module\Filesystem::seeFileFound()
*/
public
function
seeFileFound
(
$filename
,
$path
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeFileFound'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks if file does not exist in path
*
* @param $filename
* @param string $path
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Module\Filesystem::dontSeeFileFound()
*/
public
function
cantSeeFileFound
(
$filename
,
$path
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeFileFound'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks if file does not exist in path
*
* @param $filename
* @param string $path
* @see \Codeception\Module\Filesystem::dontSeeFileFound()
*/
public
function
dontSeeFileFound
(
$filename
,
$path
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeFileFound'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Erases directory contents
*
* ``` php
* <?php
* $I->cleanDir('logs');
* ?>
* ```
*
* @param $dirname
* @see \Codeception\Module\Filesystem::cleanDir()
*/
public
function
cleanDir
(
$dirname
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'cleanDir'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Saves contents to file
*
* @param $filename
* @param $contents
* @see \Codeception\Module\Filesystem::writeToFile()
*/
public
function
writeToFile
(
$filename
,
$contents
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'writeToFile'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Inserts record into the database.
*
* ``` php
* <?php
* $user_id = $I->haveRecord('app\models\User', array('name' => 'Davert'));
* ?>
* ```
*
* @param $model
* @param array $attributes
* @return mixed
* @part orm
* @see \Codeception\Module\Yii2::haveRecord()
*/
public
function
haveRecord
(
$model
,
$attributes
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'haveRecord'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that record exists in database.
*
* ``` php
* $I->seeRecord('app\models\User', array('name' => 'davert'));
* ```
*
* @param $model
* @param array $attributes
* @part orm
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Module\Yii2::seeRecord()
*/
public
function
canSeeRecord
(
$model
,
$attributes
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeRecord'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that record exists in database.
*
* ``` php
* $I->seeRecord('app\models\User', array('name' => 'davert'));
* ```
*
* @param $model
* @param array $attributes
* @part orm
* @see \Codeception\Module\Yii2::seeRecord()
*/
public
function
seeRecord
(
$model
,
$attributes
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeRecord'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that record does not exist in database.
*
* ``` php
* $I->dontSeeRecord('app\models\User', array('name' => 'davert'));
* ```
*
* @param $model
* @param array $attributes
* @part orm
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Module\Yii2::dontSeeRecord()
*/
public
function
cantSeeRecord
(
$model
,
$attributes
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeRecord'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that record does not exist in database.
*
* ``` php
* $I->dontSeeRecord('app\models\User', array('name' => 'davert'));
* ```
*
* @param $model
* @param array $attributes
* @part orm
* @see \Codeception\Module\Yii2::dontSeeRecord()
*/
public
function
dontSeeRecord
(
$model
,
$attributes
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeRecord'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Retrieves record from database
*
* ``` php
* $category = $I->grabRecord('app\models\User', array('name' => 'davert'));
* ```
*
* @param $model
* @param array $attributes
* @return mixed
* @part orm
* @see \Codeception\Module\Yii2::grabRecord()
*/
public
function
grabRecord
(
$model
,
$attributes
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'grabRecord'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Converting $page to valid Yii 2 URL
*
* Allows input like:
*
* ```php
* $I->amOnPage(['site/view','page'=>'about']);
* $I->amOnPage('index-test.php?site/index');
* $I->amOnPage('http://localhost/index-test.php?site/index');
* ```
*
* @param $page string|array parameter for \yii\web\UrlManager::createUrl()
* @see \Codeception\Module\Yii2::amOnPage()
*/
public
function
amOnPage
(
$page
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Condition
(
'amOnPage'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Returns a list of regex patterns for recognized domain names
*
* @return array
* @see \Codeception\Module\Yii2::getInternalDomains()
*/
public
function
getInternalDomains
()
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'getInternalDomains'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Authenticates user for HTTP_AUTH
*
* @param $username
* @param $password
* @see \Codeception\Lib\InnerBrowser::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.
*
* Sets the HTTP header to the passed value - which is used on
* subsequent HTTP requests through PhpBrowser.
*
* Example:
* ```php
* <?php
* $I->setHeader('X-Requested-With', 'Codeception');
* $I->amOnPage('test-headers.php');
* ?>
* ```
*
* @param string $name the name of the request header
* @param string $value the value to set it to for subsequent
* requests
* @see \Codeception\Lib\InnerBrowser::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
* <?php
* $I->haveHttpHeader('X-Requested-With', 'Codeception');
* $I->amOnPage('test-headers.php');
* // ...
* $I->deleteHeader('X-Requested-With');
* $I->amOnPage('some-other-page.php');
* ?>
* ```
*
* @param string $name the name of the header to delete.
* @see \Codeception\Lib\InnerBrowser::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.
*
* Perform a click on a link or a button, given by a locator.
* If a fuzzy locator is given, the page will be searched for a button, link, or image matching the locator string.
* For buttons, the "value" attribute, "name" attribute, and inner text are searched.
* For links, the link text is searched.
* For images, the "alt" attribute and inner text of any parent links are searched.
*
* The second parameter is a context (CSS or XPath locator) to narrow the search.
*
* Note that if the locator matches a button of type `submit`, the form will be submitted.
*
* ``` 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]');
* // link in context
* $I->click('Logout', '#nav');
* // using strict locator
* $I->click(['link' => 'Login']);
* ?>
* ```
*
* @param $link
* @param $context
* @see \Codeception\Lib\InnerBrowser::click()
*/
public
function
click
(
$link
,
$context
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'click'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current page contains the given string (case insensitive).
*
* You can specify a specific HTML element (via CSS or XPath) as the second
* parameter to only search within that element.
*
* ``` 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
* ```
*
* Note that the search is done after stripping all HTML tags from the body,
* so `$I->see('strong')` will return true for strings like:
*
* - `<p>I am Stronger than thou</p>`
* - `<script>document.createElement('strong');</script>`
*
* But will *not* be true for strings like:
*
* - `<strong>Home</strong>`
* - `<div class="strong">Home</strong>`
* - `<!-- strong -->`
*
* For checking the raw source code, use `seeInSource()`.
*
* @param $text
* @param null $selector
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::see()
*/
public
function
canSee
(
$text
,
$selector
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'see'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current page contains the given string (case insensitive).
*
* You can specify a specific HTML element (via CSS or XPath) as the second
* parameter to only search within that element.
*
* ``` 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
* ```
*
* Note that the search is done after stripping all HTML tags from the body,
* so `$I->see('strong')` will return true for strings like:
*
* - `<p>I am Stronger than thou</p>`
* - `<script>document.createElement('strong');</script>`
*
* But will *not* be true for strings like:
*
* - `<strong>Home</strong>`
* - `<div class="strong">Home</strong>`
* - `<!-- strong -->`
*
* For checking the raw source code, use `seeInSource()`.
*
* @param $text
* @param null $selector
* @see \Codeception\Lib\InnerBrowser::see()
*/
public
function
see
(
$text
,
$selector
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'see'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current page doesn't contain the text specified (case insensitive).
* Give a locator as the second parameter to match a specific region.
*
* ```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
* ```
*
* Note that the search is done after stripping all HTML tags from the body,
* so `$I->dontSee('strong')` will fail on strings like:
*
* - `<p>I am Stronger than thou</p>`
* - `<script>document.createElement('strong');</script>`
*
* But will ignore strings like:
*
* - `<strong>Home</strong>`
* - `<div class="strong">Home</strong>`
* - `<!-- strong -->`
*
* For checking the raw source code, use `seeInSource()`.
*
* @param $text
* @param null $selector
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSee()
*/
public
function
cantSee
(
$text
,
$selector
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSee'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current page doesn't contain the text specified (case insensitive).
* Give a locator as the second parameter to match a specific region.
*
* ```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
* ```
*
* Note that the search is done after stripping all HTML tags from the body,
* so `$I->dontSee('strong')` will fail on strings like:
*
* - `<p>I am Stronger than thou</p>`
* - `<script>document.createElement('strong');</script>`
*
* But will ignore strings like:
*
* - `<strong>Home</strong>`
* - `<div class="strong">Home</strong>`
* - `<!-- strong -->`
*
* For checking the raw source code, use `seeInSource()`.
*
* @param $text
* @param null $selector
* @see \Codeception\Lib\InnerBrowser::dontSee()
*/
public
function
dontSee
(
$text
,
$selector
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSee'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current page contains the given string in its
* raw source code.
*
* ``` php
* <?php
* $I->seeInSource('<h1>Green eggs & ham</h1>');
* ```
*
* @param $raw
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeInSource()
*/
public
function
canSeeInSource
(
$raw
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeInSource'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current page contains the given string in its
* raw source code.
*
* ``` php
* <?php
* $I->seeInSource('<h1>Green eggs & ham</h1>');
* ```
*
* @param $raw
* @see \Codeception\Lib\InnerBrowser::seeInSource()
*/
public
function
seeInSource
(
$raw
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeInSource'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current page contains the given string in its
* raw source code.
*
* ```php
* <?php
* $I->dontSeeInSource('<h1>Green eggs & ham</h1>');
* ```
*
* @param $raw
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSeeInSource()
*/
public
function
cantSeeInSource
(
$raw
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeInSource'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current page contains the given string in its
* raw source code.
*
* ```php
* <?php
* $I->dontSeeInSource('<h1>Green eggs & ham</h1>');
* ```
*
* @param $raw
* @see \Codeception\Lib\InnerBrowser::dontSeeInSource()
*/
public
function
dontSeeInSource
(
$raw
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeInSource'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that there's a link with the specified text.
* Give a full URL as the second parameter to match links with that exact URL.
*
* ``` 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
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeLink()
*/
public
function
canSeeLink
(
$text
,
$url
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeLink'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that there's a link with the specified text.
* Give a full URL as the second parameter to match links with that exact URL.
*
* ``` 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
* @see \Codeception\Lib\InnerBrowser::seeLink()
*/
public
function
seeLink
(
$text
,
$url
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeLink'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the page doesn't contain a link with the given string.
* If the second parameter is given, only links with a matching "href" attribute will be checked.
*
* ``` php
* <?php
* $I->dontSeeLink('Logout'); // I suppose user is not logged in
* $I->dontSeeLink('Checkout now', '/store/cart.php');
* ?>
* ```
*
* @param $text
* @param null $url
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSeeLink()
*/
public
function
cantSeeLink
(
$text
,
$url
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeLink'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the page doesn't contain a link with the given string.
* If the second parameter is given, only links with a matching "href" attribute will be checked.
*
* ``` php
* <?php
* $I->dontSeeLink('Logout'); // I suppose user is not logged in
* $I->dontSeeLink('Checkout now', '/store/cart.php');
* ?>
* ```
*
* @param $text
* @param null $url
* @see \Codeception\Lib\InnerBrowser::dontSeeLink()
*/
public
function
dontSeeLink
(
$text
,
$url
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeLink'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that current URI contains the given string.
*
* ``` php
* <?php
* // to match: /home/dashboard
* $I->seeInCurrentUrl('home');
* // to match: /users/1
* $I->seeInCurrentUrl('/users/');
* ?>
* ```
*
* @param $uri
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeInCurrentUrl()
*/
public
function
canSeeInCurrentUrl
(
$uri
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeInCurrentUrl'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that current URI contains the given string.
*
* ``` php
* <?php
* // to match: /home/dashboard
* $I->seeInCurrentUrl('home');
* // to match: /users/1
* $I->seeInCurrentUrl('/users/');
* ?>
* ```
*
* @param $uri
* @see \Codeception\Lib\InnerBrowser::seeInCurrentUrl()
*/
public
function
seeInCurrentUrl
(
$uri
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeInCurrentUrl'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current URI doesn't contain the given string.
*
* ``` php
* <?php
* $I->dontSeeInCurrentUrl('/users/');
* ?>
* ```
*
* @param $uri
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSeeInCurrentUrl()
*/
public
function
cantSeeInCurrentUrl
(
$uri
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeInCurrentUrl'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current URI doesn't contain the given string.
*
* ``` php
* <?php
* $I->dontSeeInCurrentUrl('/users/');
* ?>
* ```
*
* @param $uri
* @see \Codeception\Lib\InnerBrowser::dontSeeInCurrentUrl()
*/
public
function
dontSeeInCurrentUrl
(
$uri
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeInCurrentUrl'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current URL is equal to the given string.
* Unlike `seeInCurrentUrl`, this only matches the full URL.
*
* ``` php
* <?php
* // to match root url
* $I->seeCurrentUrlEquals('/');
* ?>
* ```
*
* @param $uri
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeCurrentUrlEquals()
*/
public
function
canSeeCurrentUrlEquals
(
$uri
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeCurrentUrlEquals'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current URL is equal to the given string.
* Unlike `seeInCurrentUrl`, this only matches the full URL.
*
* ``` php
* <?php
* // to match root url
* $I->seeCurrentUrlEquals('/');
* ?>
* ```
*
* @param $uri
* @see \Codeception\Lib\InnerBrowser::seeCurrentUrlEquals()
*/
public
function
seeCurrentUrlEquals
(
$uri
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeCurrentUrlEquals'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current URL doesn't equal the given string.
* Unlike `dontSeeInCurrentUrl`, this only matches the full URL.
*
* ``` php
* <?php
* // current url is not root
* $I->dontSeeCurrentUrlEquals('/');
* ?>
* ```
*
* @param $uri
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlEquals()
*/
public
function
cantSeeCurrentUrlEquals
(
$uri
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeCurrentUrlEquals'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current URL doesn't equal the given string.
* Unlike `dontSeeInCurrentUrl`, this only matches the full URL.
*
* ``` php
* <?php
* // current url is not root
* $I->dontSeeCurrentUrlEquals('/');
* ?>
* ```
*
* @param $uri
* @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlEquals()
*/
public
function
dontSeeCurrentUrlEquals
(
$uri
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeCurrentUrlEquals'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current URL matches the given regular expression.
*
* ``` php
* <?php
* // to match root url
* $I->seeCurrentUrlMatches('~$/users/(\d+)~');
* ?>
* ```
*
* @param $uri
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeCurrentUrlMatches()
*/
public
function
canSeeCurrentUrlMatches
(
$uri
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeCurrentUrlMatches'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the current URL matches the given regular expression.
*
* ``` php
* <?php
* // to match root url
* $I->seeCurrentUrlMatches('~$/users/(\d+)~');
* ?>
* ```
*
* @param $uri
* @see \Codeception\Lib\InnerBrowser::seeCurrentUrlMatches()
*/
public
function
seeCurrentUrlMatches
(
$uri
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeCurrentUrlMatches'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that current url doesn't match the given regular expression.
*
* ``` php
* <?php
* // to match root url
* $I->dontSeeCurrentUrlMatches('~$/users/(\d+)~');
* ?>
* ```
*
* @param $uri
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlMatches()
*/
public
function
cantSeeCurrentUrlMatches
(
$uri
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeCurrentUrlMatches'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that current url doesn't match the given regular expression.
*
* ``` php
* <?php
* // to match root url
* $I->dontSeeCurrentUrlMatches('~$/users/(\d+)~');
* ?>
* ```
*
* @param $uri
* @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlMatches()
*/
public
function
dontSeeCurrentUrlMatches
(
$uri
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeCurrentUrlMatches'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Executes the given regular expression against the current URI and returns the first match.
* If no parameters are provided, the full URI is returned.
*
* ``` php
* <?php
* $user_id = $I->grabFromCurrentUrl('~$/user/(\d+)/~');
* $uri = $I->grabFromCurrentUrl();
* ?>
* ```
*
* @param null $uri
*
* @return mixed
* @see \Codeception\Lib\InnerBrowser::grabFromCurrentUrl()
*/
public
function
grabFromCurrentUrl
(
$uri
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'grabFromCurrentUrl'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the specified checkbox is checked.
*
* ``` 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
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeCheckboxIsChecked()
*/
public
function
canSeeCheckboxIsChecked
(
$checkbox
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeCheckboxIsChecked'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the specified checkbox is checked.
*
* ``` 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
* @see \Codeception\Lib\InnerBrowser::seeCheckboxIsChecked()
*/
public
function
seeCheckboxIsChecked
(
$checkbox
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeCheckboxIsChecked'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Check that the specified checkbox is unchecked.
*
* ``` 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
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSeeCheckboxIsChecked()
*/
public
function
cantSeeCheckboxIsChecked
(
$checkbox
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeCheckboxIsChecked'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Check that the specified checkbox is unchecked.
*
* ``` 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
* @see \Codeception\Lib\InnerBrowser::dontSeeCheckboxIsChecked()
*/
public
function
dontSeeCheckboxIsChecked
(
$checkbox
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeCheckboxIsChecked'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the given input field or textarea contains the given value.
* For fuzzy locators, fields are matched by label text, the "name" attribute, CSS, and XPath.
*
* ``` php
* <?php
* $I->seeInField('Body','Type your comment here');
* $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');
* $I->seeInField(['name' => 'search'], 'Search');
* ?>
* ```
*
* @param $field
* @param $value
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeInField()
*/
public
function
canSeeInField
(
$field
,
$value
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeInField'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the given input field or textarea contains the given value.
* For fuzzy locators, fields are matched by label text, the "name" attribute, CSS, and XPath.
*
* ``` php
* <?php
* $I->seeInField('Body','Type your comment here');
* $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');
* $I->seeInField(['name' => 'search'], 'Search');
* ?>
* ```
*
* @param $field
* @param $value
* @see \Codeception\Lib\InnerBrowser::seeInField()
*/
public
function
seeInField
(
$field
,
$value
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeInField'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that an input field or textarea doesn't contain the given value.
* For fuzzy locators, the field is matched by label text, CSS and XPath.
*
* ``` php
* <?php
* $I->dontSeeInField('Body','Type your comment here');
* $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');
* $I->dontSeeInField(['name' => 'search'], 'Search');
* ?>
* ```
*
* @param $field
* @param $value
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSeeInField()
*/
public
function
cantSeeInField
(
$field
,
$value
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeInField'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that an input field or textarea doesn't contain the given value.
* For fuzzy locators, the field is matched by label text, CSS and XPath.
*
* ``` php
* <?php
* $I->dontSeeInField('Body','Type your comment here');
* $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');
* $I->dontSeeInField(['name' => 'search'], 'Search');
* ?>
* ```
*
* @param $field
* @param $value
* @see \Codeception\Lib\InnerBrowser::dontSeeInField()
*/
public
function
dontSeeInField
(
$field
,
$value
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeInField'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks if the array of form parameters (name => value) are set on the form matched with the
* passed selector.
*
* ``` php
* <?php
* $I->seeInFormFields('form[name=myform]', [
* 'input1' => 'value',
* 'input2' => 'other value',
* ]);
* ?>
* ```
*
* For multi-select elements, or to check values of multiple elements with the same name, an
* array may be passed:
*
* ``` php
* <?php
* $I->seeInFormFields('.form-class', [
* 'multiselect' => [
* 'value1',
* 'value2',
* ],
* 'checkbox[]' => [
* 'a checked value',
* 'another checked value',
* ],
* ]);
* ?>
* ```
*
* Additionally, checkbox values can be checked with a boolean.
*
* ``` php
* <?php
* $I->seeInFormFields('#form-id', [
* 'checkbox1' => true, // passes if checked
* 'checkbox2' => false, // passes if unchecked
* ]);
* ?>
* ```
*
* Pair this with submitForm for quick testing magic.
*
* ``` php
* <?php
* $form = [
* 'field1' => 'value',
* 'field2' => 'another value',
* 'checkbox1' => true,
* // ...
* ];
* $I->submitForm('//form[@id=my-form]', $form, 'submitButton');
* // $I->amOnPage('/path/to/form-page') may be needed
* $I->seeInFormFields('//form[@id=my-form]', $form);
* ?>
* ```
*
* @param $formSelector
* @param $params
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeInFormFields()
*/
public
function
canSeeInFormFields
(
$formSelector
,
$params
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeInFormFields'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks if the array of form parameters (name => value) are set on the form matched with the
* passed selector.
*
* ``` php
* <?php
* $I->seeInFormFields('form[name=myform]', [
* 'input1' => 'value',
* 'input2' => 'other value',
* ]);
* ?>
* ```
*
* For multi-select elements, or to check values of multiple elements with the same name, an
* array may be passed:
*
* ``` php
* <?php
* $I->seeInFormFields('.form-class', [
* 'multiselect' => [
* 'value1',
* 'value2',
* ],
* 'checkbox[]' => [
* 'a checked value',
* 'another checked value',
* ],
* ]);
* ?>
* ```
*
* Additionally, checkbox values can be checked with a boolean.
*
* ``` php
* <?php
* $I->seeInFormFields('#form-id', [
* 'checkbox1' => true, // passes if checked
* 'checkbox2' => false, // passes if unchecked
* ]);
* ?>
* ```
*
* Pair this with submitForm for quick testing magic.
*
* ``` php
* <?php
* $form = [
* 'field1' => 'value',
* 'field2' => 'another value',
* 'checkbox1' => true,
* // ...
* ];
* $I->submitForm('//form[@id=my-form]', $form, 'submitButton');
* // $I->amOnPage('/path/to/form-page') may be needed
* $I->seeInFormFields('//form[@id=my-form]', $form);
* ?>
* ```
*
* @param $formSelector
* @param $params
* @see \Codeception\Lib\InnerBrowser::seeInFormFields()
*/
public
function
seeInFormFields
(
$formSelector
,
$params
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeInFormFields'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks if the array of form parameters (name => value) are not set on the form matched with
* the passed selector.
*
* ``` php
* <?php
* $I->dontSeeInFormFields('form[name=myform]', [
* 'input1' => 'non-existent value',
* 'input2' => 'other non-existent value',
* ]);
* ?>
* ```
*
* To check that an element hasn't been assigned any one of many values, an array can be passed
* as the value:
*
* ``` php
* <?php
* $I->dontSeeInFormFields('.form-class', [
* 'fieldName' => [
* 'This value shouldn\'t be set',
* 'And this value shouldn\'t be set',
* ],
* ]);
* ?>
* ```
*
* Additionally, checkbox values can be checked with a boolean.
*
* ``` php
* <?php
* $I->dontSeeInFormFields('#form-id', [
* 'checkbox1' => true, // fails if checked
* 'checkbox2' => false, // fails if unchecked
* ]);
* ?>
* ```
*
* @param $formSelector
* @param $params
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSeeInFormFields()
*/
public
function
cantSeeInFormFields
(
$formSelector
,
$params
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeInFormFields'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks if the array of form parameters (name => value) are not set on the form matched with
* the passed selector.
*
* ``` php
* <?php
* $I->dontSeeInFormFields('form[name=myform]', [
* 'input1' => 'non-existent value',
* 'input2' => 'other non-existent value',
* ]);
* ?>
* ```
*
* To check that an element hasn't been assigned any one of many values, an array can be passed
* as the value:
*
* ``` php
* <?php
* $I->dontSeeInFormFields('.form-class', [
* 'fieldName' => [
* 'This value shouldn\'t be set',
* 'And this value shouldn\'t be set',
* ],
* ]);
* ?>
* ```
*
* Additionally, checkbox values can be checked with a boolean.
*
* ``` php
* <?php
* $I->dontSeeInFormFields('#form-id', [
* 'checkbox1' => true, // fails if checked
* 'checkbox2' => false, // fails if unchecked
* ]);
* ?>
* ```
*
* @param $formSelector
* @param $params
* @see \Codeception\Lib\InnerBrowser::dontSeeInFormFields()
*/
public
function
dontSeeInFormFields
(
$formSelector
,
$params
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeInFormFields'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Submits the given form on the page, optionally with the given form
* values. Pass the form field's values as an array in the second
* parameter.
*
* Although this function can be used as a short-hand version of
* `fillField()`, `selectOption()`, `click()` etc. it has some important
* differences:
*
* * Only field *names* may be used, not CSS/XPath selectors nor field labels
* * If a field is sent to this function that does *not* exist on the page,
* it will silently be added to the HTTP request. This is helpful for testing
* some types of forms, but be aware that you will *not* get an exception
* like you would if you called `fillField()` or `selectOption()` with
* a missing field.
*
* Fields that are not provided will be filled by their values from the page,
* or from any previous calls to `fillField()`, `selectOption()` etc.
* You don't need to click the 'Submit' button afterwards.
* This command itself triggers the request to form's action.
*
* You can optionally specify which button's value to include
* in the request with the last parameter (as an alternative to
* explicitly setting its value in the second parameter), as
* button values are not otherwise included in the request.
*
* Examples:
*
* ``` php
* <?php
* $I->submitForm('#login', [
* 'login' => 'davert',
* 'password' => '123456'
* ]);
* // or
* $I->submitForm('#login', [
* 'login' => 'davert',
* 'password' => '123456'
* ], 'submitButtonName');
*
* ```
*
* For example, given this 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 our 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" name="submitButton" value="Submit" />
* </form>
* ```
*
* You could write the following to submit it:
*
* ``` php
* <?php
* $I->submitForm(
* '#userForm',
* [
* 'user' => [
* 'login' => 'Davert',
* 'password' => '123456',
* 'agree' => true
* ]
* ],
* 'submitButton'
* );
* ```
* Note that "2" will be the submitted value for the "plan" field, as it is
* the selected option.
*
* You can also emulate a JavaScript submission by not specifying any
* buttons in the third parameter to submitForm.
*
* ```php
* <?php
* $I->submitForm(
* '#userForm',
* [
* 'user' => [
* 'login' => 'Davert',
* 'password' => '123456',
* 'agree' => true
* ]
* ]
* );
* ```
*
* This function works well when paired with `seeInFormFields()`
* for quickly testing CRUD interfaces and form validation logic.
*
* ``` php
* <?php
* $form = [
* 'field1' => 'value',
* 'field2' => 'another value',
* 'checkbox1' => true,
* // ...
* ];
* $I->submitForm('#my-form', $form, 'submitButton');
* // $I->amOnPage('/path/to/form-page') may be needed
* $I->seeInFormFields('#my-form', $form);
* ```
*
* Parameter values can be set to arrays for multiple input fields
* of the same name, or multi-select combo boxes. For checkboxes,
* you can use either the string value or boolean `true`/`false` which will
* be replaced by the checkbox's value in the DOM.
*
* ``` php
* <?php
* $I->submitForm('#my-form', [
* 'field1' => 'value',
* 'checkbox' => [
* 'value of first checkbox',
* 'value of second checkbox',
* ],
* 'otherCheckboxes' => [
* true,
* false,
* false
* ],
* 'multiselect' => [
* 'first option value',
* 'second option value'
* ]
* ]);
* ```
*
* Mixing string and boolean values for a checkbox's value is not supported
* and may produce unexpected results.
*
* Field names ending in `[]` must be passed without the trailing square
* bracket characters, and must contain an array for its value. This allows
* submitting multiple values with the same name, consider:
*
* ```php
* <?php
* // This will NOT work correctly
* $I->submitForm('#my-form', [
* 'field[]' => 'value',
* 'field[]' => 'another value', // 'field[]' is already a defined key
* ]);
* ```
*
* The solution is to pass an array value:
*
* ```php
* <?php
* // This way both values are submitted
* $I->submitForm('#my-form', [
* 'field' => [
* 'value',
* 'another value',
* ]
* ]);
* ```
*
* @param $selector
* @param $params
* @param $button
* @see \Codeception\Lib\InnerBrowser::submitForm()
*/
public
function
submitForm
(
$selector
,
$params
,
$button
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'submitForm'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Fills a text field or textarea with the given string.
*
* ``` php
* <?php
* $I->fillField("//input[@type='text']", "Hello World!");
* $I->fillField(['name' => 'email'], 'jon@mail.com');
* ?>
* ```
*
* @param $field
* @param $value
* @see \Codeception\Lib\InnerBrowser::fillField()
*/
public
function
fillField
(
$field
,
$value
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'fillField'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Selects an option in a select tag or in radio button group.
*
* ``` php
* <?php
* $I->selectOption('form select[name=account]', 'Premium');
* $I->selectOption('form input[name=payment]', 'Monthly');
* $I->selectOption('//form/select[@name=account]', 'Monthly');
* ?>
* ```
*
* Provide an array for the second argument to select multiple options:
*
* ``` php
* <?php
* $I->selectOption('Which OS do you use?', array('Windows','Linux'));
* ?>
* ```
*
* Or provide an associative array for the second argument to specifically define which selection method should be used:
*
* ``` php
* <?php
* $I->selectOption('Which OS do you use?', array('text' => 'Windows')); // Only search by text 'Windows'
* $I->selectOption('Which OS do you use?', array('value' => 'windows')); // Only search by value 'windows'
* ?>
+ ```
*
* @param $select
* @param $option
* @see \Codeception\Lib\InnerBrowser::selectOption()
*/
public
function
selectOption
(
$select
,
$option
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'selectOption'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Ticks a checkbox. For radio buttons, use the `selectOption` method instead.
*
* ``` php
* <?php
* $I->checkOption('#agree');
* ?>
* ```
*
* @param $option
* @see \Codeception\Lib\InnerBrowser::checkOption()
*/
public
function
checkOption
(
$option
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'checkOption'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Unticks a checkbox.
*
* ``` php
* <?php
* $I->uncheckOption('#notify');
* ?>
* ```
*
* @param $option
* @see \Codeception\Lib\InnerBrowser::uncheckOption()
*/
public
function
uncheckOption
(
$option
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'uncheckOption'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Attaches a file relative to the Codeception data directory to the given file upload field.
*
* ``` php
* <?php
* // file is stored in 'tests/_data/prices.xls'
* $I->attachFile('input[@type="file"]', 'prices.xls');
* ?>
* ```
*
* @param $field
* @param $filename
* @see \Codeception\Lib\InnerBrowser::attachFile()
*/
public
function
attachFile
(
$field
,
$filename
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'attachFile'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* If your page triggers an ajax request, you can perform it manually.
* This action sends a GET ajax request with specified params.
*
* See ->sendAjaxPostRequest for examples.
*
* @param $uri
* @param $params
* @see \Codeception\Lib\InnerBrowser::sendAjaxGetRequest()
*/
public
function
sendAjaxGetRequest
(
$uri
,
$params
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'sendAjaxGetRequest'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* If your page triggers an ajax request, you can perform it manually.
* This action sends a POST ajax request with specified params.
* Additional params can be passed as array.
*
* Example:
*
* Imagine that by clicking checkbox you trigger ajax request which updates user settings.
* We emulate that click by running this ajax request manually.
*
* ``` php
* <?php
* $I->sendAjaxPostRequest('/updateSettings', array('notifications' => true)); // POST
* $I->sendAjaxGetRequest('/updateSettings', array('notifications' => true)); // GET
*
* ```
*
* @param $uri
* @param $params
* @see \Codeception\Lib\InnerBrowser::sendAjaxPostRequest()
*/
public
function
sendAjaxPostRequest
(
$uri
,
$params
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'sendAjaxPostRequest'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* 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
* @see \Codeception\Lib\InnerBrowser::sendAjaxRequest()
*/
public
function
sendAjaxRequest
(
$method
,
$uri
,
$params
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'sendAjaxRequest'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Finds and returns the text contents of the given element.
* If a fuzzy locator is used, the element is found using CSS, XPath,
* and by matching the full page source by regular expression.
*
* ``` php
* <?php
* $heading = $I->grabTextFrom('h1');
* $heading = $I->grabTextFrom('descendant-or-self::h1');
* $value = $I->grabTextFrom('~<input value=(.*?)]~sgi'); // match with a regex
* ?>
* ```
*
* @param $cssOrXPathOrRegex
*
* @return mixed
* @see \Codeception\Lib\InnerBrowser::grabTextFrom()
*/
public
function
grabTextFrom
(
$cssOrXPathOrRegex
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'grabTextFrom'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Grabs the value of the given attribute value from the given element.
* Fails if element is not found.
*
* ``` php
* <?php
* $I->grabAttributeFrom('#tooltip', 'title');
* ?>
* ```
*
*
* @param $cssOrXpath
* @param $attribute
*
* @return mixed
* @see \Codeception\Lib\InnerBrowser::grabAttributeFrom()
*/
public
function
grabAttributeFrom
(
$cssOrXpath
,
$attribute
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'grabAttributeFrom'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Grabs either the text content, or attribute values, of nodes
* matched by $cssOrXpath and returns them as an array.
*
* ```html
* <a href="#first">First</a>
* <a href="#second">Second</a>
* <a href="#third">Third</a>
* ```
*
* ```php
* <?php
* // would return ['First', 'Second', 'Third']
* $aLinkText = $I->grabMultiple('a');
*
* // would return ['#first', '#second', '#third']
* $aLinks = $I->grabMultiple('a', 'href');
* ?>
* ```
*
* @param $cssOrXpath
* @param $attribute
* @return string[]
* @see \Codeception\Lib\InnerBrowser::grabMultiple()
*/
public
function
grabMultiple
(
$cssOrXpath
,
$attribute
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'grabMultiple'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* @param $field
*
* @return array|mixed|null|string
* @see \Codeception\Lib\InnerBrowser::grabValueFrom()
*/
public
function
grabValueFrom
(
$field
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'grabValueFrom'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Sets a cookie with the given name and value.
* You can set additional cookie params like `domain`, `path`, `expires`, `secure` in array passed as last argument.
*
* ``` php
* <?php
* $I->setCookie('PHPSESSID', 'el4ukv0kqbvoirg7nkp4dncpk3');
* ?>
* ```
*
* @param $name
* @param $val
* @param array $params
*
* @return mixed
* @see \Codeception\Lib\InnerBrowser::setCookie()
*/
public
function
setCookie
(
$name
,
$val
,
$params
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'setCookie'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Grabs a cookie value.
* You can set additional cookie params like `domain`, `path` in array passed as last argument.
*
* @param $cookie
*
* @param array $params
* @return mixed
* @see \Codeception\Lib\InnerBrowser::grabCookie()
*/
public
function
grabCookie
(
$cookie
,
$params
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'grabCookie'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that a cookie with the given name is set.
* You can set additional cookie params like `domain`, `path` as array passed in last argument.
*
* ``` php
* <?php
* $I->seeCookie('PHPSESSID');
* ?>
* ```
*
* @param $cookie
* @param array $params
* @return mixed
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeCookie()
*/
public
function
canSeeCookie
(
$cookie
,
$params
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeCookie'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that a cookie with the given name is set.
* You can set additional cookie params like `domain`, `path` as array passed in last argument.
*
* ``` php
* <?php
* $I->seeCookie('PHPSESSID');
* ?>
* ```
*
* @param $cookie
* @param array $params
* @return mixed
* @see \Codeception\Lib\InnerBrowser::seeCookie()
*/
public
function
seeCookie
(
$cookie
,
$params
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeCookie'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that there isn't a cookie with the given name.
* You can set additional cookie params like `domain`, `path` as array passed in last argument.
*
* @param $cookie
*
* @param array $params
* @return mixed
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSeeCookie()
*/
public
function
cantSeeCookie
(
$cookie
,
$params
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeCookie'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that there isn't a cookie with the given name.
* You can set additional cookie params like `domain`, `path` as array passed in last argument.
*
* @param $cookie
*
* @param array $params
* @return mixed
* @see \Codeception\Lib\InnerBrowser::dontSeeCookie()
*/
public
function
dontSeeCookie
(
$cookie
,
$params
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeCookie'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Unsets cookie with the given name.
* You can set additional cookie params like `domain`, `path` in array passed as last argument.
*
* @param $cookie
*
* @param array $params
* @return mixed
* @see \Codeception\Lib\InnerBrowser::resetCookie()
*/
public
function
resetCookie
(
$name
,
$params
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'resetCookie'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the given element exists on the page and is visible.
* You can also specify expected attributes of this element.
*
* ``` php
* <?php
* $I->seeElement('.error');
* $I->seeElement('//form/input[1]');
* $I->seeElement('input', ['name' => 'login']);
* $I->seeElement('input', ['value' => '123456']);
*
* // strict locator in first arg, attributes in second
* $I->seeElement(['css' => 'form input'], ['name' => 'login']);
* ?>
* ```
*
* @param $selector
* @param array $attributes
* @return
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeElement()
*/
public
function
canSeeElement
(
$selector
,
$attributes
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeElement'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the given element exists on the page and is visible.
* You can also specify expected attributes of this element.
*
* ``` php
* <?php
* $I->seeElement('.error');
* $I->seeElement('//form/input[1]');
* $I->seeElement('input', ['name' => 'login']);
* $I->seeElement('input', ['value' => '123456']);
*
* // strict locator in first arg, attributes in second
* $I->seeElement(['css' => 'form input'], ['name' => 'login']);
* ?>
* ```
*
* @param $selector
* @param array $attributes
* @return
* @see \Codeception\Lib\InnerBrowser::seeElement()
*/
public
function
seeElement
(
$selector
,
$attributes
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeElement'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the given element is invisible or not present on the page.
* You can also specify expected attributes of this element.
*
* ``` php
* <?php
* $I->dontSeeElement('.error');
* $I->dontSeeElement('//form/input[1]');
* $I->dontSeeElement('input', ['name' => 'login']);
* $I->dontSeeElement('input', ['value' => '123456']);
* ?>
* ```
*
* @param $selector
* @param array $attributes
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSeeElement()
*/
public
function
cantSeeElement
(
$selector
,
$attributes
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeElement'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the given element is invisible or not present on the page.
* You can also specify expected attributes of this element.
*
* ``` php
* <?php
* $I->dontSeeElement('.error');
* $I->dontSeeElement('//form/input[1]');
* $I->dontSeeElement('input', ['name' => 'login']);
* $I->dontSeeElement('input', ['value' => '123456']);
* ?>
* ```
*
* @param $selector
* @param array $attributes
* @see \Codeception\Lib\InnerBrowser::dontSeeElement()
*/
public
function
dontSeeElement
(
$selector
,
$attributes
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeElement'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that there are a certain number of elements matched by the given locator on the page.
*
* ``` php
* <?php
* $I->seeNumberOfElements('tr', 10);
* $I->seeNumberOfElements('tr', [0,10]); //between 0 and 10 elements
* ?>
* ```
* @param $selector
* @param mixed $expected :
* - string: strict number
* - array: range of numbers [0,10]
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeNumberOfElements()
*/
public
function
canSeeNumberOfElements
(
$selector
,
$expected
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeNumberOfElements'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that there are a certain number of elements matched by the given locator on the page.
*
* ``` php
* <?php
* $I->seeNumberOfElements('tr', 10);
* $I->seeNumberOfElements('tr', [0,10]); //between 0 and 10 elements
* ?>
* ```
* @param $selector
* @param mixed $expected :
* - string: strict number
* - array: range of numbers [0,10]
* @see \Codeception\Lib\InnerBrowser::seeNumberOfElements()
*/
public
function
seeNumberOfElements
(
$selector
,
$expected
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeNumberOfElements'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the given option is selected.
*
* ``` php
* <?php
* $I->seeOptionIsSelected('#form input[name=payment]', 'Visa');
* ?>
* ```
*
* @param $selector
* @param $optionText
*
* @return mixed
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeOptionIsSelected()
*/
public
function
canSeeOptionIsSelected
(
$selector
,
$optionText
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeOptionIsSelected'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the given option is selected.
*
* ``` php
* <?php
* $I->seeOptionIsSelected('#form input[name=payment]', 'Visa');
* ?>
* ```
*
* @param $selector
* @param $optionText
*
* @return mixed
* @see \Codeception\Lib\InnerBrowser::seeOptionIsSelected()
*/
public
function
seeOptionIsSelected
(
$selector
,
$optionText
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeOptionIsSelected'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the given option is not selected.
*
* ``` php
* <?php
* $I->dontSeeOptionIsSelected('#form input[name=payment]', 'Visa');
* ?>
* ```
*
* @param $selector
* @param $optionText
*
* @return mixed
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSeeOptionIsSelected()
*/
public
function
cantSeeOptionIsSelected
(
$selector
,
$optionText
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeOptionIsSelected'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the given option is not selected.
*
* ``` php
* <?php
* $I->dontSeeOptionIsSelected('#form input[name=payment]', 'Visa');
* ?>
* ```
*
* @param $selector
* @param $optionText
*
* @return mixed
* @see \Codeception\Lib\InnerBrowser::dontSeeOptionIsSelected()
*/
public
function
dontSeeOptionIsSelected
(
$selector
,
$optionText
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeOptionIsSelected'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Asserts that current page has 404 response status code.
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seePageNotFound()
*/
public
function
canSeePageNotFound
()
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seePageNotFound'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Asserts that current page has 404 response status code.
* @see \Codeception\Lib\InnerBrowser::seePageNotFound()
*/
public
function
seePageNotFound
()
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seePageNotFound'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that response code is equal to value provided.
*
* @param $code
*
* @return mixed
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::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 equal to value provided.
*
* @param $code
*
* @return mixed
* @see \Codeception\Lib\InnerBrowser::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.
*
* Checks that the page title contains the given string.
*
* ``` php
* <?php
* $I->seeInTitle('Blog - Post #1');
* ?>
* ```
*
* @param $title
*
* @return mixed
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::seeInTitle()
*/
public
function
canSeeInTitle
(
$title
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'seeInTitle'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the page title contains the given string.
*
* ``` php
* <?php
* $I->seeInTitle('Blog - Post #1');
* ?>
* ```
*
* @param $title
*
* @return mixed
* @see \Codeception\Lib\InnerBrowser::seeInTitle()
*/
public
function
seeInTitle
(
$title
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'seeInTitle'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the page title does not contain the given string.
*
* @param $title
*
* @return mixed
* Conditional Assertion: Test won't be stopped on fail
* @see \Codeception\Lib\InnerBrowser::dontSeeInTitle()
*/
public
function
cantSeeInTitle
(
$title
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\ConditionalAssertion
(
'dontSeeInTitle'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Checks that the page title does not contain the given string.
*
* @param $title
*
* @return mixed
* @see \Codeception\Lib\InnerBrowser::dontSeeInTitle()
*/
public
function
dontSeeInTitle
(
$title
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Assertion
(
'dontSeeInTitle'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Switch to iframe or frame on the page.
*
* Example:
* ``` html
* <iframe name="another_frame" src="http://example.com">
* ```
*
* ``` php
* <?php
* # switch to iframe
* $I->switchToIframe("another_frame");
* ```
*
* @param string $name
* @see \Codeception\Lib\InnerBrowser::switchToIframe()
*/
public
function
switchToIframe
(
$name
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'switchToIframe'
,
func_get_args
()));
}
/**
* [!] Method is generated. Documentation taken from corresponding module.
*
* Moves back in history.
*
* @param int $numberOfSteps (default value 1)
* @see \Codeception\Lib\InnerBrowser::moveBack()
*/
public
function
moveBack
(
$numberOfSteps
=
null
)
{
return
$this
->
getScenario
()
->
runStep
(
new
\Codeception\Step\Action
(
'moveBack'
,
func_get_args
()));
}
}
tests/codeception/_support/_generated/UnitTesterActions.php
View file @
2bff108e
<?php
//[STAMP]
19539257036018fbf13475beeeb1c2f5
<?php
//[STAMP]
efa60a632309a7a8ed739cd59858eef3
namespace
_generated
;
// This class was automatically generated by build task
...
...
tests/codeception/functional.suite.yml
0 → 100755
View file @
2bff108e
# Codeception Test Suite Configuration
#
# Suite for functional (integration) tests
# Emulate web requests and make application process them
# Include one of framework modules (Symfony2, Yii2, Laravel5) to use it
class_name
:
FunctionalTester
modules
:
enabled
:
# add framework module here
#- \Helper\Functional
-
Filesystem
-
Yii2
config
:
Yii2
:
configFile
:
'
tests/codeception/_config/test.php'
tests/codeception/functional/ErrorPageCept.php
0 → 100755
View file @
2bff108e
<?php
// @group mandatory
$I
=
new
FunctionalTester
(
$scenario
);
$I
->
wantTo
(
'ensure that error page works'
);
$I
->
amOnPage
(
'/_this_page_does_not_exist_'
);
$I
->
seeResponseCodeIs
(
404
);
$I
->
see
(
'Not Found'
);
tests/codeception/functional/_bootstrap.php
0 → 100755
View file @
2bff108e
<?php
$config
=
require
(
dirname
(
__DIR__
)
.
'/_config/test.php'
);
new
yii\web\Application
(
$config
);
tests/docker-compose.test.yml
View file @
2bff108e
version
:
'
2'
services
:
php
:
codecept
:
image
:
codeception/codeception
environment
:
-
YII_ENV=test
volumes
:
-
./tests:/app/tests
-
./codeception.yml:/app/codeception.yml
-
./:/project
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment