Absolutely Glamorous Custom Admin - Version 5.7

Version Description

  • Added Save button on top
  • Resolved blank page issue on first time install
  • Few other small improvements
  • Ready for WP 4.7
  • Resolved issue: QuotaExceededError due to LocalStorage when Private Browsing in Safari
  • Added acceptance test suite
Download this release

Release Info

Developer argonius
Plugin Icon 128x128 Absolutely Glamorous Custom Admin
Version 5.7
Comparing to
See all releases

Code changes from version 5.6.5 to 5.7

.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /vendor
2
+ tests/_output/*
codeception.yml ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ actor: Tester
2
+ paths:
3
+ tests: tests
4
+ log: tests/_output
5
+ data: tests/_data
6
+ support: tests/_support
7
+ envs: tests/_envs
8
+ settings:
9
+ bootstrap: _bootstrap.php
10
+ colors: true
11
+ memory_limit: 1024M
12
+ extensions:
13
+ enabled:
14
+ - Codeception\Extension\RunFailed
15
+ modules:
16
+ enabled: [Filesystem, Asserts]
17
+ config:
18
+ WebDriver: #run: phantomjs --webdriver=4444
19
+ url: 'http://wp47.
20
+ dev/'
21
+ browser: phantomjs
22
+ capabilities:
23
+ webStorageEnabled: true
24
+ PhpBrowser:
25
+ url: http://wp47.dev
26
+ Db:
27
+ dsn: 'mysql:host=localhost;dbname=wp47'
28
+ user: 'homestead'
29
+ password: 'secret'
30
+ dump: 'tests/_data/dump.sql'
31
+ populate: true
32
+ cleanup: false
33
+ reconnect: true
composer.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ {
2
+ "require": {
3
+ "codeception/codeception": "^2.2"
4
+ }
5
+ }
composer.lock ADDED
@@ -0,0 +1,2246 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_readme": [
3
+ "This file locks the dependencies of your project to a known state",
4
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
+ "This file is @generated automatically"
6
+ ],
7
+ "hash": "fb5785c0a0e075cde41e6c79ac15d771",
8
+ "content-hash": "c4884e34fd65287a5a178a1f79d98a2e",
9
+ "packages": [
10
+ {
11
+ "name": "behat/gherkin",
12
+ "version": "v4.4.5",
13
+ "source": {
14
+ "type": "git",
15
+ "url": "https://github.com/Behat/Gherkin.git",
16
+ "reference": "5c14cff4f955b17d20d088dec1bde61c0539ec74"
17
+ },
18
+ "dist": {
19
+ "type": "zip",
20
+ "url": "https://api.github.com/repos/Behat/Gherkin/zipball/5c14cff4f955b17d20d088dec1bde61c0539ec74",
21
+ "reference": "5c14cff4f955b17d20d088dec1bde61c0539ec74",
22
+ "shasum": ""
23
+ },
24
+ "require": {
25
+ "php": ">=5.3.1"
26
+ },
27
+ "require-dev": {
28
+ "phpunit/phpunit": "~4.5|~5",
29
+ "symfony/phpunit-bridge": "~2.7|~3",
30
+ "symfony/yaml": "~2.3|~3"
31
+ },
32
+ "suggest": {
33
+ "symfony/yaml": "If you want to parse features, represented in YAML files"
34
+ },
35
+ "type": "library",
36
+ "extra": {
37
+ "branch-alias": {
38
+ "dev-master": "4.4-dev"
39
+ }
40
+ },
41
+ "autoload": {
42
+ "psr-0": {
43
+ "Behat\\Gherkin": "src/"
44
+ }
45
+ },
46
+ "notification-url": "https://packagist.org/downloads/",
47
+ "license": [
48
+ "MIT"
49
+ ],
50
+ "authors": [
51
+ {
52
+ "name": "Konstantin Kudryashov",
53
+ "email": "ever.zet@gmail.com",
54
+ "homepage": "http://everzet.com"
55
+ }
56
+ ],
57
+ "description": "Gherkin DSL parser for PHP 5.3",
58
+ "homepage": "http://behat.org/",
59
+ "keywords": [
60
+ "BDD",
61
+ "Behat",
62
+ "Cucumber",
63
+ "DSL",
64
+ "gherkin",
65
+ "parser"
66
+ ],
67
+ "time": "2016-10-30 11:50:56"
68
+ },
69
+ {
70
+ "name": "codeception/codeception",
71
+ "version": "2.2.6",
72
+ "source": {
73
+ "type": "git",
74
+ "url": "https://github.com/Codeception/Codeception.git",
75
+ "reference": "5fbe312c8138e71458ec1e715b0ce262331ca5a2"
76
+ },
77
+ "dist": {
78
+ "type": "zip",
79
+ "url": "https://api.github.com/repos/Codeception/Codeception/zipball/5fbe312c8138e71458ec1e715b0ce262331ca5a2",
80
+ "reference": "5fbe312c8138e71458ec1e715b0ce262331ca5a2",
81
+ "shasum": ""
82
+ },
83
+ "require": {
84
+ "behat/gherkin": "~4.4.0",
85
+ "ext-json": "*",
86
+ "ext-mbstring": "*",
87
+ "facebook/webdriver": ">=1.0.1 <2.0",
88
+ "guzzlehttp/guzzle": ">=4.1.4 <7.0",
89
+ "guzzlehttp/psr7": "~1.0",
90
+ "php": ">=5.4.0 <8.0",
91
+ "phpunit/php-code-coverage": ">=2.1.3 <5.0",
92
+ "phpunit/phpunit": ">4.8.20 <6.0",
93
+ "sebastian/comparator": "~1.1",
94
+ "sebastian/diff": "^1.4",
95
+ "symfony/browser-kit": ">=2.7 <4.0",
96
+ "symfony/console": ">=2.7 <4.0",
97
+ "symfony/css-selector": ">=2.7 <4.0",
98
+ "symfony/dom-crawler": ">=2.7 <4.0",
99
+ "symfony/event-dispatcher": ">=2.7 <4.0",
100
+ "symfony/finder": ">=2.7 <4.0",
101
+ "symfony/yaml": ">=2.7 <4.0"
102
+ },
103
+ "require-dev": {
104
+ "codeception/specify": "~0.3",
105
+ "facebook/graph-sdk": "~5.3",
106
+ "flow/jsonpath": "~0.2",
107
+ "league/factory-muffin": "^3.0",
108
+ "league/factory-muffin-faker": "^1.0",
109
+ "mongodb/mongodb": "^1.0",
110
+ "monolog/monolog": "~1.8",
111
+ "pda/pheanstalk": "~3.0",
112
+ "php-amqplib/php-amqplib": "~2.4",
113
+ "predis/predis": "^1.0",
114
+ "squizlabs/php_codesniffer": "~2.0"
115
+ },
116
+ "suggest": {
117
+ "codeception/specify": "BDD-style code blocks",
118
+ "codeception/verify": "BDD-style assertions",
119
+ "flow/jsonpath": "For using JSONPath in REST module",
120
+ "league/factory-muffin": "For DataFactory module",
121
+ "league/factory-muffin-faker": "For Faker support in DataFactory module",
122
+ "phpseclib/phpseclib": "for SFTP option in FTP Module",
123
+ "symfony/phpunit-bridge": "For phpunit-bridge support"
124
+ },
125
+ "bin": [
126
+ "codecept"
127
+ ],
128
+ "type": "library",
129
+ "extra": {
130
+ "branch-alias": []
131
+ },
132
+ "autoload": {
133
+ "psr-4": {
134
+ "Codeception\\": "src\\Codeception",
135
+ "Codeception\\Extension\\": "ext"
136
+ }
137
+ },
138
+ "notification-url": "https://packagist.org/downloads/",
139
+ "license": [
140
+ "MIT"
141
+ ],
142
+ "authors": [
143
+ {
144
+ "name": "Michael Bodnarchuk",
145
+ "email": "davert@mail.ua",
146
+ "homepage": "http://codegyre.com"
147
+ }
148
+ ],
149
+ "description": "BDD-style testing framework",
150
+ "homepage": "http://codeception.com/",
151
+ "keywords": [
152
+ "BDD",
153
+ "TDD",
154
+ "acceptance testing",
155
+ "functional testing",
156
+ "unit testing"
157
+ ],
158
+ "time": "2016-10-27 00:00:34"
159
+ },
160
+ {
161
+ "name": "doctrine/instantiator",
162
+ "version": "1.0.5",
163
+ "source": {
164
+ "type": "git",
165
+ "url": "https://github.com/doctrine/instantiator.git",
166
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
167
+ },
168
+ "dist": {
169
+ "type": "zip",
170
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
171
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
172
+ "shasum": ""
173
+ },
174
+ "require": {
175
+ "php": ">=5.3,<8.0-DEV"
176
+ },
177
+ "require-dev": {
178
+ "athletic/athletic": "~0.1.8",
179
+ "ext-pdo": "*",
180
+ "ext-phar": "*",
181
+ "phpunit/phpunit": "~4.0",
182
+ "squizlabs/php_codesniffer": "~2.0"
183
+ },
184
+ "type": "library",
185
+ "extra": {
186
+ "branch-alias": {
187
+ "dev-master": "1.0.x-dev"
188
+ }
189
+ },
190
+ "autoload": {
191
+ "psr-4": {
192
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
193
+ }
194
+ },
195
+ "notification-url": "https://packagist.org/downloads/",
196
+ "license": [
197
+ "MIT"
198
+ ],
199
+ "authors": [
200
+ {
201
+ "name": "Marco Pivetta",
202
+ "email": "ocramius@gmail.com",
203
+ "homepage": "http://ocramius.github.com/"
204
+ }
205
+ ],
206
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
207
+ "homepage": "https://github.com/doctrine/instantiator",
208
+ "keywords": [
209
+ "constructor",
210
+ "instantiate"
211
+ ],
212
+ "time": "2015-06-14 21:17:01"
213
+ },
214
+ {
215
+ "name": "facebook/webdriver",
216
+ "version": "1.2.0",
217
+ "source": {
218
+ "type": "git",
219
+ "url": "https://github.com/facebook/php-webdriver.git",
220
+ "reference": "af21de3ae5306a8ca0bcc02a19735dadc43e83f3"
221
+ },
222
+ "dist": {
223
+ "type": "zip",
224
+ "url": "https://api.github.com/repos/facebook/php-webdriver/zipball/af21de3ae5306a8ca0bcc02a19735dadc43e83f3",
225
+ "reference": "af21de3ae5306a8ca0bcc02a19735dadc43e83f3",
226
+ "shasum": ""
227
+ },
228
+ "require": {
229
+ "ext-curl": "*",
230
+ "php": "^5.5 || ~7.0"
231
+ },
232
+ "require-dev": {
233
+ "friendsofphp/php-cs-fixer": "^1.11",
234
+ "php-mock/php-mock-phpunit": "^1.1",
235
+ "phpunit/phpunit": "4.6.* || ~5.0",
236
+ "squizlabs/php_codesniffer": "^2.6"
237
+ },
238
+ "suggest": {
239
+ "phpdocumentor/phpdocumentor": "2.*"
240
+ },
241
+ "type": "library",
242
+ "autoload": {
243
+ "psr-4": {
244
+ "Facebook\\WebDriver\\": "lib/"
245
+ }
246
+ },
247
+ "notification-url": "https://packagist.org/downloads/",
248
+ "license": [
249
+ "Apache-2.0"
250
+ ],
251
+ "description": "A PHP client for WebDriver",
252
+ "homepage": "https://github.com/facebook/php-webdriver",
253
+ "keywords": [
254
+ "facebook",
255
+ "php",
256
+ "selenium",
257
+ "webdriver"
258
+ ],
259
+ "time": "2016-10-14 15:16:51"
260
+ },
261
+ {
262
+ "name": "guzzlehttp/guzzle",
263
+ "version": "6.2.2",
264
+ "source": {
265
+ "type": "git",
266
+ "url": "https://github.com/guzzle/guzzle.git",
267
+ "reference": "ebf29dee597f02f09f4d5bbecc68230ea9b08f60"
268
+ },
269
+ "dist": {
270
+ "type": "zip",
271
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ebf29dee597f02f09f4d5bbecc68230ea9b08f60",
272
+ "reference": "ebf29dee597f02f09f4d5bbecc68230ea9b08f60",
273
+ "shasum": ""
274
+ },
275
+ "require": {
276
+ "guzzlehttp/promises": "^1.0",
277
+ "guzzlehttp/psr7": "^1.3.1",
278
+ "php": ">=5.5"
279
+ },
280
+ "require-dev": {
281
+ "ext-curl": "*",
282
+ "phpunit/phpunit": "^4.0",
283
+ "psr/log": "^1.0"
284
+ },
285
+ "type": "library",
286
+ "extra": {
287
+ "branch-alias": {
288
+ "dev-master": "6.2-dev"
289
+ }
290
+ },
291
+ "autoload": {
292
+ "files": [
293
+ "src/functions_include.php"
294
+ ],
295
+ "psr-4": {
296
+ "GuzzleHttp\\": "src/"
297
+ }
298
+ },
299
+ "notification-url": "https://packagist.org/downloads/",
300
+ "license": [
301
+ "MIT"
302
+ ],
303
+ "authors": [
304
+ {
305
+ "name": "Michael Dowling",
306
+ "email": "mtdowling@gmail.com",
307
+ "homepage": "https://github.com/mtdowling"
308
+ }
309
+ ],
310
+ "description": "Guzzle is a PHP HTTP client library",
311
+ "homepage": "http://guzzlephp.org/",
312
+ "keywords": [
313
+ "client",
314
+ "curl",
315
+ "framework",
316
+ "http",
317
+ "http client",
318
+ "rest",
319
+ "web service"
320
+ ],
321
+ "time": "2016-10-08 15:01:37"
322
+ },
323
+ {
324
+ "name": "guzzlehttp/promises",
325
+ "version": "1.3.0",
326
+ "source": {
327
+ "type": "git",
328
+ "url": "https://github.com/guzzle/promises.git",
329
+ "reference": "2693c101803ca78b27972d84081d027fca790a1e"
330
+ },
331
+ "dist": {
332
+ "type": "zip",
333
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/2693c101803ca78b27972d84081d027fca790a1e",
334
+ "reference": "2693c101803ca78b27972d84081d027fca790a1e",
335
+ "shasum": ""
336
+ },
337
+ "require": {
338
+ "php": ">=5.5.0"
339
+ },
340
+ "require-dev": {
341
+ "phpunit/phpunit": "~4.0"
342
+ },
343
+ "type": "library",
344
+ "extra": {
345
+ "branch-alias": {
346
+ "dev-master": "1.0-dev"
347
+ }
348
+ },
349
+ "autoload": {
350
+ "psr-4": {
351
+ "GuzzleHttp\\Promise\\": "src/"
352
+ },
353
+ "files": [
354
+ "src/functions_include.php"
355
+ ]
356
+ },
357
+ "notification-url": "https://packagist.org/downloads/",
358
+ "license": [
359
+ "MIT"
360
+ ],
361
+ "authors": [
362
+ {
363
+ "name": "Michael Dowling",
364
+ "email": "mtdowling@gmail.com",
365
+ "homepage": "https://github.com/mtdowling"
366
+ }
367
+ ],
368
+ "description": "Guzzle promises library",
369
+ "keywords": [
370
+ "promise"
371
+ ],
372
+ "time": "2016-11-18 17:47:58"
373
+ },
374
+ {
375
+ "name": "guzzlehttp/psr7",
376
+ "version": "1.3.1",
377
+ "source": {
378
+ "type": "git",
379
+ "url": "https://github.com/guzzle/psr7.git",
380
+ "reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b"
381
+ },
382
+ "dist": {
383
+ "type": "zip",
384
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/5c6447c9df362e8f8093bda8f5d8873fe5c7f65b",
385
+ "reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b",
386
+ "shasum": ""
387
+ },
388
+ "require": {
389
+ "php": ">=5.4.0",
390
+ "psr/http-message": "~1.0"
391
+ },
392
+ "provide": {
393
+ "psr/http-message-implementation": "1.0"
394
+ },
395
+ "require-dev": {
396
+ "phpunit/phpunit": "~4.0"
397
+ },
398
+ "type": "library",
399
+ "extra": {
400
+ "branch-alias": {
401
+ "dev-master": "1.4-dev"
402
+ }
403
+ },
404
+ "autoload": {
405
+ "psr-4": {
406
+ "GuzzleHttp\\Psr7\\": "src/"
407
+ },
408
+ "files": [
409
+ "src/functions_include.php"
410
+ ]
411
+ },
412
+ "notification-url": "https://packagist.org/downloads/",
413
+ "license": [
414
+ "MIT"
415
+ ],
416
+ "authors": [
417
+ {
418
+ "name": "Michael Dowling",
419
+ "email": "mtdowling@gmail.com",
420
+ "homepage": "https://github.com/mtdowling"
421
+ }
422
+ ],
423
+ "description": "PSR-7 message implementation",
424
+ "keywords": [
425
+ "http",
426
+ "message",
427
+ "stream",
428
+ "uri"
429
+ ],
430
+ "time": "2016-06-24 23:00:38"
431
+ },
432
+ {
433
+ "name": "myclabs/deep-copy",
434
+ "version": "1.5.5",
435
+ "source": {
436
+ "type": "git",
437
+ "url": "https://github.com/myclabs/DeepCopy.git",
438
+ "reference": "399c1f9781e222f6eb6cc238796f5200d1b7f108"
439
+ },
440
+ "dist": {
441
+ "type": "zip",
442
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/399c1f9781e222f6eb6cc238796f5200d1b7f108",
443
+ "reference": "399c1f9781e222f6eb6cc238796f5200d1b7f108",
444
+ "shasum": ""
445
+ },
446
+ "require": {
447
+ "php": ">=5.4.0"
448
+ },
449
+ "require-dev": {
450
+ "doctrine/collections": "1.*",
451
+ "phpunit/phpunit": "~4.1"
452
+ },
453
+ "type": "library",
454
+ "autoload": {
455
+ "psr-4": {
456
+ "DeepCopy\\": "src/DeepCopy/"
457
+ }
458
+ },
459
+ "notification-url": "https://packagist.org/downloads/",
460
+ "license": [
461
+ "MIT"
462
+ ],
463
+ "description": "Create deep copies (clones) of your objects",
464
+ "homepage": "https://github.com/myclabs/DeepCopy",
465
+ "keywords": [
466
+ "clone",
467
+ "copy",
468
+ "duplicate",
469
+ "object",
470
+ "object graph"
471
+ ],
472
+ "time": "2016-10-31 17:19:45"
473
+ },
474
+ {
475
+ "name": "phpdocumentor/reflection-common",
476
+ "version": "1.0",
477
+ "source": {
478
+ "type": "git",
479
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
480
+ "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c"
481
+ },
482
+ "dist": {
483
+ "type": "zip",
484
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
485
+ "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
486
+ "shasum": ""
487
+ },
488
+ "require": {
489
+ "php": ">=5.5"
490
+ },
491
+ "require-dev": {
492
+ "phpunit/phpunit": "^4.6"
493
+ },
494
+ "type": "library",
495
+ "extra": {
496
+ "branch-alias": {
497
+ "dev-master": "1.0.x-dev"
498
+ }
499
+ },
500
+ "autoload": {
501
+ "psr-4": {
502
+ "phpDocumentor\\Reflection\\": [
503
+ "src"
504
+ ]
505
+ }
506
+ },
507
+ "notification-url": "https://packagist.org/downloads/",
508
+ "license": [
509
+ "MIT"
510
+ ],
511
+ "authors": [
512
+ {
513
+ "name": "Jaap van Otterdijk",
514
+ "email": "opensource@ijaap.nl"
515
+ }
516
+ ],
517
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
518
+ "homepage": "http://www.phpdoc.org",
519
+ "keywords": [
520
+ "FQSEN",
521
+ "phpDocumentor",
522
+ "phpdoc",
523
+ "reflection",
524
+ "static analysis"
525
+ ],
526
+ "time": "2015-12-27 11:43:31"
527
+ },
528
+ {
529
+ "name": "phpdocumentor/reflection-docblock",
530
+ "version": "3.1.1",
531
+ "source": {
532
+ "type": "git",
533
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
534
+ "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e"
535
+ },
536
+ "dist": {
537
+ "type": "zip",
538
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e",
539
+ "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e",
540
+ "shasum": ""
541
+ },
542
+ "require": {
543
+ "php": ">=5.5",
544
+ "phpdocumentor/reflection-common": "^1.0@dev",
545
+ "phpdocumentor/type-resolver": "^0.2.0",
546
+ "webmozart/assert": "^1.0"
547
+ },
548
+ "require-dev": {
549
+ "mockery/mockery": "^0.9.4",
550
+ "phpunit/phpunit": "^4.4"
551
+ },
552
+ "type": "library",
553
+ "autoload": {
554
+ "psr-4": {
555
+ "phpDocumentor\\Reflection\\": [
556
+ "src/"
557
+ ]
558
+ }
559
+ },
560
+ "notification-url": "https://packagist.org/downloads/",
561
+ "license": [
562
+ "MIT"
563
+ ],
564
+ "authors": [
565
+ {
566
+ "name": "Mike van Riel",
567
+ "email": "me@mikevanriel.com"
568
+ }
569
+ ],
570
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
571
+ "time": "2016-09-30 07:12:33"
572
+ },
573
+ {
574
+ "name": "phpdocumentor/type-resolver",
575
+ "version": "0.2.1",
576
+ "source": {
577
+ "type": "git",
578
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
579
+ "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb"
580
+ },
581
+ "dist": {
582
+ "type": "zip",
583
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
584
+ "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
585
+ "shasum": ""
586
+ },
587
+ "require": {
588
+ "php": ">=5.5",
589
+ "phpdocumentor/reflection-common": "^1.0"
590
+ },
591
+ "require-dev": {
592
+ "mockery/mockery": "^0.9.4",
593
+ "phpunit/phpunit": "^5.2||^4.8.24"
594
+ },
595
+ "type": "library",
596
+ "extra": {
597
+ "branch-alias": {
598
+ "dev-master": "1.0.x-dev"
599
+ }
600
+ },
601
+ "autoload": {
602
+ "psr-4": {
603
+ "phpDocumentor\\Reflection\\": [
604
+ "src/"
605
+ ]
606
+ }
607
+ },
608
+ "notification-url": "https://packagist.org/downloads/",
609
+ "license": [
610
+ "MIT"
611
+ ],
612
+ "authors": [
613
+ {
614
+ "name": "Mike van Riel",
615
+ "email": "me@mikevanriel.com"
616
+ }
617
+ ],
618
+ "time": "2016-11-25 06:54:22"
619
+ },
620
+ {
621
+ "name": "phpspec/prophecy",
622
+ "version": "v1.6.2",
623
+ "source": {
624
+ "type": "git",
625
+ "url": "https://github.com/phpspec/prophecy.git",
626
+ "reference": "6c52c2722f8460122f96f86346600e1077ce22cb"
627
+ },
628
+ "dist": {
629
+ "type": "zip",
630
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/6c52c2722f8460122f96f86346600e1077ce22cb",
631
+ "reference": "6c52c2722f8460122f96f86346600e1077ce22cb",
632
+ "shasum": ""
633
+ },
634
+ "require": {
635
+ "doctrine/instantiator": "^1.0.2",
636
+ "php": "^5.3|^7.0",
637
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
638
+ "sebastian/comparator": "^1.1",
639
+ "sebastian/recursion-context": "^1.0|^2.0"
640
+ },
641
+ "require-dev": {
642
+ "phpspec/phpspec": "^2.0",
643
+ "phpunit/phpunit": "^4.8 || ^5.6.5"
644
+ },
645
+ "type": "library",
646
+ "extra": {
647
+ "branch-alias": {
648
+ "dev-master": "1.6.x-dev"
649
+ }
650
+ },
651
+ "autoload": {
652
+ "psr-0": {
653
+ "Prophecy\\": "src/"
654
+ }
655
+ },
656
+ "notification-url": "https://packagist.org/downloads/",
657
+ "license": [
658
+ "MIT"
659
+ ],
660
+ "authors": [
661
+ {
662
+ "name": "Konstantin Kudryashov",
663
+ "email": "ever.zet@gmail.com",
664
+ "homepage": "http://everzet.com"
665
+ },
666
+ {
667
+ "name": "Marcello Duarte",
668
+ "email": "marcello.duarte@gmail.com"
669
+ }
670
+ ],
671
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
672
+ "homepage": "https://github.com/phpspec/prophecy",
673
+ "keywords": [
674
+ "Double",
675
+ "Dummy",
676
+ "fake",
677
+ "mock",
678
+ "spy",
679
+ "stub"
680
+ ],
681
+ "time": "2016-11-21 14:58:47"
682
+ },
683
+ {
684
+ "name": "phpunit/php-code-coverage",
685
+ "version": "4.0.3",
686
+ "source": {
687
+ "type": "git",
688
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
689
+ "reference": "903fd6318d0a90b4770a009ff73e4a4e9c437929"
690
+ },
691
+ "dist": {
692
+ "type": "zip",
693
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/903fd6318d0a90b4770a009ff73e4a4e9c437929",
694
+ "reference": "903fd6318d0a90b4770a009ff73e4a4e9c437929",
695
+ "shasum": ""
696
+ },
697
+ "require": {
698
+ "php": "^5.6 || ^7.0",
699
+ "phpunit/php-file-iterator": "~1.3",
700
+ "phpunit/php-text-template": "~1.2",
701
+ "phpunit/php-token-stream": "^1.4.2",
702
+ "sebastian/code-unit-reverse-lookup": "~1.0",
703
+ "sebastian/environment": "^1.3.2 || ^2.0",
704
+ "sebastian/version": "~1.0|~2.0"
705
+ },
706
+ "require-dev": {
707
+ "ext-xdebug": ">=2.1.4",
708
+ "phpunit/phpunit": "^5.4"
709
+ },
710
+ "suggest": {
711
+ "ext-dom": "*",
712
+ "ext-xdebug": ">=2.4.0",
713
+ "ext-xmlwriter": "*"
714
+ },
715
+ "type": "library",
716
+ "extra": {
717
+ "branch-alias": {
718
+ "dev-master": "4.0.x-dev"
719
+ }
720
+ },
721
+ "autoload": {
722
+ "classmap": [
723
+ "src/"
724
+ ]
725
+ },
726
+ "notification-url": "https://packagist.org/downloads/",
727
+ "license": [
728
+ "BSD-3-Clause"
729
+ ],
730
+ "authors": [
731
+ {
732
+ "name": "Sebastian Bergmann",
733
+ "email": "sb@sebastian-bergmann.de",
734
+ "role": "lead"
735
+ }
736
+ ],
737
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
738
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
739
+ "keywords": [
740
+ "coverage",
741
+ "testing",
742
+ "xunit"
743
+ ],
744
+ "time": "2016-11-28 16:00:31"
745
+ },
746
+ {
747
+ "name": "phpunit/php-file-iterator",
748
+ "version": "1.4.2",
749
+ "source": {
750
+ "type": "git",
751
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
752
+ "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5"
753
+ },
754
+ "dist": {
755
+ "type": "zip",
756
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
757
+ "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
758
+ "shasum": ""
759
+ },
760
+ "require": {
761
+ "php": ">=5.3.3"
762
+ },
763
+ "type": "library",
764
+ "extra": {
765
+ "branch-alias": {
766
+ "dev-master": "1.4.x-dev"
767
+ }
768
+ },
769
+ "autoload": {
770
+ "classmap": [
771
+ "src/"
772
+ ]
773
+ },
774
+ "notification-url": "https://packagist.org/downloads/",
775
+ "license": [
776
+ "BSD-3-Clause"
777
+ ],
778
+ "authors": [
779
+ {
780
+ "name": "Sebastian Bergmann",
781
+ "email": "sb@sebastian-bergmann.de",
782
+ "role": "lead"
783
+ }
784
+ ],
785
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
786
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
787
+ "keywords": [
788
+ "filesystem",
789
+ "iterator"
790
+ ],
791
+ "time": "2016-10-03 07:40:28"
792
+ },
793
+ {
794
+ "name": "phpunit/php-text-template",
795
+ "version": "1.2.1",
796
+ "source": {
797
+ "type": "git",
798
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
799
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
800
+ },
801
+ "dist": {
802
+ "type": "zip",
803
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
804
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
805
+ "shasum": ""
806
+ },
807
+ "require": {
808
+ "php": ">=5.3.3"
809
+ },
810
+ "type": "library",
811
+ "autoload": {
812
+ "classmap": [
813
+ "src/"
814
+ ]
815
+ },
816
+ "notification-url": "https://packagist.org/downloads/",
817
+ "license": [
818
+ "BSD-3-Clause"
819
+ ],
820
+ "authors": [
821
+ {
822
+ "name": "Sebastian Bergmann",
823
+ "email": "sebastian@phpunit.de",
824
+ "role": "lead"
825
+ }
826
+ ],
827
+ "description": "Simple template engine.",
828
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
829
+ "keywords": [
830
+ "template"
831
+ ],
832
+ "time": "2015-06-21 13:50:34"
833
+ },
834
+ {
835
+ "name": "phpunit/php-timer",
836
+ "version": "1.0.8",
837
+ "source": {
838
+ "type": "git",
839
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
840
+ "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260"
841
+ },
842
+ "dist": {
843
+ "type": "zip",
844
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260",
845
+ "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260",
846
+ "shasum": ""
847
+ },
848
+ "require": {
849
+ "php": ">=5.3.3"
850
+ },
851
+ "require-dev": {
852
+ "phpunit/phpunit": "~4|~5"
853
+ },
854
+ "type": "library",
855
+ "autoload": {
856
+ "classmap": [
857
+ "src/"
858
+ ]
859
+ },
860
+ "notification-url": "https://packagist.org/downloads/",
861
+ "license": [
862
+ "BSD-3-Clause"
863
+ ],
864
+ "authors": [
865
+ {
866
+ "name": "Sebastian Bergmann",
867
+ "email": "sb@sebastian-bergmann.de",
868
+ "role": "lead"
869
+ }
870
+ ],
871
+ "description": "Utility class for timing",
872
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
873
+ "keywords": [
874
+ "timer"
875
+ ],
876
+ "time": "2016-05-12 18:03:57"
877
+ },
878
+ {
879
+ "name": "phpunit/php-token-stream",
880
+ "version": "1.4.9",
881
+ "source": {
882
+ "type": "git",
883
+ "url": "https://github.com/sebastianbergmann/php-token-stream.git",
884
+ "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b"
885
+ },
886
+ "dist": {
887
+ "type": "zip",
888
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3b402f65a4cc90abf6e1104e388b896ce209631b",
889
+ "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b",
890
+ "shasum": ""
891
+ },
892
+ "require": {
893
+ "ext-tokenizer": "*",
894
+ "php": ">=5.3.3"
895
+ },
896
+ "require-dev": {
897
+ "phpunit/phpunit": "~4.2"
898
+ },
899
+ "type": "library",
900
+ "extra": {
901
+ "branch-alias": {
902
+ "dev-master": "1.4-dev"
903
+ }
904
+ },
905
+ "autoload": {
906
+ "classmap": [
907
+ "src/"
908
+ ]
909
+ },
910
+ "notification-url": "https://packagist.org/downloads/",
911
+ "license": [
912
+ "BSD-3-Clause"
913
+ ],
914
+ "authors": [
915
+ {
916
+ "name": "Sebastian Bergmann",
917
+ "email": "sebastian@phpunit.de"
918
+ }
919
+ ],
920
+ "description": "Wrapper around PHP's tokenizer extension.",
921
+ "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
922
+ "keywords": [
923
+ "tokenizer"
924
+ ],
925
+ "time": "2016-11-15 14:06:22"
926
+ },
927
+ {
928
+ "name": "phpunit/phpunit",
929
+ "version": "5.7.2",
930
+ "source": {
931
+ "type": "git",
932
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
933
+ "reference": "336aff0ac52e306c98e7455bc3e8d7b0bf777a5e"
934
+ },
935
+ "dist": {
936
+ "type": "zip",
937
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/336aff0ac52e306c98e7455bc3e8d7b0bf777a5e",
938
+ "reference": "336aff0ac52e306c98e7455bc3e8d7b0bf777a5e",
939
+ "shasum": ""
940
+ },
941
+ "require": {
942
+ "ext-dom": "*",
943
+ "ext-json": "*",
944
+ "ext-libxml": "*",
945
+ "ext-mbstring": "*",
946
+ "ext-xml": "*",
947
+ "myclabs/deep-copy": "~1.3",
948
+ "php": "^5.6 || ^7.0",
949
+ "phpspec/prophecy": "^1.3.1",
950
+ "phpunit/php-code-coverage": "^4.0.3",
951
+ "phpunit/php-file-iterator": "~1.4",
952
+ "phpunit/php-text-template": "~1.2",
953
+ "phpunit/php-timer": "^1.0.6",
954
+ "phpunit/phpunit-mock-objects": "^3.2",
955
+ "sebastian/comparator": "~1.2.2",
956
+ "sebastian/diff": "~1.2",
957
+ "sebastian/environment": "^1.3.4 || ^2.0",
958
+ "sebastian/exporter": "~2.0",
959
+ "sebastian/global-state": "~1.0",
960
+ "sebastian/object-enumerator": "~2.0",
961
+ "sebastian/resource-operations": "~1.0",
962
+ "sebastian/version": "~1.0|~2.0",
963
+ "symfony/yaml": "~2.1|~3.0"
964
+ },
965
+ "conflict": {
966
+ "phpdocumentor/reflection-docblock": "3.0.2"
967
+ },
968
+ "require-dev": {
969
+ "ext-pdo": "*"
970
+ },
971
+ "suggest": {
972
+ "ext-xdebug": "*",
973
+ "phpunit/php-invoker": "~1.1"
974
+ },
975
+ "bin": [
976
+ "phpunit"
977
+ ],
978
+ "type": "library",
979
+ "extra": {
980
+ "branch-alias": {
981
+ "dev-master": "5.7.x-dev"
982
+ }
983
+ },
984
+ "autoload": {
985
+ "classmap": [
986
+ "src/"
987
+ ]
988
+ },
989
+ "notification-url": "https://packagist.org/downloads/",
990
+ "license": [
991
+ "BSD-3-Clause"
992
+ ],
993
+ "authors": [
994
+ {
995
+ "name": "Sebastian Bergmann",
996
+ "email": "sebastian@phpunit.de",
997
+ "role": "lead"
998
+ }
999
+ ],
1000
+ "description": "The PHP Unit Testing framework.",
1001
+ "homepage": "https://phpunit.de/",
1002
+ "keywords": [
1003
+ "phpunit",
1004
+ "testing",
1005
+ "xunit"
1006
+ ],
1007
+ "time": "2016-12-03 08:33:00"
1008
+ },
1009
+ {
1010
+ "name": "phpunit/phpunit-mock-objects",
1011
+ "version": "3.4.2",
1012
+ "source": {
1013
+ "type": "git",
1014
+ "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
1015
+ "reference": "90a08f5deed5f7ac35463c161f2e8fa0e5652faf"
1016
+ },
1017
+ "dist": {
1018
+ "type": "zip",
1019
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/90a08f5deed5f7ac35463c161f2e8fa0e5652faf",
1020
+ "reference": "90a08f5deed5f7ac35463c161f2e8fa0e5652faf",
1021
+ "shasum": ""
1022
+ },
1023
+ "require": {
1024
+ "doctrine/instantiator": "^1.0.2",
1025
+ "php": "^5.6 || ^7.0",
1026
+ "phpunit/php-text-template": "^1.2",
1027
+ "sebastian/exporter": "^1.2 || ^2.0"
1028
+ },
1029
+ "conflict": {
1030
+ "phpunit/phpunit": "<5.4.0"
1031
+ },
1032
+ "require-dev": {
1033
+ "phpunit/phpunit": "^5.4"
1034
+ },
1035
+ "suggest": {
1036
+ "ext-soap": "*"
1037
+ },
1038
+ "type": "library",
1039
+ "extra": {
1040
+ "branch-alias": {
1041
+ "dev-master": "3.2.x-dev"
1042
+ }
1043
+ },
1044
+ "autoload": {
1045
+ "classmap": [
1046
+ "src/"
1047
+ ]
1048
+ },
1049
+ "notification-url": "https://packagist.org/downloads/",
1050
+ "license": [
1051
+ "BSD-3-Clause"
1052
+ ],
1053
+ "authors": [
1054
+ {
1055
+ "name": "Sebastian Bergmann",
1056
+ "email": "sb@sebastian-bergmann.de",
1057
+ "role": "lead"
1058
+ }
1059
+ ],
1060
+ "description": "Mock Object library for PHPUnit",
1061
+ "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
1062
+ "keywords": [
1063
+ "mock",
1064
+ "xunit"
1065
+ ],
1066
+ "time": "2016-11-27 07:52:03"
1067
+ },
1068
+ {
1069
+ "name": "psr/http-message",
1070
+ "version": "1.0.1",
1071
+ "source": {
1072
+ "type": "git",
1073
+ "url": "https://github.com/php-fig/http-message.git",
1074
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
1075
+ },
1076
+ "dist": {
1077
+ "type": "zip",
1078
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
1079
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
1080
+ "shasum": ""
1081
+ },
1082
+ "require": {
1083
+ "php": ">=5.3.0"
1084
+ },
1085
+ "type": "library",
1086
+ "extra": {
1087
+ "branch-alias": {
1088
+ "dev-master": "1.0.x-dev"
1089
+ }
1090
+ },
1091
+ "autoload": {
1092
+ "psr-4": {
1093
+ "Psr\\Http\\Message\\": "src/"
1094
+ }
1095
+ },
1096
+ "notification-url": "https://packagist.org/downloads/",
1097
+ "license": [
1098
+ "MIT"
1099
+ ],
1100
+ "authors": [
1101
+ {
1102
+ "name": "PHP-FIG",
1103
+ "homepage": "http://www.php-fig.org/"
1104
+ }
1105
+ ],
1106
+ "description": "Common interface for HTTP messages",
1107
+ "homepage": "https://github.com/php-fig/http-message",
1108
+ "keywords": [
1109
+ "http",
1110
+ "http-message",
1111
+ "psr",
1112
+ "psr-7",
1113
+ "request",
1114
+ "response"
1115
+ ],
1116
+ "time": "2016-08-06 14:39:51"
1117
+ },
1118
+ {
1119
+ "name": "psr/log",
1120
+ "version": "1.0.2",
1121
+ "source": {
1122
+ "type": "git",
1123
+ "url": "https://github.com/php-fig/log.git",
1124
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
1125
+ },
1126
+ "dist": {
1127
+ "type": "zip",
1128
+ "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
1129
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
1130
+ "shasum": ""
1131
+ },
1132
+ "require": {
1133
+ "php": ">=5.3.0"
1134
+ },
1135
+ "type": "library",
1136
+ "extra": {
1137
+ "branch-alias": {
1138
+ "dev-master": "1.0.x-dev"
1139
+ }
1140
+ },
1141
+ "autoload": {
1142
+ "psr-4": {
1143
+ "Psr\\Log\\": "Psr/Log/"
1144
+ }
1145
+ },
1146
+ "notification-url": "https://packagist.org/downloads/",
1147
+ "license": [
1148
+ "MIT"
1149
+ ],
1150
+ "authors": [
1151
+ {
1152
+ "name": "PHP-FIG",
1153
+ "homepage": "http://www.php-fig.org/"
1154
+ }
1155
+ ],
1156
+ "description": "Common interface for logging libraries",
1157
+ "homepage": "https://github.com/php-fig/log",
1158
+ "keywords": [
1159
+ "log",
1160
+ "psr",
1161
+ "psr-3"
1162
+ ],
1163
+ "time": "2016-10-10 12:19:37"
1164
+ },
1165
+ {
1166
+ "name": "sebastian/code-unit-reverse-lookup",
1167
+ "version": "1.0.0",
1168
+ "source": {
1169
+ "type": "git",
1170
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
1171
+ "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe"
1172
+ },
1173
+ "dist": {
1174
+ "type": "zip",
1175
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/c36f5e7cfce482fde5bf8d10d41a53591e0198fe",
1176
+ "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe",
1177
+ "shasum": ""
1178
+ },
1179
+ "require": {
1180
+ "php": ">=5.6"
1181
+ },
1182
+ "require-dev": {
1183
+ "phpunit/phpunit": "~5"
1184
+ },
1185
+ "type": "library",
1186
+ "extra": {
1187
+ "branch-alias": {
1188
+ "dev-master": "1.0.x-dev"
1189
+ }
1190
+ },
1191
+ "autoload": {
1192
+ "classmap": [
1193
+ "src/"
1194
+ ]
1195
+ },
1196
+ "notification-url": "https://packagist.org/downloads/",
1197
+ "license": [
1198
+ "BSD-3-Clause"
1199
+ ],
1200
+ "authors": [
1201
+ {
1202
+ "name": "Sebastian Bergmann",
1203
+ "email": "sebastian@phpunit.de"
1204
+ }
1205
+ ],
1206
+ "description": "Looks up which function or method a line of code belongs to",
1207
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
1208
+ "time": "2016-02-13 06:45:14"
1209
+ },
1210
+ {
1211
+ "name": "sebastian/comparator",
1212
+ "version": "1.2.2",
1213
+ "source": {
1214
+ "type": "git",
1215
+ "url": "https://github.com/sebastianbergmann/comparator.git",
1216
+ "reference": "6a1ed12e8b2409076ab22e3897126211ff8b1f7f"
1217
+ },
1218
+ "dist": {
1219
+ "type": "zip",
1220
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/6a1ed12e8b2409076ab22e3897126211ff8b1f7f",
1221
+ "reference": "6a1ed12e8b2409076ab22e3897126211ff8b1f7f",
1222
+ "shasum": ""
1223
+ },
1224
+ "require": {
1225
+ "php": ">=5.3.3",
1226
+ "sebastian/diff": "~1.2",
1227
+ "sebastian/exporter": "~1.2 || ~2.0"
1228
+ },
1229
+ "require-dev": {
1230
+ "phpunit/phpunit": "~4.4"
1231
+ },
1232
+ "type": "library",
1233
+ "extra": {
1234
+ "branch-alias": {
1235
+ "dev-master": "1.2.x-dev"
1236
+ }
1237
+ },
1238
+ "autoload": {
1239
+ "classmap": [
1240
+ "src/"
1241
+ ]
1242
+ },
1243
+ "notification-url": "https://packagist.org/downloads/",
1244
+ "license": [
1245
+ "BSD-3-Clause"
1246
+ ],
1247
+ "authors": [
1248
+ {
1249
+ "name": "Jeff Welch",
1250
+ "email": "whatthejeff@gmail.com"
1251
+ },
1252
+ {
1253
+ "name": "Volker Dusch",
1254
+ "email": "github@wallbash.com"
1255
+ },
1256
+ {
1257
+ "name": "Bernhard Schussek",
1258
+ "email": "bschussek@2bepublished.at"
1259
+ },
1260
+ {
1261
+ "name": "Sebastian Bergmann",
1262
+ "email": "sebastian@phpunit.de"
1263
+ }
1264
+ ],
1265
+ "description": "Provides the functionality to compare PHP values for equality",
1266
+ "homepage": "http://www.github.com/sebastianbergmann/comparator",
1267
+ "keywords": [
1268
+ "comparator",
1269
+ "compare",
1270
+ "equality"
1271
+ ],
1272
+ "time": "2016-11-19 09:18:40"
1273
+ },
1274
+ {
1275
+ "name": "sebastian/diff",
1276
+ "version": "1.4.1",
1277
+ "source": {
1278
+ "type": "git",
1279
+ "url": "https://github.com/sebastianbergmann/diff.git",
1280
+ "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
1281
+ },
1282
+ "dist": {
1283
+ "type": "zip",
1284
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
1285
+ "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
1286
+ "shasum": ""
1287
+ },
1288
+ "require": {
1289
+ "php": ">=5.3.3"
1290
+ },
1291
+ "require-dev": {
1292
+ "phpunit/phpunit": "~4.8"
1293
+ },
1294
+ "type": "library",
1295
+ "extra": {
1296
+ "branch-alias": {
1297
+ "dev-master": "1.4-dev"
1298
+ }
1299
+ },
1300
+ "autoload": {
1301
+ "classmap": [
1302
+ "src/"
1303
+ ]
1304
+ },
1305
+ "notification-url": "https://packagist.org/downloads/",
1306
+ "license": [
1307
+ "BSD-3-Clause"
1308
+ ],
1309
+ "authors": [
1310
+ {
1311
+ "name": "Kore Nordmann",
1312
+ "email": "mail@kore-nordmann.de"
1313
+ },
1314
+ {
1315
+ "name": "Sebastian Bergmann",
1316
+ "email": "sebastian@phpunit.de"
1317
+ }
1318
+ ],
1319
+ "description": "Diff implementation",
1320
+ "homepage": "https://github.com/sebastianbergmann/diff",
1321
+ "keywords": [
1322
+ "diff"
1323
+ ],
1324
+ "time": "2015-12-08 07:14:41"
1325
+ },
1326
+ {
1327
+ "name": "sebastian/environment",
1328
+ "version": "2.0.0",
1329
+ "source": {
1330
+ "type": "git",
1331
+ "url": "https://github.com/sebastianbergmann/environment.git",
1332
+ "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac"
1333
+ },
1334
+ "dist": {
1335
+ "type": "zip",
1336
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
1337
+ "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
1338
+ "shasum": ""
1339
+ },
1340
+ "require": {
1341
+ "php": "^5.6 || ^7.0"
1342
+ },
1343
+ "require-dev": {
1344
+ "phpunit/phpunit": "^5.0"
1345
+ },
1346
+ "type": "library",
1347
+ "extra": {
1348
+ "branch-alias": {
1349
+ "dev-master": "2.0.x-dev"
1350
+ }
1351
+ },
1352
+ "autoload": {
1353
+ "classmap": [
1354
+ "src/"
1355
+ ]
1356
+ },
1357
+ "notification-url": "https://packagist.org/downloads/",
1358
+ "license": [
1359
+ "BSD-3-Clause"
1360
+ ],
1361
+ "authors": [
1362
+ {
1363
+ "name": "Sebastian Bergmann",
1364
+ "email": "sebastian@phpunit.de"
1365
+ }
1366
+ ],
1367
+ "description": "Provides functionality to handle HHVM/PHP environments",
1368
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
1369
+ "keywords": [
1370
+ "Xdebug",
1371
+ "environment",
1372
+ "hhvm"
1373
+ ],
1374
+ "time": "2016-11-26 07:53:53"
1375
+ },
1376
+ {
1377
+ "name": "sebastian/exporter",
1378
+ "version": "2.0.0",
1379
+ "source": {
1380
+ "type": "git",
1381
+ "url": "https://github.com/sebastianbergmann/exporter.git",
1382
+ "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4"
1383
+ },
1384
+ "dist": {
1385
+ "type": "zip",
1386
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
1387
+ "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
1388
+ "shasum": ""
1389
+ },
1390
+ "require": {
1391
+ "php": ">=5.3.3",
1392
+ "sebastian/recursion-context": "~2.0"
1393
+ },
1394
+ "require-dev": {
1395
+ "ext-mbstring": "*",
1396
+ "phpunit/phpunit": "~4.4"
1397
+ },
1398
+ "type": "library",
1399
+ "extra": {
1400
+ "branch-alias": {
1401
+ "dev-master": "2.0.x-dev"
1402
+ }
1403
+ },
1404
+ "autoload": {
1405
+ "classmap": [
1406
+ "src/"
1407
+ ]
1408
+ },
1409
+ "notification-url": "https://packagist.org/downloads/",
1410
+ "license": [
1411
+ "BSD-3-Clause"
1412
+ ],
1413
+ "authors": [
1414
+ {
1415
+ "name": "Jeff Welch",
1416
+ "email": "whatthejeff@gmail.com"
1417
+ },
1418
+ {
1419
+ "name": "Volker Dusch",
1420
+ "email": "github@wallbash.com"
1421
+ },
1422
+ {
1423
+ "name": "Bernhard Schussek",
1424
+ "email": "bschussek@2bepublished.at"
1425
+ },
1426
+ {
1427
+ "name": "Sebastian Bergmann",
1428
+ "email": "sebastian@phpunit.de"
1429
+ },
1430
+ {
1431
+ "name": "Adam Harvey",
1432
+ "email": "aharvey@php.net"
1433
+ }
1434
+ ],
1435
+ "description": "Provides the functionality to export PHP variables for visualization",
1436
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
1437
+ "keywords": [
1438
+ "export",
1439
+ "exporter"
1440
+ ],
1441
+ "time": "2016-11-19 08:54:04"
1442
+ },
1443
+ {
1444
+ "name": "sebastian/global-state",
1445
+ "version": "1.1.1",
1446
+ "source": {
1447
+ "type": "git",
1448
+ "url": "https://github.com/sebastianbergmann/global-state.git",
1449
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
1450
+ },
1451
+ "dist": {
1452
+ "type": "zip",
1453
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
1454
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
1455
+ "shasum": ""
1456
+ },
1457
+ "require": {
1458
+ "php": ">=5.3.3"
1459
+ },
1460
+ "require-dev": {
1461
+ "phpunit/phpunit": "~4.2"
1462
+ },
1463
+ "suggest": {
1464
+ "ext-uopz": "*"
1465
+ },
1466
+ "type": "library",
1467
+ "extra": {
1468
+ "branch-alias": {
1469
+ "dev-master": "1.0-dev"
1470
+ }
1471
+ },
1472
+ "autoload": {
1473
+ "classmap": [
1474
+ "src/"
1475
+ ]
1476
+ },
1477
+ "notification-url": "https://packagist.org/downloads/",
1478
+ "license": [
1479
+ "BSD-3-Clause"
1480
+ ],
1481
+ "authors": [
1482
+ {
1483
+ "name": "Sebastian Bergmann",
1484
+ "email": "sebastian@phpunit.de"
1485
+ }
1486
+ ],
1487
+ "description": "Snapshotting of global state",
1488
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
1489
+ "keywords": [
1490
+ "global state"
1491
+ ],
1492
+ "time": "2015-10-12 03:26:01"
1493
+ },
1494
+ {
1495
+ "name": "sebastian/object-enumerator",
1496
+ "version": "2.0.0",
1497
+ "source": {
1498
+ "type": "git",
1499
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
1500
+ "reference": "96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35"
1501
+ },
1502
+ "dist": {
1503
+ "type": "zip",
1504
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35",
1505
+ "reference": "96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35",
1506
+ "shasum": ""
1507
+ },
1508
+ "require": {
1509
+ "php": ">=5.6",
1510
+ "sebastian/recursion-context": "~2.0"
1511
+ },
1512
+ "require-dev": {
1513
+ "phpunit/phpunit": "~5"
1514
+ },
1515
+ "type": "library",
1516
+ "extra": {
1517
+ "branch-alias": {
1518
+ "dev-master": "2.0.x-dev"
1519
+ }
1520
+ },
1521
+ "autoload": {
1522
+ "classmap": [
1523
+ "src/"
1524
+ ]
1525
+ },
1526
+ "notification-url": "https://packagist.org/downloads/",
1527
+ "license": [
1528
+ "BSD-3-Clause"
1529
+ ],
1530
+ "authors": [
1531
+ {
1532
+ "name": "Sebastian Bergmann",
1533
+ "email": "sebastian@phpunit.de"
1534
+ }
1535
+ ],
1536
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
1537
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
1538
+ "time": "2016-11-19 07:35:10"
1539
+ },
1540
+ {
1541
+ "name": "sebastian/recursion-context",
1542
+ "version": "2.0.0",
1543
+ "source": {
1544
+ "type": "git",
1545
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
1546
+ "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a"
1547
+ },
1548
+ "dist": {
1549
+ "type": "zip",
1550
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a",
1551
+ "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a",
1552
+ "shasum": ""
1553
+ },
1554
+ "require": {
1555
+ "php": ">=5.3.3"
1556
+ },
1557
+ "require-dev": {
1558
+ "phpunit/phpunit": "~4.4"
1559
+ },
1560
+ "type": "library",
1561
+ "extra": {
1562
+ "branch-alias": {
1563
+ "dev-master": "2.0.x-dev"
1564
+ }
1565
+ },
1566
+ "autoload": {
1567
+ "classmap": [
1568
+ "src/"
1569
+ ]
1570
+ },
1571
+ "notification-url": "https://packagist.org/downloads/",
1572
+ "license": [
1573
+ "BSD-3-Clause"
1574
+ ],
1575
+ "authors": [
1576
+ {
1577
+ "name": "Jeff Welch",
1578
+ "email": "whatthejeff@gmail.com"
1579
+ },
1580
+ {
1581
+ "name": "Sebastian Bergmann",
1582
+ "email": "sebastian@phpunit.de"
1583
+ },
1584
+ {
1585
+ "name": "Adam Harvey",
1586
+ "email": "aharvey@php.net"
1587
+ }
1588
+ ],
1589
+ "description": "Provides functionality to recursively process PHP variables",
1590
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
1591
+ "time": "2016-11-19 07:33:16"
1592
+ },
1593
+ {
1594
+ "name": "sebastian/resource-operations",
1595
+ "version": "1.0.0",
1596
+ "source": {
1597
+ "type": "git",
1598
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
1599
+ "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
1600
+ },
1601
+ "dist": {
1602
+ "type": "zip",
1603
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
1604
+ "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
1605
+ "shasum": ""
1606
+ },
1607
+ "require": {
1608
+ "php": ">=5.6.0"
1609
+ },
1610
+ "type": "library",
1611
+ "extra": {
1612
+ "branch-alias": {
1613
+ "dev-master": "1.0.x-dev"
1614
+ }
1615
+ },
1616
+ "autoload": {
1617
+ "classmap": [
1618
+ "src/"
1619
+ ]
1620
+ },
1621
+ "notification-url": "https://packagist.org/downloads/",
1622
+ "license": [
1623
+ "BSD-3-Clause"
1624
+ ],
1625
+ "authors": [
1626
+ {
1627
+ "name": "Sebastian Bergmann",
1628
+ "email": "sebastian@phpunit.de"
1629
+ }
1630
+ ],
1631
+ "description": "Provides a list of PHP built-in functions that operate on resources",
1632
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
1633
+ "time": "2015-07-28 20:34:47"
1634
+ },
1635
+ {
1636
+ "name": "sebastian/version",
1637
+ "version": "2.0.1",
1638
+ "source": {
1639
+ "type": "git",
1640
+ "url": "https://github.com/sebastianbergmann/version.git",
1641
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
1642
+ },
1643
+ "dist": {
1644
+ "type": "zip",
1645
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
1646
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
1647
+ "shasum": ""
1648
+ },
1649
+ "require": {
1650
+ "php": ">=5.6"
1651
+ },
1652
+ "type": "library",
1653
+ "extra": {
1654
+ "branch-alias": {
1655
+ "dev-master": "2.0.x-dev"
1656
+ }
1657
+ },
1658
+ "autoload": {
1659
+ "classmap": [
1660
+ "src/"
1661
+ ]
1662
+ },
1663
+ "notification-url": "https://packagist.org/downloads/",
1664
+ "license": [
1665
+ "BSD-3-Clause"
1666
+ ],
1667
+ "authors": [
1668
+ {
1669
+ "name": "Sebastian Bergmann",
1670
+ "email": "sebastian@phpunit.de",
1671
+ "role": "lead"
1672
+ }
1673
+ ],
1674
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
1675
+ "homepage": "https://github.com/sebastianbergmann/version",
1676
+ "time": "2016-10-03 07:35:21"
1677
+ },
1678
+ {
1679
+ "name": "symfony/browser-kit",
1680
+ "version": "v3.2.0",
1681
+ "source": {
1682
+ "type": "git",
1683
+ "url": "https://github.com/symfony/browser-kit.git",
1684
+ "reference": "34348c2691ce6254e8e008026f4c5e72c22bb318"
1685
+ },
1686
+ "dist": {
1687
+ "type": "zip",
1688
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/34348c2691ce6254e8e008026f4c5e72c22bb318",
1689
+ "reference": "34348c2691ce6254e8e008026f4c5e72c22bb318",
1690
+ "shasum": ""
1691
+ },
1692
+ "require": {
1693
+ "php": ">=5.5.9",
1694
+ "symfony/dom-crawler": "~2.8|~3.0"
1695
+ },
1696
+ "require-dev": {
1697
+ "symfony/css-selector": "~2.8|~3.0",
1698
+ "symfony/process": "~2.8|~3.0"
1699
+ },
1700
+ "suggest": {
1701
+ "symfony/process": ""
1702
+ },
1703
+ "type": "library",
1704
+ "extra": {
1705
+ "branch-alias": {
1706
+ "dev-master": "3.2-dev"
1707
+ }
1708
+ },
1709
+ "autoload": {
1710
+ "psr-4": {
1711
+ "Symfony\\Component\\BrowserKit\\": ""
1712
+ },
1713
+ "exclude-from-classmap": [
1714
+ "/Tests/"
1715
+ ]
1716
+ },
1717
+ "notification-url": "https://packagist.org/downloads/",
1718
+ "license": [
1719
+ "MIT"
1720
+ ],
1721
+ "authors": [
1722
+ {
1723
+ "name": "Fabien Potencier",
1724
+ "email": "fabien@symfony.com"
1725
+ },
1726
+ {
1727
+ "name": "Symfony Community",
1728
+ "homepage": "https://symfony.com/contributors"
1729
+ }
1730
+ ],
1731
+ "description": "Symfony BrowserKit Component",
1732
+ "homepage": "https://symfony.com",
1733
+ "time": "2016-10-13 13:35:11"
1734
+ },
1735
+ {
1736
+ "name": "symfony/console",
1737
+ "version": "v3.2.0",
1738
+ "source": {
1739
+ "type": "git",
1740
+ "url": "https://github.com/symfony/console.git",
1741
+ "reference": "09d0fd33560e3573185a2ea17614e37ba38716c5"
1742
+ },
1743
+ "dist": {
1744
+ "type": "zip",
1745
+ "url": "https://api.github.com/repos/symfony/console/zipball/09d0fd33560e3573185a2ea17614e37ba38716c5",
1746
+ "reference": "09d0fd33560e3573185a2ea17614e37ba38716c5",
1747
+ "shasum": ""
1748
+ },
1749
+ "require": {
1750
+ "php": ">=5.5.9",
1751
+ "symfony/debug": "~2.8|~3.0",
1752
+ "symfony/polyfill-mbstring": "~1.0"
1753
+ },
1754
+ "require-dev": {
1755
+ "psr/log": "~1.0",
1756
+ "symfony/event-dispatcher": "~2.8|~3.0",
1757
+ "symfony/filesystem": "~2.8|~3.0",
1758
+ "symfony/process": "~2.8|~3.0"
1759
+ },
1760
+ "suggest": {
1761
+ "psr/log": "For using the console logger",
1762
+ "symfony/event-dispatcher": "",
1763
+ "symfony/filesystem": "",
1764
+ "symfony/process": ""
1765
+ },
1766
+ "type": "library",
1767
+ "extra": {
1768
+ "branch-alias": {
1769
+ "dev-master": "3.2-dev"
1770
+ }
1771
+ },
1772
+ "autoload": {
1773
+ "psr-4": {
1774
+ "Symfony\\Component\\Console\\": ""
1775
+ },
1776
+ "exclude-from-classmap": [
1777
+ "/Tests/"
1778
+ ]
1779
+ },
1780
+ "notification-url": "https://packagist.org/downloads/",
1781
+ "license": [
1782
+ "MIT"
1783
+ ],
1784
+ "authors": [
1785
+ {
1786
+ "name": "Fabien Potencier",
1787
+ "email": "fabien@symfony.com"
1788
+ },
1789
+ {
1790
+ "name": "Symfony Community",
1791
+ "homepage": "https://symfony.com/contributors"
1792
+ }
1793
+ ],
1794
+ "description": "Symfony Console Component",
1795
+ "homepage": "https://symfony.com",
1796
+ "time": "2016-11-16 22:18:16"
1797
+ },
1798
+ {
1799
+ "name": "symfony/css-selector",
1800
+ "version": "v3.2.0",
1801
+ "source": {
1802
+ "type": "git",
1803
+ "url": "https://github.com/symfony/css-selector.git",
1804
+ "reference": "e1241f275814827c411d922ba8e64cf2a00b2994"
1805
+ },
1806
+ "dist": {
1807
+ "type": "zip",
1808
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/e1241f275814827c411d922ba8e64cf2a00b2994",
1809
+ "reference": "e1241f275814827c411d922ba8e64cf2a00b2994",
1810
+ "shasum": ""
1811
+ },
1812
+ "require": {
1813
+ "php": ">=5.5.9"
1814
+ },
1815
+ "type": "library",
1816
+ "extra": {
1817
+ "branch-alias": {
1818
+ "dev-master": "3.2-dev"
1819
+ }
1820
+ },
1821
+ "autoload": {
1822
+ "psr-4": {
1823
+ "Symfony\\Component\\CssSelector\\": ""
1824
+ },
1825
+ "exclude-from-classmap": [
1826
+ "/Tests/"
1827
+ ]
1828
+ },
1829
+ "notification-url": "https://packagist.org/downloads/",
1830
+ "license": [
1831
+ "MIT"
1832
+ ],
1833
+ "authors": [
1834
+ {
1835
+ "name": "Jean-François Simon",
1836
+ "email": "jeanfrancois.simon@sensiolabs.com"
1837
+ },
1838
+ {
1839
+ "name": "Fabien Potencier",
1840
+ "email": "fabien@symfony.com"
1841
+ },
1842
+ {
1843
+ "name": "Symfony Community",
1844
+ "homepage": "https://symfony.com/contributors"
1845
+ }
1846
+ ],
1847
+ "description": "Symfony CssSelector Component",
1848
+ "homepage": "https://symfony.com",
1849
+ "time": "2016-11-03 08:11:03"
1850
+ },
1851
+ {
1852
+ "name": "symfony/debug",
1853
+ "version": "v3.2.0",
1854
+ "source": {
1855
+ "type": "git",
1856
+ "url": "https://github.com/symfony/debug.git",
1857
+ "reference": "9f923e68d524a3095c5a2ae5fc7220c7cbc12231"
1858
+ },
1859
+ "dist": {
1860
+ "type": "zip",
1861
+ "url": "https://api.github.com/repos/symfony/debug/zipball/9f923e68d524a3095c5a2ae5fc7220c7cbc12231",
1862
+ "reference": "9f923e68d524a3095c5a2ae5fc7220c7cbc12231",
1863
+ "shasum": ""
1864
+ },
1865
+ "require": {
1866
+ "php": ">=5.5.9",
1867
+ "psr/log": "~1.0"
1868
+ },
1869
+ "conflict": {
1870
+ "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
1871
+ },
1872
+ "require-dev": {
1873
+ "symfony/class-loader": "~2.8|~3.0",
1874
+ "symfony/http-kernel": "~2.8|~3.0"
1875
+ },
1876
+ "type": "library",
1877
+ "extra": {
1878
+ "branch-alias": {
1879
+ "dev-master": "3.2-dev"
1880
+ }
1881
+ },
1882
+ "autoload": {
1883
+ "psr-4": {
1884
+ "Symfony\\Component\\Debug\\": ""
1885
+ },
1886
+ "exclude-from-classmap": [
1887
+ "/Tests/"
1888
+ ]
1889
+ },
1890
+ "notification-url": "https://packagist.org/downloads/",
1891
+ "license": [
1892
+ "MIT"
1893
+ ],
1894
+ "authors": [
1895
+ {
1896
+ "name": "Fabien Potencier",
1897
+ "email": "fabien@symfony.com"
1898
+ },
1899
+ {
1900
+ "name": "Symfony Community",
1901
+ "homepage": "https://symfony.com/contributors"
1902
+ }
1903
+ ],
1904
+ "description": "Symfony Debug Component",
1905
+ "homepage": "https://symfony.com",
1906
+ "time": "2016-11-16 22:18:16"
1907
+ },
1908
+ {
1909
+ "name": "symfony/dom-crawler",
1910
+ "version": "v3.2.0",
1911
+ "source": {
1912
+ "type": "git",
1913
+ "url": "https://github.com/symfony/dom-crawler.git",
1914
+ "reference": "c6b6111f5aae7c58698cdc10220785627ac44a2c"
1915
+ },
1916
+ "dist": {
1917
+ "type": "zip",
1918
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/c6b6111f5aae7c58698cdc10220785627ac44a2c",
1919
+ "reference": "c6b6111f5aae7c58698cdc10220785627ac44a2c",
1920
+ "shasum": ""
1921
+ },
1922
+ "require": {
1923
+ "php": ">=5.5.9",
1924
+ "symfony/polyfill-mbstring": "~1.0"
1925
+ },
1926
+ "require-dev": {
1927
+ "symfony/css-selector": "~2.8|~3.0"
1928
+ },
1929
+ "suggest": {
1930
+ "symfony/css-selector": ""
1931
+ },
1932
+ "type": "library",
1933
+ "extra": {
1934
+ "branch-alias": {
1935
+ "dev-master": "3.2-dev"
1936
+ }
1937
+ },
1938
+ "autoload": {
1939
+ "psr-4": {
1940
+ "Symfony\\Component\\DomCrawler\\": ""
1941
+ },
1942
+ "exclude-from-classmap": [
1943
+ "/Tests/"
1944
+ ]
1945
+ },
1946
+ "notification-url": "https://packagist.org/downloads/",
1947
+ "license": [
1948
+ "MIT"
1949
+ ],
1950
+ "authors": [
1951
+ {
1952
+ "name": "Fabien Potencier",
1953
+ "email": "fabien@symfony.com"
1954
+ },
1955
+ {
1956
+ "name": "Symfony Community",
1957
+ "homepage": "https://symfony.com/contributors"
1958
+ }
1959
+ ],
1960
+ "description": "Symfony DomCrawler Component",
1961
+ "homepage": "https://symfony.com",
1962
+ "time": "2016-11-25 12:32:42"
1963
+ },
1964
+ {
1965
+ "name": "symfony/event-dispatcher",
1966
+ "version": "v3.2.0",
1967
+ "source": {
1968
+ "type": "git",
1969
+ "url": "https://github.com/symfony/event-dispatcher.git",
1970
+ "reference": "e8f47a327c2f0fd5aa04fa60af2b693006ed7283"
1971
+ },
1972
+ "dist": {
1973
+ "type": "zip",
1974
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e8f47a327c2f0fd5aa04fa60af2b693006ed7283",
1975
+ "reference": "e8f47a327c2f0fd5aa04fa60af2b693006ed7283",
1976
+ "shasum": ""
1977
+ },
1978
+ "require": {
1979
+ "php": ">=5.5.9"
1980
+ },
1981
+ "require-dev": {
1982
+ "psr/log": "~1.0",
1983
+ "symfony/config": "~2.8|~3.0",
1984
+ "symfony/dependency-injection": "~2.8|~3.0",
1985
+ "symfony/expression-language": "~2.8|~3.0",
1986
+ "symfony/stopwatch": "~2.8|~3.0"
1987
+ },
1988
+ "suggest": {
1989
+ "symfony/dependency-injection": "",
1990
+ "symfony/http-kernel": ""
1991
+ },
1992
+ "type": "library",
1993
+ "extra": {
1994
+ "branch-alias": {
1995
+ "dev-master": "3.2-dev"
1996
+ }
1997
+ },
1998
+ "autoload": {
1999
+ "psr-4": {
2000
+ "Symfony\\Component\\EventDispatcher\\": ""
2001
+ },
2002
+ "exclude-from-classmap": [
2003
+ "/Tests/"
2004
+ ]
2005
+ },
2006
+ "notification-url": "https://packagist.org/downloads/",
2007
+ "license": [
2008
+ "MIT"
2009
+ ],
2010
+ "authors": [
2011
+ {
2012
+ "name": "Fabien Potencier",
2013
+ "email": "fabien@symfony.com"
2014
+ },
2015
+ {
2016
+ "name": "Symfony Community",
2017
+ "homepage": "https://symfony.com/contributors"
2018
+ }
2019
+ ],
2020
+ "description": "Symfony EventDispatcher Component",
2021
+ "homepage": "https://symfony.com",
2022
+ "time": "2016-10-13 06:29:04"
2023
+ },
2024
+ {
2025
+ "name": "symfony/finder",
2026
+ "version": "v3.2.0",
2027
+ "source": {
2028
+ "type": "git",
2029
+ "url": "https://github.com/symfony/finder.git",
2030
+ "reference": "4263e35a1e342a0f195c9349c0dee38148f8a14f"
2031
+ },
2032
+ "dist": {
2033
+ "type": "zip",
2034
+ "url": "https://api.github.com/repos/symfony/finder/zipball/4263e35a1e342a0f195c9349c0dee38148f8a14f",
2035
+ "reference": "4263e35a1e342a0f195c9349c0dee38148f8a14f",
2036
+ "shasum": ""
2037
+ },
2038
+ "require": {
2039
+ "php": ">=5.5.9"
2040
+ },
2041
+ "type": "library",
2042
+ "extra": {
2043
+ "branch-alias": {
2044
+ "dev-master": "3.2-dev"
2045
+ }
2046
+ },
2047
+ "autoload": {
2048
+ "psr-4": {
2049
+ "Symfony\\Component\\Finder\\": ""
2050
+ },
2051
+ "exclude-from-classmap": [
2052
+ "/Tests/"
2053
+ ]
2054
+ },
2055
+ "notification-url": "https://packagist.org/downloads/",
2056
+ "license": [
2057
+ "MIT"
2058
+ ],
2059
+ "authors": [
2060
+ {
2061
+ "name": "Fabien Potencier",
2062
+ "email": "fabien@symfony.com"
2063
+ },
2064
+ {
2065
+ "name": "Symfony Community",
2066
+ "homepage": "https://symfony.com/contributors"
2067
+ }
2068
+ ],
2069
+ "description": "Symfony Finder Component",
2070
+ "homepage": "https://symfony.com",
2071
+ "time": "2016-11-03 08:11:03"
2072
+ },
2073
+ {
2074
+ "name": "symfony/polyfill-mbstring",
2075
+ "version": "v1.3.0",
2076
+ "source": {
2077
+ "type": "git",
2078
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
2079
+ "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4"
2080
+ },
2081
+ "dist": {
2082
+ "type": "zip",
2083
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/e79d363049d1c2128f133a2667e4f4190904f7f4",
2084
+ "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4",
2085
+ "shasum": ""
2086
+ },
2087
+ "require": {
2088
+ "php": ">=5.3.3"
2089
+ },
2090
+ "suggest": {
2091
+ "ext-mbstring": "For best performance"
2092
+ },
2093
+ "type": "library",
2094
+ "extra": {
2095
+ "branch-alias": {
2096
+ "dev-master": "1.3-dev"
2097
+ }
2098
+ },
2099
+ "autoload": {
2100
+ "psr-4": {
2101
+ "Symfony\\Polyfill\\Mbstring\\": ""
2102
+ },
2103
+ "files": [
2104
+ "bootstrap.php"
2105
+ ]
2106
+ },
2107
+ "notification-url": "https://packagist.org/downloads/",
2108
+ "license": [
2109
+ "MIT"
2110
+ ],
2111
+ "authors": [
2112
+ {
2113
+ "name": "Nicolas Grekas",
2114
+ "email": "p@tchwork.com"
2115
+ },
2116
+ {
2117
+ "name": "Symfony Community",
2118
+ "homepage": "https://symfony.com/contributors"
2119
+ }
2120
+ ],
2121
+ "description": "Symfony polyfill for the Mbstring extension",
2122
+ "homepage": "https://symfony.com",
2123
+ "keywords": [
2124
+ "compatibility",
2125
+ "mbstring",
2126
+ "polyfill",
2127
+ "portable",
2128
+ "shim"
2129
+ ],
2130
+ "time": "2016-11-14 01:06:16"
2131
+ },
2132
+ {
2133
+ "name": "symfony/yaml",
2134
+ "version": "v3.2.0",
2135
+ "source": {
2136
+ "type": "git",
2137
+ "url": "https://github.com/symfony/yaml.git",
2138
+ "reference": "f2300ba8fbb002c028710b92e1906e7457410693"
2139
+ },
2140
+ "dist": {
2141
+ "type": "zip",
2142
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/f2300ba8fbb002c028710b92e1906e7457410693",
2143
+ "reference": "f2300ba8fbb002c028710b92e1906e7457410693",
2144
+ "shasum": ""
2145
+ },
2146
+ "require": {
2147
+ "php": ">=5.5.9"
2148
+ },
2149
+ "require-dev": {
2150
+ "symfony/console": "~2.8|~3.0"
2151
+ },
2152
+ "suggest": {
2153
+ "symfony/console": "For validating YAML files using the lint command"
2154
+ },
2155
+ "type": "library",
2156
+ "extra": {
2157
+ "branch-alias": {
2158
+ "dev-master": "3.2-dev"
2159
+ }
2160
+ },
2161
+ "autoload": {
2162
+ "psr-4": {
2163
+ "Symfony\\Component\\Yaml\\": ""
2164
+ },
2165
+ "exclude-from-classmap": [
2166
+ "/Tests/"
2167
+ ]
2168
+ },
2169
+ "notification-url": "https://packagist.org/downloads/",
2170
+ "license": [
2171
+ "MIT"
2172
+ ],
2173
+ "authors": [
2174
+ {
2175
+ "name": "Fabien Potencier",
2176
+ "email": "fabien@symfony.com"
2177
+ },
2178
+ {
2179
+ "name": "Symfony Community",
2180
+ "homepage": "https://symfony.com/contributors"
2181
+ }
2182
+ ],
2183
+ "description": "Symfony Yaml Component",
2184
+ "homepage": "https://symfony.com",
2185
+ "time": "2016-11-18 21:17:59"
2186
+ },
2187
+ {
2188
+ "name": "webmozart/assert",
2189
+ "version": "1.2.0",
2190
+ "source": {
2191
+ "type": "git",
2192
+ "url": "https://github.com/webmozart/assert.git",
2193
+ "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f"
2194
+ },
2195
+ "dist": {
2196
+ "type": "zip",
2197
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f",
2198
+ "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f",
2199
+ "shasum": ""
2200
+ },
2201
+ "require": {
2202
+ "php": "^5.3.3 || ^7.0"
2203
+ },
2204
+ "require-dev": {
2205
+ "phpunit/phpunit": "^4.6",
2206
+ "sebastian/version": "^1.0.1"
2207
+ },
2208
+ "type": "library",
2209
+ "extra": {
2210
+ "branch-alias": {
2211
+ "dev-master": "1.3-dev"
2212
+ }
2213
+ },
2214
+ "autoload": {
2215
+ "psr-4": {
2216
+ "Webmozart\\Assert\\": "src/"
2217
+ }
2218
+ },
2219
+ "notification-url": "https://packagist.org/downloads/",
2220
+ "license": [
2221
+ "MIT"
2222
+ ],
2223
+ "authors": [
2224
+ {
2225
+ "name": "Bernhard Schussek",
2226
+ "email": "bschussek@gmail.com"
2227
+ }
2228
+ ],
2229
+ "description": "Assertions to validate method input/output with nice error messages.",
2230
+ "keywords": [
2231
+ "assert",
2232
+ "check",
2233
+ "validate"
2234
+ ],
2235
+ "time": "2016-11-23 20:04:58"
2236
+ }
2237
+ ],
2238
+ "packages-dev": [],
2239
+ "aliases": [],
2240
+ "minimum-stability": "stable",
2241
+ "stability-flags": [],
2242
+ "prefer-stable": false,
2243
+ "prefer-lowest": false,
2244
+ "platform": [],
2245
+ "platform-dev": []
2246
+ }
plugin.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: AG Custom Admin
4
  Plugin URI: http://wordpressadminpanel.com/ag-custom-admin/
5
  Description: All-in-one tool for admin panel customization. Change almost everything: admin menu, dashboard, login page, admin bar etc. Apply admin panel themes.
6
  Author: WAP
7
- Version: 5.6.5
8
  Text Domain: ag-custom-admin
9
  Domain Path: /languages
10
  Author URI: http://www.wordpressadminpanel.com/
@@ -73,7 +73,7 @@ class AGCA{
73
  /*Initialize properties*/
74
  $this->colorizer = $this->jsonMenuArray(get_option('ag_colorizer_json'),'colorizer');
75
 
76
- $this->agca_version = "5.6.5";
77
 
78
  //TODO:upload images programmatically
79
  }
@@ -88,7 +88,7 @@ class AGCA{
88
  if ( $file == plugin_basename(__FILE__) )
89
  {
90
  if(!is_network_admin()){
91
- $links[] = '<a href="tools.php?page=ag-custom-admin/plugin.php">' . __('Settings', 'ag-custom-admin') . '</a>';
92
  $links[] = '<a href="tools.php?page=ag-custom-admin/plugin.php#ag-templates">' . __('Admin Themes', 'ag-custom-admin') . '</a>';
93
  }
94
  $links[] = '<a href="http://wordpressadminpanel.com/agca-support/">' . __('Support', 'ag-custom-admin') . '</a>';
@@ -304,7 +304,7 @@ class AGCA{
304
  if(!is_network_admin()){
305
  $wp_admin_bar->add_menu( array(
306
  'id' => 'agca-admin-themes',
307
- 'title' => '<span class="ab-icon"></span>'.__( 'Admin Themes', 'agca-custom-admin' ),
308
  'href' => 'tools.php?page=ag-custom-admin/plugin.php#ag-templates'
309
  ));
310
  }
@@ -439,7 +439,7 @@ class AGCA{
439
  $WPSPluginName = 'wps-hide-login/wps-hide-login.php';
440
  if(is_multisite()){
441
  if ( ! function_exists( 'is_plugin_active_for_network' ) )
442
- require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
443
 
444
  if(!$this->isPluginActiveForNetwork($WPSPluginName)){
445
  return '';
@@ -1178,7 +1178,7 @@ class AGCA{
1178
  }
1179
  //TODO:Find out why this does not work
1180
  //$capabilitySelector .="<option val=\"$k\" $selected >".str_replace(' ', ' ', ucwords(str_replace('_', ' ', $k))) ."</option>\n";
1181
- $capabilitySelector .="<option val=\"$k\" $selected >".$k."</option>\n";
1182
  }
1183
 
1184
  $this->admin_capabilities = "<select class=\"agca-selectbox\" id=\"agca_admin_capability\" name=\"agca_admin_capability\" val=\"upload_files\">".$capabilitySelector."</select>";
@@ -1910,7 +1910,7 @@ class AGCA{
1910
  });
1911
  <?php /*Only admin see button*/
1912
  if (current_user_can($this->admin_capability())){ ?>
1913
- jQuery('#adminmenu').append('<?php echo $this->agca_create_admin_button('AG Custom Admin',array('value'=>'tools.php?page=ag-custom-admin/plugin.php','target'=>'_self')); ?>');
1914
  <?php } ?>
1915
  <?php } ?>
1916
 
@@ -2185,7 +2185,7 @@ class AGCA{
2185
  <li class="normal"><a href="#dashboad-page-settings" title="<?php _e('Settings for Dashboard page', 'ag-custom-admin')?>"><?php _e('Dashboard', 'ag-custom-admin')?></a></li>
2186
  <li class="normal"><a href="#login-page-settings" title="<?php _e('Settings for Login page', 'ag-custom-admin')?>"><?php _e('Login Page', 'ag-custom-admin')?></a></li>
2187
  <li class="normal" ><a href="#admin-menu-settings" title="<?php _e('Settings for main admin menu', 'ag-custom-admin')?>"><?php _e('Admin Menu', 'ag-custom-admin')?></a></li>
2188
- <li class="normal"><a href="#ag-colorizer-setttings" title="<?php _e('Colorizer settings', 'ag-custom-admin')?>"><?php _e('Colorizer', 'ag-custom-admin')?></a></li>
2189
  <li class="normal"><a href="#ag-advanced" title="<?php _e('My custom scripts', 'ag-custom-admin')?>"><?php _e('Advanced', 'ag-custom-admin')?></a></li>
2190
  <li class="normal" style=""><a style="color:#DB6014;font-weight:bolder;" href="#ag-templates" title="<?php _e('AG Custom Admin Themes', 'ag-custom-admin')?>"><?php _e('Themes', 'ag-custom-admin')?></a></li>
2191
  <li class="normal upgrade"><a href="https://cusmin.com/upgrade-to-cusmin?ref=menu" target="_blank" title="<?php _e('Upgrade to Cusmin', 'ag-custom-admin')?>"><img src="<?php echo plugins_url( 'images/cusminlogo.png', __FILE__ ) ?>" /><?php _e('Upgrade', 'ag-custom-admin')?></a></li>
@@ -2203,6 +2203,7 @@ class AGCA{
2203
  <div id="section-cusmin" style="display:none;"><?php _e('All AG Custom Admin plugin\'s settings, except admin themes, are disabled. Please use', 'ag-custom-admin')?> <a href="options-general.php?page=cusmin">Cusmin</a> <?php _e('plugin to manage these settings.', 'ag-custom-admin')?></div>
2204
  <div id="section_general" style="display:none" class="ag_section">
2205
  <h2 class="section_title"><?php _e('General Settings', 'ag-custom-admin')?></h2>
 
2206
  <p tabindex="0" class="agca-clear agca-tip"><i><?php _e('<strong>Tip: </strong>Move mouse cursor over the option label to see more information about an option', 'ag-custom-admin')?></i></p>
2207
  <table class="agca-clear form-table" width="500px">
2208
  <?php
@@ -2281,6 +2282,7 @@ class AGCA{
2281
  </div>
2282
  <div id="section_admin_bar" style="display:none" class="ag_section">
2283
  <h2 class="section_title"><?php _e('Admin Bar Settings', 'ag-custom-admin'); ?></h2>
 
2284
  <table class="form-table" width="500px">
2285
 
2286
  <?php
@@ -2504,6 +2506,7 @@ class AGCA{
2504
 
2505
  <div id="section_admin_footer" style="display:none" class="ag_section">
2506
  <h2 class="section_title"><?php _e('Admin Footer Settings', 'ag-custom-admin'); ?></h2>
 
2507
  <table class="form-table" width="500px">
2508
  <?php
2509
  $this->print_checkbox(array(
@@ -2550,6 +2553,7 @@ class AGCA{
2550
  </div>
2551
  <div id="section_dashboard_page" style="display:none" class="ag_section">
2552
  <h2 class="section_title"><?php _e('Dashboard Page Settings', 'ag-custom-admin'); ?></h2>
 
2553
  <table class="form-table" width="500px">
2554
  <?php
2555
 
@@ -2628,6 +2632,7 @@ class AGCA{
2628
  </div>
2629
  <div id="section_login_page" style="display:none" class="ag_section">
2630
  <h2 class="section_title"><?php _e('Login Page Settings', 'ag-custom-admin'); ?></h2>
 
2631
  <table class="form-table" width="500px">
2632
  <?php
2633
 
@@ -2721,6 +2726,7 @@ class AGCA{
2721
  ?>
2722
  <div id="section_admin_menu" style="display:none" class="ag_section">
2723
  <h2 class="section_title"><?php _e('Admin Menu Settings', 'ag-custom-admin'); ?></h2>
 
2724
  <table class="form-table" width="500px">
2725
  <tr valign="center" class="ag_table_major_options">
2726
  <td><label for="agca_admin_menu_turnonoff"><strong><?php _e('Apply admin menu customizations', 'ag-custom-admin'); ?></strong></label></td>
@@ -2878,6 +2884,7 @@ class AGCA{
2878
  </div>
2879
  <div id="section_ag_colorizer_settings" style="display:none" class="ag_section">
2880
  <h2 class="section_title"><?php _e('Colorizer Page', 'ag-custom-admin'); ?></h2>
 
2881
  <table class="form-table" width="500px">
2882
  <tr valign="center" class="ag_table_major_options">
2883
  <td><label for="agca_colorizer_turnonoff"><strong><?php _e('Apply Colorizer settings', 'ag-custom-admin'); ?></strong></label></td>
@@ -2941,6 +2948,7 @@ class AGCA{
2941
  </div>
2942
  <div id="section_advanced" style="display:none" class="ag_section">
2943
  <h2 class="section_title"><?php _e('Advanced', 'ag-custom-admin'); ?></h2>
 
2944
  <table class="form-table" width="500px">
2945
  <tr valign="center">
2946
  <td colspan="2">
@@ -2984,10 +2992,7 @@ class AGCA{
2984
  </tr>
2985
  </table>
2986
  </div>
2987
- <p class="submit">
2988
- <input type="button" id="save_plugin_settings" style="padding:0px" title="<?php _e('Save AG Custom Admin configuration', 'ag-custom-admin'); ?>" class="button-primary" value="<?php _e('Save Changes') ?>" onClick="savePluginSettings()" />
2989
- </p>
2990
-
2991
  </form>
2992
  <form id="agca_templates_form" name="agca_templates_form" action="<?php echo get_site_url().$_SERVER['PHP_SELF'];?>?page=ag-custom-admin/plugin.php" method="post">
2993
  <?php wp_nonce_field('agca_form','_agca_token'); ?>
@@ -3000,6 +3005,21 @@ class AGCA{
3000
  }
3001
 
3002
  #region PRIVATE METHODS
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3003
  function print_checkbox($data){
3004
  $strAttributes = '';
3005
  $strOnchange = '';
4
  Plugin URI: http://wordpressadminpanel.com/ag-custom-admin/
5
  Description: All-in-one tool for admin panel customization. Change almost everything: admin menu, dashboard, login page, admin bar etc. Apply admin panel themes.
6
  Author: WAP
7
+ Version: 5.7
8
  Text Domain: ag-custom-admin
9
  Domain Path: /languages
10
  Author URI: http://www.wordpressadminpanel.com/
73
  /*Initialize properties*/
74
  $this->colorizer = $this->jsonMenuArray(get_option('ag_colorizer_json'),'colorizer');
75
 
76
+ $this->agca_version = "5.7";
77
 
78
  //TODO:upload images programmatically
79
  }
88
  if ( $file == plugin_basename(__FILE__) )
89
  {
90
  if(!is_network_admin()){
91
+ $links[] = '<a href="tools.php?page=ag-custom-admin/plugin.php#general-settings">' . __('Settings', 'ag-custom-admin') . '</a>';
92
  $links[] = '<a href="tools.php?page=ag-custom-admin/plugin.php#ag-templates">' . __('Admin Themes', 'ag-custom-admin') . '</a>';
93
  }
94
  $links[] = '<a href="http://wordpressadminpanel.com/agca-support/">' . __('Support', 'ag-custom-admin') . '</a>';
304
  if(!is_network_admin()){
305
  $wp_admin_bar->add_menu( array(
306
  'id' => 'agca-admin-themes',
307
+ 'title' => '<span class="ab-icon"></span>'.__( 'Admin Themes', 'ag-custom-admin' ),
308
  'href' => 'tools.php?page=ag-custom-admin/plugin.php#ag-templates'
309
  ));
310
  }
439
  $WPSPluginName = 'wps-hide-login/wps-hide-login.php';
440
  if(is_multisite()){
441
  if ( ! function_exists( 'is_plugin_active_for_network' ) )
442
+ require_once( ABSPATH . '/wp-admin/includes/plugin.php#general-settings' );
443
 
444
  if(!$this->isPluginActiveForNetwork($WPSPluginName)){
445
  return '';
1178
  }
1179
  //TODO:Find out why this does not work
1180
  //$capabilitySelector .="<option val=\"$k\" $selected >".str_replace(' ', ' ', ucwords(str_replace('_', ' ', $k))) ."</option>\n";
1181
+ $capabilitySelector .="<option value=\"$k\" $selected >".$k."</option>\n";
1182
  }
1183
 
1184
  $this->admin_capabilities = "<select class=\"agca-selectbox\" id=\"agca_admin_capability\" name=\"agca_admin_capability\" val=\"upload_files\">".$capabilitySelector."</select>";
1910
  });
1911
  <?php /*Only admin see button*/
1912
  if (current_user_can($this->admin_capability())){ ?>
1913
+ jQuery('#adminmenu').append('<?php echo $this->agca_create_admin_button('AG Custom Admin',array('value'=>'tools.php?page=ag-custom-admin/plugin.php#general-settings','target'=>'_self')); ?>');
1914
  <?php } ?>
1915
  <?php } ?>
1916
 
2185
  <li class="normal"><a href="#dashboad-page-settings" title="<?php _e('Settings for Dashboard page', 'ag-custom-admin')?>"><?php _e('Dashboard', 'ag-custom-admin')?></a></li>
2186
  <li class="normal"><a href="#login-page-settings" title="<?php _e('Settings for Login page', 'ag-custom-admin')?>"><?php _e('Login Page', 'ag-custom-admin')?></a></li>
2187
  <li class="normal" ><a href="#admin-menu-settings" title="<?php _e('Settings for main admin menu', 'ag-custom-admin')?>"><?php _e('Admin Menu', 'ag-custom-admin')?></a></li>
2188
+ <li class="normal"><a href="#ag-colorizer-settings" title="<?php _e('Colorizer settings', 'ag-custom-admin')?>"><?php _e('Colorizer', 'ag-custom-admin')?></a></li>
2189
  <li class="normal"><a href="#ag-advanced" title="<?php _e('My custom scripts', 'ag-custom-admin')?>"><?php _e('Advanced', 'ag-custom-admin')?></a></li>
2190
  <li class="normal" style=""><a style="color:#DB6014;font-weight:bolder;" href="#ag-templates" title="<?php _e('AG Custom Admin Themes', 'ag-custom-admin')?>"><?php _e('Themes', 'ag-custom-admin')?></a></li>
2191
  <li class="normal upgrade"><a href="https://cusmin.com/upgrade-to-cusmin?ref=menu" target="_blank" title="<?php _e('Upgrade to Cusmin', 'ag-custom-admin')?>"><img src="<?php echo plugins_url( 'images/cusminlogo.png', __FILE__ ) ?>" /><?php _e('Upgrade', 'ag-custom-admin')?></a></li>
2203
  <div id="section-cusmin" style="display:none;"><?php _e('All AG Custom Admin plugin\'s settings, except admin themes, are disabled. Please use', 'ag-custom-admin')?> <a href="options-general.php?page=cusmin">Cusmin</a> <?php _e('plugin to manage these settings.', 'ag-custom-admin')?></div>
2204
  <div id="section_general" style="display:none" class="ag_section">
2205
  <h2 class="section_title"><?php _e('General Settings', 'ag-custom-admin')?></h2>
2206
+ <?php $this->show_save_button_upper(); ?>
2207
  <p tabindex="0" class="agca-clear agca-tip"><i><?php _e('<strong>Tip: </strong>Move mouse cursor over the option label to see more information about an option', 'ag-custom-admin')?></i></p>
2208
  <table class="agca-clear form-table" width="500px">
2209
  <?php
2282
  </div>
2283
  <div id="section_admin_bar" style="display:none" class="ag_section">
2284
  <h2 class="section_title"><?php _e('Admin Bar Settings', 'ag-custom-admin'); ?></h2>
2285
+ <?php $this->show_save_button_upper(); ?>
2286
  <table class="form-table" width="500px">
2287
 
2288
  <?php
2506
 
2507
  <div id="section_admin_footer" style="display:none" class="ag_section">
2508
  <h2 class="section_title"><?php _e('Admin Footer Settings', 'ag-custom-admin'); ?></h2>
2509
+ <?php $this->show_save_button_upper(); ?>
2510
  <table class="form-table" width="500px">
2511
  <?php
2512
  $this->print_checkbox(array(
2553
  </div>
2554
  <div id="section_dashboard_page" style="display:none" class="ag_section">
2555
  <h2 class="section_title"><?php _e('Dashboard Page Settings', 'ag-custom-admin'); ?></h2>
2556
+ <?php $this->show_save_button_upper(); ?>
2557
  <table class="form-table" width="500px">
2558
  <?php
2559
 
2632
  </div>
2633
  <div id="section_login_page" style="display:none" class="ag_section">
2634
  <h2 class="section_title"><?php _e('Login Page Settings', 'ag-custom-admin'); ?></h2>
2635
+ <?php $this->show_save_button_upper(); ?>
2636
  <table class="form-table" width="500px">
2637
  <?php
2638
 
2726
  ?>
2727
  <div id="section_admin_menu" style="display:none" class="ag_section">
2728
  <h2 class="section_title"><?php _e('Admin Menu Settings', 'ag-custom-admin'); ?></h2>
2729
+ <?php $this->show_save_button_upper(); ?>
2730
  <table class="form-table" width="500px">
2731
  <tr valign="center" class="ag_table_major_options">
2732
  <td><label for="agca_admin_menu_turnonoff"><strong><?php _e('Apply admin menu customizations', 'ag-custom-admin'); ?></strong></label></td>
2884
  </div>
2885
  <div id="section_ag_colorizer_settings" style="display:none" class="ag_section">
2886
  <h2 class="section_title"><?php _e('Colorizer Page', 'ag-custom-admin'); ?></h2>
2887
+ <?php $this->show_save_button_upper(); ?>
2888
  <table class="form-table" width="500px">
2889
  <tr valign="center" class="ag_table_major_options">
2890
  <td><label for="agca_colorizer_turnonoff"><strong><?php _e('Apply Colorizer settings', 'ag-custom-admin'); ?></strong></label></td>
2948
  </div>
2949
  <div id="section_advanced" style="display:none" class="ag_section">
2950
  <h2 class="section_title"><?php _e('Advanced', 'ag-custom-admin'); ?></h2>
2951
+ <?php $this->show_save_button_upper(); ?>
2952
  <table class="form-table" width="500px">
2953
  <tr valign="center">
2954
  <td colspan="2">
2992
  </tr>
2993
  </table>
2994
  </div>
2995
+ <?php $this->show_save_button(); ?>
 
 
 
2996
  </form>
2997
  <form id="agca_templates_form" name="agca_templates_form" action="<?php echo get_site_url().$_SERVER['PHP_SELF'];?>?page=ag-custom-admin/plugin.php" method="post">
2998
  <?php wp_nonce_field('agca_form','_agca_token'); ?>
3005
  }
3006
 
3007
  #region PRIVATE METHODS
3008
+ function show_save_button_upper(){
3009
+ ?>
3010
+ <div class="save-button-upper">
3011
+ <?php $this->show_save_button() ?>
3012
+ </div>
3013
+ <?php
3014
+ }
3015
+ function show_save_button(){
3016
+ ?>
3017
+ <p class="submit agca-clear">
3018
+ <input type="button" id="save_plugin_settings" style="padding:0px" title="<?php _e('Save AG Custom Admin configuration', 'ag-custom-admin'); ?>" class="button-primary" value="<?php _e('Save Changes') ?>" onClick="savePluginSettings()" />
3019
+ </p>
3020
+ <?php
3021
+ }
3022
+
3023
  function print_checkbox($data){
3024
  $strAttributes = '';
3025
  $strOnchange = '';
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: wap
3
  Donate link: http://wordpressadminpanel.com/ag-custom-admin/
4
  Tags: admin, customize, hide, change admin, themes, admin themes, admin bar, login page
5
  Requires at least: 3.0
6
- Tested up to: 4.6
7
- Stable tag: 5.6.5
8
  License: GPLv3 or later
9
  License URI: https://www.gnu.org/licenses/gpl.txt
10
 
@@ -152,6 +152,14 @@ If you have the latest WordPress and plugin versions and you still experience so
152
 
153
  == Change Log ==
154
 
 
 
 
 
 
 
 
 
155
  = 5.6.5 =
156
  * Resolved Colorizer backround color issue in WP 4.6
157
  * Removed AGCA script from admin bar front end when user is not logged in
@@ -512,6 +520,9 @@ If you have the latest WordPress and plugin versions and you still experience so
512
 
513
  == Upgrade Notice ==
514
 
 
 
 
515
  = 5.6.5 =
516
  * Compatibility improvements
517
 
3
  Donate link: http://wordpressadminpanel.com/ag-custom-admin/
4
  Tags: admin, customize, hide, change admin, themes, admin themes, admin bar, login page
5
  Requires at least: 3.0
6
+ Tested up to: 4.7
7
+ Stable tag: 5.7
8
  License: GPLv3 or later
9
  License URI: https://www.gnu.org/licenses/gpl.txt
10
 
152
 
153
  == Change Log ==
154
 
155
+ = 5.7 =
156
+ * Added Save button on top
157
+ * Resolved blank page issue on first time install
158
+ * Few other small improvements
159
+ * Ready for WP 4.7
160
+ * Resolved issue: QuotaExceededError due to LocalStorage when Private Browsing in Safari
161
+ * Added acceptance test suite
162
+
163
  = 5.6.5 =
164
  * Resolved Colorizer backround color issue in WP 4.6
165
  * Removed AGCA script from admin bar front end when user is not logged in
520
 
521
  == Upgrade Notice ==
522
 
523
+ = 5.7 =
524
+ * Bug fixes. Ready for WordPress 4.7.
525
+
526
  = 5.6.5 =
527
  * Compatibility improvements
528
 
script/ag_script.js CHANGED
@@ -28,16 +28,22 @@ function agcaDebugObj(obj){
28
  /*use only on agca page*/
29
  if(window.location.href.indexOf(encodeURIComponent('ag-custom-admin/plugin.php')) !== -1 || window.location.href.indexOf('ag-custom-admin/plugin.php') !== -1){
30
  jQuery(function(){
 
 
 
31
  var agcapage = localStorage.getItem('agca-page');
32
  if(!agcapage){
33
- localStorage.setItem('agca-page', window.location.hash);
 
34
  agcapage = localStorage.getItem('agca-page');
35
  }
36
  window.location.hash = window.location.hash || agcapage;
37
  localStorage.setItem('agca-page', window.location.hash);
38
-
39
  });
40
  window.onhashchange = function(){
 
 
 
41
  localStorage.setItem('agca-page', window.location.hash);
42
  if(jQuery('#ag_main_menu a.selected').attr('href') !== window.location.hash){
43
  if(window.location.hash !== ""){
@@ -47,6 +53,21 @@ if(window.location.href.indexOf(encodeURIComponent('ag-custom-admin/plugin.php')
47
  };
48
  }
49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  function hideShowSubmenus(index){
51
  var finish = false;
52
  var found = false;
28
  /*use only on agca page*/
29
  if(window.location.href.indexOf(encodeURIComponent('ag-custom-admin/plugin.php')) !== -1 || window.location.href.indexOf('ag-custom-admin/plugin.php') !== -1){
30
  jQuery(function(){
31
+ if(!isLocalStorageNameSupported()){
32
+ return false;
33
+ }
34
  var agcapage = localStorage.getItem('agca-page');
35
  if(!agcapage){
36
+ var hash = window.location.hash || 'general-settings';
37
+ localStorage.setItem('agca-page', hash);
38
  agcapage = localStorage.getItem('agca-page');
39
  }
40
  window.location.hash = window.location.hash || agcapage;
41
  localStorage.setItem('agca-page', window.location.hash);
 
42
  });
43
  window.onhashchange = function(){
44
+ if(!isLocalStorageNameSupported()){
45
+ return false;
46
+ }
47
  localStorage.setItem('agca-page', window.location.hash);
48
  if(jQuery('#ag_main_menu a.selected').attr('href') !== window.location.hash){
49
  if(window.location.hash !== ""){
53
  };
54
  }
55
 
56
+ function isLocalStorageNameSupported()
57
+ {
58
+ var testKey = 'test-storage', storage = window.localStorage;
59
+ try
60
+ {
61
+ storage.setItem(testKey, '1');
62
+ storage.removeItem(testKey);
63
+ return true;
64
+ }
65
+ catch (error)
66
+ {
67
+ return false;
68
+ }
69
+ }
70
+
71
  function hideShowSubmenus(index){
72
  var finish = false;
73
  var found = false;
style/ag_style.css CHANGED
@@ -89,6 +89,10 @@ table .agca-tip {
89
  color: #999;
90
  }
91
 
 
 
 
 
92
  #ag_main_menu li {
93
  display: block;
94
  background-color: #DEF7C3;
89
  color: #999;
90
  }
91
 
92
+ #agca_form .save-button-upper{
93
+ padding-left: 20px;
94
+ }
95
+
96
  #ag_main_menu li {
97
  display: block;
98
  background-color: #DEF7C3;
tests/_bootstrap.php ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <?php
2
+ define('AGCA_SITE_URL','http://wp47.dev');
3
+ define('AGCA_SITE_USERNAME','admin');
4
+ define('AGCA_SITE_PASSWORD','admin');
tests/_data/dump.sql ADDED
@@ -0,0 +1 @@
 
1
+ /* Replace this file with actual dump of your database */
tests/_output/.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
1
+ *
2
+ !.gitignore
tests/_support/AcceptanceTester.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ /**
5
+ * Inherited Methods
6
+ * @method void wantToTest($text)
7
+ * @method void wantTo($text)
8
+ * @method void execute($callable)
9
+ * @method void expectTo($prediction)
10
+ * @method void expect($prediction)
11
+ * @method void amGoingTo($argumentation)
12
+ * @method void am($role)
13
+ * @method void lookForwardTo($achieveValue)
14
+ * @method void comment($description)
15
+ * @method \Codeception\Lib\Friend haveFriend($name, $actorClass = NULL)
16
+ *
17
+ * @SuppressWarnings(PHPMD)
18
+ */
19
+ class AcceptanceTester extends \Codeception\Actor
20
+ {
21
+ use _generated\AcceptanceTesterActions;
22
+
23
+ public function login()
24
+ {
25
+ $I = $this;
26
+ $I->amOnPage('/wp-login.php');
27
+ $I->see('Username or Email Address');
28
+ $I->submitForm('#loginform', [
29
+ 'log' => AGCA_SITE_USERNAME,
30
+ 'pwd' => AGCA_SITE_PASSWORD
31
+ ]);
32
+
33
+ //TODO: Make it work/
34
+ //$I->saveSessionSnapshot('login');
35
+ //$I->loadSessionSnapshot('login');
36
+
37
+ $I->see('Dashboard');
38
+ }
39
+ }
tests/_support/FunctionalTester.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ /**
5
+ * Inherited Methods
6
+ * @method void wantToTest($text)
7
+ * @method void wantTo($text)
8
+ * @method void execute($callable)
9
+ * @method void expectTo($prediction)
10
+ * @method void expect($prediction)
11
+ * @method void amGoingTo($argumentation)
12
+ * @method void am($role)
13
+ * @method void lookForwardTo($achieveValue)
14
+ * @method void comment($description)
15
+ * @method \Codeception\Lib\Friend haveFriend($name, $actorClass = NULL)
16
+ *
17
+ * @SuppressWarnings(PHPMD)
18
+ */
19
+ class FunctionalTester extends \Codeception\Actor
20
+ {
21
+ use _generated\FunctionalTesterActions;
22
+
23
+ /**
24
+ * Define custom actions here
25
+ */
26
+ }
tests/_support/Helper/Acceptance.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Helper;
3
+
4
+ // here you can define custom actions
5
+ // all public methods declared in helper class will be available in $I
6
+
7
+ class Acceptance extends \Codeception\Module
8
+ {
9
+
10
+ }
tests/_support/Helper/Functional.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Helper;
3
+
4
+ // here you can define custom actions
5
+ // all public methods declared in helper class will be available in $I
6
+
7
+ class Functional extends \Codeception\Module
8
+ {
9
+
10
+ }
tests/_support/Helper/Unit.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Helper;
3
+
4
+ // here you can define custom actions
5
+ // all public methods declared in helper class will be available in $I
6
+
7
+ class Unit extends \Codeception\Module
8
+ {
9
+
10
+ }
tests/_support/Page/AGCAPage.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Page;
3
+
4
+ use AcceptanceTester as AcceptanceTester;
5
+
6
+ class AGCAPage
7
+ {
8
+ // include url of current page
9
+ public static $URL = '/wp-admin/tools.php?page=ag-custom-admin/plugin.php#general-settings';
10
+
11
+ /**
12
+ * @var AcceptanceTester
13
+ */
14
+ private $I;
15
+
16
+ public function __construct(AcceptanceTester $I){
17
+ $this->I = $I;
18
+ }
19
+
20
+ /**
21
+ * Declare UI map for this page here. CSS or XPath allowed.
22
+ * public static $usernameField = '#username';
23
+ * public static $formSubmitButton = "#mainForm input[type=submit]";
24
+ */
25
+
26
+ /**
27
+ * Basic route example for your current URL
28
+ * You can append any additional parameter to URL
29
+ * and use it in tests like: Page\Edit::route('/123-post');
30
+ */
31
+ public static function route($param)
32
+ {
33
+ return static::$URL.$param;
34
+ }
35
+
36
+ /**
37
+ * Asserts that menu with text is visible
38
+ */
39
+ public function seeMenu($text){
40
+ $this->I->see($text, '#ag_main_menu li.normal a');
41
+ }
42
+
43
+ public function selectedMenu($text){
44
+ $this->I->see($text, '#ag_main_menu li.selected a');
45
+ }
46
+
47
+ public function amOnGeneralPage(){
48
+ $this->I->amOnPage($this::$URL);
49
+ $this->I->see('General Settings');
50
+ }
51
+
52
+ public function seeArea($text){
53
+ $this->I->see($text, '#agca_form .ag_table_heading h3');
54
+ }
55
+
56
+ public function saveSettings(){
57
+ $this->I->submitForm('#agca_form', []);
58
+ }
59
+ }
tests/_support/Page/GeneralPage.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Page;
3
+
4
+ class GeneralPage extends AGCAPage
5
+ {
6
+ public static $capabilityField = '#agca_form select#agca_admin_capability';
7
+ public static $capabilityLabel = 'AGCA admin capability:';
8
+ public static $capabilitySelected = '#agca_form #agca_admin_capability [selected]';
9
+ }
tests/_support/Page/WPDashboardPage.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Page;
3
+
4
+ use AcceptanceTester;
5
+
6
+ class WPDashboardPage
7
+ {
8
+ // include url of current page
9
+ public static $URL = '/wp-admin/index.php';
10
+
11
+ /**
12
+ * @var AcceptanceTester
13
+ */
14
+ private $I;
15
+
16
+ public function __construct(AcceptanceTester $I){
17
+ $this->I = $I;
18
+ }
19
+
20
+ /**
21
+ * Declare UI map for this page here. CSS or XPath allowed.
22
+ * public static $usernameField = '#username';
23
+ * public static $formSubmitButton = "#mainForm input[type=submit]";
24
+ */
25
+
26
+ /**
27
+ * Basic route example for your current URL
28
+ * You can append any additional parameter to URL
29
+ * and use it in tests like: Page\Edit::route('/123-post');
30
+ */
31
+ public static function route($param)
32
+ {
33
+ return static::$URL.$param;
34
+ }
35
+
36
+ public function amOnDashboardPage(){
37
+ $this->I->amOnPage($this::$URL);
38
+ $this->I->see('Dashboard', 'body h1:nth-child(1)');
39
+ }
40
+
41
+ public function canSeeScreenOptions($shouldSee = true){
42
+ $text = 'Screen Options';
43
+ $selector = '#show-settings-link';
44
+ if($shouldSee){
45
+ $this->I->canSee($text, $selector);
46
+ }else{
47
+ $this->I->dontSee($text, $selector);
48
+ }
49
+ }
50
+ }
tests/_support/UnitTester.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ /**
5
+ * Inherited Methods
6
+ * @method void wantToTest($text)
7
+ * @method void wantTo($text)
8
+ * @method void execute($callable)
9
+ * @method void expectTo($prediction)
10
+ * @method void expect($prediction)
11
+ * @method void amGoingTo($argumentation)
12
+ * @method void am($role)
13
+ * @method void lookForwardTo($achieveValue)
14
+ * @method void comment($description)
15
+ * @method \Codeception\Lib\Friend haveFriend($name, $actorClass = NULL)
16
+ *
17
+ * @SuppressWarnings(PHPMD)
18
+ */
19
+ class UnitTester extends \Codeception\Actor
20
+ {
21
+ use _generated\UnitTesterActions;
22
+
23
+ /**
24
+ * Define custom actions here
25
+ */
26
+ }
tests/_support/_generated/AcceptanceTesterActions.php ADDED
@@ -0,0 +1,3283 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php //[STAMP] b98a92315b61d8d3c1b09b583ff094b7
2
+ namespace _generated;
3
+
4
+ // This class was automatically generated by build task
5
+ // You should not change it manually as it will be overwritten on next build
6
+ // @codingStandardsIgnoreFile
7
+
8
+ use Codeception\Module\PhpBrowser;
9
+ use Codeception\Module\Db;
10
+ use Helper\Acceptance;
11
+ use Codeception\Module\Filesystem;
12
+ use Codeception\Module\Asserts;
13
+
14
+ trait AcceptanceTesterActions
15
+ {
16
+ /**
17
+ * @return \Codeception\Scenario
18
+ */
19
+ abstract protected function getScenario();
20
+
21
+
22
+ /**
23
+ * [!] Method is generated. Documentation taken from corresponding module.
24
+ *
25
+ * Alias to `haveHttpHeader`
26
+ *
27
+ * @param $name
28
+ * @param $value
29
+ * @see \Codeception\Module\PhpBrowser::setHeader()
30
+ */
31
+ public function setHeader($name, $value) {
32
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('setHeader', func_get_args()));
33
+ }
34
+
35
+
36
+ /**
37
+ * [!] Method is generated. Documentation taken from corresponding module.
38
+ *
39
+ * Authenticates user for HTTP_AUTH
40
+ *
41
+ * @param $username
42
+ * @param $password
43
+ * @see \Codeception\Module\PhpBrowser::amHttpAuthenticated()
44
+ */
45
+ public function amHttpAuthenticated($username, $password) {
46
+ return $this->getScenario()->runStep(new \Codeception\Step\Condition('amHttpAuthenticated', func_get_args()));
47
+ }
48
+
49
+
50
+ /**
51
+ * [!] Method is generated. Documentation taken from corresponding module.
52
+ *
53
+ * Open web page at the given absolute URL and sets its hostname as the base host.
54
+ *
55
+ * ``` php
56
+ * <?php
57
+ * $I->amOnUrl('http://codeception.com');
58
+ * $I->amOnPage('/quickstart'); // moves to http://codeception.com/quickstart
59
+ * ?>
60
+ * ```
61
+ * @see \Codeception\Module\PhpBrowser::amOnUrl()
62
+ */
63
+ public function amOnUrl($url) {
64
+ return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnUrl', func_get_args()));
65
+ }
66
+
67
+
68
+ /**
69
+ * [!] Method is generated. Documentation taken from corresponding module.
70
+ *
71
+ * Changes the subdomain for the 'url' configuration parameter.
72
+ * Does not open a page; use `amOnPage` for that.
73
+ *
74
+ * ``` php
75
+ * <?php
76
+ * // If config is: 'http://mysite.com'
77
+ * // or config is: 'http://www.mysite.com'
78
+ * // or config is: 'http://company.mysite.com'
79
+ *
80
+ * $I->amOnSubdomain('user');
81
+ * $I->amOnPage('/');
82
+ * // moves to http://user.mysite.com/
83
+ * ?>
84
+ * ```
85
+ *
86
+ * @param $subdomain
87
+ *
88
+ * @return mixed
89
+ * @see \Codeception\Module\PhpBrowser::amOnSubdomain()
90
+ */
91
+ public function amOnSubdomain($subdomain) {
92
+ return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnSubdomain', func_get_args()));
93
+ }
94
+
95
+
96
+ /**
97
+ * [!] Method is generated. Documentation taken from corresponding module.
98
+ *
99
+ * Low-level API method.
100
+ * If Codeception commands are not enough, use [Guzzle HTTP Client](http://guzzlephp.org/) methods directly
101
+ *
102
+ * Example:
103
+ *
104
+ * ``` php
105
+ * <?php
106
+ * $I->executeInGuzzle(function (\GuzzleHttp\Client $client) {
107
+ * $client->get('/get', ['query' => ['foo' => 'bar']]);
108
+ * });
109
+ * ?>
110
+ * ```
111
+ *
112
+ * It is not recommended to use this command on a regular basis.
113
+ * If Codeception lacks important Guzzle Client methods, implement them and submit patches.
114
+ *
115
+ * @param callable $function
116
+ * @see \Codeception\Module\PhpBrowser::executeInGuzzle()
117
+ */
118
+ public function executeInGuzzle($function) {
119
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('executeInGuzzle', func_get_args()));
120
+ }
121
+
122
+
123
+ /**
124
+ * [!] Method is generated. Documentation taken from corresponding module.
125
+ *
126
+ * Sets the HTTP header to the passed value - which is used on
127
+ * subsequent HTTP requests through PhpBrowser.
128
+ *
129
+ * Example:
130
+ * ```php
131
+ * <?php
132
+ * $I->setHeader('X-Requested-With', 'Codeception');
133
+ * $I->amOnPage('test-headers.php');
134
+ * ?>
135
+ * ```
136
+ *
137
+ * @param string $name the name of the request header
138
+ * @param string $value the value to set it to for subsequent
139
+ * requests
140
+ * @see \Codeception\Lib\InnerBrowser::haveHttpHeader()
141
+ */
142
+ public function haveHttpHeader($name, $value) {
143
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('haveHttpHeader', func_get_args()));
144
+ }
145
+
146
+
147
+ /**
148
+ * [!] Method is generated. Documentation taken from corresponding module.
149
+ *
150
+ * Deletes the header with the passed name. Subsequent requests
151
+ * will not have the deleted header in its request.
152
+ *
153
+ * Example:
154
+ * ```php
155
+ * <?php
156
+ * $I->haveHttpHeader('X-Requested-With', 'Codeception');
157
+ * $I->amOnPage('test-headers.php');
158
+ * // ...
159
+ * $I->deleteHeader('X-Requested-With');
160
+ * $I->amOnPage('some-other-page.php');
161
+ * ?>
162
+ * ```
163
+ *
164
+ * @param string $name the name of the header to delete.
165
+ * @see \Codeception\Lib\InnerBrowser::deleteHeader()
166
+ */
167
+ public function deleteHeader($name) {
168
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('deleteHeader', func_get_args()));
169
+ }
170
+
171
+
172
+ /**
173
+ * [!] Method is generated. Documentation taken from corresponding module.
174
+ *
175
+ * Opens the page for the given relative URI.
176
+ *
177
+ * ``` php
178
+ * <?php
179
+ * // opens front page
180
+ * $I->amOnPage('/');
181
+ * // opens /register page
182
+ * $I->amOnPage('/register');
183
+ * ```
184
+ *
185
+ * @param $page
186
+ * @see \Codeception\Lib\InnerBrowser::amOnPage()
187
+ */
188
+ public function amOnPage($page) {
189
+ return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnPage', func_get_args()));
190
+ }
191
+
192
+
193
+ /**
194
+ * [!] Method is generated. Documentation taken from corresponding module.
195
+ *
196
+ * Perform a click on a link or a button, given by a locator.
197
+ * If a fuzzy locator is given, the page will be searched for a button, link, or image matching the locator string.
198
+ * For buttons, the "value" attribute, "name" attribute, and inner text are searched.
199
+ * For links, the link text is searched.
200
+ * For images, the "alt" attribute and inner text of any parent links are searched.
201
+ *
202
+ * The second parameter is a context (CSS or XPath locator) to narrow the search.
203
+ *
204
+ * Note that if the locator matches a button of type `submit`, the form will be submitted.
205
+ *
206
+ * ``` php
207
+ * <?php
208
+ * // simple link
209
+ * $I->click('Logout');
210
+ * // button of form
211
+ * $I->click('Submit');
212
+ * // CSS button
213
+ * $I->click('#form input[type=submit]');
214
+ * // XPath
215
+ * $I->click('//form/*[@type=submit]');
216
+ * // link in context
217
+ * $I->click('Logout', '#nav');
218
+ * // using strict locator
219
+ * $I->click(['link' => 'Login']);
220
+ * ?>
221
+ * ```
222
+ *
223
+ * @param $link
224
+ * @param $context
225
+ * @see \Codeception\Lib\InnerBrowser::click()
226
+ */
227
+ public function click($link, $context = null) {
228
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('click', func_get_args()));
229
+ }
230
+
231
+
232
+ /**
233
+ * [!] Method is generated. Documentation taken from corresponding module.
234
+ *
235
+ * Checks that the current page contains the given string (case insensitive).
236
+ *
237
+ * You can specify a specific HTML element (via CSS or XPath) as the second
238
+ * parameter to only search within that element.
239
+ *
240
+ * ``` php
241
+ * <?php
242
+ * $I->see('Logout'); // I can suppose user is logged in
243
+ * $I->see('Sign Up', 'h1'); // I can suppose it's a signup page
244
+ * $I->see('Sign Up', '//body/h1'); // with XPath
245
+ * ```
246
+ *
247
+ * Note that the search is done after stripping all HTML tags from the body,
248
+ * so `$I->see('strong')` will return true for strings like:
249
+ *
250
+ * - `<p>I am Stronger than thou</p>`
251
+ * - `<script>document.createElement('strong');</script>`
252
+ *
253
+ * But will *not* be true for strings like:
254
+ *
255
+ * - `<strong>Home</strong>`
256
+ * - `<div class="strong">Home</strong>`
257
+ * - `<!-- strong -->`
258
+ *
259
+ * For checking the raw source code, use `seeInSource()`.
260
+ *
261
+ * @param $text
262
+ * @param null $selector
263
+ * Conditional Assertion: Test won't be stopped on fail
264
+ * @see \Codeception\Lib\InnerBrowser::see()
265
+ */
266
+ public function canSee($text, $selector = null) {
267
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('see', func_get_args()));
268
+ }
269
+ /**
270
+ * [!] Method is generated. Documentation taken from corresponding module.
271
+ *
272
+ * Checks that the current page contains the given string (case insensitive).
273
+ *
274
+ * You can specify a specific HTML element (via CSS or XPath) as the second
275
+ * parameter to only search within that element.
276
+ *
277
+ * ``` php
278
+ * <?php
279
+ * $I->see('Logout'); // I can suppose user is logged in
280
+ * $I->see('Sign Up', 'h1'); // I can suppose it's a signup page
281
+ * $I->see('Sign Up', '//body/h1'); // with XPath
282
+ * ```
283
+ *
284
+ * Note that the search is done after stripping all HTML tags from the body,
285
+ * so `$I->see('strong')` will return true for strings like:
286
+ *
287
+ * - `<p>I am Stronger than thou</p>`
288
+ * - `<script>document.createElement('strong');</script>`
289
+ *
290
+ * But will *not* be true for strings like:
291
+ *
292
+ * - `<strong>Home</strong>`
293
+ * - `<div class="strong">Home</strong>`
294
+ * - `<!-- strong -->`
295
+ *
296
+ * For checking the raw source code, use `seeInSource()`.
297
+ *
298
+ * @param $text
299
+ * @param null $selector
300
+ * @see \Codeception\Lib\InnerBrowser::see()
301
+ */
302
+ public function see($text, $selector = null) {
303
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('see', func_get_args()));
304
+ }
305
+
306
+
307
+ /**
308
+ * [!] Method is generated. Documentation taken from corresponding module.
309
+ *
310
+ * Checks that the current page doesn't contain the text specified (case insensitive).
311
+ * Give a locator as the second parameter to match a specific region.
312
+ *
313
+ * ```php
314
+ * <?php
315
+ * $I->dontSee('Login'); // I can suppose user is already logged in
316
+ * $I->dontSee('Sign Up','h1'); // I can suppose it's not a signup page
317
+ * $I->dontSee('Sign Up','//body/h1'); // with XPath
318
+ * ```
319
+ *
320
+ * Note that the search is done after stripping all HTML tags from the body,
321
+ * so `$I->dontSee('strong')` will fail on strings like:
322
+ *
323
+ * - `<p>I am Stronger than thou</p>`
324
+ * - `<script>document.createElement('strong');</script>`
325
+ *
326
+ * But will ignore strings like:
327
+ *
328
+ * - `<strong>Home</strong>`
329
+ * - `<div class="strong">Home</strong>`
330
+ * - `<!-- strong -->`
331
+ *
332
+ * For checking the raw source code, use `seeInSource()`.
333
+ *
334
+ * @param $text
335
+ * @param null $selector
336
+ * Conditional Assertion: Test won't be stopped on fail
337
+ * @see \Codeception\Lib\InnerBrowser::dontSee()
338
+ */
339
+ public function cantSee($text, $selector = null) {
340
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSee', func_get_args()));
341
+ }
342
+ /**
343
+ * [!] Method is generated. Documentation taken from corresponding module.
344
+ *
345
+ * Checks that the current page doesn't contain the text specified (case insensitive).
346
+ * Give a locator as the second parameter to match a specific region.
347
+ *
348
+ * ```php
349
+ * <?php
350
+ * $I->dontSee('Login'); // I can suppose user is already logged in
351
+ * $I->dontSee('Sign Up','h1'); // I can suppose it's not a signup page
352
+ * $I->dontSee('Sign Up','//body/h1'); // with XPath
353
+ * ```
354
+ *
355
+ * Note that the search is done after stripping all HTML tags from the body,
356
+ * so `$I->dontSee('strong')` will fail on strings like:
357
+ *
358
+ * - `<p>I am Stronger than thou</p>`
359
+ * - `<script>document.createElement('strong');</script>`
360
+ *
361
+ * But will ignore strings like:
362
+ *
363
+ * - `<strong>Home</strong>`
364
+ * - `<div class="strong">Home</strong>`
365
+ * - `<!-- strong -->`
366
+ *
367
+ * For checking the raw source code, use `seeInSource()`.
368
+ *
369
+ * @param $text
370
+ * @param null $selector
371
+ * @see \Codeception\Lib\InnerBrowser::dontSee()
372
+ */
373
+ public function dontSee($text, $selector = null) {
374
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSee', func_get_args()));
375
+ }
376
+
377
+
378
+ /**
379
+ * [!] Method is generated. Documentation taken from corresponding module.
380
+ *
381
+ * Checks that the current page contains the given string in its
382
+ * raw source code.
383
+ *
384
+ * ``` php
385
+ * <?php
386
+ * $I->seeInSource('<h1>Green eggs &amp; ham</h1>');
387
+ * ```
388
+ *
389
+ * @param $raw
390
+ * Conditional Assertion: Test won't be stopped on fail
391
+ * @see \Codeception\Lib\InnerBrowser::seeInSource()
392
+ */
393
+ public function canSeeInSource($raw) {
394
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInSource', func_get_args()));
395
+ }
396
+ /**
397
+ * [!] Method is generated. Documentation taken from corresponding module.
398
+ *
399
+ * Checks that the current page contains the given string in its
400
+ * raw source code.
401
+ *
402
+ * ``` php
403
+ * <?php
404
+ * $I->seeInSource('<h1>Green eggs &amp; ham</h1>');
405
+ * ```
406
+ *
407
+ * @param $raw
408
+ * @see \Codeception\Lib\InnerBrowser::seeInSource()
409
+ */
410
+ public function seeInSource($raw) {
411
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInSource', func_get_args()));
412
+ }
413
+
414
+
415
+ /**
416
+ * [!] Method is generated. Documentation taken from corresponding module.
417
+ *
418
+ * Checks that the current page contains the given string in its
419
+ * raw source code.
420
+ *
421
+ * ```php
422
+ * <?php
423
+ * $I->dontSeeInSource('<h1>Green eggs &amp; ham</h1>');
424
+ * ```
425
+ *
426
+ * @param $raw
427
+ * Conditional Assertion: Test won't be stopped on fail
428
+ * @see \Codeception\Lib\InnerBrowser::dontSeeInSource()
429
+ */
430
+ public function cantSeeInSource($raw) {
431
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInSource', func_get_args()));
432
+ }
433
+ /**
434
+ * [!] Method is generated. Documentation taken from corresponding module.
435
+ *
436
+ * Checks that the current page contains the given string in its
437
+ * raw source code.
438
+ *
439
+ * ```php
440
+ * <?php
441
+ * $I->dontSeeInSource('<h1>Green eggs &amp; ham</h1>');
442
+ * ```
443
+ *
444
+ * @param $raw
445
+ * @see \Codeception\Lib\InnerBrowser::dontSeeInSource()
446
+ */
447
+ public function dontSeeInSource($raw) {
448
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInSource', func_get_args()));
449
+ }
450
+
451
+
452
+ /**
453
+ * [!] Method is generated. Documentation taken from corresponding module.
454
+ *
455
+ * Checks that there's a link with the specified text.
456
+ * Give a full URL as the second parameter to match links with that exact URL.
457
+ *
458
+ * ``` php
459
+ * <?php
460
+ * $I->seeLink('Logout'); // matches <a href="#">Logout</a>
461
+ * $I->seeLink('Logout','/logout'); // matches <a href="/logout">Logout</a>
462
+ * ?>
463
+ * ```
464
+ *
465
+ * @param $text
466
+ * @param null $url
467
+ * Conditional Assertion: Test won't be stopped on fail
468
+ * @see \Codeception\Lib\InnerBrowser::seeLink()
469
+ */
470
+ public function canSeeLink($text, $url = null) {
471
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeLink', func_get_args()));
472
+ }
473
+ /**
474
+ * [!] Method is generated. Documentation taken from corresponding module.
475
+ *
476
+ * Checks that there's a link with the specified text.
477
+ * Give a full URL as the second parameter to match links with that exact URL.
478
+ *
479
+ * ``` php
480
+ * <?php
481
+ * $I->seeLink('Logout'); // matches <a href="#">Logout</a>
482
+ * $I->seeLink('Logout','/logout'); // matches <a href="/logout">Logout</a>
483
+ * ?>
484
+ * ```
485
+ *
486
+ * @param $text
487
+ * @param null $url
488
+ * @see \Codeception\Lib\InnerBrowser::seeLink()
489
+ */
490
+ public function seeLink($text, $url = null) {
491
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeLink', func_get_args()));
492
+ }
493
+
494
+
495
+ /**
496
+ * [!] Method is generated. Documentation taken from corresponding module.
497
+ *
498
+ * Checks that the page doesn't contain a link with the given string.
499
+ * If the second parameter is given, only links with a matching "href" attribute will be checked.
500
+ *
501
+ * ``` php
502
+ * <?php
503
+ * $I->dontSeeLink('Logout'); // I suppose user is not logged in
504
+ * $I->dontSeeLink('Checkout now', '/store/cart.php');
505
+ * ?>
506
+ * ```
507
+ *
508
+ * @param $text
509
+ * @param null $url
510
+ * Conditional Assertion: Test won't be stopped on fail
511
+ * @see \Codeception\Lib\InnerBrowser::dontSeeLink()
512
+ */
513
+ public function cantSeeLink($text, $url = null) {
514
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeLink', func_get_args()));
515
+ }
516
+ /**
517
+ * [!] Method is generated. Documentation taken from corresponding module.
518
+ *
519
+ * Checks that the page doesn't contain a link with the given string.
520
+ * If the second parameter is given, only links with a matching "href" attribute will be checked.
521
+ *
522
+ * ``` php
523
+ * <?php
524
+ * $I->dontSeeLink('Logout'); // I suppose user is not logged in
525
+ * $I->dontSeeLink('Checkout now', '/store/cart.php');
526
+ * ?>
527
+ * ```
528
+ *
529
+ * @param $text
530
+ * @param null $url
531
+ * @see \Codeception\Lib\InnerBrowser::dontSeeLink()
532
+ */
533
+ public function dontSeeLink($text, $url = null) {
534
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeLink', func_get_args()));
535
+ }
536
+
537
+
538
+ /**
539
+ * [!] Method is generated. Documentation taken from corresponding module.
540
+ *
541
+ * Checks that current URI contains the given string.
542
+ *
543
+ * ``` php
544
+ * <?php
545
+ * // to match: /home/dashboard
546
+ * $I->seeInCurrentUrl('home');
547
+ * // to match: /users/1
548
+ * $I->seeInCurrentUrl('/users/');
549
+ * ?>
550
+ * ```
551
+ *
552
+ * @param $uri
553
+ * Conditional Assertion: Test won't be stopped on fail
554
+ * @see \Codeception\Lib\InnerBrowser::seeInCurrentUrl()
555
+ */
556
+ public function canSeeInCurrentUrl($uri) {
557
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInCurrentUrl', func_get_args()));
558
+ }
559
+ /**
560
+ * [!] Method is generated. Documentation taken from corresponding module.
561
+ *
562
+ * Checks that current URI contains the given string.
563
+ *
564
+ * ``` php
565
+ * <?php
566
+ * // to match: /home/dashboard
567
+ * $I->seeInCurrentUrl('home');
568
+ * // to match: /users/1
569
+ * $I->seeInCurrentUrl('/users/');
570
+ * ?>
571
+ * ```
572
+ *
573
+ * @param $uri
574
+ * @see \Codeception\Lib\InnerBrowser::seeInCurrentUrl()
575
+ */
576
+ public function seeInCurrentUrl($uri) {
577
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInCurrentUrl', func_get_args()));
578
+ }
579
+
580
+
581
+ /**
582
+ * [!] Method is generated. Documentation taken from corresponding module.
583
+ *
584
+ * Checks that the current URI doesn't contain the given string.
585
+ *
586
+ * ``` php
587
+ * <?php
588
+ * $I->dontSeeInCurrentUrl('/users/');
589
+ * ?>
590
+ * ```
591
+ *
592
+ * @param $uri
593
+ * Conditional Assertion: Test won't be stopped on fail
594
+ * @see \Codeception\Lib\InnerBrowser::dontSeeInCurrentUrl()
595
+ */
596
+ public function cantSeeInCurrentUrl($uri) {
597
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInCurrentUrl', func_get_args()));
598
+ }
599
+ /**
600
+ * [!] Method is generated. Documentation taken from corresponding module.
601
+ *
602
+ * Checks that the current URI doesn't contain the given string.
603
+ *
604
+ * ``` php
605
+ * <?php
606
+ * $I->dontSeeInCurrentUrl('/users/');
607
+ * ?>
608
+ * ```
609
+ *
610
+ * @param $uri
611
+ * @see \Codeception\Lib\InnerBrowser::dontSeeInCurrentUrl()
612
+ */
613
+ public function dontSeeInCurrentUrl($uri) {
614
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInCurrentUrl', func_get_args()));
615
+ }
616
+
617
+
618
+ /**
619
+ * [!] Method is generated. Documentation taken from corresponding module.
620
+ *
621
+ * Checks that the current URL is equal to the given string.
622
+ * Unlike `seeInCurrentUrl`, this only matches the full URL.
623
+ *
624
+ * ``` php
625
+ * <?php
626
+ * // to match root url
627
+ * $I->seeCurrentUrlEquals('/');
628
+ * ?>
629
+ * ```
630
+ *
631
+ * @param $uri
632
+ * Conditional Assertion: Test won't be stopped on fail
633
+ * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlEquals()
634
+ */
635
+ public function canSeeCurrentUrlEquals($uri) {
636
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlEquals', func_get_args()));
637
+ }
638
+ /**
639
+ * [!] Method is generated. Documentation taken from corresponding module.
640
+ *
641
+ * Checks that the current URL is equal to the given string.
642
+ * Unlike `seeInCurrentUrl`, this only matches the full URL.
643
+ *
644
+ * ``` php
645
+ * <?php
646
+ * // to match root url
647
+ * $I->seeCurrentUrlEquals('/');
648
+ * ?>
649
+ * ```
650
+ *
651
+ * @param $uri
652
+ * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlEquals()
653
+ */
654
+ public function seeCurrentUrlEquals($uri) {
655
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeCurrentUrlEquals', func_get_args()));
656
+ }
657
+
658
+
659
+ /**
660
+ * [!] Method is generated. Documentation taken from corresponding module.
661
+ *
662
+ * Checks that the current URL doesn't equal the given string.
663
+ * Unlike `dontSeeInCurrentUrl`, this only matches the full URL.
664
+ *
665
+ * ``` php
666
+ * <?php
667
+ * // current url is not root
668
+ * $I->dontSeeCurrentUrlEquals('/');
669
+ * ?>
670
+ * ```
671
+ *
672
+ * @param $uri
673
+ * Conditional Assertion: Test won't be stopped on fail
674
+ * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlEquals()
675
+ */
676
+ public function cantSeeCurrentUrlEquals($uri) {
677
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlEquals', func_get_args()));
678
+ }
679
+ /**
680
+ * [!] Method is generated. Documentation taken from corresponding module.
681
+ *
682
+ * Checks that the current URL doesn't equal the given string.
683
+ * Unlike `dontSeeInCurrentUrl`, this only matches the full URL.
684
+ *
685
+ * ``` php
686
+ * <?php
687
+ * // current url is not root
688
+ * $I->dontSeeCurrentUrlEquals('/');
689
+ * ?>
690
+ * ```
691
+ *
692
+ * @param $uri
693
+ * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlEquals()
694
+ */
695
+ public function dontSeeCurrentUrlEquals($uri) {
696
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeCurrentUrlEquals', func_get_args()));
697
+ }
698
+
699
+
700
+ /**
701
+ * [!] Method is generated. Documentation taken from corresponding module.
702
+ *
703
+ * Checks that the current URL matches the given regular expression.
704
+ *
705
+ * ``` php
706
+ * <?php
707
+ * // to match root url
708
+ * $I->seeCurrentUrlMatches('~$/users/(\d+)~');
709
+ * ?>
710
+ * ```
711
+ *
712
+ * @param $uri
713
+ * Conditional Assertion: Test won't be stopped on fail
714
+ * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlMatches()
715
+ */
716
+ public function canSeeCurrentUrlMatches($uri) {
717
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlMatches', func_get_args()));
718
+ }
719
+ /**
720
+ * [!] Method is generated. Documentation taken from corresponding module.
721
+ *
722
+ * Checks that the current URL matches the given regular expression.
723
+ *
724
+ * ``` php
725
+ * <?php
726
+ * // to match root url
727
+ * $I->seeCurrentUrlMatches('~$/users/(\d+)~');
728
+ * ?>
729
+ * ```
730
+ *
731
+ * @param $uri
732
+ * @see \Codeception\Lib\InnerBrowser::seeCurrentUrlMatches()
733
+ */
734
+ public function seeCurrentUrlMatches($uri) {
735
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeCurrentUrlMatches', func_get_args()));
736
+ }
737
+
738
+
739
+ /**
740
+ * [!] Method is generated. Documentation taken from corresponding module.
741
+ *
742
+ * Checks that current url doesn't match the given regular expression.
743
+ *
744
+ * ``` php
745
+ * <?php
746
+ * // to match root url
747
+ * $I->dontSeeCurrentUrlMatches('~$/users/(\d+)~');
748
+ * ?>
749
+ * ```
750
+ *
751
+ * @param $uri
752
+ * Conditional Assertion: Test won't be stopped on fail
753
+ * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlMatches()
754
+ */
755
+ public function cantSeeCurrentUrlMatches($uri) {
756
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlMatches', func_get_args()));
757
+ }
758
+ /**
759
+ * [!] Method is generated. Documentation taken from corresponding module.
760
+ *
761
+ * Checks that current url doesn't match the given regular expression.
762
+ *
763
+ * ``` php
764
+ * <?php
765
+ * // to match root url
766
+ * $I->dontSeeCurrentUrlMatches('~$/users/(\d+)~');
767
+ * ?>
768
+ * ```
769
+ *
770
+ * @param $uri
771
+ * @see \Codeception\Lib\InnerBrowser::dontSeeCurrentUrlMatches()
772
+ */
773
+ public function dontSeeCurrentUrlMatches($uri) {
774
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeCurrentUrlMatches', func_get_args()));
775
+ }
776
+
777
+
778
+ /**
779
+ * [!] Method is generated. Documentation taken from corresponding module.
780
+ *
781
+ * Executes the given regular expression against the current URI and returns the first match.
782
+ * If no parameters are provided, the full URI is returned.
783
+ *
784
+ * ``` php
785
+ * <?php
786
+ * $user_id = $I->grabFromCurrentUrl('~$/user/(\d+)/~');
787
+ * $uri = $I->grabFromCurrentUrl();
788
+ * ?>
789
+ * ```
790
+ *
791
+ * @param null $uri
792
+ *
793
+ * @return mixed
794
+ * @see \Codeception\Lib\InnerBrowser::grabFromCurrentUrl()
795
+ */
796
+ public function grabFromCurrentUrl($uri = null) {
797
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('grabFromCurrentUrl', func_get_args()));
798
+ }
799
+
800
+
801
+ /**
802
+ * [!] Method is generated. Documentation taken from corresponding module.
803
+ *
804
+ * Checks that the specified checkbox is checked.
805
+ *
806
+ * ``` php
807
+ * <?php
808
+ * $I->seeCheckboxIsChecked('#agree'); // I suppose user agreed to terms
809
+ * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user agreed to terms, If there is only one checkbox in form.
810
+ * $I->seeCheckboxIsChecked('//form/input[@type=checkbox and @name=agree]');
811
+ * ?>
812
+ * ```
813
+ *
814
+ * @param $checkbox
815
+ * Conditional Assertion: Test won't be stopped on fail
816
+ * @see \Codeception\Lib\InnerBrowser::seeCheckboxIsChecked()
817
+ */
818
+ public function canSeeCheckboxIsChecked($checkbox) {
819
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCheckboxIsChecked', func_get_args()));
820
+ }
821
+ /**
822
+ * [!] Method is generated. Documentation taken from corresponding module.
823
+ *
824
+ * Checks that the specified checkbox is checked.
825
+ *
826
+ * ``` php
827
+ * <?php
828
+ * $I->seeCheckboxIsChecked('#agree'); // I suppose user agreed to terms
829
+ * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user agreed to terms, If there is only one checkbox in form.
830
+ * $I->seeCheckboxIsChecked('//form/input[@type=checkbox and @name=agree]');
831
+ * ?>
832
+ * ```
833
+ *
834
+ * @param $checkbox
835
+ * @see \Codeception\Lib\InnerBrowser::seeCheckboxIsChecked()
836
+ */
837
+ public function seeCheckboxIsChecked($checkbox) {
838
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeCheckboxIsChecked', func_get_args()));
839
+ }
840
+
841
+
842
+ /**
843
+ * [!] Method is generated. Documentation taken from corresponding module.
844
+ *
845
+ * Check that the specified checkbox is unchecked.
846
+ *
847
+ * ``` php
848
+ * <?php
849
+ * $I->dontSeeCheckboxIsChecked('#agree'); // I suppose user didn't agree to terms
850
+ * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user didn't check the first checkbox in form.
851
+ * ?>
852
+ * ```
853
+ *
854
+ * @param $checkbox
855
+ * Conditional Assertion: Test won't be stopped on fail
856
+ * @see \Codeception\Lib\InnerBrowser::dontSeeCheckboxIsChecked()
857
+ */
858
+ public function cantSeeCheckboxIsChecked($checkbox) {
859
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCheckboxIsChecked', func_get_args()));
860
+ }
861
+ /**
862
+ * [!] Method is generated. Documentation taken from corresponding module.
863
+ *
864
+ * Check that the specified checkbox is unchecked.
865
+ *
866
+ * ``` php
867
+ * <?php
868
+ * $I->dontSeeCheckboxIsChecked('#agree'); // I suppose user didn't agree to terms
869
+ * $I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user didn't check the first checkbox in form.
870
+ * ?>
871
+ * ```
872
+ *
873
+ * @param $checkbox
874
+ * @see \Codeception\Lib\InnerBrowser::dontSeeCheckboxIsChecked()
875
+ */
876
+ public function dontSeeCheckboxIsChecked($checkbox) {
877
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeCheckboxIsChecked', func_get_args()));
878
+ }
879
+
880
+
881
+ /**
882
+ * [!] Method is generated. Documentation taken from corresponding module.
883
+ *
884
+ * Checks that the given input field or textarea contains the given value.
885
+ * For fuzzy locators, fields are matched by label text, the "name" attribute, CSS, and XPath.
886
+ *
887
+ * ``` php
888
+ * <?php
889
+ * $I->seeInField('Body','Type your comment here');
890
+ * $I->seeInField('form textarea[name=body]','Type your comment here');
891
+ * $I->seeInField('form input[type=hidden]','hidden_value');
892
+ * $I->seeInField('#searchform input','Search');
893
+ * $I->seeInField('//form/*[@name=search]','Search');
894
+ * $I->seeInField(['name' => 'search'], 'Search');
895
+ * ?>
896
+ * ```
897
+ *
898
+ * @param $field
899
+ * @param $value
900
+ * Conditional Assertion: Test won't be stopped on fail
901
+ * @see \Codeception\Lib\InnerBrowser::seeInField()
902
+ */
903
+ public function canSeeInField($field, $value) {
904
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInField', func_get_args()));
905
+ }
906
+ /**
907
+ * [!] Method is generated. Documentation taken from corresponding module.
908
+ *
909
+ * Checks that the given input field or textarea contains the given value.
910
+ * For fuzzy locators, fields are matched by label text, the "name" attribute, CSS, and XPath.
911
+ *
912
+ * ``` php
913
+ * <?php
914
+ * $I->seeInField('Body','Type your comment here');
915
+ * $I->seeInField('form textarea[name=body]','Type your comment here');
916
+ * $I->seeInField('form input[type=hidden]','hidden_value');
917
+ * $I->seeInField('#searchform input','Search');
918
+ * $I->seeInField('//form/*[@name=search]','Search');
919
+ * $I->seeInField(['name' => 'search'], 'Search');
920
+ * ?>
921
+ * ```
922
+ *
923
+ * @param $field
924
+ * @param $value
925
+ * @see \Codeception\Lib\InnerBrowser::seeInField()
926
+ */
927
+ public function seeInField($field, $value) {
928
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInField', func_get_args()));
929
+ }
930
+
931
+
932
+ /**
933
+ * [!] Method is generated. Documentation taken from corresponding module.
934
+ *
935
+ * Checks that an input field or textarea doesn't contain the given value.
936
+ * For fuzzy locators, the field is matched by label text, CSS and XPath.
937
+ *
938
+ * ``` php
939
+ * <?php
940
+ * $I->dontSeeInField('Body','Type your comment here');
941
+ * $I->dontSeeInField('form textarea[name=body]','Type your comment here');
942
+ * $I->dontSeeInField('form input[type=hidden]','hidden_value');
943
+ * $I->dontSeeInField('#searchform input','Search');
944
+ * $I->dontSeeInField('//form/*[@name=search]','Search');
945
+ * $I->dontSeeInField(['name' => 'search'], 'Search');
946
+ * ?>
947
+ * ```
948
+ *
949
+ * @param $field
950
+ * @param $value
951
+ * Conditional Assertion: Test won't be stopped on fail
952
+ * @see \Codeception\Lib\InnerBrowser::dontSeeInField()
953
+ */
954
+ public function cantSeeInField($field, $value) {
955
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInField', func_get_args()));
956
+ }
957
+ /**
958
+ * [!] Method is generated. Documentation taken from corresponding module.
959
+ *
960
+ * Checks that an input field or textarea doesn't contain the given value.
961
+ * For fuzzy locators, the field is matched by label text, CSS and XPath.
962
+ *
963
+ * ``` php
964
+ * <?php
965
+ * $I->dontSeeInField('Body','Type your comment here');
966
+ * $I->dontSeeInField('form textarea[name=body]','Type your comment here');
967
+ * $I->dontSeeInField('form input[type=hidden]','hidden_value');
968
+ * $I->dontSeeInField('#searchform input','Search');
969
+ * $I->dontSeeInField('//form/*[@name=search]','Search');
970
+ * $I->dontSeeInField(['name' => 'search'], 'Search');
971
+ * ?>
972
+ * ```
973
+ *
974
+ * @param $field
975
+ * @param $value
976
+ * @see \Codeception\Lib\InnerBrowser::dontSeeInField()
977
+ */
978
+ public function dontSeeInField($field, $value) {
979
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInField', func_get_args()));
980
+ }
981
+
982
+
983
+ /**
984
+ * [!] Method is generated. Documentation taken from corresponding module.
985
+ *
986
+ * Checks if the array of form parameters (name => value) are set on the form matched with the
987
+ * passed selector.
988
+ *
989
+ * ``` php
990
+ * <?php
991
+ * $I->seeInFormFields('form[name=myform]', [
992
+ * 'input1' => 'value',
993
+ * 'input2' => 'other value',
994
+ * ]);
995
+ * ?>
996
+ * ```
997
+ *
998
+ * For multi-select elements, or to check values of multiple elements with the same name, an
999
+ * array may be passed:
1000
+ *
1001
+ * ``` php
1002
+ * <?php
1003
+ * $I->seeInFormFields('.form-class', [
1004
+ * 'multiselect' => [
1005
+ * 'value1',
1006
+ * 'value2',
1007
+ * ],
1008
+ * 'checkbox[]' => [
1009
+ * 'a checked value',
1010
+ * 'another checked value',
1011
+ * ],
1012
+ * ]);
1013
+ * ?>
1014
+ * ```
1015
+ *
1016
+ * Additionally, checkbox values can be checked with a boolean.
1017
+ *
1018
+ * ``` php
1019
+ * <?php
1020
+ * $I->seeInFormFields('#form-id', [
1021
+ * 'checkbox1' => true, // passes if checked
1022
+ * 'checkbox2' => false, // passes if unchecked
1023
+ * ]);
1024
+ * ?>
1025
+ * ```
1026
+ *
1027
+ * Pair this with submitForm for quick testing magic.
1028
+ *
1029
+ * ``` php
1030
+ * <?php
1031
+ * $form = [
1032
+ * 'field1' => 'value',
1033
+ * 'field2' => 'another value',
1034
+ * 'checkbox1' => true,
1035
+ * // ...
1036
+ * ];
1037
+ * $I->submitForm('//form[@id=my-form]', $form, 'submitButton');
1038
+ * // $I->amOnPage('/path/to/form-page') may be needed
1039
+ * $I->seeInFormFields('//form[@id=my-form]', $form);
1040
+ * ?>
1041
+ * ```
1042
+ *
1043
+ * @param $formSelector
1044
+ * @param $params
1045
+ * Conditional Assertion: Test won't be stopped on fail
1046
+ * @see \Codeception\Lib\InnerBrowser::seeInFormFields()
1047
+ */
1048
+ public function canSeeInFormFields($formSelector, $params) {
1049
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInFormFields', func_get_args()));
1050
+ }
1051
+ /**
1052
+ * [!] Method is generated. Documentation taken from corresponding module.
1053
+ *
1054
+ * Checks if the array of form parameters (name => value) are set on the form matched with the
1055
+ * passed selector.
1056
+ *
1057
+ * ``` php
1058
+ * <?php
1059
+ * $I->seeInFormFields('form[name=myform]', [
1060
+ * 'input1' => 'value',
1061
+ * 'input2' => 'other value',
1062
+ * ]);
1063
+ * ?>
1064
+ * ```
1065
+ *
1066
+ * For multi-select elements, or to check values of multiple elements with the same name, an
1067
+ * array may be passed:
1068
+ *
1069
+ * ``` php
1070
+ * <?php
1071
+ * $I->seeInFormFields('.form-class', [
1072
+ * 'multiselect' => [
1073
+ * 'value1',
1074
+ * 'value2',
1075
+ * ],
1076
+ * 'checkbox[]' => [
1077
+ * 'a checked value',
1078
+ * 'another checked value',
1079
+ * ],
1080
+ * ]);
1081
+ * ?>
1082
+ * ```
1083
+ *
1084
+ * Additionally, checkbox values can be checked with a boolean.
1085
+ *
1086
+ * ``` php
1087
+ * <?php
1088
+ * $I->seeInFormFields('#form-id', [
1089
+ * 'checkbox1' => true, // passes if checked
1090
+ * 'checkbox2' => false, // passes if unchecked
1091
+ * ]);
1092
+ * ?>
1093
+ * ```
1094
+ *
1095
+ * Pair this with submitForm for quick testing magic.
1096
+ *
1097
+ * ``` php
1098
+ * <?php
1099
+ * $form = [
1100
+ * 'field1' => 'value',
1101
+ * 'field2' => 'another value',
1102
+ * 'checkbox1' => true,
1103
+ * // ...
1104
+ * ];
1105
+ * $I->submitForm('//form[@id=my-form]', $form, 'submitButton');
1106
+ * // $I->amOnPage('/path/to/form-page') may be needed
1107
+ * $I->seeInFormFields('//form[@id=my-form]', $form);
1108
+ * ?>
1109
+ * ```
1110
+ *
1111
+ * @param $formSelector
1112
+ * @param $params
1113
+ * @see \Codeception\Lib\InnerBrowser::seeInFormFields()
1114
+ */
1115
+ public function seeInFormFields($formSelector, $params) {
1116
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInFormFields', func_get_args()));
1117
+ }
1118
+
1119
+
1120
+ /**
1121
+ * [!] Method is generated. Documentation taken from corresponding module.
1122
+ *
1123
+ * Checks if the array of form parameters (name => value) are not set on the form matched with
1124
+ * the passed selector.
1125
+ *
1126
+ * ``` php
1127
+ * <?php
1128
+ * $I->dontSeeInFormFields('form[name=myform]', [
1129
+ * 'input1' => 'non-existent value',
1130
+ * 'input2' => 'other non-existent value',
1131
+ * ]);
1132
+ * ?>
1133
+ * ```
1134
+ *
1135
+ * To check that an element hasn't been assigned any one of many values, an array can be passed
1136
+ * as the value:
1137
+ *
1138
+ * ``` php
1139
+ * <?php
1140
+ * $I->dontSeeInFormFields('.form-class', [
1141
+ * 'fieldName' => [
1142
+ * 'This value shouldn\'t be set',
1143
+ * 'And this value shouldn\'t be set',
1144
+ * ],
1145
+ * ]);
1146
+ * ?>
1147
+ * ```
1148
+ *
1149
+ * Additionally, checkbox values can be checked with a boolean.
1150
+ *
1151
+ * ``` php
1152
+ * <?php
1153
+ * $I->dontSeeInFormFields('#form-id', [
1154
+ * 'checkbox1' => true, // fails if checked
1155
+ * 'checkbox2' => false, // fails if unchecked
1156
+ * ]);
1157
+ * ?>
1158
+ * ```
1159
+ *
1160
+ * @param $formSelector
1161
+ * @param $params
1162
+ * Conditional Assertion: Test won't be stopped on fail
1163
+ * @see \Codeception\Lib\InnerBrowser::dontSeeInFormFields()
1164
+ */
1165
+ public function cantSeeInFormFields($formSelector, $params) {
1166
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInFormFields', func_get_args()));
1167
+ }
1168
+ /**
1169
+ * [!] Method is generated. Documentation taken from corresponding module.
1170
+ *
1171
+ * Checks if the array of form parameters (name => value) are not set on the form matched with
1172
+ * the passed selector.
1173
+ *
1174
+ * ``` php
1175
+ * <?php
1176
+ * $I->dontSeeInFormFields('form[name=myform]', [
1177
+ * 'input1' => 'non-existent value',
1178
+ * 'input2' => 'other non-existent value',
1179
+ * ]);
1180
+ * ?>
1181
+ * ```
1182
+ *
1183
+ * To check that an element hasn't been assigned any one of many values, an array can be passed
1184
+ * as the value:
1185
+ *
1186
+ * ``` php
1187
+ * <?php
1188
+ * $I->dontSeeInFormFields('.form-class', [
1189
+ * 'fieldName' => [
1190
+ * 'This value shouldn\'t be set',
1191
+ * 'And this value shouldn\'t be set',
1192
+ * ],
1193
+ * ]);
1194
+ * ?>
1195
+ * ```
1196
+ *
1197
+ * Additionally, checkbox values can be checked with a boolean.
1198
+ *
1199
+ * ``` php
1200
+ * <?php
1201
+ * $I->dontSeeInFormFields('#form-id', [
1202
+ * 'checkbox1' => true, // fails if checked
1203
+ * 'checkbox2' => false, // fails if unchecked
1204
+ * ]);
1205
+ * ?>
1206
+ * ```
1207
+ *
1208
+ * @param $formSelector
1209
+ * @param $params
1210
+ * @see \Codeception\Lib\InnerBrowser::dontSeeInFormFields()
1211
+ */
1212
+ public function dontSeeInFormFields($formSelector, $params) {
1213
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInFormFields', func_get_args()));
1214
+ }
1215
+
1216
+
1217
+ /**
1218
+ * [!] Method is generated. Documentation taken from corresponding module.
1219
+ *
1220
+ * Submits the given form on the page, optionally with the given form
1221
+ * values. Pass the form field's values as an array in the second
1222
+ * parameter.
1223
+ *
1224
+ * Although this function can be used as a short-hand version of
1225
+ * `fillField()`, `selectOption()`, `click()` etc. it has some important
1226
+ * differences:
1227
+ *
1228
+ * * Only field *names* may be used, not CSS/XPath selectors nor field labels
1229
+ * * If a field is sent to this function that does *not* exist on the page,
1230
+ * it will silently be added to the HTTP request. This is helpful for testing
1231
+ * some types of forms, but be aware that you will *not* get an exception
1232
+ * like you would if you called `fillField()` or `selectOption()` with
1233
+ * a missing field.
1234
+ *
1235
+ * Fields that are not provided will be filled by their values from the page,
1236
+ * or from any previous calls to `fillField()`, `selectOption()` etc.
1237
+ * You don't need to click the 'Submit' button afterwards.
1238
+ * This command itself triggers the request to form's action.
1239
+ *
1240
+ * You can optionally specify which button's value to include
1241
+ * in the request with the last parameter (as an alternative to
1242
+ * explicitly setting its value in the second parameter), as
1243
+ * button values are not otherwise included in the request.
1244
+ *
1245
+ * Examples:
1246
+ *
1247
+ * ``` php
1248
+ * <?php
1249
+ * $I->submitForm('#login', [
1250
+ * 'login' => 'davert',
1251
+ * 'password' => '123456'
1252
+ * ]);
1253
+ * // or
1254
+ * $I->submitForm('#login', [
1255
+ * 'login' => 'davert',
1256
+ * 'password' => '123456'
1257
+ * ], 'submitButtonName');
1258
+ *
1259
+ * ```
1260
+ *
1261
+ * For example, given this sample "Sign Up" form:
1262
+ *
1263
+ * ``` html
1264
+ * <form action="/sign_up">
1265
+ * Login:
1266
+ * <input type="text" name="user[login]" /><br/>
1267
+ * Password:
1268
+ * <input type="password" name="user[password]" /><br/>
1269
+ * Do you agree to our terms?
1270
+ * <input type="checkbox" name="user[agree]" /><br/>
1271
+ * Select pricing plan:
1272
+ * <select name="plan">
1273
+ * <option value="1">Free</option>
1274
+ * <option value="2" selected="selected">Paid</option>
1275
+ * </select>
1276
+ * <input type="submit" name="submitButton" value="Submit" />
1277
+ * </form>
1278
+ * ```
1279
+ *
1280
+ * You could write the following to submit it:
1281
+ *
1282
+ * ``` php
1283
+ * <?php
1284
+ * $I->submitForm(
1285
+ * '#userForm',
1286
+ * [
1287
+ * 'user' => [
1288
+ * 'login' => 'Davert',
1289
+ * 'password' => '123456',
1290
+ * 'agree' => true
1291
+ * ]
1292
+ * ],
1293
+ * 'submitButton'
1294
+ * );
1295
+ * ```
1296
+ * Note that "2" will be the submitted value for the "plan" field, as it is
1297
+ * the selected option.
1298
+ *
1299
+ * You can also emulate a JavaScript submission by not specifying any
1300
+ * buttons in the third parameter to submitForm.
1301
+ *
1302
+ * ```php
1303
+ * <?php
1304
+ * $I->submitForm(
1305
+ * '#userForm',
1306
+ * [
1307
+ * 'user' => [
1308
+ * 'login' => 'Davert',
1309
+ * 'password' => '123456',
1310
+ * 'agree' => true
1311
+ * ]
1312
+ * ]
1313
+ * );
1314
+ * ```
1315
+ *
1316
+ * This function works well when paired with `seeInFormFields()`
1317
+ * for quickly testing CRUD interfaces and form validation logic.
1318
+ *
1319
+ * ``` php
1320
+ * <?php
1321
+ * $form = [
1322
+ * 'field1' => 'value',
1323
+ * 'field2' => 'another value',
1324
+ * 'checkbox1' => true,
1325
+ * // ...
1326
+ * ];
1327
+ * $I->submitForm('#my-form', $form, 'submitButton');
1328
+ * // $I->amOnPage('/path/to/form-page') may be needed
1329
+ * $I->seeInFormFields('#my-form', $form);
1330
+ * ```
1331
+ *
1332
+ * Parameter values can be set to arrays for multiple input fields
1333
+ * of the same name, or multi-select combo boxes. For checkboxes,
1334
+ * you can use either the string value or boolean `true`/`false` which will
1335
+ * be replaced by the checkbox's value in the DOM.
1336
+ *
1337
+ * ``` php
1338
+ * <?php
1339
+ * $I->submitForm('#my-form', [
1340
+ * 'field1' => 'value',
1341
+ * 'checkbox' => [
1342
+ * 'value of first checkbox',
1343
+ * 'value of second checkbox',
1344
+ * ],
1345
+ * 'otherCheckboxes' => [
1346
+ * true,
1347
+ * false,
1348
+ * false
1349
+ * ],
1350
+ * 'multiselect' => [
1351
+ * 'first option value',
1352
+ * 'second option value'
1353
+ * ]
1354
+ * ]);
1355
+ * ```
1356
+ *
1357
+ * Mixing string and boolean values for a checkbox's value is not supported
1358
+ * and may produce unexpected results.
1359
+ *
1360
+ * Field names ending in `[]` must be passed without the trailing square
1361
+ * bracket characters, and must contain an array for its value. This allows
1362
+ * submitting multiple values with the same name, consider:
1363
+ *
1364
+ * ```php
1365
+ * <?php
1366
+ * // This will NOT work correctly
1367
+ * $I->submitForm('#my-form', [
1368
+ * 'field[]' => 'value',
1369
+ * 'field[]' => 'another value', // 'field[]' is already a defined key
1370
+ * ]);
1371
+ * ```
1372
+ *
1373
+ * The solution is to pass an array value:
1374
+ *
1375
+ * ```php
1376
+ * <?php
1377
+ * // This way both values are submitted
1378
+ * $I->submitForm('#my-form', [
1379
+ * 'field' => [
1380
+ * 'value',
1381
+ * 'another value',
1382
+ * ]
1383
+ * ]);
1384
+ * ```
1385
+ *
1386
+ * @param $selector
1387
+ * @param $params
1388
+ * @param $button
1389
+ * @see \Codeception\Lib\InnerBrowser::submitForm()
1390
+ */
1391
+ public function submitForm($selector, $params, $button = null) {
1392
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('submitForm', func_get_args()));
1393
+ }
1394
+
1395
+
1396
+ /**
1397
+ * [!] Method is generated. Documentation taken from corresponding module.
1398
+ *
1399
+ * Fills a text field or textarea with the given string.
1400
+ *
1401
+ * ``` php
1402
+ * <?php
1403
+ * $I->fillField("//input[@type='text']", "Hello World!");
1404
+ * $I->fillField(['name' => 'email'], 'jon@mail.com');
1405
+ * ?>
1406
+ * ```
1407
+ *
1408
+ * @param $field
1409
+ * @param $value
1410
+ * @see \Codeception\Lib\InnerBrowser::fillField()
1411
+ */
1412
+ public function fillField($field, $value) {
1413
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('fillField', func_get_args()));
1414
+ }
1415
+
1416
+
1417
+ /**
1418
+ * [!] Method is generated. Documentation taken from corresponding module.
1419
+ *
1420
+ * Selects an option in a select tag or in radio button group.
1421
+ *
1422
+ * ``` php
1423
+ * <?php
1424
+ * $I->selectOption('form select[name=account]', 'Premium');
1425
+ * $I->selectOption('form input[name=payment]', 'Monthly');
1426
+ * $I->selectOption('//form/select[@name=account]', 'Monthly');
1427
+ * ?>
1428
+ * ```
1429
+ *
1430
+ * Provide an array for the second argument to select multiple options:
1431
+ *
1432
+ * ``` php
1433
+ * <?php
1434
+ * $I->selectOption('Which OS do you use?', array('Windows','Linux'));
1435
+ * ?>
1436
+ * ```
1437
+ *
1438
+ * Or provide an associative array for the second argument to specifically define which selection method should be used:
1439
+ *
1440
+ * ``` php
1441
+ * <?php
1442
+ * $I->selectOption('Which OS do you use?', array('text' => 'Windows')); // Only search by text 'Windows'
1443
+ * $I->selectOption('Which OS do you use?', array('value' => 'windows')); // Only search by value 'windows'
1444
+ * ?>
1445
+ + ```
1446
+ *
1447
+ * @param $select
1448
+ * @param $option
1449
+ * @see \Codeception\Lib\InnerBrowser::selectOption()
1450
+ */
1451
+ public function selectOption($select, $option) {
1452
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('selectOption', func_get_args()));
1453
+ }
1454
+
1455
+
1456
+ /**
1457
+ * [!] Method is generated. Documentation taken from corresponding module.
1458
+ *
1459
+ * Ticks a checkbox. For radio buttons, use the `selectOption` method instead.
1460
+ *
1461
+ * ``` php
1462
+ * <?php
1463
+ * $I->checkOption('#agree');
1464
+ * ?>
1465
+ * ```
1466
+ *
1467
+ * @param $option
1468
+ * @see \Codeception\Lib\InnerBrowser::checkOption()
1469
+ */
1470
+ public function checkOption($option) {
1471
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('checkOption', func_get_args()));
1472
+ }
1473
+
1474
+
1475
+ /**
1476
+ * [!] Method is generated. Documentation taken from corresponding module.
1477
+ *
1478
+ * Unticks a checkbox.
1479
+ *
1480
+ * ``` php
1481
+ * <?php
1482
+ * $I->uncheckOption('#notify');
1483
+ * ?>
1484
+ * ```
1485
+ *
1486
+ * @param $option
1487
+ * @see \Codeception\Lib\InnerBrowser::uncheckOption()
1488
+ */
1489
+ public function uncheckOption($option) {
1490
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('uncheckOption', func_get_args()));
1491
+ }
1492
+
1493
+
1494
+ /**
1495
+ * [!] Method is generated. Documentation taken from corresponding module.
1496
+ *
1497
+ * Attaches a file relative to the Codeception data directory to the given file upload field.
1498
+ *
1499
+ * ``` php
1500
+ * <?php
1501
+ * // file is stored in 'tests/_data/prices.xls'
1502
+ * $I->attachFile('input[@type="file"]', 'prices.xls');
1503
+ * ?>
1504
+ * ```
1505
+ *
1506
+ * @param $field
1507
+ * @param $filename
1508
+ * @see \Codeception\Lib\InnerBrowser::attachFile()
1509
+ */
1510
+ public function attachFile($field, $filename) {
1511
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('attachFile', func_get_args()));
1512
+ }
1513
+
1514
+
1515
+ /**
1516
+ * [!] Method is generated. Documentation taken from corresponding module.
1517
+ *
1518
+ * If your page triggers an ajax request, you can perform it manually.
1519
+ * This action sends a GET ajax request with specified params.
1520
+ *
1521
+ * See ->sendAjaxPostRequest for examples.
1522
+ *
1523
+ * @param $uri
1524
+ * @param $params
1525
+ * @see \Codeception\Lib\InnerBrowser::sendAjaxGetRequest()
1526
+ */
1527
+ public function sendAjaxGetRequest($uri, $params = null) {
1528
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('sendAjaxGetRequest', func_get_args()));
1529
+ }
1530
+
1531
+
1532
+ /**
1533
+ * [!] Method is generated. Documentation taken from corresponding module.
1534
+ *
1535
+ * If your page triggers an ajax request, you can perform it manually.
1536
+ * This action sends a POST ajax request with specified params.
1537
+ * Additional params can be passed as array.
1538
+ *
1539
+ * Example:
1540
+ *
1541
+ * Imagine that by clicking checkbox you trigger ajax request which updates user settings.
1542
+ * We emulate that click by running this ajax request manually.
1543
+ *
1544
+ * ``` php
1545
+ * <?php
1546
+ * $I->sendAjaxPostRequest('/updateSettings', array('notifications' => true)); // POST
1547
+ * $I->sendAjaxGetRequest('/updateSettings', array('notifications' => true)); // GET
1548
+ *
1549
+ * ```
1550
+ *
1551
+ * @param $uri
1552
+ * @param $params
1553
+ * @see \Codeception\Lib\InnerBrowser::sendAjaxPostRequest()
1554
+ */
1555
+ public function sendAjaxPostRequest($uri, $params = null) {
1556
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('sendAjaxPostRequest', func_get_args()));
1557
+ }
1558
+
1559
+
1560
+ /**
1561
+ * [!] Method is generated. Documentation taken from corresponding module.
1562
+ *
1563
+ * If your page triggers an ajax request, you can perform it manually.
1564
+ * This action sends an ajax request with specified method and params.
1565
+ *
1566
+ * Example:
1567
+ *
1568
+ * You need to perform an ajax request specifying the HTTP method.
1569
+ *
1570
+ * ``` php
1571
+ * <?php
1572
+ * $I->sendAjaxRequest('PUT', '/posts/7', array('title' => 'new title'));
1573
+ *
1574
+ * ```
1575
+ *
1576
+ * @param $method
1577
+ * @param $uri
1578
+ * @param $params
1579
+ * @see \Codeception\Lib\InnerBrowser::sendAjaxRequest()
1580
+ */
1581
+ public function sendAjaxRequest($method, $uri, $params = null) {
1582
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('sendAjaxRequest', func_get_args()));
1583
+ }
1584
+
1585
+
1586
+ /**
1587
+ * [!] Method is generated. Documentation taken from corresponding module.
1588
+ *
1589
+ * Finds and returns the text contents of the given element.
1590
+ * If a fuzzy locator is used, the element is found using CSS, XPath,
1591
+ * and by matching the full page source by regular expression.
1592
+ *
1593
+ * ``` php
1594
+ * <?php
1595
+ * $heading = $I->grabTextFrom('h1');
1596
+ * $heading = $I->grabTextFrom('descendant-or-self::h1');
1597
+ * $value = $I->grabTextFrom('~<input value=(.*?)]~sgi'); // match with a regex
1598
+ * ?>
1599
+ * ```
1600
+ *
1601
+ * @param $cssOrXPathOrRegex
1602
+ *
1603
+ * @return mixed
1604
+ * @see \Codeception\Lib\InnerBrowser::grabTextFrom()
1605
+ */
1606
+ public function grabTextFrom($cssOrXPathOrRegex) {
1607
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('grabTextFrom', func_get_args()));
1608
+ }
1609
+
1610
+
1611
+ /**
1612
+ * [!] Method is generated. Documentation taken from corresponding module.
1613
+ *
1614
+ * Grabs the value of the given attribute value from the given element.
1615
+ * Fails if element is not found.
1616
+ *
1617
+ * ``` php
1618
+ * <?php
1619
+ * $I->grabAttributeFrom('#tooltip', 'title');
1620
+ * ?>
1621
+ * ```
1622
+ *
1623
+ *
1624
+ * @param $cssOrXpath
1625
+ * @param $attribute
1626
+ *
1627
+ * @return mixed
1628
+ * @see \Codeception\Lib\InnerBrowser::grabAttributeFrom()
1629
+ */
1630
+ public function grabAttributeFrom($cssOrXpath, $attribute) {
1631
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('grabAttributeFrom', func_get_args()));
1632
+ }
1633
+
1634
+
1635
+ /**
1636
+ * [!] Method is generated. Documentation taken from corresponding module.
1637
+ *
1638
+ * Grabs either the text content, or attribute values, of nodes
1639
+ * matched by $cssOrXpath and returns them as an array.
1640
+ *
1641
+ * ```html
1642
+ * <a href="#first">First</a>
1643
+ * <a href="#second">Second</a>
1644
+ * <a href="#third">Third</a>
1645
+ * ```
1646
+ *
1647
+ * ```php
1648
+ * <?php
1649
+ * // would return ['First', 'Second', 'Third']
1650
+ * $aLinkText = $I->grabMultiple('a');
1651
+ *
1652
+ * // would return ['#first', '#second', '#third']
1653
+ * $aLinks = $I->grabMultiple('a', 'href');
1654
+ * ?>
1655
+ * ```
1656
+ *
1657
+ * @param $cssOrXpath
1658
+ * @param $attribute
1659
+ * @return string[]
1660
+ * @see \Codeception\Lib\InnerBrowser::grabMultiple()
1661
+ */
1662
+ public function grabMultiple($cssOrXpath, $attribute = null) {
1663
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('grabMultiple', func_get_args()));
1664
+ }
1665
+
1666
+
1667
+ /**
1668
+ * [!] Method is generated. Documentation taken from corresponding module.
1669
+ *
1670
+ * @param $field
1671
+ *
1672
+ * @return array|mixed|null|string
1673
+ * @see \Codeception\Lib\InnerBrowser::grabValueFrom()
1674
+ */
1675
+ public function grabValueFrom($field) {
1676
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('grabValueFrom', func_get_args()));
1677
+ }
1678
+
1679
+
1680
+ /**
1681
+ * [!] Method is generated. Documentation taken from corresponding module.
1682
+ *
1683
+ * Sets a cookie with the given name and value.
1684
+ * You can set additional cookie params like `domain`, `path`, `expires`, `secure` in array passed as last argument.
1685
+ *
1686
+ * ``` php
1687
+ * <?php
1688
+ * $I->setCookie('PHPSESSID', 'el4ukv0kqbvoirg7nkp4dncpk3');
1689
+ * ?>
1690
+ * ```
1691
+ *
1692
+ * @param $name
1693
+ * @param $val
1694
+ * @param array $params
1695
+ *
1696
+ * @return mixed
1697
+ * @see \Codeception\Lib\InnerBrowser::setCookie()
1698
+ */
1699
+ public function setCookie($name, $val, $params = null) {
1700
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('setCookie', func_get_args()));
1701
+ }
1702
+
1703
+
1704
+ /**
1705
+ * [!] Method is generated. Documentation taken from corresponding module.
1706
+ *
1707
+ * Grabs a cookie value.
1708
+ * You can set additional cookie params like `domain`, `path` in array passed as last argument.
1709
+ *
1710
+ * @param $cookie
1711
+ *
1712
+ * @param array $params
1713
+ * @return mixed
1714
+ * @see \Codeception\Lib\InnerBrowser::grabCookie()
1715
+ */
1716
+ public function grabCookie($cookie, $params = null) {
1717
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('grabCookie', func_get_args()));
1718
+ }
1719
+
1720
+
1721
+ /**
1722
+ * [!] Method is generated. Documentation taken from corresponding module.
1723
+ *
1724
+ * Checks that a cookie with the given name is set.
1725
+ * You can set additional cookie params like `domain`, `path` as array passed in last argument.
1726
+ *
1727
+ * ``` php
1728
+ * <?php
1729
+ * $I->seeCookie('PHPSESSID');
1730
+ * ?>
1731
+ * ```
1732
+ *
1733
+ * @param $cookie
1734
+ * @param array $params
1735
+ * @return mixed
1736
+ * Conditional Assertion: Test won't be stopped on fail
1737
+ * @see \Codeception\Lib\InnerBrowser::seeCookie()
1738
+ */
1739
+ public function canSeeCookie($cookie, $params = null) {
1740
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCookie', func_get_args()));
1741
+ }
1742
+ /**
1743
+ * [!] Method is generated. Documentation taken from corresponding module.
1744
+ *
1745
+ * Checks that a cookie with the given name is set.
1746
+ * You can set additional cookie params like `domain`, `path` as array passed in last argument.
1747
+ *
1748
+ * ``` php
1749
+ * <?php
1750
+ * $I->seeCookie('PHPSESSID');
1751
+ * ?>
1752
+ * ```
1753
+ *
1754
+ * @param $cookie
1755
+ * @param array $params
1756
+ * @return mixed
1757
+ * @see \Codeception\Lib\InnerBrowser::seeCookie()
1758
+ */
1759
+ public function seeCookie($cookie, $params = null) {
1760
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeCookie', func_get_args()));
1761
+ }
1762
+
1763
+
1764
+ /**
1765
+ * [!] Method is generated. Documentation taken from corresponding module.
1766
+ *
1767
+ * Checks that there isn't a cookie with the given name.
1768
+ * You can set additional cookie params like `domain`, `path` as array passed in last argument.
1769
+ *
1770
+ * @param $cookie
1771
+ *
1772
+ * @param array $params
1773
+ * @return mixed
1774
+ * Conditional Assertion: Test won't be stopped on fail
1775
+ * @see \Codeception\Lib\InnerBrowser::dontSeeCookie()
1776
+ */
1777
+ public function cantSeeCookie($cookie, $params = null) {
1778
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCookie', func_get_args()));
1779
+ }
1780
+ /**
1781
+ * [!] Method is generated. Documentation taken from corresponding module.
1782
+ *
1783
+ * Checks that there isn't a cookie with the given name.
1784
+ * You can set additional cookie params like `domain`, `path` as array passed in last argument.
1785
+ *
1786
+ * @param $cookie
1787
+ *
1788
+ * @param array $params
1789
+ * @return mixed
1790
+ * @see \Codeception\Lib\InnerBrowser::dontSeeCookie()
1791
+ */
1792
+ public function dontSeeCookie($cookie, $params = null) {
1793
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeCookie', func_get_args()));
1794
+ }
1795
+
1796
+
1797
+ /**
1798
+ * [!] Method is generated. Documentation taken from corresponding module.
1799
+ *
1800
+ * Unsets cookie with the given name.
1801
+ * You can set additional cookie params like `domain`, `path` in array passed as last argument.
1802
+ *
1803
+ * @param $cookie
1804
+ *
1805
+ * @param array $params
1806
+ * @return mixed
1807
+ * @see \Codeception\Lib\InnerBrowser::resetCookie()
1808
+ */
1809
+ public function resetCookie($name, $params = null) {
1810
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('resetCookie', func_get_args()));
1811
+ }
1812
+
1813
+
1814
+ /**
1815
+ * [!] Method is generated. Documentation taken from corresponding module.
1816
+ *
1817
+ * Checks that the given element exists on the page and is visible.
1818
+ * You can also specify expected attributes of this element.
1819
+ *
1820
+ * ``` php
1821
+ * <?php
1822
+ * $I->seeElement('.error');
1823
+ * $I->seeElement('//form/input[1]');
1824
+ * $I->seeElement('input', ['name' => 'login']);
1825
+ * $I->seeElement('input', ['value' => '123456']);
1826
+ *
1827
+ * // strict locator in first arg, attributes in second
1828
+ * $I->seeElement(['css' => 'form input'], ['name' => 'login']);
1829
+ * ?>
1830
+ * ```
1831
+ *
1832
+ * @param $selector
1833
+ * @param array $attributes
1834
+ * @return
1835
+ * Conditional Assertion: Test won't be stopped on fail
1836
+ * @see \Codeception\Lib\InnerBrowser::seeElement()
1837
+ */
1838
+ public function canSeeElement($selector, $attributes = null) {
1839
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeElement', func_get_args()));
1840
+ }
1841
+ /**
1842
+ * [!] Method is generated. Documentation taken from corresponding module.
1843
+ *
1844
+ * Checks that the given element exists on the page and is visible.
1845
+ * You can also specify expected attributes of this element.
1846
+ *
1847
+ * ``` php
1848
+ * <?php
1849
+ * $I->seeElement('.error');
1850
+ * $I->seeElement('//form/input[1]');
1851
+ * $I->seeElement('input', ['name' => 'login']);
1852
+ * $I->seeElement('input', ['value' => '123456']);
1853
+ *
1854
+ * // strict locator in first arg, attributes in second
1855
+ * $I->seeElement(['css' => 'form input'], ['name' => 'login']);
1856
+ * ?>
1857
+ * ```
1858
+ *
1859
+ * @param $selector
1860
+ * @param array $attributes
1861
+ * @return
1862
+ * @see \Codeception\Lib\InnerBrowser::seeElement()
1863
+ */
1864
+ public function seeElement($selector, $attributes = null) {
1865
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeElement', func_get_args()));
1866
+ }
1867
+
1868
+
1869
+ /**
1870
+ * [!] Method is generated. Documentation taken from corresponding module.
1871
+ *
1872
+ * Checks that the given element is invisible or not present on the page.
1873
+ * You can also specify expected attributes of this element.
1874
+ *
1875
+ * ``` php
1876
+ * <?php
1877
+ * $I->dontSeeElement('.error');
1878
+ * $I->dontSeeElement('//form/input[1]');
1879
+ * $I->dontSeeElement('input', ['name' => 'login']);
1880
+ * $I->dontSeeElement('input', ['value' => '123456']);
1881
+ * ?>
1882
+ * ```
1883
+ *
1884
+ * @param $selector
1885
+ * @param array $attributes
1886
+ * Conditional Assertion: Test won't be stopped on fail
1887
+ * @see \Codeception\Lib\InnerBrowser::dontSeeElement()
1888
+ */
1889
+ public function cantSeeElement($selector, $attributes = null) {
1890
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeElement', func_get_args()));
1891
+ }
1892
+ /**
1893
+ * [!] Method is generated. Documentation taken from corresponding module.
1894
+ *
1895
+ * Checks that the given element is invisible or not present on the page.
1896
+ * You can also specify expected attributes of this element.
1897
+ *
1898
+ * ``` php
1899
+ * <?php
1900
+ * $I->dontSeeElement('.error');
1901
+ * $I->dontSeeElement('//form/input[1]');
1902
+ * $I->dontSeeElement('input', ['name' => 'login']);
1903
+ * $I->dontSeeElement('input', ['value' => '123456']);
1904
+ * ?>
1905
+ * ```
1906
+ *
1907
+ * @param $selector
1908
+ * @param array $attributes
1909
+ * @see \Codeception\Lib\InnerBrowser::dontSeeElement()
1910
+ */
1911
+ public function dontSeeElement($selector, $attributes = null) {
1912
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeElement', func_get_args()));
1913
+ }
1914
+
1915
+
1916
+ /**
1917
+ * [!] Method is generated. Documentation taken from corresponding module.
1918
+ *
1919
+ * Checks that there are a certain number of elements matched by the given locator on the page.
1920
+ *
1921
+ * ``` php
1922
+ * <?php
1923
+ * $I->seeNumberOfElements('tr', 10);
1924
+ * $I->seeNumberOfElements('tr', [0,10]); //between 0 and 10 elements
1925
+ * ?>
1926
+ * ```
1927
+ * @param $selector
1928
+ * @param mixed $expected :
1929
+ * - string: strict number
1930
+ * - array: range of numbers [0,10]
1931
+ * Conditional Assertion: Test won't be stopped on fail
1932
+ * @see \Codeception\Lib\InnerBrowser::seeNumberOfElements()
1933
+ */
1934
+ public function canSeeNumberOfElements($selector, $expected) {
1935
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeNumberOfElements', func_get_args()));
1936
+ }
1937
+ /**
1938
+ * [!] Method is generated. Documentation taken from corresponding module.
1939
+ *
1940
+ * Checks that there are a certain number of elements matched by the given locator on the page.
1941
+ *
1942
+ * ``` php
1943
+ * <?php
1944
+ * $I->seeNumberOfElements('tr', 10);
1945
+ * $I->seeNumberOfElements('tr', [0,10]); //between 0 and 10 elements
1946
+ * ?>
1947
+ * ```
1948
+ * @param $selector
1949
+ * @param mixed $expected :
1950
+ * - string: strict number
1951
+ * - array: range of numbers [0,10]
1952
+ * @see \Codeception\Lib\InnerBrowser::seeNumberOfElements()
1953
+ */
1954
+ public function seeNumberOfElements($selector, $expected) {
1955
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeNumberOfElements', func_get_args()));
1956
+ }
1957
+
1958
+
1959
+ /**
1960
+ * [!] Method is generated. Documentation taken from corresponding module.
1961
+ *
1962
+ * Checks that the given option is selected.
1963
+ *
1964
+ * ``` php
1965
+ * <?php
1966
+ * $I->seeOptionIsSelected('#form input[name=payment]', 'Visa');
1967
+ * ?>
1968
+ * ```
1969
+ *
1970
+ * @param $selector
1971
+ * @param $optionText
1972
+ *
1973
+ * @return mixed
1974
+ * Conditional Assertion: Test won't be stopped on fail
1975
+ * @see \Codeception\Lib\InnerBrowser::seeOptionIsSelected()
1976
+ */
1977
+ public function canSeeOptionIsSelected($selector, $optionText) {
1978
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeOptionIsSelected', func_get_args()));
1979
+ }
1980
+ /**
1981
+ * [!] Method is generated. Documentation taken from corresponding module.
1982
+ *
1983
+ * Checks that the given option is selected.
1984
+ *
1985
+ * ``` php
1986
+ * <?php
1987
+ * $I->seeOptionIsSelected('#form input[name=payment]', 'Visa');
1988
+ * ?>
1989
+ * ```
1990
+ *
1991
+ * @param $selector
1992
+ * @param $optionText
1993
+ *
1994
+ * @return mixed
1995
+ * @see \Codeception\Lib\InnerBrowser::seeOptionIsSelected()
1996
+ */
1997
+ public function seeOptionIsSelected($selector, $optionText) {
1998
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeOptionIsSelected', func_get_args()));
1999
+ }
2000
+
2001
+
2002
+ /**
2003
+ * [!] Method is generated. Documentation taken from corresponding module.
2004
+ *
2005
+ * Checks that the given option is not selected.
2006
+ *
2007
+ * ``` php
2008
+ * <?php
2009
+ * $I->dontSeeOptionIsSelected('#form input[name=payment]', 'Visa');
2010
+ * ?>
2011
+ * ```
2012
+ *
2013
+ * @param $selector
2014
+ * @param $optionText
2015
+ *
2016
+ * @return mixed
2017
+ * Conditional Assertion: Test won't be stopped on fail
2018
+ * @see \Codeception\Lib\InnerBrowser::dontSeeOptionIsSelected()
2019
+ */
2020
+ public function cantSeeOptionIsSelected($selector, $optionText) {
2021
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeOptionIsSelected', func_get_args()));
2022
+ }
2023
+ /**
2024
+ * [!] Method is generated. Documentation taken from corresponding module.
2025
+ *
2026
+ * Checks that the given option is not selected.
2027
+ *
2028
+ * ``` php
2029
+ * <?php
2030
+ * $I->dontSeeOptionIsSelected('#form input[name=payment]', 'Visa');
2031
+ * ?>
2032
+ * ```
2033
+ *
2034
+ * @param $selector
2035
+ * @param $optionText
2036
+ *
2037
+ * @return mixed
2038
+ * @see \Codeception\Lib\InnerBrowser::dontSeeOptionIsSelected()
2039
+ */
2040
+ public function dontSeeOptionIsSelected($selector, $optionText) {
2041
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeOptionIsSelected', func_get_args()));
2042
+ }
2043
+
2044
+
2045
+ /**
2046
+ * [!] Method is generated. Documentation taken from corresponding module.
2047
+ *
2048
+ * Asserts that current page has 404 response status code.
2049
+ * Conditional Assertion: Test won't be stopped on fail
2050
+ * @see \Codeception\Lib\InnerBrowser::seePageNotFound()
2051
+ */
2052
+ public function canSeePageNotFound() {
2053
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seePageNotFound', func_get_args()));
2054
+ }
2055
+ /**
2056
+ * [!] Method is generated. Documentation taken from corresponding module.
2057
+ *
2058
+ * Asserts that current page has 404 response status code.
2059
+ * @see \Codeception\Lib\InnerBrowser::seePageNotFound()
2060
+ */
2061
+ public function seePageNotFound() {
2062
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seePageNotFound', func_get_args()));
2063
+ }
2064
+
2065
+
2066
+ /**
2067
+ * [!] Method is generated. Documentation taken from corresponding module.
2068
+ *
2069
+ * Checks that response code is equal to value provided.
2070
+ *
2071
+ * ```php
2072
+ * <?php
2073
+ * $I->seeResponseCodeIs(200);
2074
+ *
2075
+ * // recommended \Codeception\Util\HttpCode
2076
+ * $I->seeResponseCodeIs(\Codeception\Util\HttpCode::OK);
2077
+ * ```
2078
+ *
2079
+ * @param $code
2080
+ * Conditional Assertion: Test won't be stopped on fail
2081
+ * @see \Codeception\Lib\InnerBrowser::seeResponseCodeIs()
2082
+ */
2083
+ public function canSeeResponseCodeIs($code) {
2084
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResponseCodeIs', func_get_args()));
2085
+ }
2086
+ /**
2087
+ * [!] Method is generated. Documentation taken from corresponding module.
2088
+ *
2089
+ * Checks that response code is equal to value provided.
2090
+ *
2091
+ * ```php
2092
+ * <?php
2093
+ * $I->seeResponseCodeIs(200);
2094
+ *
2095
+ * // recommended \Codeception\Util\HttpCode
2096
+ * $I->seeResponseCodeIs(\Codeception\Util\HttpCode::OK);
2097
+ * ```
2098
+ *
2099
+ * @param $code
2100
+ * @see \Codeception\Lib\InnerBrowser::seeResponseCodeIs()
2101
+ */
2102
+ public function seeResponseCodeIs($code) {
2103
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseCodeIs', func_get_args()));
2104
+ }
2105
+
2106
+
2107
+ /**
2108
+ * [!] Method is generated. Documentation taken from corresponding module.
2109
+ *
2110
+ * Checks that response code is equal to value provided.
2111
+ *
2112
+ * ```php
2113
+ * <?php
2114
+ * $I->dontSeeResponseCodeIs(200);
2115
+ *
2116
+ * // recommended \Codeception\Util\HttpCode
2117
+ * $I->dontSeeResponseCodeIs(\Codeception\Util\HttpCode::OK);
2118
+ * ```
2119
+ * @param $code
2120
+ * Conditional Assertion: Test won't be stopped on fail
2121
+ * @see \Codeception\Lib\InnerBrowser::dontSeeResponseCodeIs()
2122
+ */
2123
+ public function cantSeeResponseCodeIs($code) {
2124
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeResponseCodeIs', func_get_args()));
2125
+ }
2126
+ /**
2127
+ * [!] Method is generated. Documentation taken from corresponding module.
2128
+ *
2129
+ * Checks that response code is equal to value provided.
2130
+ *
2131
+ * ```php
2132
+ * <?php
2133
+ * $I->dontSeeResponseCodeIs(200);
2134
+ *
2135
+ * // recommended \Codeception\Util\HttpCode
2136
+ * $I->dontSeeResponseCodeIs(\Codeception\Util\HttpCode::OK);
2137
+ * ```
2138
+ * @param $code
2139
+ * @see \Codeception\Lib\InnerBrowser::dontSeeResponseCodeIs()
2140
+ */
2141
+ public function dontSeeResponseCodeIs($code) {
2142
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeResponseCodeIs', func_get_args()));
2143
+ }
2144
+
2145
+
2146
+ /**
2147
+ * [!] Method is generated. Documentation taken from corresponding module.
2148
+ *
2149
+ * Checks that the page title contains the given string.
2150
+ *
2151
+ * ``` php
2152
+ * <?php
2153
+ * $I->seeInTitle('Blog - Post #1');
2154
+ * ?>
2155
+ * ```
2156
+ *
2157
+ * @param $title
2158
+ *
2159
+ * @return mixed
2160
+ * Conditional Assertion: Test won't be stopped on fail
2161
+ * @see \Codeception\Lib\InnerBrowser::seeInTitle()
2162
+ */
2163
+ public function canSeeInTitle($title) {
2164
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInTitle', func_get_args()));
2165
+ }
2166
+ /**
2167
+ * [!] Method is generated. Documentation taken from corresponding module.
2168
+ *
2169
+ * Checks that the page title contains the given string.
2170
+ *
2171
+ * ``` php
2172
+ * <?php
2173
+ * $I->seeInTitle('Blog - Post #1');
2174
+ * ?>
2175
+ * ```
2176
+ *
2177
+ * @param $title
2178
+ *
2179
+ * @return mixed
2180
+ * @see \Codeception\Lib\InnerBrowser::seeInTitle()
2181
+ */
2182
+ public function seeInTitle($title) {
2183
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInTitle', func_get_args()));
2184
+ }
2185
+
2186
+
2187
+ /**
2188
+ * [!] Method is generated. Documentation taken from corresponding module.
2189
+ *
2190
+ * Checks that the page title does not contain the given string.
2191
+ *
2192
+ * @param $title
2193
+ *
2194
+ * @return mixed
2195
+ * Conditional Assertion: Test won't be stopped on fail
2196
+ * @see \Codeception\Lib\InnerBrowser::dontSeeInTitle()
2197
+ */
2198
+ public function cantSeeInTitle($title) {
2199
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInTitle', func_get_args()));
2200
+ }
2201
+ /**
2202
+ * [!] Method is generated. Documentation taken from corresponding module.
2203
+ *
2204
+ * Checks that the page title does not contain the given string.
2205
+ *
2206
+ * @param $title
2207
+ *
2208
+ * @return mixed
2209
+ * @see \Codeception\Lib\InnerBrowser::dontSeeInTitle()
2210
+ */
2211
+ public function dontSeeInTitle($title) {
2212
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInTitle', func_get_args()));
2213
+ }
2214
+
2215
+
2216
+ /**
2217
+ * [!] Method is generated. Documentation taken from corresponding module.
2218
+ *
2219
+ * Switch to iframe or frame on the page.
2220
+ *
2221
+ * Example:
2222
+ * ``` html
2223
+ * <iframe name="another_frame" src="http://example.com">
2224
+ * ```
2225
+ *
2226
+ * ``` php
2227
+ * <?php
2228
+ * # switch to iframe
2229
+ * $I->switchToIframe("another_frame");
2230
+ * ```
2231
+ *
2232
+ * @param string $name
2233
+ * @see \Codeception\Lib\InnerBrowser::switchToIframe()
2234
+ */
2235
+ public function switchToIframe($name) {
2236
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('switchToIframe', func_get_args()));
2237
+ }
2238
+
2239
+
2240
+ /**
2241
+ * [!] Method is generated. Documentation taken from corresponding module.
2242
+ *
2243
+ * Moves back in history.
2244
+ *
2245
+ * @param int $numberOfSteps (default value 1)
2246
+ * @see \Codeception\Lib\InnerBrowser::moveBack()
2247
+ */
2248
+ public function moveBack($numberOfSteps = null) {
2249
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('moveBack', func_get_args()));
2250
+ }
2251
+
2252
+
2253
+ /**
2254
+ * [!] Method is generated. Documentation taken from corresponding module.
2255
+ *
2256
+ * Inserts an SQL record into a database. This record will be erased after the test.
2257
+ *
2258
+ * ```php
2259
+ * <?php
2260
+ * $I->haveInDatabase('users', array('name' => 'miles', 'email' => 'miles@davis.com'));
2261
+ * ?>
2262
+ * ```
2263
+ *
2264
+ * @param string $table
2265
+ * @param array $data
2266
+ *
2267
+ * @return integer $id
2268
+ * @see \Codeception\Module\Db::haveInDatabase()
2269
+ */
2270
+ public function haveInDatabase($table, $data) {
2271
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('haveInDatabase', func_get_args()));
2272
+ }
2273
+
2274
+
2275
+ /**
2276
+ * [!] Method is generated. Documentation taken from corresponding module.
2277
+ *
2278
+ * Asserts that a row with the given column values exists.
2279
+ * Provide table name and column values.
2280
+ *
2281
+ * ``` php
2282
+ * <?php
2283
+ * $I->seeInDatabase('users', array('name' => 'Davert', 'email' => 'davert@mail.com'));
2284
+ * ```
2285
+ * Fails if no such user found.
2286
+ *
2287
+ * @param string $table
2288
+ * @param array $criteria
2289
+ * Conditional Assertion: Test won't be stopped on fail
2290
+ * @see \Codeception\Module\Db::seeInDatabase()
2291
+ */
2292
+ public function canSeeInDatabase($table, $criteria = null) {
2293
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInDatabase', func_get_args()));
2294
+ }
2295
+ /**
2296
+ * [!] Method is generated. Documentation taken from corresponding module.
2297
+ *
2298
+ * Asserts that a row with the given column values exists.
2299
+ * Provide table name and column values.
2300
+ *
2301
+ * ``` php
2302
+ * <?php
2303
+ * $I->seeInDatabase('users', array('name' => 'Davert', 'email' => 'davert@mail.com'));
2304
+ * ```
2305
+ * Fails if no such user found.
2306
+ *
2307
+ * @param string $table
2308
+ * @param array $criteria
2309
+ * @see \Codeception\Module\Db::seeInDatabase()
2310
+ */
2311
+ public function seeInDatabase($table, $criteria = null) {
2312
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInDatabase', func_get_args()));
2313
+ }
2314
+
2315
+
2316
+ /**
2317
+ * [!] Method is generated. Documentation taken from corresponding module.
2318
+ *
2319
+ * Asserts that the given number of records were found in the database.
2320
+ *
2321
+ * ```php
2322
+ * <?php
2323
+ * $I->seeNumRecords(1, 'users', ['name' => 'davert'])
2324
+ * ?>
2325
+ * ```
2326
+ *
2327
+ * @param int $expectedNumber Expected number
2328
+ * @param string $table Table name
2329
+ * @param array $criteria Search criteria [Optional]
2330
+ * Conditional Assertion: Test won't be stopped on fail
2331
+ * @see \Codeception\Module\Db::seeNumRecords()
2332
+ */
2333
+ public function canSeeNumRecords($expectedNumber, $table, $criteria = null) {
2334
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeNumRecords', func_get_args()));
2335
+ }
2336
+ /**
2337
+ * [!] Method is generated. Documentation taken from corresponding module.
2338
+ *
2339
+ * Asserts that the given number of records were found in the database.
2340
+ *
2341
+ * ```php
2342
+ * <?php
2343
+ * $I->seeNumRecords(1, 'users', ['name' => 'davert'])
2344
+ * ?>
2345
+ * ```
2346
+ *
2347
+ * @param int $expectedNumber Expected number
2348
+ * @param string $table Table name
2349
+ * @param array $criteria Search criteria [Optional]
2350
+ * @see \Codeception\Module\Db::seeNumRecords()
2351
+ */
2352
+ public function seeNumRecords($expectedNumber, $table, $criteria = null) {
2353
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeNumRecords', func_get_args()));
2354
+ }
2355
+
2356
+
2357
+ /**
2358
+ * [!] Method is generated. Documentation taken from corresponding module.
2359
+ *
2360
+ * Effect is opposite to ->seeInDatabase
2361
+ *
2362
+ * Asserts that there is no record with the given column values in a database.
2363
+ * Provide table name and column values.
2364
+ *
2365
+ * ``` php
2366
+ * <?php
2367
+ * $I->dontSeeInDatabase('users', array('name' => 'Davert', 'email' => 'davert@mail.com'));
2368
+ * ```
2369
+ * Fails if such user was found.
2370
+ *
2371
+ * @param string $table
2372
+ * @param array $criteria
2373
+ * Conditional Assertion: Test won't be stopped on fail
2374
+ * @see \Codeception\Module\Db::dontSeeInDatabase()
2375
+ */
2376
+ public function cantSeeInDatabase($table, $criteria = null) {
2377
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInDatabase', func_get_args()));
2378
+ }
2379
+ /**
2380
+ * [!] Method is generated. Documentation taken from corresponding module.
2381
+ *
2382
+ * Effect is opposite to ->seeInDatabase
2383
+ *
2384
+ * Asserts that there is no record with the given column values in a database.
2385
+ * Provide table name and column values.
2386
+ *
2387
+ * ``` php
2388
+ * <?php
2389
+ * $I->dontSeeInDatabase('users', array('name' => 'Davert', 'email' => 'davert@mail.com'));
2390
+ * ```
2391
+ * Fails if such user was found.
2392
+ *
2393
+ * @param string $table
2394
+ * @param array $criteria
2395
+ * @see \Codeception\Module\Db::dontSeeInDatabase()
2396
+ */
2397
+ public function dontSeeInDatabase($table, $criteria = null) {
2398
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInDatabase', func_get_args()));
2399
+ }
2400
+
2401
+
2402
+ /**
2403
+ * [!] Method is generated. Documentation taken from corresponding module.
2404
+ *
2405
+ * Fetches a single column value from a database.
2406
+ * Provide table name, desired column and criteria.
2407
+ *
2408
+ * ``` php
2409
+ * <?php
2410
+ * $mail = $I->grabFromDatabase('users', 'email', array('name' => 'Davert'));
2411
+ * ```
2412
+ *
2413
+ * @param string $table
2414
+ * @param string $column
2415
+ * @param array $criteria
2416
+ *
2417
+ * @return mixed
2418
+ * @see \Codeception\Module\Db::grabFromDatabase()
2419
+ */
2420
+ public function grabFromDatabase($table, $column, $criteria = null) {
2421
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('grabFromDatabase', func_get_args()));
2422
+ }
2423
+
2424
+
2425
+ /**
2426
+ * [!] Method is generated. Documentation taken from corresponding module.
2427
+ *
2428
+ * Returns the number of rows in a database
2429
+ *
2430
+ * @param string $table Table name
2431
+ * @param array $criteria Search criteria [Optional]
2432
+ *
2433
+ * @return int
2434
+ * @see \Codeception\Module\Db::grabNumRecords()
2435
+ */
2436
+ public function grabNumRecords($table, $criteria = null) {
2437
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('grabNumRecords', func_get_args()));
2438
+ }
2439
+
2440
+
2441
+ /**
2442
+ * [!] Method is generated. Documentation taken from corresponding module.
2443
+ *
2444
+ * Enters a directory In local filesystem.
2445
+ * Project root directory is used by default
2446
+ *
2447
+ * @param $path
2448
+ * @see \Codeception\Module\Filesystem::amInPath()
2449
+ */
2450
+ public function amInPath($path) {
2451
+ return $this->getScenario()->runStep(new \Codeception\Step\Condition('amInPath', func_get_args()));
2452
+ }
2453
+
2454
+
2455
+ /**
2456
+ * [!] Method is generated. Documentation taken from corresponding module.
2457
+ *
2458
+ * Opens a file and stores it's content.
2459
+ *
2460
+ * Usage:
2461
+ *
2462
+ * ``` php
2463
+ * <?php
2464
+ * $I->openFile('composer.json');
2465
+ * $I->seeInThisFile('codeception/codeception');
2466
+ * ?>
2467
+ * ```
2468
+ *
2469
+ * @param $filename
2470
+ * @see \Codeception\Module\Filesystem::openFile()
2471
+ */
2472
+ public function openFile($filename) {
2473
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('openFile', func_get_args()));
2474
+ }
2475
+
2476
+
2477
+ /**
2478
+ * [!] Method is generated. Documentation taken from corresponding module.
2479
+ *
2480
+ * Deletes a file
2481
+ *
2482
+ * ``` php
2483
+ * <?php
2484
+ * $I->deleteFile('composer.lock');
2485
+ * ?>
2486
+ * ```
2487
+ *
2488
+ * @param $filename
2489
+ * @see \Codeception\Module\Filesystem::deleteFile()
2490
+ */
2491
+ public function deleteFile($filename) {
2492
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('deleteFile', func_get_args()));
2493
+ }
2494
+
2495
+
2496
+ /**
2497
+ * [!] Method is generated. Documentation taken from corresponding module.
2498
+ *
2499
+ * Deletes directory with all subdirectories
2500
+ *
2501
+ * ``` php
2502
+ * <?php
2503
+ * $I->deleteDir('vendor');
2504
+ * ?>
2505
+ * ```
2506
+ *
2507
+ * @param $dirname
2508
+ * @see \Codeception\Module\Filesystem::deleteDir()
2509
+ */
2510
+ public function deleteDir($dirname) {
2511
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('deleteDir', func_get_args()));
2512
+ }
2513
+
2514
+
2515
+ /**
2516
+ * [!] Method is generated. Documentation taken from corresponding module.
2517
+ *
2518
+ * Copies directory with all contents
2519
+ *
2520
+ * ``` php
2521
+ * <?php
2522
+ * $I->copyDir('vendor','old_vendor');
2523
+ * ?>
2524
+ * ```
2525
+ *
2526
+ * @param $src
2527
+ * @param $dst
2528
+ * @see \Codeception\Module\Filesystem::copyDir()
2529
+ */
2530
+ public function copyDir($src, $dst) {
2531
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('copyDir', func_get_args()));
2532
+ }
2533
+
2534
+
2535
+ /**
2536
+ * [!] Method is generated. Documentation taken from corresponding module.
2537
+ *
2538
+ * Checks If opened file has `text` in it.
2539
+ *
2540
+ * Usage:
2541
+ *
2542
+ * ``` php
2543
+ * <?php
2544
+ * $I->openFile('composer.json');
2545
+ * $I->seeInThisFile('codeception/codeception');
2546
+ * ?>
2547
+ * ```
2548
+ *
2549
+ * @param $text
2550
+ * Conditional Assertion: Test won't be stopped on fail
2551
+ * @see \Codeception\Module\Filesystem::seeInThisFile()
2552
+ */
2553
+ public function canSeeInThisFile($text) {
2554
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInThisFile', func_get_args()));
2555
+ }
2556
+ /**
2557
+ * [!] Method is generated. Documentation taken from corresponding module.
2558
+ *
2559
+ * Checks If opened file has `text` in it.
2560
+ *
2561
+ * Usage:
2562
+ *
2563
+ * ``` php
2564
+ * <?php
2565
+ * $I->openFile('composer.json');
2566
+ * $I->seeInThisFile('codeception/codeception');
2567
+ * ?>
2568
+ * ```
2569
+ *
2570
+ * @param $text
2571
+ * @see \Codeception\Module\Filesystem::seeInThisFile()
2572
+ */
2573
+ public function seeInThisFile($text) {
2574
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInThisFile', func_get_args()));
2575
+ }
2576
+
2577
+
2578
+ /**
2579
+ * [!] Method is generated. Documentation taken from corresponding module.
2580
+ *
2581
+ * Checks If opened file has the `number` of new lines.
2582
+ *
2583
+ * Usage:
2584
+ *
2585
+ * ``` php
2586
+ * <?php
2587
+ * $I->openFile('composer.json');
2588
+ * $I->seeNumberNewLines(5);
2589
+ * ?>
2590
+ * ```
2591
+ *
2592
+ * @param int $number New lines
2593
+ * Conditional Assertion: Test won't be stopped on fail
2594
+ * @see \Codeception\Module\Filesystem::seeNumberNewLines()
2595
+ */
2596
+ public function canSeeNumberNewLines($number) {
2597
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeNumberNewLines', func_get_args()));
2598
+ }
2599
+ /**
2600
+ * [!] Method is generated. Documentation taken from corresponding module.
2601
+ *
2602
+ * Checks If opened file has the `number` of new lines.
2603
+ *
2604
+ * Usage:
2605
+ *
2606
+ * ``` php
2607
+ * <?php
2608
+ * $I->openFile('composer.json');
2609
+ * $I->seeNumberNewLines(5);
2610
+ * ?>
2611
+ * ```
2612
+ *
2613
+ * @param int $number New lines
2614
+ * @see \Codeception\Module\Filesystem::seeNumberNewLines()
2615
+ */
2616
+ public function seeNumberNewLines($number) {
2617
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeNumberNewLines', func_get_args()));
2618
+ }
2619
+
2620
+
2621
+ /**
2622
+ * [!] Method is generated. Documentation taken from corresponding module.
2623
+ *
2624
+ * Checks that contents of currently opened file matches $regex
2625
+ *
2626
+ * @param $regex
2627
+ * Conditional Assertion: Test won't be stopped on fail
2628
+ * @see \Codeception\Module\Filesystem::seeThisFileMatches()
2629
+ */
2630
+ public function canSeeThisFileMatches($regex) {
2631
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeThisFileMatches', func_get_args()));
2632
+ }
2633
+ /**
2634
+ * [!] Method is generated. Documentation taken from corresponding module.
2635
+ *
2636
+ * Checks that contents of currently opened file matches $regex
2637
+ *
2638
+ * @param $regex
2639
+ * @see \Codeception\Module\Filesystem::seeThisFileMatches()
2640
+ */
2641
+ public function seeThisFileMatches($regex) {
2642
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeThisFileMatches', func_get_args()));
2643
+ }
2644
+
2645
+
2646
+ /**
2647
+ * [!] Method is generated. Documentation taken from corresponding module.
2648
+ *
2649
+ * Checks the strict matching of file contents.
2650
+ * Unlike `seeInThisFile` will fail if file has something more than expected lines.
2651
+ * Better to use with HEREDOC strings.
2652
+ * Matching is done after removing "\r" chars from file content.
2653
+ *
2654
+ * ``` php
2655
+ * <?php
2656
+ * $I->openFile('process.pid');
2657
+ * $I->seeFileContentsEqual('3192');
2658
+ * ?>
2659
+ * ```
2660
+ *
2661
+ * @param $text
2662
+ * Conditional Assertion: Test won't be stopped on fail
2663
+ * @see \Codeception\Module\Filesystem::seeFileContentsEqual()
2664
+ */
2665
+ public function canSeeFileContentsEqual($text) {
2666
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeFileContentsEqual', func_get_args()));
2667
+ }
2668
+ /**
2669
+ * [!] Method is generated. Documentation taken from corresponding module.
2670
+ *
2671
+ * Checks the strict matching of file contents.
2672
+ * Unlike `seeInThisFile` will fail if file has something more than expected lines.
2673
+ * Better to use with HEREDOC strings.
2674
+ * Matching is done after removing "\r" chars from file content.
2675
+ *
2676
+ * ``` php
2677
+ * <?php
2678
+ * $I->openFile('process.pid');
2679
+ * $I->seeFileContentsEqual('3192');
2680
+ * ?>
2681
+ * ```
2682
+ *
2683
+ * @param $text
2684
+ * @see \Codeception\Module\Filesystem::seeFileContentsEqual()
2685
+ */
2686
+ public function seeFileContentsEqual($text) {
2687
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeFileContentsEqual', func_get_args()));
2688
+ }
2689
+
2690
+
2691
+ /**
2692
+ * [!] Method is generated. Documentation taken from corresponding module.
2693
+ *
2694
+ * Checks If opened file doesn't contain `text` in it
2695
+ *
2696
+ * ``` php
2697
+ * <?php
2698
+ * $I->openFile('composer.json');
2699
+ * $I->dontSeeInThisFile('codeception/codeception');
2700
+ * ?>
2701
+ * ```
2702
+ *
2703
+ * @param $text
2704
+ * Conditional Assertion: Test won't be stopped on fail
2705
+ * @see \Codeception\Module\Filesystem::dontSeeInThisFile()
2706
+ */
2707
+ public function cantSeeInThisFile($text) {
2708
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInThisFile', func_get_args()));
2709
+ }
2710
+ /**
2711
+ * [!] Method is generated. Documentation taken from corresponding module.
2712
+ *
2713
+ * Checks If opened file doesn't contain `text` in it
2714
+ *
2715
+ * ``` php
2716
+ * <?php
2717
+ * $I->openFile('composer.json');
2718
+ * $I->dontSeeInThisFile('codeception/codeception');
2719
+ * ?>
2720
+ * ```
2721
+ *
2722
+ * @param $text
2723
+ * @see \Codeception\Module\Filesystem::dontSeeInThisFile()
2724
+ */
2725
+ public function dontSeeInThisFile($text) {
2726
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInThisFile', func_get_args()));
2727
+ }
2728
+
2729
+
2730
+ /**
2731
+ * [!] Method is generated. Documentation taken from corresponding module.
2732
+ *
2733
+ * Deletes a file
2734
+ * @see \Codeception\Module\Filesystem::deleteThisFile()
2735
+ */
2736
+ public function deleteThisFile() {
2737
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('deleteThisFile', func_get_args()));
2738
+ }
2739
+
2740
+
2741
+ /**
2742
+ * [!] Method is generated. Documentation taken from corresponding module.
2743
+ *
2744
+ * Checks if file exists in path.
2745
+ * Opens a file when it's exists
2746
+ *
2747
+ * ``` php
2748
+ * <?php
2749
+ * $I->seeFileFound('UserModel.php','app/models');
2750
+ * ?>
2751
+ * ```
2752
+ *
2753
+ * @param $filename
2754
+ * @param string $path
2755
+ * Conditional Assertion: Test won't be stopped on fail
2756
+ * @see \Codeception\Module\Filesystem::seeFileFound()
2757
+ */
2758
+ public function canSeeFileFound($filename, $path = null) {
2759
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeFileFound', func_get_args()));
2760
+ }
2761
+ /**
2762
+ * [!] Method is generated. Documentation taken from corresponding module.
2763
+ *
2764
+ * Checks if file exists in path.
2765
+ * Opens a file when it's exists
2766
+ *
2767
+ * ``` php
2768
+ * <?php
2769
+ * $I->seeFileFound('UserModel.php','app/models');
2770
+ * ?>
2771
+ * ```
2772
+ *
2773
+ * @param $filename
2774
+ * @param string $path
2775
+ * @see \Codeception\Module\Filesystem::seeFileFound()
2776
+ */
2777
+ public function seeFileFound($filename, $path = null) {
2778
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeFileFound', func_get_args()));
2779
+ }
2780
+
2781
+
2782
+ /**
2783
+ * [!] Method is generated. Documentation taken from corresponding module.
2784
+ *
2785
+ * Checks if file does not exist in path
2786
+ *
2787
+ * @param $filename
2788
+ * @param string $path
2789
+ * Conditional Assertion: Test won't be stopped on fail
2790
+ * @see \Codeception\Module\Filesystem::dontSeeFileFound()
2791
+ */
2792
+ public function cantSeeFileFound($filename, $path = null) {
2793
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeFileFound', func_get_args()));
2794
+ }
2795
+ /**
2796
+ * [!] Method is generated. Documentation taken from corresponding module.
2797
+ *
2798
+ * Checks if file does not exist in path
2799
+ *
2800
+ * @param $filename
2801
+ * @param string $path
2802
+ * @see \Codeception\Module\Filesystem::dontSeeFileFound()
2803
+ */
2804
+ public function dontSeeFileFound($filename, $path = null) {
2805
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeFileFound', func_get_args()));
2806
+ }
2807
+
2808
+
2809
+ /**
2810
+ * [!] Method is generated. Documentation taken from corresponding module.
2811
+ *
2812
+ * Erases directory contents
2813
+ *
2814
+ * ``` php
2815
+ * <?php
2816
+ * $I->cleanDir('logs');
2817
+ * ?>
2818
+ * ```
2819
+ *
2820
+ * @param $dirname
2821
+ * @see \Codeception\Module\Filesystem::cleanDir()
2822
+ */
2823
+ public function cleanDir($dirname) {
2824
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('cleanDir', func_get_args()));
2825
+ }
2826
+
2827
+
2828
+ /**
2829
+ * [!] Method is generated. Documentation taken from corresponding module.
2830
+ *
2831
+ * Saves contents to file
2832
+ *
2833
+ * @param $filename
2834
+ * @param $contents
2835
+ * @see \Codeception\Module\Filesystem::writeToFile()
2836
+ */
2837
+ public function writeToFile($filename, $contents) {
2838
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('writeToFile', func_get_args()));
2839
+ }
2840
+
2841
+
2842
+ /**
2843
+ * [!] Method is generated. Documentation taken from corresponding module.
2844
+ *
2845
+ * Checks that two variables are equal.
2846
+ *
2847
+ * @param $expected
2848
+ * @param $actual
2849
+ * @param string $message
2850
+ * @see \Codeception\Module\Asserts::assertEquals()
2851
+ */
2852
+ public function assertEquals($expected, $actual, $message = null) {
2853
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertEquals', func_get_args()));
2854
+ }
2855
+
2856
+
2857
+ /**
2858
+ * [!] Method is generated. Documentation taken from corresponding module.
2859
+ *
2860
+ * Checks that two variables are not equal
2861
+ *
2862
+ * @param $expected
2863
+ * @param $actual
2864
+ * @param string $message
2865
+ * @see \Codeception\Module\Asserts::assertNotEquals()
2866
+ */
2867
+ public function assertNotEquals($expected, $actual, $message = null) {
2868
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotEquals', func_get_args()));
2869
+ }
2870
+
2871
+
2872
+ /**
2873
+ * [!] Method is generated. Documentation taken from corresponding module.
2874
+ *
2875
+ * Checks that two variables are same
2876
+ *
2877
+ * @param $expected
2878
+ * @param $actual
2879
+ * @param string $message
2880
+ * @return mixed|void
2881
+ * @see \Codeception\Module\Asserts::assertSame()
2882
+ */
2883
+ public function assertSame($expected, $actual, $message = null) {
2884
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertSame', func_get_args()));
2885
+ }
2886
+
2887
+
2888
+ /**
2889
+ * [!] Method is generated. Documentation taken from corresponding module.
2890
+ *
2891
+ * Checks that two variables are not same
2892
+ *
2893
+ * @param $expected
2894
+ * @param $actual
2895
+ * @param string $message
2896
+ * @see \Codeception\Module\Asserts::assertNotSame()
2897
+ */
2898
+ public function assertNotSame($expected, $actual, $message = null) {
2899
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotSame', func_get_args()));
2900
+ }
2901
+
2902
+
2903
+ /**
2904
+ * [!] Method is generated. Documentation taken from corresponding module.
2905
+ *
2906
+ * Checks that actual is greater than expected
2907
+ *
2908
+ * @param $expected
2909
+ * @param $actual
2910
+ * @param string $message
2911
+ * @see \Codeception\Module\Asserts::assertGreaterThan()
2912
+ */
2913
+ public function assertGreaterThan($expected, $actual, $message = null) {
2914
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertGreaterThan', func_get_args()));
2915
+ }
2916
+
2917
+
2918
+ /**
2919
+ * [!] Method is generated. Documentation taken from corresponding module.
2920
+ *
2921
+ * Checks that actual is greater or equal than expected
2922
+ *
2923
+ * @param $expected
2924
+ * @param $actual
2925
+ * @param string $message
2926
+ * @see \Codeception\Module\Asserts::assertGreaterThanOrEqual()
2927
+ */
2928
+ public function assertGreaterThanOrEqual($expected, $actual, $message = null) {
2929
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertGreaterThanOrEqual', func_get_args()));
2930
+ }
2931
+
2932
+
2933
+ /**
2934
+ * [!] Method is generated. Documentation taken from corresponding module.
2935
+ *
2936
+ * Checks that actual is less than expected
2937
+ *
2938
+ * @param $expected
2939
+ * @param $actual
2940
+ * @param string $message
2941
+ * @see \Codeception\Module\Asserts::assertLessThan()
2942
+ */
2943
+ public function assertLessThan($expected, $actual, $message = null) {
2944
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertLessThan', func_get_args()));
2945
+ }
2946
+
2947
+
2948
+ /**
2949
+ * [!] Method is generated. Documentation taken from corresponding module.
2950
+ *
2951
+ * Checks that actual is less or equal than expected
2952
+ *
2953
+ * @param $expected
2954
+ * @param $actual
2955
+ * @param string $message
2956
+ * @see \Codeception\Module\Asserts::assertLessThanOrEqual()
2957
+ */
2958
+ public function assertLessThanOrEqual($expected, $actual, $message = null) {
2959
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertLessThanOrEqual', func_get_args()));
2960
+ }
2961
+
2962
+
2963
+ /**
2964
+ * [!] Method is generated. Documentation taken from corresponding module.
2965
+ *
2966
+ * Checks that haystack contains needle
2967
+ *
2968
+ * @param $needle
2969
+ * @param $haystack
2970
+ * @param string $message
2971
+ * @see \Codeception\Module\Asserts::assertContains()
2972
+ */
2973
+ public function assertContains($needle, $haystack, $message = null) {
2974
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertContains', func_get_args()));
2975
+ }
2976
+
2977
+
2978
+ /**
2979
+ * [!] Method is generated. Documentation taken from corresponding module.
2980
+ *
2981
+ * Checks that haystack doesn't contain needle.
2982
+ *
2983
+ * @param $needle
2984
+ * @param $haystack
2985
+ * @param string $message
2986
+ * @see \Codeception\Module\Asserts::assertNotContains()
2987
+ */
2988
+ public function assertNotContains($needle, $haystack, $message = null) {
2989
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotContains', func_get_args()));
2990
+ }
2991
+
2992
+
2993
+ /**
2994
+ * [!] Method is generated. Documentation taken from corresponding module.
2995
+ *
2996
+ * Checks that string match with pattern
2997
+ *
2998
+ * @param string $pattern
2999
+ * @param string $string
3000
+ * @param string $message
3001
+ * @see \Codeception\Module\Asserts::assertRegExp()
3002
+ */
3003
+ public function assertRegExp($pattern, $string, $message = null) {
3004
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertRegExp', func_get_args()));
3005
+ }
3006
+
3007
+
3008
+ /**
3009
+ * [!] Method is generated. Documentation taken from corresponding module.
3010
+ *
3011
+ * Checks that string not match with pattern
3012
+ *
3013
+ * @param string $pattern
3014
+ * @param string $string
3015
+ * @param string $message
3016
+ * @see \Codeception\Module\Asserts::assertNotRegExp()
3017
+ */
3018
+ public function assertNotRegExp($pattern, $string, $message = null) {
3019
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotRegExp', func_get_args()));
3020
+ }
3021
+
3022
+
3023
+ /**
3024
+ * [!] Method is generated. Documentation taken from corresponding module.
3025
+ *
3026
+ * Checks that variable is empty.
3027
+ *
3028
+ * @param $actual
3029
+ * @param string $message
3030
+ * @see \Codeception\Module\Asserts::assertEmpty()
3031
+ */
3032
+ public function assertEmpty($actual, $message = null) {
3033
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertEmpty', func_get_args()));
3034
+ }
3035
+
3036
+
3037
+ /**
3038
+ * [!] Method is generated. Documentation taken from corresponding module.
3039
+ *
3040
+ * Checks that variable is not empty.
3041
+ *
3042
+ * @param $actual
3043
+ * @param string $message
3044
+ * @see \Codeception\Module\Asserts::assertNotEmpty()
3045
+ */
3046
+ public function assertNotEmpty($actual, $message = null) {
3047
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotEmpty', func_get_args()));
3048
+ }
3049
+
3050
+
3051
+ /**
3052
+ * [!] Method is generated. Documentation taken from corresponding module.
3053
+ *
3054
+ * Checks that variable is NULL
3055
+ *
3056
+ * @param $actual
3057
+ * @param string $message
3058
+ * @see \Codeception\Module\Asserts::assertNull()
3059
+ */
3060
+ public function assertNull($actual, $message = null) {
3061
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNull', func_get_args()));
3062
+ }
3063
+
3064
+
3065
+ /**
3066
+ * [!] Method is generated. Documentation taken from corresponding module.
3067
+ *
3068
+ * Checks that variable is not NULL
3069
+ *
3070
+ * @param $actual
3071
+ * @param string $message
3072
+ * @see \Codeception\Module\Asserts::assertNotNull()
3073
+ */
3074
+ public function assertNotNull($actual, $message = null) {
3075
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotNull', func_get_args()));
3076
+ }
3077
+
3078
+
3079
+ /**
3080
+ * [!] Method is generated. Documentation taken from corresponding module.
3081
+ *
3082
+ * Checks that condition is positive.
3083
+ *
3084
+ * @param $condition
3085
+ * @param string $message
3086
+ * @see \Codeception\Module\Asserts::assertTrue()
3087
+ */
3088
+ public function assertTrue($condition, $message = null) {
3089
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertTrue', func_get_args()));
3090
+ }
3091
+
3092
+
3093
+ /**
3094
+ * [!] Method is generated. Documentation taken from corresponding module.
3095
+ *
3096
+ * Checks that condition is negative.
3097
+ *
3098
+ * @param $condition
3099
+ * @param string $message
3100
+ * @see \Codeception\Module\Asserts::assertFalse()
3101
+ */
3102
+ public function assertFalse($condition, $message = null) {
3103
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertFalse', func_get_args()));
3104
+ }
3105
+
3106
+
3107
+ /**
3108
+ * [!] Method is generated. Documentation taken from corresponding module.
3109
+ *
3110
+ * Checks if file exists
3111
+ *
3112
+ * @param string $filename
3113
+ * @param string $message
3114
+ * @see \Codeception\Module\Asserts::assertFileExists()
3115
+ */
3116
+ public function assertFileExists($filename, $message = null) {
3117
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertFileExists', func_get_args()));
3118
+ }
3119
+
3120
+
3121
+ /**
3122
+ * [!] Method is generated. Documentation taken from corresponding module.
3123
+ *
3124
+ * Checks if file doesn't exist
3125
+ *
3126
+ * @param string $filename
3127
+ * @param string $message
3128
+ * @see \Codeception\Module\Asserts::assertFileNotExists()
3129
+ */
3130
+ public function assertFileNotExists($filename, $message = null) {
3131
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertFileNotExists', func_get_args()));
3132
+ }
3133
+
3134
+
3135
+ /**
3136
+ * [!] Method is generated. Documentation taken from corresponding module.
3137
+ *
3138
+ * @param $expected
3139
+ * @param $actual
3140
+ * @param $description
3141
+ * @see \Codeception\Module\Asserts::assertGreaterOrEquals()
3142
+ */
3143
+ public function assertGreaterOrEquals($expected, $actual, $description = null) {
3144
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertGreaterOrEquals', func_get_args()));
3145
+ }
3146
+
3147
+
3148
+ /**
3149
+ * [!] Method is generated. Documentation taken from corresponding module.
3150
+ *
3151
+ * @param $expected
3152
+ * @param $actual
3153
+ * @param $description
3154
+ * @see \Codeception\Module\Asserts::assertLessOrEquals()
3155
+ */
3156
+ public function assertLessOrEquals($expected, $actual, $description = null) {
3157
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertLessOrEquals', func_get_args()));
3158
+ }
3159
+
3160
+
3161
+ /**
3162
+ * [!] Method is generated. Documentation taken from corresponding module.
3163
+ *
3164
+ * @param $actual
3165
+ * @param $description
3166
+ * @see \Codeception\Module\Asserts::assertIsEmpty()
3167
+ */
3168
+ public function assertIsEmpty($actual, $description = null) {
3169
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertIsEmpty', func_get_args()));
3170
+ }
3171
+
3172
+
3173
+ /**
3174
+ * [!] Method is generated. Documentation taken from corresponding module.
3175
+ *
3176
+ * @param $key
3177
+ * @param $actual
3178
+ * @param $description
3179
+ * @see \Codeception\Module\Asserts::assertArrayHasKey()
3180
+ */
3181
+ public function assertArrayHasKey($key, $actual, $description = null) {
3182
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertArrayHasKey', func_get_args()));
3183
+ }
3184
+
3185
+
3186
+ /**
3187
+ * [!] Method is generated. Documentation taken from corresponding module.
3188
+ *
3189
+ * @param $key
3190
+ * @param $actual
3191
+ * @param $description
3192
+ * @see \Codeception\Module\Asserts::assertArrayNotHasKey()
3193
+ */
3194
+ public function assertArrayNotHasKey($key, $actual, $description = null) {
3195
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertArrayNotHasKey', func_get_args()));
3196
+ }
3197
+
3198
+
3199
+ /**
3200
+ * [!] Method is generated. Documentation taken from corresponding module.
3201
+ *
3202
+ * @param $class
3203
+ * @param $actual
3204
+ * @param $description
3205
+ * @see \Codeception\Module\Asserts::assertInstanceOf()
3206
+ */
3207
+ public function assertInstanceOf($class, $actual, $description = null) {
3208
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertInstanceOf', func_get_args()));
3209
+ }
3210
+
3211
+
3212
+ /**
3213
+ * [!] Method is generated. Documentation taken from corresponding module.
3214
+ *
3215
+ * @param $class
3216
+ * @param $actual
3217
+ * @param $description
3218
+ * @see \Codeception\Module\Asserts::assertNotInstanceOf()
3219
+ */
3220
+ public function assertNotInstanceOf($class, $actual, $description = null) {
3221
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotInstanceOf', func_get_args()));
3222
+ }
3223
+
3224
+
3225
+ /**
3226
+ * [!] Method is generated. Documentation taken from corresponding module.
3227
+ *
3228
+ * @param $type
3229
+ * @param $actual
3230
+ * @param $description
3231
+ * @see \Codeception\Module\Asserts::assertInternalType()
3232
+ */
3233
+ public function assertInternalType($type, $actual, $description = null) {
3234
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertInternalType', func_get_args()));
3235
+ }
3236
+
3237
+
3238
+ /**
3239
+ * [!] Method is generated. Documentation taken from corresponding module.
3240
+ *
3241
+ * Fails the test with message.
3242
+ *
3243
+ * @param $message
3244
+ * @see \Codeception\Module\Asserts::fail()
3245
+ */
3246
+ public function fail($message) {
3247
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('fail', func_get_args()));
3248
+ }
3249
+
3250
+
3251
+ /**
3252
+ * [!] Method is generated. Documentation taken from corresponding module.
3253
+ *
3254
+ * Handles and checks exception called inside callback function.
3255
+ * Either exception class name or exception instance should be provided.
3256
+ *
3257
+ * ```php
3258
+ * <?php
3259
+ * $I->expectException(MyException::class, function() {
3260
+ * $this->doSomethingBad();
3261
+ * });
3262
+ *
3263
+ * $I->expectException(new MyException(), function() {
3264
+ * $this->doSomethingBad();
3265
+ * });
3266
+ * ```
3267
+ * If you want to check message or exception code, you can pass them with exception instance:
3268
+ * ```php
3269
+ * <?php
3270
+ * // will check that exception MyException is thrown with "Don't do bad things" message
3271
+ * $I->expectException(new MyException("Don't do bad things"), function() {
3272
+ * $this->doSomethingBad();
3273
+ * });
3274
+ * ```
3275
+ *
3276
+ * @param $exception string or \Exception
3277
+ * @param $callback
3278
+ * @see \Codeception\Module\Asserts::expectException()
3279
+ */
3280
+ public function expectException($exception, $callback) {
3281
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('expectException', func_get_args()));
3282
+ }
3283
+ }
tests/_support/_generated/FunctionalTesterActions.php ADDED
@@ -0,0 +1,862 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php //[STAMP] a7998ce43103ddef5d6cac161ff9db5a
2
+ namespace _generated;
3
+
4
+ // This class was automatically generated by build task
5
+ // You should not change it manually as it will be overwritten on next build
6
+ // @codingStandardsIgnoreFile
7
+
8
+ use Helper\Functional;
9
+ use Codeception\Module\Filesystem;
10
+ use Codeception\Module\Asserts;
11
+
12
+ trait FunctionalTesterActions
13
+ {
14
+ /**
15
+ * @return \Codeception\Scenario
16
+ */
17
+ abstract protected function getScenario();
18
+
19
+
20
+ /**
21
+ * [!] Method is generated. Documentation taken from corresponding module.
22
+ *
23
+ * Enters a directory In local filesystem.
24
+ * Project root directory is used by default
25
+ *
26
+ * @param $path
27
+ * @see \Codeception\Module\Filesystem::amInPath()
28
+ */
29
+ public function amInPath($path) {
30
+ return $this->getScenario()->runStep(new \Codeception\Step\Condition('amInPath', func_get_args()));
31
+ }
32
+
33
+
34
+ /**
35
+ * [!] Method is generated. Documentation taken from corresponding module.
36
+ *
37
+ * Opens a file and stores it's content.
38
+ *
39
+ * Usage:
40
+ *
41
+ * ``` php
42
+ * <?php
43
+ * $I->openFile('composer.json');
44
+ * $I->seeInThisFile('codeception/codeception');
45
+ * ?>
46
+ * ```
47
+ *
48
+ * @param $filename
49
+ * @see \Codeception\Module\Filesystem::openFile()
50
+ */
51
+ public function openFile($filename) {
52
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('openFile', func_get_args()));
53
+ }
54
+
55
+
56
+ /**
57
+ * [!] Method is generated. Documentation taken from corresponding module.
58
+ *
59
+ * Deletes a file
60
+ *
61
+ * ``` php
62
+ * <?php
63
+ * $I->deleteFile('composer.lock');
64
+ * ?>
65
+ * ```
66
+ *
67
+ * @param $filename
68
+ * @see \Codeception\Module\Filesystem::deleteFile()
69
+ */
70
+ public function deleteFile($filename) {
71
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('deleteFile', func_get_args()));
72
+ }
73
+
74
+
75
+ /**
76
+ * [!] Method is generated. Documentation taken from corresponding module.
77
+ *
78
+ * Deletes directory with all subdirectories
79
+ *
80
+ * ``` php
81
+ * <?php
82
+ * $I->deleteDir('vendor');
83
+ * ?>
84
+ * ```
85
+ *
86
+ * @param $dirname
87
+ * @see \Codeception\Module\Filesystem::deleteDir()
88
+ */
89
+ public function deleteDir($dirname) {
90
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('deleteDir', func_get_args()));
91
+ }
92
+
93
+
94
+ /**
95
+ * [!] Method is generated. Documentation taken from corresponding module.
96
+ *
97
+ * Copies directory with all contents
98
+ *
99
+ * ``` php
100
+ * <?php
101
+ * $I->copyDir('vendor','old_vendor');
102
+ * ?>
103
+ * ```
104
+ *
105
+ * @param $src
106
+ * @param $dst
107
+ * @see \Codeception\Module\Filesystem::copyDir()
108
+ */
109
+ public function copyDir($src, $dst) {
110
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('copyDir', func_get_args()));
111
+ }
112
+
113
+
114
+ /**
115
+ * [!] Method is generated. Documentation taken from corresponding module.
116
+ *
117
+ * Checks If opened file has `text` in it.
118
+ *
119
+ * Usage:
120
+ *
121
+ * ``` php
122
+ * <?php
123
+ * $I->openFile('composer.json');
124
+ * $I->seeInThisFile('codeception/codeception');
125
+ * ?>
126
+ * ```
127
+ *
128
+ * @param $text
129
+ * Conditional Assertion: Test won't be stopped on fail
130
+ * @see \Codeception\Module\Filesystem::seeInThisFile()
131
+ */
132
+ public function canSeeInThisFile($text) {
133
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInThisFile', func_get_args()));
134
+ }
135
+ /**
136
+ * [!] Method is generated. Documentation taken from corresponding module.
137
+ *
138
+ * Checks If opened file has `text` in it.
139
+ *
140
+ * Usage:
141
+ *
142
+ * ``` php
143
+ * <?php
144
+ * $I->openFile('composer.json');
145
+ * $I->seeInThisFile('codeception/codeception');
146
+ * ?>
147
+ * ```
148
+ *
149
+ * @param $text
150
+ * @see \Codeception\Module\Filesystem::seeInThisFile()
151
+ */
152
+ public function seeInThisFile($text) {
153
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInThisFile', func_get_args()));
154
+ }
155
+
156
+
157
+ /**
158
+ * [!] Method is generated. Documentation taken from corresponding module.
159
+ *
160
+ * Checks If opened file has the `number` of new lines.
161
+ *
162
+ * Usage:
163
+ *
164
+ * ``` php
165
+ * <?php
166
+ * $I->openFile('composer.json');
167
+ * $I->seeNumberNewLines(5);
168
+ * ?>
169
+ * ```
170
+ *
171
+ * @param int $number New lines
172
+ * Conditional Assertion: Test won't be stopped on fail
173
+ * @see \Codeception\Module\Filesystem::seeNumberNewLines()
174
+ */
175
+ public function canSeeNumberNewLines($number) {
176
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeNumberNewLines', func_get_args()));
177
+ }
178
+ /**
179
+ * [!] Method is generated. Documentation taken from corresponding module.
180
+ *
181
+ * Checks If opened file has the `number` of new lines.
182
+ *
183
+ * Usage:
184
+ *
185
+ * ``` php
186
+ * <?php
187
+ * $I->openFile('composer.json');
188
+ * $I->seeNumberNewLines(5);
189
+ * ?>
190
+ * ```
191
+ *
192
+ * @param int $number New lines
193
+ * @see \Codeception\Module\Filesystem::seeNumberNewLines()
194
+ */
195
+ public function seeNumberNewLines($number) {
196
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeNumberNewLines', func_get_args()));
197
+ }
198
+
199
+
200
+ /**
201
+ * [!] Method is generated. Documentation taken from corresponding module.
202
+ *
203
+ * Checks that contents of currently opened file matches $regex
204
+ *
205
+ * @param $regex
206
+ * Conditional Assertion: Test won't be stopped on fail
207
+ * @see \Codeception\Module\Filesystem::seeThisFileMatches()
208
+ */
209
+ public function canSeeThisFileMatches($regex) {
210
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeThisFileMatches', func_get_args()));
211
+ }
212
+ /**
213
+ * [!] Method is generated. Documentation taken from corresponding module.
214
+ *
215
+ * Checks that contents of currently opened file matches $regex
216
+ *
217
+ * @param $regex
218
+ * @see \Codeception\Module\Filesystem::seeThisFileMatches()
219
+ */
220
+ public function seeThisFileMatches($regex) {
221
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeThisFileMatches', func_get_args()));
222
+ }
223
+
224
+
225
+ /**
226
+ * [!] Method is generated. Documentation taken from corresponding module.
227
+ *
228
+ * Checks the strict matching of file contents.
229
+ * Unlike `seeInThisFile` will fail if file has something more than expected lines.
230
+ * Better to use with HEREDOC strings.
231
+ * Matching is done after removing "\r" chars from file content.
232
+ *
233
+ * ``` php
234
+ * <?php
235
+ * $I->openFile('process.pid');
236
+ * $I->seeFileContentsEqual('3192');
237
+ * ?>
238
+ * ```
239
+ *
240
+ * @param $text
241
+ * Conditional Assertion: Test won't be stopped on fail
242
+ * @see \Codeception\Module\Filesystem::seeFileContentsEqual()
243
+ */
244
+ public function canSeeFileContentsEqual($text) {
245
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeFileContentsEqual', func_get_args()));
246
+ }
247
+ /**
248
+ * [!] Method is generated. Documentation taken from corresponding module.
249
+ *
250
+ * Checks the strict matching of file contents.
251
+ * Unlike `seeInThisFile` will fail if file has something more than expected lines.
252
+ * Better to use with HEREDOC strings.
253
+ * Matching is done after removing "\r" chars from file content.
254
+ *
255
+ * ``` php
256
+ * <?php
257
+ * $I->openFile('process.pid');
258
+ * $I->seeFileContentsEqual('3192');
259
+ * ?>
260
+ * ```
261
+ *
262
+ * @param $text
263
+ * @see \Codeception\Module\Filesystem::seeFileContentsEqual()
264
+ */
265
+ public function seeFileContentsEqual($text) {
266
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeFileContentsEqual', func_get_args()));
267
+ }
268
+
269
+
270
+ /**
271
+ * [!] Method is generated. Documentation taken from corresponding module.
272
+ *
273
+ * Checks If opened file doesn't contain `text` in it
274
+ *
275
+ * ``` php
276
+ * <?php
277
+ * $I->openFile('composer.json');
278
+ * $I->dontSeeInThisFile('codeception/codeception');
279
+ * ?>
280
+ * ```
281
+ *
282
+ * @param $text
283
+ * Conditional Assertion: Test won't be stopped on fail
284
+ * @see \Codeception\Module\Filesystem::dontSeeInThisFile()
285
+ */
286
+ public function cantSeeInThisFile($text) {
287
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInThisFile', func_get_args()));
288
+ }
289
+ /**
290
+ * [!] Method is generated. Documentation taken from corresponding module.
291
+ *
292
+ * Checks If opened file doesn't contain `text` in it
293
+ *
294
+ * ``` php
295
+ * <?php
296
+ * $I->openFile('composer.json');
297
+ * $I->dontSeeInThisFile('codeception/codeception');
298
+ * ?>
299
+ * ```
300
+ *
301
+ * @param $text
302
+ * @see \Codeception\Module\Filesystem::dontSeeInThisFile()
303
+ */
304
+ public function dontSeeInThisFile($text) {
305
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInThisFile', func_get_args()));
306
+ }
307
+
308
+
309
+ /**
310
+ * [!] Method is generated. Documentation taken from corresponding module.
311
+ *
312
+ * Deletes a file
313
+ * @see \Codeception\Module\Filesystem::deleteThisFile()
314
+ */
315
+ public function deleteThisFile() {
316
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('deleteThisFile', func_get_args()));
317
+ }
318
+
319
+
320
+ /**
321
+ * [!] Method is generated. Documentation taken from corresponding module.
322
+ *
323
+ * Checks if file exists in path.
324
+ * Opens a file when it's exists
325
+ *
326
+ * ``` php
327
+ * <?php
328
+ * $I->seeFileFound('UserModel.php','app/models');
329
+ * ?>
330
+ * ```
331
+ *
332
+ * @param $filename
333
+ * @param string $path
334
+ * Conditional Assertion: Test won't be stopped on fail
335
+ * @see \Codeception\Module\Filesystem::seeFileFound()
336
+ */
337
+ public function canSeeFileFound($filename, $path = null) {
338
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeFileFound', func_get_args()));
339
+ }
340
+ /**
341
+ * [!] Method is generated. Documentation taken from corresponding module.
342
+ *
343
+ * Checks if file exists in path.
344
+ * Opens a file when it's exists
345
+ *
346
+ * ``` php
347
+ * <?php
348
+ * $I->seeFileFound('UserModel.php','app/models');
349
+ * ?>
350
+ * ```
351
+ *
352
+ * @param $filename
353
+ * @param string $path
354
+ * @see \Codeception\Module\Filesystem::seeFileFound()
355
+ */
356
+ public function seeFileFound($filename, $path = null) {
357
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeFileFound', func_get_args()));
358
+ }
359
+
360
+
361
+ /**
362
+ * [!] Method is generated. Documentation taken from corresponding module.
363
+ *
364
+ * Checks if file does not exist in path
365
+ *
366
+ * @param $filename
367
+ * @param string $path
368
+ * Conditional Assertion: Test won't be stopped on fail
369
+ * @see \Codeception\Module\Filesystem::dontSeeFileFound()
370
+ */
371
+ public function cantSeeFileFound($filename, $path = null) {
372
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeFileFound', func_get_args()));
373
+ }
374
+ /**
375
+ * [!] Method is generated. Documentation taken from corresponding module.
376
+ *
377
+ * Checks if file does not exist in path
378
+ *
379
+ * @param $filename
380
+ * @param string $path
381
+ * @see \Codeception\Module\Filesystem::dontSeeFileFound()
382
+ */
383
+ public function dontSeeFileFound($filename, $path = null) {
384
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeFileFound', func_get_args()));
385
+ }
386
+
387
+
388
+ /**
389
+ * [!] Method is generated. Documentation taken from corresponding module.
390
+ *
391
+ * Erases directory contents
392
+ *
393
+ * ``` php
394
+ * <?php
395
+ * $I->cleanDir('logs');
396
+ * ?>
397
+ * ```
398
+ *
399
+ * @param $dirname
400
+ * @see \Codeception\Module\Filesystem::cleanDir()
401
+ */
402
+ public function cleanDir($dirname) {
403
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('cleanDir', func_get_args()));
404
+ }
405
+
406
+
407
+ /**
408
+ * [!] Method is generated. Documentation taken from corresponding module.
409
+ *
410
+ * Saves contents to file
411
+ *
412
+ * @param $filename
413
+ * @param $contents
414
+ * @see \Codeception\Module\Filesystem::writeToFile()
415
+ */
416
+ public function writeToFile($filename, $contents) {
417
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('writeToFile', func_get_args()));
418
+ }
419
+
420
+
421
+ /**
422
+ * [!] Method is generated. Documentation taken from corresponding module.
423
+ *
424
+ * Checks that two variables are equal.
425
+ *
426
+ * @param $expected
427
+ * @param $actual
428
+ * @param string $message
429
+ * @see \Codeception\Module\Asserts::assertEquals()
430
+ */
431
+ public function assertEquals($expected, $actual, $message = null) {
432
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertEquals', func_get_args()));
433
+ }
434
+
435
+
436
+ /**
437
+ * [!] Method is generated. Documentation taken from corresponding module.
438
+ *
439
+ * Checks that two variables are not equal
440
+ *
441
+ * @param $expected
442
+ * @param $actual
443
+ * @param string $message
444
+ * @see \Codeception\Module\Asserts::assertNotEquals()
445
+ */
446
+ public function assertNotEquals($expected, $actual, $message = null) {
447
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotEquals', func_get_args()));
448
+ }
449
+
450
+
451
+ /**
452
+ * [!] Method is generated. Documentation taken from corresponding module.
453
+ *
454
+ * Checks that two variables are same
455
+ *
456
+ * @param $expected
457
+ * @param $actual
458
+ * @param string $message
459
+ * @return mixed|void
460
+ * @see \Codeception\Module\Asserts::assertSame()
461
+ */
462
+ public function assertSame($expected, $actual, $message = null) {
463
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertSame', func_get_args()));
464
+ }
465
+
466
+
467
+ /**
468
+ * [!] Method is generated. Documentation taken from corresponding module.
469
+ *
470
+ * Checks that two variables are not same
471
+ *
472
+ * @param $expected
473
+ * @param $actual
474
+ * @param string $message
475
+ * @see \Codeception\Module\Asserts::assertNotSame()
476
+ */
477
+ public function assertNotSame($expected, $actual, $message = null) {
478
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotSame', func_get_args()));
479
+ }
480
+
481
+
482
+ /**
483
+ * [!] Method is generated. Documentation taken from corresponding module.
484
+ *
485
+ * Checks that actual is greater than expected
486
+ *
487
+ * @param $expected
488
+ * @param $actual
489
+ * @param string $message
490
+ * @see \Codeception\Module\Asserts::assertGreaterThan()
491
+ */
492
+ public function assertGreaterThan($expected, $actual, $message = null) {
493
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertGreaterThan', func_get_args()));
494
+ }
495
+
496
+
497
+ /**
498
+ * [!] Method is generated. Documentation taken from corresponding module.
499
+ *
500
+ * Checks that actual is greater or equal than expected
501
+ *
502
+ * @param $expected
503
+ * @param $actual
504
+ * @param string $message
505
+ * @see \Codeception\Module\Asserts::assertGreaterThanOrEqual()
506
+ */
507
+ public function assertGreaterThanOrEqual($expected, $actual, $message = null) {
508
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertGreaterThanOrEqual', func_get_args()));
509
+ }
510
+
511
+
512
+ /**
513
+ * [!] Method is generated. Documentation taken from corresponding module.
514
+ *
515
+ * Checks that actual is less than expected
516
+ *
517
+ * @param $expected
518
+ * @param $actual
519
+ * @param string $message
520
+ * @see \Codeception\Module\Asserts::assertLessThan()
521
+ */
522
+ public function assertLessThan($expected, $actual, $message = null) {
523
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertLessThan', func_get_args()));
524
+ }
525
+
526
+
527
+ /**
528
+ * [!] Method is generated. Documentation taken from corresponding module.
529
+ *
530
+ * Checks that actual is less or equal than expected
531
+ *
532
+ * @param $expected
533
+ * @param $actual
534
+ * @param string $message
535
+ * @see \Codeception\Module\Asserts::assertLessThanOrEqual()
536
+ */
537
+ public function assertLessThanOrEqual($expected, $actual, $message = null) {
538
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertLessThanOrEqual', func_get_args()));
539
+ }
540
+
541
+
542
+ /**
543
+ * [!] Method is generated. Documentation taken from corresponding module.
544
+ *
545
+ * Checks that haystack contains needle
546
+ *
547
+ * @param $needle
548
+ * @param $haystack
549
+ * @param string $message
550
+ * @see \Codeception\Module\Asserts::assertContains()
551
+ */
552
+ public function assertContains($needle, $haystack, $message = null) {
553
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertContains', func_get_args()));
554
+ }
555
+
556
+
557
+ /**
558
+ * [!] Method is generated. Documentation taken from corresponding module.
559
+ *
560
+ * Checks that haystack doesn't contain needle.
561
+ *
562
+ * @param $needle
563
+ * @param $haystack
564
+ * @param string $message
565
+ * @see \Codeception\Module\Asserts::assertNotContains()
566
+ */
567
+ public function assertNotContains($needle, $haystack, $message = null) {
568
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotContains', func_get_args()));
569
+ }
570
+
571
+
572
+ /**
573
+ * [!] Method is generated. Documentation taken from corresponding module.
574
+ *
575
+ * Checks that string match with pattern
576
+ *
577
+ * @param string $pattern
578
+ * @param string $string
579
+ * @param string $message
580
+ * @see \Codeception\Module\Asserts::assertRegExp()
581
+ */
582
+ public function assertRegExp($pattern, $string, $message = null) {
583
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertRegExp', func_get_args()));
584
+ }
585
+
586
+
587
+ /**
588
+ * [!] Method is generated. Documentation taken from corresponding module.
589
+ *
590
+ * Checks that string not match with pattern
591
+ *
592
+ * @param string $pattern
593
+ * @param string $string
594
+ * @param string $message
595
+ * @see \Codeception\Module\Asserts::assertNotRegExp()
596
+ */
597
+ public function assertNotRegExp($pattern, $string, $message = null) {
598
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotRegExp', func_get_args()));
599
+ }
600
+
601
+
602
+ /**
603
+ * [!] Method is generated. Documentation taken from corresponding module.
604
+ *
605
+ * Checks that variable is empty.
606
+ *
607
+ * @param $actual
608
+ * @param string $message
609
+ * @see \Codeception\Module\Asserts::assertEmpty()
610
+ */
611
+ public function assertEmpty($actual, $message = null) {
612
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertEmpty', func_get_args()));
613
+ }
614
+
615
+
616
+ /**
617
+ * [!] Method is generated. Documentation taken from corresponding module.
618
+ *
619
+ * Checks that variable is not empty.
620
+ *
621
+ * @param $actual
622
+ * @param string $message
623
+ * @see \Codeception\Module\Asserts::assertNotEmpty()
624
+ */
625
+ public function assertNotEmpty($actual, $message = null) {
626
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotEmpty', func_get_args()));
627
+ }
628
+
629
+
630
+ /**
631
+ * [!] Method is generated. Documentation taken from corresponding module.
632
+ *
633
+ * Checks that variable is NULL
634
+ *
635
+ * @param $actual
636
+ * @param string $message
637
+ * @see \Codeception\Module\Asserts::assertNull()
638
+ */
639
+ public function assertNull($actual, $message = null) {
640
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNull', func_get_args()));
641
+ }
642
+
643
+
644
+ /**
645
+ * [!] Method is generated. Documentation taken from corresponding module.
646
+ *
647
+ * Checks that variable is not NULL
648
+ *
649
+ * @param $actual
650
+ * @param string $message
651
+ * @see \Codeception\Module\Asserts::assertNotNull()
652
+ */
653
+ public function assertNotNull($actual, $message = null) {
654
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotNull', func_get_args()));
655
+ }
656
+
657
+
658
+ /**
659
+ * [!] Method is generated. Documentation taken from corresponding module.
660
+ *
661
+ * Checks that condition is positive.
662
+ *
663
+ * @param $condition
664
+ * @param string $message
665
+ * @see \Codeception\Module\Asserts::assertTrue()
666
+ */
667
+ public function assertTrue($condition, $message = null) {
668
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertTrue', func_get_args()));
669
+ }
670
+
671
+
672
+ /**
673
+ * [!] Method is generated. Documentation taken from corresponding module.
674
+ *
675
+ * Checks that condition is negative.
676
+ *
677
+ * @param $condition
678
+ * @param string $message
679
+ * @see \Codeception\Module\Asserts::assertFalse()
680
+ */
681
+ public function assertFalse($condition, $message = null) {
682
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertFalse', func_get_args()));
683
+ }
684
+
685
+
686
+ /**
687
+ * [!] Method is generated. Documentation taken from corresponding module.
688
+ *
689
+ * Checks if file exists
690
+ *
691
+ * @param string $filename
692
+ * @param string $message
693
+ * @see \Codeception\Module\Asserts::assertFileExists()
694
+ */
695
+ public function assertFileExists($filename, $message = null) {
696
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertFileExists', func_get_args()));
697
+ }
698
+
699
+
700
+ /**
701
+ * [!] Method is generated. Documentation taken from corresponding module.
702
+ *
703
+ * Checks if file doesn't exist
704
+ *
705
+ * @param string $filename
706
+ * @param string $message
707
+ * @see \Codeception\Module\Asserts::assertFileNotExists()
708
+ */
709
+ public function assertFileNotExists($filename, $message = null) {
710
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertFileNotExists', func_get_args()));
711
+ }
712
+
713
+
714
+ /**
715
+ * [!] Method is generated. Documentation taken from corresponding module.
716
+ *
717
+ * @param $expected
718
+ * @param $actual
719
+ * @param $description
720
+ * @see \Codeception\Module\Asserts::assertGreaterOrEquals()
721
+ */
722
+ public function assertGreaterOrEquals($expected, $actual, $description = null) {
723
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertGreaterOrEquals', func_get_args()));
724
+ }
725
+
726
+
727
+ /**
728
+ * [!] Method is generated. Documentation taken from corresponding module.
729
+ *
730
+ * @param $expected
731
+ * @param $actual
732
+ * @param $description
733
+ * @see \Codeception\Module\Asserts::assertLessOrEquals()
734
+ */
735
+ public function assertLessOrEquals($expected, $actual, $description = null) {
736
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertLessOrEquals', func_get_args()));
737
+ }
738
+
739
+
740
+ /**
741
+ * [!] Method is generated. Documentation taken from corresponding module.
742
+ *
743
+ * @param $actual
744
+ * @param $description
745
+ * @see \Codeception\Module\Asserts::assertIsEmpty()
746
+ */
747
+ public function assertIsEmpty($actual, $description = null) {
748
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertIsEmpty', func_get_args()));
749
+ }
750
+
751
+
752
+ /**
753
+ * [!] Method is generated. Documentation taken from corresponding module.
754
+ *
755
+ * @param $key
756
+ * @param $actual
757
+ * @param $description
758
+ * @see \Codeception\Module\Asserts::assertArrayHasKey()
759
+ */
760
+ public function assertArrayHasKey($key, $actual, $description = null) {
761
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertArrayHasKey', func_get_args()));
762
+ }
763
+
764
+
765
+ /**
766
+ * [!] Method is generated. Documentation taken from corresponding module.
767
+ *
768
+ * @param $key
769
+ * @param $actual
770
+ * @param $description
771
+ * @see \Codeception\Module\Asserts::assertArrayNotHasKey()
772
+ */
773
+ public function assertArrayNotHasKey($key, $actual, $description = null) {
774
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertArrayNotHasKey', func_get_args()));
775
+ }
776
+
777
+
778
+ /**
779
+ * [!] Method is generated. Documentation taken from corresponding module.
780
+ *
781
+ * @param $class
782
+ * @param $actual
783
+ * @param $description
784
+ * @see \Codeception\Module\Asserts::assertInstanceOf()
785
+ */
786
+ public function assertInstanceOf($class, $actual, $description = null) {
787
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertInstanceOf', func_get_args()));
788
+ }
789
+
790
+
791
+ /**
792
+ * [!] Method is generated. Documentation taken from corresponding module.
793
+ *
794
+ * @param $class
795
+ * @param $actual
796
+ * @param $description
797
+ * @see \Codeception\Module\Asserts::assertNotInstanceOf()
798
+ */
799
+ public function assertNotInstanceOf($class, $actual, $description = null) {
800
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotInstanceOf', func_get_args()));
801
+ }
802
+
803
+
804
+ /**
805
+ * [!] Method is generated. Documentation taken from corresponding module.
806
+ *
807
+ * @param $type
808
+ * @param $actual
809
+ * @param $description
810
+ * @see \Codeception\Module\Asserts::assertInternalType()
811
+ */
812
+ public function assertInternalType($type, $actual, $description = null) {
813
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertInternalType', func_get_args()));
814
+ }
815
+
816
+
817
+ /**
818
+ * [!] Method is generated. Documentation taken from corresponding module.
819
+ *
820
+ * Fails the test with message.
821
+ *
822
+ * @param $message
823
+ * @see \Codeception\Module\Asserts::fail()
824
+ */
825
+ public function fail($message) {
826
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('fail', func_get_args()));
827
+ }
828
+
829
+
830
+ /**
831
+ * [!] Method is generated. Documentation taken from corresponding module.
832
+ *
833
+ * Handles and checks exception called inside callback function.
834
+ * Either exception class name or exception instance should be provided.
835
+ *
836
+ * ```php
837
+ * <?php
838
+ * $I->expectException(MyException::class, function() {
839
+ * $this->doSomethingBad();
840
+ * });
841
+ *
842
+ * $I->expectException(new MyException(), function() {
843
+ * $this->doSomethingBad();
844
+ * });
845
+ * ```
846
+ * If you want to check message or exception code, you can pass them with exception instance:
847
+ * ```php
848
+ * <?php
849
+ * // will check that exception MyException is thrown with "Don't do bad things" message
850
+ * $I->expectException(new MyException("Don't do bad things"), function() {
851
+ * $this->doSomethingBad();
852
+ * });
853
+ * ```
854
+ *
855
+ * @param $exception string or \Exception
856
+ * @param $callback
857
+ * @see \Codeception\Module\Asserts::expectException()
858
+ */
859
+ public function expectException($exception, $callback) {
860
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('expectException', func_get_args()));
861
+ }
862
+ }
tests/_support/_generated/UnitTesterActions.php ADDED
@@ -0,0 +1,862 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php //[STAMP] 1b9cb8153c8526a40d058947abb70f53
2
+ namespace _generated;
3
+
4
+ // This class was automatically generated by build task
5
+ // You should not change it manually as it will be overwritten on next build
6
+ // @codingStandardsIgnoreFile
7
+
8
+ use Codeception\Module\Asserts;
9
+ use Helper\Unit;
10
+ use Codeception\Module\Filesystem;
11
+
12
+ trait UnitTesterActions
13
+ {
14
+ /**
15
+ * @return \Codeception\Scenario
16
+ */
17
+ abstract protected function getScenario();
18
+
19
+
20
+ /**
21
+ * [!] Method is generated. Documentation taken from corresponding module.
22
+ *
23
+ * Checks that two variables are equal.
24
+ *
25
+ * @param $expected
26
+ * @param $actual
27
+ * @param string $message
28
+ * @see \Codeception\Module\Asserts::assertEquals()
29
+ */
30
+ public function assertEquals($expected, $actual, $message = null) {
31
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertEquals', func_get_args()));
32
+ }
33
+
34
+
35
+ /**
36
+ * [!] Method is generated. Documentation taken from corresponding module.
37
+ *
38
+ * Checks that two variables are not equal
39
+ *
40
+ * @param $expected
41
+ * @param $actual
42
+ * @param string $message
43
+ * @see \Codeception\Module\Asserts::assertNotEquals()
44
+ */
45
+ public function assertNotEquals($expected, $actual, $message = null) {
46
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotEquals', func_get_args()));
47
+ }
48
+
49
+
50
+ /**
51
+ * [!] Method is generated. Documentation taken from corresponding module.
52
+ *
53
+ * Checks that two variables are same
54
+ *
55
+ * @param $expected
56
+ * @param $actual
57
+ * @param string $message
58
+ * @return mixed|void
59
+ * @see \Codeception\Module\Asserts::assertSame()
60
+ */
61
+ public function assertSame($expected, $actual, $message = null) {
62
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertSame', func_get_args()));
63
+ }
64
+
65
+
66
+ /**
67
+ * [!] Method is generated. Documentation taken from corresponding module.
68
+ *
69
+ * Checks that two variables are not same
70
+ *
71
+ * @param $expected
72
+ * @param $actual
73
+ * @param string $message
74
+ * @see \Codeception\Module\Asserts::assertNotSame()
75
+ */
76
+ public function assertNotSame($expected, $actual, $message = null) {
77
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotSame', func_get_args()));
78
+ }
79
+
80
+
81
+ /**
82
+ * [!] Method is generated. Documentation taken from corresponding module.
83
+ *
84
+ * Checks that actual is greater than expected
85
+ *
86
+ * @param $expected
87
+ * @param $actual
88
+ * @param string $message
89
+ * @see \Codeception\Module\Asserts::assertGreaterThan()
90
+ */
91
+ public function assertGreaterThan($expected, $actual, $message = null) {
92
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertGreaterThan', func_get_args()));
93
+ }
94
+
95
+
96
+ /**
97
+ * [!] Method is generated. Documentation taken from corresponding module.
98
+ *
99
+ * Checks that actual is greater or equal than expected
100
+ *
101
+ * @param $expected
102
+ * @param $actual
103
+ * @param string $message
104
+ * @see \Codeception\Module\Asserts::assertGreaterThanOrEqual()
105
+ */
106
+ public function assertGreaterThanOrEqual($expected, $actual, $message = null) {
107
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertGreaterThanOrEqual', func_get_args()));
108
+ }
109
+
110
+
111
+ /**
112
+ * [!] Method is generated. Documentation taken from corresponding module.
113
+ *
114
+ * Checks that actual is less than expected
115
+ *
116
+ * @param $expected
117
+ * @param $actual
118
+ * @param string $message
119
+ * @see \Codeception\Module\Asserts::assertLessThan()
120
+ */
121
+ public function assertLessThan($expected, $actual, $message = null) {
122
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertLessThan', func_get_args()));
123
+ }
124
+
125
+
126
+ /**
127
+ * [!] Method is generated. Documentation taken from corresponding module.
128
+ *
129
+ * Checks that actual is less or equal than expected
130
+ *
131
+ * @param $expected
132
+ * @param $actual
133
+ * @param string $message
134
+ * @see \Codeception\Module\Asserts::assertLessThanOrEqual()
135
+ */
136
+ public function assertLessThanOrEqual($expected, $actual, $message = null) {
137
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertLessThanOrEqual', func_get_args()));
138
+ }
139
+
140
+
141
+ /**
142
+ * [!] Method is generated. Documentation taken from corresponding module.
143
+ *
144
+ * Checks that haystack contains needle
145
+ *
146
+ * @param $needle
147
+ * @param $haystack
148
+ * @param string $message
149
+ * @see \Codeception\Module\Asserts::assertContains()
150
+ */
151
+ public function assertContains($needle, $haystack, $message = null) {
152
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertContains', func_get_args()));
153
+ }
154
+
155
+
156
+ /**
157
+ * [!] Method is generated. Documentation taken from corresponding module.
158
+ *
159
+ * Checks that haystack doesn't contain needle.
160
+ *
161
+ * @param $needle
162
+ * @param $haystack
163
+ * @param string $message
164
+ * @see \Codeception\Module\Asserts::assertNotContains()
165
+ */
166
+ public function assertNotContains($needle, $haystack, $message = null) {
167
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotContains', func_get_args()));
168
+ }
169
+
170
+
171
+ /**
172
+ * [!] Method is generated. Documentation taken from corresponding module.
173
+ *
174
+ * Checks that string match with pattern
175
+ *
176
+ * @param string $pattern
177
+ * @param string $string
178
+ * @param string $message
179
+ * @see \Codeception\Module\Asserts::assertRegExp()
180
+ */
181
+ public function assertRegExp($pattern, $string, $message = null) {
182
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertRegExp', func_get_args()));
183
+ }
184
+
185
+
186
+ /**
187
+ * [!] Method is generated. Documentation taken from corresponding module.
188
+ *
189
+ * Checks that string not match with pattern
190
+ *
191
+ * @param string $pattern
192
+ * @param string $string
193
+ * @param string $message
194
+ * @see \Codeception\Module\Asserts::assertNotRegExp()
195
+ */
196
+ public function assertNotRegExp($pattern, $string, $message = null) {
197
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotRegExp', func_get_args()));
198
+ }
199
+
200
+
201
+ /**
202
+ * [!] Method is generated. Documentation taken from corresponding module.
203
+ *
204
+ * Checks that variable is empty.
205
+ *
206
+ * @param $actual
207
+ * @param string $message
208
+ * @see \Codeception\Module\Asserts::assertEmpty()
209
+ */
210
+ public function assertEmpty($actual, $message = null) {
211
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertEmpty', func_get_args()));
212
+ }
213
+
214
+
215
+ /**
216
+ * [!] Method is generated. Documentation taken from corresponding module.
217
+ *
218
+ * Checks that variable is not empty.
219
+ *
220
+ * @param $actual
221
+ * @param string $message
222
+ * @see \Codeception\Module\Asserts::assertNotEmpty()
223
+ */
224
+ public function assertNotEmpty($actual, $message = null) {
225
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotEmpty', func_get_args()));
226
+ }
227
+
228
+
229
+ /**
230
+ * [!] Method is generated. Documentation taken from corresponding module.
231
+ *
232
+ * Checks that variable is NULL
233
+ *
234
+ * @param $actual
235
+ * @param string $message
236
+ * @see \Codeception\Module\Asserts::assertNull()
237
+ */
238
+ public function assertNull($actual, $message = null) {
239
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNull', func_get_args()));
240
+ }
241
+
242
+
243
+ /**
244
+ * [!] Method is generated. Documentation taken from corresponding module.
245
+ *
246
+ * Checks that variable is not NULL
247
+ *
248
+ * @param $actual
249
+ * @param string $message
250
+ * @see \Codeception\Module\Asserts::assertNotNull()
251
+ */
252
+ public function assertNotNull($actual, $message = null) {
253
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotNull', func_get_args()));
254
+ }
255
+
256
+
257
+ /**
258
+ * [!] Method is generated. Documentation taken from corresponding module.
259
+ *
260
+ * Checks that condition is positive.
261
+ *
262
+ * @param $condition
263
+ * @param string $message
264
+ * @see \Codeception\Module\Asserts::assertTrue()
265
+ */
266
+ public function assertTrue($condition, $message = null) {
267
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertTrue', func_get_args()));
268
+ }
269
+
270
+
271
+ /**
272
+ * [!] Method is generated. Documentation taken from corresponding module.
273
+ *
274
+ * Checks that condition is negative.
275
+ *
276
+ * @param $condition
277
+ * @param string $message
278
+ * @see \Codeception\Module\Asserts::assertFalse()
279
+ */
280
+ public function assertFalse($condition, $message = null) {
281
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertFalse', func_get_args()));
282
+ }
283
+
284
+
285
+ /**
286
+ * [!] Method is generated. Documentation taken from corresponding module.
287
+ *
288
+ * Checks if file exists
289
+ *
290
+ * @param string $filename
291
+ * @param string $message
292
+ * @see \Codeception\Module\Asserts::assertFileExists()
293
+ */
294
+ public function assertFileExists($filename, $message = null) {
295
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertFileExists', func_get_args()));
296
+ }
297
+
298
+
299
+ /**
300
+ * [!] Method is generated. Documentation taken from corresponding module.
301
+ *
302
+ * Checks if file doesn't exist
303
+ *
304
+ * @param string $filename
305
+ * @param string $message
306
+ * @see \Codeception\Module\Asserts::assertFileNotExists()
307
+ */
308
+ public function assertFileNotExists($filename, $message = null) {
309
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertFileNotExists', func_get_args()));
310
+ }
311
+
312
+
313
+ /**
314
+ * [!] Method is generated. Documentation taken from corresponding module.
315
+ *
316
+ * @param $expected
317
+ * @param $actual
318
+ * @param $description
319
+ * @see \Codeception\Module\Asserts::assertGreaterOrEquals()
320
+ */
321
+ public function assertGreaterOrEquals($expected, $actual, $description = null) {
322
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertGreaterOrEquals', func_get_args()));
323
+ }
324
+
325
+
326
+ /**
327
+ * [!] Method is generated. Documentation taken from corresponding module.
328
+ *
329
+ * @param $expected
330
+ * @param $actual
331
+ * @param $description
332
+ * @see \Codeception\Module\Asserts::assertLessOrEquals()
333
+ */
334
+ public function assertLessOrEquals($expected, $actual, $description = null) {
335
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertLessOrEquals', func_get_args()));
336
+ }
337
+
338
+
339
+ /**
340
+ * [!] Method is generated. Documentation taken from corresponding module.
341
+ *
342
+ * @param $actual
343
+ * @param $description
344
+ * @see \Codeception\Module\Asserts::assertIsEmpty()
345
+ */
346
+ public function assertIsEmpty($actual, $description = null) {
347
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertIsEmpty', func_get_args()));
348
+ }
349
+
350
+
351
+ /**
352
+ * [!] Method is generated. Documentation taken from corresponding module.
353
+ *
354
+ * @param $key
355
+ * @param $actual
356
+ * @param $description
357
+ * @see \Codeception\Module\Asserts::assertArrayHasKey()
358
+ */
359
+ public function assertArrayHasKey($key, $actual, $description = null) {
360
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertArrayHasKey', func_get_args()));
361
+ }
362
+
363
+
364
+ /**
365
+ * [!] Method is generated. Documentation taken from corresponding module.
366
+ *
367
+ * @param $key
368
+ * @param $actual
369
+ * @param $description
370
+ * @see \Codeception\Module\Asserts::assertArrayNotHasKey()
371
+ */
372
+ public function assertArrayNotHasKey($key, $actual, $description = null) {
373
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertArrayNotHasKey', func_get_args()));
374
+ }
375
+
376
+
377
+ /**
378
+ * [!] Method is generated. Documentation taken from corresponding module.
379
+ *
380
+ * @param $class
381
+ * @param $actual
382
+ * @param $description
383
+ * @see \Codeception\Module\Asserts::assertInstanceOf()
384
+ */
385
+ public function assertInstanceOf($class, $actual, $description = null) {
386
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertInstanceOf', func_get_args()));
387
+ }
388
+
389
+
390
+ /**
391
+ * [!] Method is generated. Documentation taken from corresponding module.
392
+ *
393
+ * @param $class
394
+ * @param $actual
395
+ * @param $description
396
+ * @see \Codeception\Module\Asserts::assertNotInstanceOf()
397
+ */
398
+ public function assertNotInstanceOf($class, $actual, $description = null) {
399
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotInstanceOf', func_get_args()));
400
+ }
401
+
402
+
403
+ /**
404
+ * [!] Method is generated. Documentation taken from corresponding module.
405
+ *
406
+ * @param $type
407
+ * @param $actual
408
+ * @param $description
409
+ * @see \Codeception\Module\Asserts::assertInternalType()
410
+ */
411
+ public function assertInternalType($type, $actual, $description = null) {
412
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('assertInternalType', func_get_args()));
413
+ }
414
+
415
+
416
+ /**
417
+ * [!] Method is generated. Documentation taken from corresponding module.
418
+ *
419
+ * Fails the test with message.
420
+ *
421
+ * @param $message
422
+ * @see \Codeception\Module\Asserts::fail()
423
+ */
424
+ public function fail($message) {
425
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('fail', func_get_args()));
426
+ }
427
+
428
+
429
+ /**
430
+ * [!] Method is generated. Documentation taken from corresponding module.
431
+ *
432
+ * Handles and checks exception called inside callback function.
433
+ * Either exception class name or exception instance should be provided.
434
+ *
435
+ * ```php
436
+ * <?php
437
+ * $I->expectException(MyException::class, function() {
438
+ * $this->doSomethingBad();
439
+ * });
440
+ *
441
+ * $I->expectException(new MyException(), function() {
442
+ * $this->doSomethingBad();
443
+ * });
444
+ * ```
445
+ * If you want to check message or exception code, you can pass them with exception instance:
446
+ * ```php
447
+ * <?php
448
+ * // will check that exception MyException is thrown with "Don't do bad things" message
449
+ * $I->expectException(new MyException("Don't do bad things"), function() {
450
+ * $this->doSomethingBad();
451
+ * });
452
+ * ```
453
+ *
454
+ * @param $exception string or \Exception
455
+ * @param $callback
456
+ * @see \Codeception\Module\Asserts::expectException()
457
+ */
458
+ public function expectException($exception, $callback) {
459
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('expectException', func_get_args()));
460
+ }
461
+
462
+
463
+ /**
464
+ * [!] Method is generated. Documentation taken from corresponding module.
465
+ *
466
+ * Enters a directory In local filesystem.
467
+ * Project root directory is used by default
468
+ *
469
+ * @param $path
470
+ * @see \Codeception\Module\Filesystem::amInPath()
471
+ */
472
+ public function amInPath($path) {
473
+ return $this->getScenario()->runStep(new \Codeception\Step\Condition('amInPath', func_get_args()));
474
+ }
475
+
476
+
477
+ /**
478
+ * [!] Method is generated. Documentation taken from corresponding module.
479
+ *
480
+ * Opens a file and stores it's content.
481
+ *
482
+ * Usage:
483
+ *
484
+ * ``` php
485
+ * <?php
486
+ * $I->openFile('composer.json');
487
+ * $I->seeInThisFile('codeception/codeception');
488
+ * ?>
489
+ * ```
490
+ *
491
+ * @param $filename
492
+ * @see \Codeception\Module\Filesystem::openFile()
493
+ */
494
+ public function openFile($filename) {
495
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('openFile', func_get_args()));
496
+ }
497
+
498
+
499
+ /**
500
+ * [!] Method is generated. Documentation taken from corresponding module.
501
+ *
502
+ * Deletes a file
503
+ *
504
+ * ``` php
505
+ * <?php
506
+ * $I->deleteFile('composer.lock');
507
+ * ?>
508
+ * ```
509
+ *
510
+ * @param $filename
511
+ * @see \Codeception\Module\Filesystem::deleteFile()
512
+ */
513
+ public function deleteFile($filename) {
514
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('deleteFile', func_get_args()));
515
+ }
516
+
517
+
518
+ /**
519
+ * [!] Method is generated. Documentation taken from corresponding module.
520
+ *
521
+ * Deletes directory with all subdirectories
522
+ *
523
+ * ``` php
524
+ * <?php
525
+ * $I->deleteDir('vendor');
526
+ * ?>
527
+ * ```
528
+ *
529
+ * @param $dirname
530
+ * @see \Codeception\Module\Filesystem::deleteDir()
531
+ */
532
+ public function deleteDir($dirname) {
533
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('deleteDir', func_get_args()));
534
+ }
535
+
536
+
537
+ /**
538
+ * [!] Method is generated. Documentation taken from corresponding module.
539
+ *
540
+ * Copies directory with all contents
541
+ *
542
+ * ``` php
543
+ * <?php
544
+ * $I->copyDir('vendor','old_vendor');
545
+ * ?>
546
+ * ```
547
+ *
548
+ * @param $src
549
+ * @param $dst
550
+ * @see \Codeception\Module\Filesystem::copyDir()
551
+ */
552
+ public function copyDir($src, $dst) {
553
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('copyDir', func_get_args()));
554
+ }
555
+
556
+
557
+ /**
558
+ * [!] Method is generated. Documentation taken from corresponding module.
559
+ *
560
+ * Checks If opened file has `text` in it.
561
+ *
562
+ * Usage:
563
+ *
564
+ * ``` php
565
+ * <?php
566
+ * $I->openFile('composer.json');
567
+ * $I->seeInThisFile('codeception/codeception');
568
+ * ?>
569
+ * ```
570
+ *
571
+ * @param $text
572
+ * Conditional Assertion: Test won't be stopped on fail
573
+ * @see \Codeception\Module\Filesystem::seeInThisFile()
574
+ */
575
+ public function canSeeInThisFile($text) {
576
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInThisFile', func_get_args()));
577
+ }
578
+ /**
579
+ * [!] Method is generated. Documentation taken from corresponding module.
580
+ *
581
+ * Checks If opened file has `text` in it.
582
+ *
583
+ * Usage:
584
+ *
585
+ * ``` php
586
+ * <?php
587
+ * $I->openFile('composer.json');
588
+ * $I->seeInThisFile('codeception/codeception');
589
+ * ?>
590
+ * ```
591
+ *
592
+ * @param $text
593
+ * @see \Codeception\Module\Filesystem::seeInThisFile()
594
+ */
595
+ public function seeInThisFile($text) {
596
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeInThisFile', func_get_args()));
597
+ }
598
+
599
+
600
+ /**
601
+ * [!] Method is generated. Documentation taken from corresponding module.
602
+ *
603
+ * Checks If opened file has the `number` of new lines.
604
+ *
605
+ * Usage:
606
+ *
607
+ * ``` php
608
+ * <?php
609
+ * $I->openFile('composer.json');
610
+ * $I->seeNumberNewLines(5);
611
+ * ?>
612
+ * ```
613
+ *
614
+ * @param int $number New lines
615
+ * Conditional Assertion: Test won't be stopped on fail
616
+ * @see \Codeception\Module\Filesystem::seeNumberNewLines()
617
+ */
618
+ public function canSeeNumberNewLines($number) {
619
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeNumberNewLines', func_get_args()));
620
+ }
621
+ /**
622
+ * [!] Method is generated. Documentation taken from corresponding module.
623
+ *
624
+ * Checks If opened file has the `number` of new lines.
625
+ *
626
+ * Usage:
627
+ *
628
+ * ``` php
629
+ * <?php
630
+ * $I->openFile('composer.json');
631
+ * $I->seeNumberNewLines(5);
632
+ * ?>
633
+ * ```
634
+ *
635
+ * @param int $number New lines
636
+ * @see \Codeception\Module\Filesystem::seeNumberNewLines()
637
+ */
638
+ public function seeNumberNewLines($number) {
639
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeNumberNewLines', func_get_args()));
640
+ }
641
+
642
+
643
+ /**
644
+ * [!] Method is generated. Documentation taken from corresponding module.
645
+ *
646
+ * Checks that contents of currently opened file matches $regex
647
+ *
648
+ * @param $regex
649
+ * Conditional Assertion: Test won't be stopped on fail
650
+ * @see \Codeception\Module\Filesystem::seeThisFileMatches()
651
+ */
652
+ public function canSeeThisFileMatches($regex) {
653
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeThisFileMatches', func_get_args()));
654
+ }
655
+ /**
656
+ * [!] Method is generated. Documentation taken from corresponding module.
657
+ *
658
+ * Checks that contents of currently opened file matches $regex
659
+ *
660
+ * @param $regex
661
+ * @see \Codeception\Module\Filesystem::seeThisFileMatches()
662
+ */
663
+ public function seeThisFileMatches($regex) {
664
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeThisFileMatches', func_get_args()));
665
+ }
666
+
667
+
668
+ /**
669
+ * [!] Method is generated. Documentation taken from corresponding module.
670
+ *
671
+ * Checks the strict matching of file contents.
672
+ * Unlike `seeInThisFile` will fail if file has something more than expected lines.
673
+ * Better to use with HEREDOC strings.
674
+ * Matching is done after removing "\r" chars from file content.
675
+ *
676
+ * ``` php
677
+ * <?php
678
+ * $I->openFile('process.pid');
679
+ * $I->seeFileContentsEqual('3192');
680
+ * ?>
681
+ * ```
682
+ *
683
+ * @param $text
684
+ * Conditional Assertion: Test won't be stopped on fail
685
+ * @see \Codeception\Module\Filesystem::seeFileContentsEqual()
686
+ */
687
+ public function canSeeFileContentsEqual($text) {
688
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeFileContentsEqual', func_get_args()));
689
+ }
690
+ /**
691
+ * [!] Method is generated. Documentation taken from corresponding module.
692
+ *
693
+ * Checks the strict matching of file contents.
694
+ * Unlike `seeInThisFile` will fail if file has something more than expected lines.
695
+ * Better to use with HEREDOC strings.
696
+ * Matching is done after removing "\r" chars from file content.
697
+ *
698
+ * ``` php
699
+ * <?php
700
+ * $I->openFile('process.pid');
701
+ * $I->seeFileContentsEqual('3192');
702
+ * ?>
703
+ * ```
704
+ *
705
+ * @param $text
706
+ * @see \Codeception\Module\Filesystem::seeFileContentsEqual()
707
+ */
708
+ public function seeFileContentsEqual($text) {
709
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeFileContentsEqual', func_get_args()));
710
+ }
711
+
712
+
713
+ /**
714
+ * [!] Method is generated. Documentation taken from corresponding module.
715
+ *
716
+ * Checks If opened file doesn't contain `text` in it
717
+ *
718
+ * ``` php
719
+ * <?php
720
+ * $I->openFile('composer.json');
721
+ * $I->dontSeeInThisFile('codeception/codeception');
722
+ * ?>
723
+ * ```
724
+ *
725
+ * @param $text
726
+ * Conditional Assertion: Test won't be stopped on fail
727
+ * @see \Codeception\Module\Filesystem::dontSeeInThisFile()
728
+ */
729
+ public function cantSeeInThisFile($text) {
730
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInThisFile', func_get_args()));
731
+ }
732
+ /**
733
+ * [!] Method is generated. Documentation taken from corresponding module.
734
+ *
735
+ * Checks If opened file doesn't contain `text` in it
736
+ *
737
+ * ``` php
738
+ * <?php
739
+ * $I->openFile('composer.json');
740
+ * $I->dontSeeInThisFile('codeception/codeception');
741
+ * ?>
742
+ * ```
743
+ *
744
+ * @param $text
745
+ * @see \Codeception\Module\Filesystem::dontSeeInThisFile()
746
+ */
747
+ public function dontSeeInThisFile($text) {
748
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeInThisFile', func_get_args()));
749
+ }
750
+
751
+
752
+ /**
753
+ * [!] Method is generated. Documentation taken from corresponding module.
754
+ *
755
+ * Deletes a file
756
+ * @see \Codeception\Module\Filesystem::deleteThisFile()
757
+ */
758
+ public function deleteThisFile() {
759
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('deleteThisFile', func_get_args()));
760
+ }
761
+
762
+
763
+ /**
764
+ * [!] Method is generated. Documentation taken from corresponding module.
765
+ *
766
+ * Checks if file exists in path.
767
+ * Opens a file when it's exists
768
+ *
769
+ * ``` php
770
+ * <?php
771
+ * $I->seeFileFound('UserModel.php','app/models');
772
+ * ?>
773
+ * ```
774
+ *
775
+ * @param $filename
776
+ * @param string $path
777
+ * Conditional Assertion: Test won't be stopped on fail
778
+ * @see \Codeception\Module\Filesystem::seeFileFound()
779
+ */
780
+ public function canSeeFileFound($filename, $path = null) {
781
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeFileFound', func_get_args()));
782
+ }
783
+ /**
784
+ * [!] Method is generated. Documentation taken from corresponding module.
785
+ *
786
+ * Checks if file exists in path.
787
+ * Opens a file when it's exists
788
+ *
789
+ * ``` php
790
+ * <?php
791
+ * $I->seeFileFound('UserModel.php','app/models');
792
+ * ?>
793
+ * ```
794
+ *
795
+ * @param $filename
796
+ * @param string $path
797
+ * @see \Codeception\Module\Filesystem::seeFileFound()
798
+ */
799
+ public function seeFileFound($filename, $path = null) {
800
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeFileFound', func_get_args()));
801
+ }
802
+
803
+
804
+ /**
805
+ * [!] Method is generated. Documentation taken from corresponding module.
806
+ *
807
+ * Checks if file does not exist in path
808
+ *
809
+ * @param $filename
810
+ * @param string $path
811
+ * Conditional Assertion: Test won't be stopped on fail
812
+ * @see \Codeception\Module\Filesystem::dontSeeFileFound()
813
+ */
814
+ public function cantSeeFileFound($filename, $path = null) {
815
+ return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeFileFound', func_get_args()));
816
+ }
817
+ /**
818
+ * [!] Method is generated. Documentation taken from corresponding module.
819
+ *
820
+ * Checks if file does not exist in path
821
+ *
822
+ * @param $filename
823
+ * @param string $path
824
+ * @see \Codeception\Module\Filesystem::dontSeeFileFound()
825
+ */
826
+ public function dontSeeFileFound($filename, $path = null) {
827
+ return $this->getScenario()->runStep(new \Codeception\Step\Assertion('dontSeeFileFound', func_get_args()));
828
+ }
829
+
830
+
831
+ /**
832
+ * [!] Method is generated. Documentation taken from corresponding module.
833
+ *
834
+ * Erases directory contents
835
+ *
836
+ * ``` php
837
+ * <?php
838
+ * $I->cleanDir('logs');
839
+ * ?>
840
+ * ```
841
+ *
842
+ * @param $dirname
843
+ * @see \Codeception\Module\Filesystem::cleanDir()
844
+ */
845
+ public function cleanDir($dirname) {
846
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('cleanDir', func_get_args()));
847
+ }
848
+
849
+
850
+ /**
851
+ * [!] Method is generated. Documentation taken from corresponding module.
852
+ *
853
+ * Saves contents to file
854
+ *
855
+ * @param $filename
856
+ * @param $contents
857
+ * @see \Codeception\Module\Filesystem::writeToFile()
858
+ */
859
+ public function writeToFile($filename, $contents) {
860
+ return $this->getScenario()->runStep(new \Codeception\Step\Action('writeToFile', func_get_args()));
861
+ }
862
+ }
tests/acceptance.suite.yml ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Codeception Test Suite Configuration
2
+ #
3
+ # Suite for acceptance tests.
4
+ # Perform tests in browser using the WebDriver or PhpBrowser.
5
+ # If you need both WebDriver and PHPBrowser tests - create a separate suite.
6
+
7
+ class_name: AcceptanceTester
8
+ modules:
9
+ enabled:
10
+ - PhpBrowser:
11
+ #- WebDriver:
12
+ - Db:
13
+ - \Helper\Acceptance
tests/acceptance/AGCAInstalledCept.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+ $I = new AcceptanceTester($scenario);
3
+ $I->wantTo('Make sure that AGCA is installed and activated');
4
+ $I->login();
5
+ $I->amOnPage('/wp-admin/tools.php?page=ag-custom-admin/plugin.php');
6
+ $I->see('AG Custom Admin Settings');
tests/acceptance/GeneralSettingsCest.php ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ use Page\GeneralPage;
4
+ use Page\WPDashboardPage;
5
+
6
+ class GeneralSettingsCest
7
+ {
8
+ public function _before(AcceptanceTester $I)
9
+ {
10
+ $I->login();
11
+ }
12
+
13
+ public function _after(AcceptanceTester $I)
14
+ {
15
+ }
16
+
17
+ // tests
18
+ public function test_general_settings_shows_up(AcceptanceTester $I)
19
+ {
20
+ (new GeneralPage($I))->amOnGeneralPage();
21
+ }
22
+
23
+ public function test_main_menu(AcceptanceTester $I){
24
+ $page = new GeneralPage($I);
25
+ $page->amOnGeneralPage();
26
+
27
+ $page->selectedMenu('General');
28
+ $page->seeMenu('Admin Bar');
29
+ $page->seeMenu('Footer');
30
+ $page->seeMenu('Dashboard');
31
+ $page->seeMenu('Login Page');
32
+ $page->seeMenu('Admin Menu');
33
+ $page->seeMenu('Colorizer');
34
+ $page->seeMenu('Advanced');
35
+ $page->seeMenu('Themes');
36
+ $page->seeMenu('Upgrade');
37
+ }
38
+
39
+ public function test_areas(AcceptanceTester $I){
40
+ $page = new GeneralPage($I);
41
+ $page->amOnGeneralPage();
42
+ $page->seeArea('Pages');
43
+ $page->seeArea('Security');
44
+ $page->seeArea('Feedback and Support');
45
+ }
46
+
47
+ public function test_feedback_and_support(AcceptanceTester $I){
48
+ (new GeneralPage($I))->amOnGeneralPage();
49
+
50
+ $I->see('Idea for improvement');
51
+ $I->see('Report an issue');
52
+ $I->see('Idea for admin theme');
53
+ $I->see('Add a Review on WordPress.org');
54
+ $I->see('Visit our support site');
55
+ $I->see('Donate');
56
+ $I->see('Upgrade to Cusmin');
57
+
58
+ //TODO: Test click on links open link in a new tab
59
+ }
60
+
61
+ public function test_capability_field(AcceptanceTester $I){
62
+ $page = new GeneralPage($I);
63
+ $page->amOnGeneralPage();
64
+
65
+ //set new value
66
+ $I->selectOption(GeneralPage::$capabilityLabel, 'create_users');
67
+ $I->see('create_users', GeneralPage::$capabilitySelected);
68
+ $page->saveSettings();
69
+ $page->amOnGeneralPage();
70
+ $I->see('create_users', GeneralPage::$capabilitySelected);
71
+
72
+ //Return to default
73
+ $I->selectOption(GeneralPage::$capabilityLabel, 'edit_dashboard');
74
+ $page->saveSettings();
75
+ $page->amOnGeneralPage();
76
+ $I->see('edit_dashboard', GeneralPage::$capabilitySelected);
77
+
78
+ //TODO: Test if this actually affects user that does not have that capability. Login with subscriber
79
+
80
+
81
+
82
+ }
83
+
84
+ public function test_screen_options(AcceptanceTester $I){
85
+ $page = new GeneralPage($I);
86
+ $page->amOnGeneralPage();
87
+
88
+ //Toggle hiding OFF
89
+ $I->selectOption('agca_screen_options_menu', false);
90
+ $page->saveSettings();
91
+ $page->amOnGeneralPage();
92
+ $I->selectOption('agca_screen_options_menu', false);
93
+
94
+ $dashboardPage = new WPDashboardPage($I);
95
+ $dashboardPage->amOnDashboardPage();
96
+ $dashboardPage->canSeeScreenOptions();
97
+
98
+ //Toggle hiding ON;
99
+ $page->amOnGeneralPage();
100
+ $I->selectOption('agca_screen_options_menu', true);
101
+ $page->saveSettings();
102
+ $page->amOnGeneralPage();
103
+ $I->selectOption('agca_screen_options_menu', true);
104
+
105
+ $dashboardPage->amOnDashboardPage();
106
+
107
+ //TODO: Does not work. Enable webdriver instead of PHPBrowser
108
+ //$dashboardPage->canSeeScreenOptions(false);
109
+ }
110
+ }
tests/acceptance/_bootstrap.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ // Here you can initialize variables that will be available to your tests
tests/functional.suite.yml ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ # Codeception Test Suite Configuration
2
+ #
3
+ # Suite for functional (integration) tests
4
+ # Emulate web requests and make application process them
5
+ # Include one of framework modules (Symfony2, Yii2, Laravel5) to use it
6
+
7
+ class_name: FunctionalTester
8
+ modules:
9
+ enabled:
10
+ # add framework module here
11
+ - \Helper\Functional
tests/functional/_bootstrap.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ // Here you can initialize variables that will be available to your tests
tests/unit.suite.yml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ # Codeception Test Suite Configuration
2
+ #
3
+ # Suite for unit (internal) tests.
4
+
5
+ class_name: UnitTester
6
+ modules:
7
+ enabled:
8
+ - Asserts
9
+ - \Helper\Unit
tests/unit/_bootstrap.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ // Here you can initialize variables that will be available to your tests