├── .idea
└── misc.xml
├── .travis.yml
├── LICENSE
├── README.md
├── behat.yml
├── composer.json
├── composer.lock
├── config
└── service.json
└── features
├── bootstrap
├── ElementCountContext.php
├── HomepageContext.php
├── Page
│ ├── Element
│ │ ├── Elementcount.php
│ │ ├── Formfilling.php
│ │ └── Holidays.php
│ ├── Homepage.php
│ └── Profileform.php
├── ProfileformContext.php
├── WebFeatureContext.php
└── dictionary.php
└── gherkin.feature
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 |
2 | language: php
3 | # sudo: required
4 | sudo: true
5 | sudo: required
6 | php:
7 | - "5.6"
8 |
9 | before_script:
10 | - composer self-update
11 | - composer install
12 | - sudo apt-get update
13 | - sudo apt-get install xvfb
14 | - sudo apt-get install firefox
15 | # - npm install -g phantomjs
16 | # - "phantomjs --webdriver=8324 > /dev/null &"
17 | - "wget http://selenium-release.storage.googleapis.com/2.53/selenium-server-standalone-2.53.0.jar"
18 | - "DISPLAY=:10 xvfb-run java -jar selenium-server-standalone-2.53.0.jar > /dev/null &"
19 | - sleep 5
20 |
21 | script:
22 | - php bin/behat -p phantomjs -f pretty features
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 2, June 1991
3 |
4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6 | Everyone is permitted to copy and distribute verbatim copies
7 | of this license document, but changing it is not allowed.
8 |
9 | Preamble
10 |
11 | The licenses for most software are designed to take away your
12 | freedom to share and change it. By contrast, the GNU General Public
13 | License is intended to guarantee your freedom to share and change free
14 | software--to make sure the software is free for all its users. This
15 | General Public License applies to most of the Free Software
16 | Foundation's software and to any other program whose authors commit to
17 | using it. (Some other Free Software Foundation software is covered by
18 | the GNU Lesser General Public License instead.) You can apply it to
19 | your programs, too.
20 |
21 | When we speak of free software, we are referring to freedom, not
22 | price. Our General Public Licenses are designed to make sure that you
23 | have the freedom to distribute copies of free software (and charge for
24 | this service if you wish), that you receive source code or can get it
25 | if you want it, that you can change the software or use pieces of it
26 | in new free programs; and that you know you can do these things.
27 |
28 | To protect your rights, we need to make restrictions that forbid
29 | anyone to deny you these rights or to ask you to surrender the rights.
30 | These restrictions translate to certain responsibilities for you if you
31 | distribute copies of the software, or if you modify it.
32 |
33 | For example, if you distribute copies of such a program, whether
34 | gratis or for a fee, you must give the recipients all the rights that
35 | you have. You must make sure that they, too, receive or can get the
36 | source code. And you must show them these terms so they know their
37 | rights.
38 |
39 | We protect your rights with two steps: (1) copyright the software, and
40 | (2) offer you this license which gives you legal permission to copy,
41 | distribute and/or modify the software.
42 |
43 | Also, for each author's protection and ours, we want to make certain
44 | that everyone understands that there is no warranty for this free
45 | software. If the software is modified by someone else and passed on, we
46 | want its recipients to know that what they have is not the original, so
47 | that any problems introduced by others will not reflect on the original
48 | authors' reputations.
49 |
50 | Finally, any free program is threatened constantly by software
51 | patents. We wish to avoid the danger that redistributors of a free
52 | program will individually obtain patent licenses, in effect making the
53 | program proprietary. To prevent this, we have made it clear that any
54 | patent must be licensed for everyone's free use or not licensed at all.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | GNU GENERAL PUBLIC LICENSE
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61 |
62 | 0. This License applies to any program or other work which contains
63 | a notice placed by the copyright holder saying it may be distributed
64 | under the terms of this General Public License. The "Program", below,
65 | refers to any such program or work, and a "work based on the Program"
66 | means either the Program or any derivative work under copyright law:
67 | that is to say, a work containing the Program or a portion of it,
68 | either verbatim or with modifications and/or translated into another
69 | language. (Hereinafter, translation is included without limitation in
70 | the term "modification".) Each licensee is addressed as "you".
71 |
72 | Activities other than copying, distribution and modification are not
73 | covered by this License; they are outside its scope. The act of
74 | running the Program is not restricted, and the output from the Program
75 | is covered only if its contents constitute a work based on the
76 | Program (independent of having been made by running the Program).
77 | Whether that is true depends on what the Program does.
78 |
79 | 1. You may copy and distribute verbatim copies of the Program's
80 | source code as you receive it, in any medium, provided that you
81 | conspicuously and appropriately publish on each copy an appropriate
82 | copyright notice and disclaimer of warranty; keep intact all the
83 | notices that refer to this License and to the absence of any warranty;
84 | and give any other recipients of the Program a copy of this License
85 | along with the Program.
86 |
87 | You may charge a fee for the physical act of transferring a copy, and
88 | you may at your option offer warranty protection in exchange for a fee.
89 |
90 | 2. You may modify your copy or copies of the Program or any portion
91 | of it, thus forming a work based on the Program, and copy and
92 | distribute such modifications or work under the terms of Section 1
93 | above, provided that you also meet all of these conditions:
94 |
95 | a) You must cause the modified files to carry prominent notices
96 | stating that you changed the files and the date of any change.
97 |
98 | b) You must cause any work that you distribute or publish, that in
99 | whole or in part contains or is derived from the Program or any
100 | part thereof, to be licensed as a whole at no charge to all third
101 | parties under the terms of this License.
102 |
103 | c) If the modified program normally reads commands interactively
104 | when run, you must cause it, when started running for such
105 | interactive use in the most ordinary way, to print or display an
106 | announcement including an appropriate copyright notice and a
107 | notice that there is no warranty (or else, saying that you provide
108 | a warranty) and that users may redistribute the program under
109 | these conditions, and telling the user how to view a copy of this
110 | License. (Exception: if the Program itself is interactive but
111 | does not normally print such an announcement, your work based on
112 | the Program is not required to print an announcement.)
113 |
114 | These requirements apply to the modified work as a whole. If
115 | identifiable sections of that work are not derived from the Program,
116 | and can be reasonably considered independent and separate works in
117 | themselves, then this License, and its terms, do not apply to those
118 | sections when you distribute them as separate works. But when you
119 | distribute the same sections as part of a whole which is a work based
120 | on the Program, the distribution of the whole must be on the terms of
121 | this License, whose permissions for other licensees extend to the
122 | entire whole, and thus to each and every part regardless of who wrote it.
123 |
124 | Thus, it is not the intent of this section to claim rights or contest
125 | your rights to work written entirely by you; rather, the intent is to
126 | exercise the right to control the distribution of derivative or
127 | collective works based on the Program.
128 |
129 | In addition, mere aggregation of another work not based on the Program
130 | with the Program (or with a work based on the Program) on a volume of
131 | a storage or distribution medium does not bring the other work under
132 | the scope of this License.
133 |
134 | 3. You may copy and distribute the Program (or a work based on it,
135 | under Section 2) in object code or executable form under the terms of
136 | Sections 1 and 2 above provided that you also do one of the following:
137 |
138 | a) Accompany it with the complete corresponding machine-readable
139 | source code, which must be distributed under the terms of Sections
140 | 1 and 2 above on a medium customarily used for software interchange; or,
141 |
142 | b) Accompany it with a written offer, valid for at least three
143 | years, to give any third party, for a charge no more than your
144 | cost of physically performing source distribution, a complete
145 | machine-readable copy of the corresponding source code, to be
146 | distributed under the terms of Sections 1 and 2 above on a medium
147 | customarily used for software interchange; or,
148 |
149 | c) Accompany it with the information you received as to the offer
150 | to distribute corresponding source code. (This alternative is
151 | allowed only for noncommercial distribution and only if you
152 | received the program in object code or executable form with such
153 | an offer, in accord with Subsection b above.)
154 |
155 | The source code for a work means the preferred form of the work for
156 | making modifications to it. For an executable work, complete source
157 | code means all the source code for all modules it contains, plus any
158 | associated interface definition files, plus the scripts used to
159 | control compilation and installation of the executable. However, as a
160 | special exception, the source code distributed need not include
161 | anything that is normally distributed (in either source or binary
162 | form) with the major components (compiler, kernel, and so on) of the
163 | operating system on which the executable runs, unless that component
164 | itself accompanies the executable.
165 |
166 | If distribution of executable or object code is made by offering
167 | access to copy from a designated place, then offering equivalent
168 | access to copy the source code from the same place counts as
169 | distribution of the source code, even though third parties are not
170 | compelled to copy the source along with the object code.
171 |
172 | 4. You may not copy, modify, sublicense, or distribute the Program
173 | except as expressly provided under this License. Any attempt
174 | otherwise to copy, modify, sublicense or distribute the Program is
175 | void, and will automatically terminate your rights under this License.
176 | However, parties who have received copies, or rights, from you under
177 | this License will not have their licenses terminated so long as such
178 | parties remain in full compliance.
179 |
180 | 5. You are not required to accept this License, since you have not
181 | signed it. However, nothing else grants you permission to modify or
182 | distribute the Program or its derivative works. These actions are
183 | prohibited by law if you do not accept this License. Therefore, by
184 | modifying or distributing the Program (or any work based on the
185 | Program), you indicate your acceptance of this License to do so, and
186 | all its terms and conditions for copying, distributing or modifying
187 | the Program or works based on it.
188 |
189 | 6. Each time you redistribute the Program (or any work based on the
190 | Program), the recipient automatically receives a license from the
191 | original licensor to copy, distribute or modify the Program subject to
192 | these terms and conditions. You may not impose any further
193 | restrictions on the recipients' exercise of the rights granted herein.
194 | You are not responsible for enforcing compliance by third parties to
195 | this License.
196 |
197 | 7. If, as a consequence of a court judgment or allegation of patent
198 | infringement or for any other reason (not limited to patent issues),
199 | conditions are imposed on you (whether by court order, agreement or
200 | otherwise) that contradict the conditions of this License, they do not
201 | excuse you from the conditions of this License. If you cannot
202 | distribute so as to satisfy simultaneously your obligations under this
203 | License and any other pertinent obligations, then as a consequence you
204 | may not distribute the Program at all. For example, if a patent
205 | license would not permit royalty-free redistribution of the Program by
206 | all those who receive copies directly or indirectly through you, then
207 | the only way you could satisfy both it and this License would be to
208 | refrain entirely from distribution of the Program.
209 |
210 | If any portion of this section is held invalid or unenforceable under
211 | any particular circumstance, the balance of the section is intended to
212 | apply and the section as a whole is intended to apply in other
213 | circumstances.
214 |
215 | It is not the purpose of this section to induce you to infringe any
216 | patents or other property right claims or to contest validity of any
217 | such claims; this section has the sole purpose of protecting the
218 | integrity of the free software distribution system, which is
219 | implemented by public license practices. Many people have made
220 | generous contributions to the wide range of software distributed
221 | through that system in reliance on consistent application of that
222 | system; it is up to the author/donor to decide if he or she is willing
223 | to distribute software through any other system and a licensee cannot
224 | impose that choice.
225 |
226 | This section is intended to make thoroughly clear what is believed to
227 | be a consequence of the rest of this License.
228 |
229 | 8. If the distribution and/or use of the Program is restricted in
230 | certain countries either by patents or by copyrighted interfaces, the
231 | original copyright holder who places the Program under this License
232 | may add an explicit geographical distribution limitation excluding
233 | those countries, so that distribution is permitted only in or among
234 | countries not thus excluded. In such case, this License incorporates
235 | the limitation as if written in the body of this License.
236 |
237 | 9. The Free Software Foundation may publish revised and/or new versions
238 | of the General Public License from time to time. Such new versions will
239 | be similar in spirit to the present version, but may differ in detail to
240 | address new problems or concerns.
241 |
242 | Each version is given a distinguishing version number. If the Program
243 | specifies a version number of this License which applies to it and "any
244 | later version", you have the option of following the terms and conditions
245 | either of that version or of any later version published by the Free
246 | Software Foundation. If the Program does not specify a version number of
247 | this License, you may choose any version ever published by the Free Software
248 | Foundation.
249 |
250 | 10. If you wish to incorporate parts of the Program into other free
251 | programs whose distribution conditions are different, write to the author
252 | to ask for permission. For software which is copyrighted by the Free
253 | Software Foundation, write to the Free Software Foundation; we sometimes
254 | make exceptions for this. Our decision will be guided by the two goals
255 | of preserving the free status of all derivatives of our free software and
256 | of promoting the sharing and reuse of software generally.
257 |
258 | NO WARRANTY
259 |
260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268 | REPAIR OR CORRECTION.
269 |
270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278 | POSSIBILITY OF SUCH DAMAGES.
279 |
280 | END OF TERMS AND CONDITIONS
281 |
282 | How to Apply These Terms to Your New Programs
283 |
284 | If you develop a new program, and you want it to be of the greatest
285 | possible use to the public, the best way to achieve this is to make it
286 | free software which everyone can redistribute and change under these terms.
287 |
288 | To do so, attach the following notices to the program. It is safest
289 | to attach them to the start of each source file to most effectively
290 | convey the exclusion of warranty; and each file should have at least
291 | the "copyright" line and a pointer to where the full notice is found.
292 |
293 | {description}
294 | Copyright (C) {year} {fullname}
295 |
296 | This program is free software; you can redistribute it and/or modify
297 | it under the terms of the GNU General Public License as published by
298 | the Free Software Foundation; either version 2 of the License, or
299 | (at your option) any later version.
300 |
301 | This program is distributed in the hope that it will be useful,
302 | but WITHOUT ANY WARRANTY; without even the implied warranty of
303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 | GNU General Public License for more details.
305 |
306 | You should have received a copy of the GNU General Public License along
307 | with this program; if not, write to the Free Software Foundation, Inc.,
308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309 |
310 | Also add information on how to contact you by electronic and paper mail.
311 |
312 | If the program is interactive, make it output a short notice like this
313 | when it starts in an interactive mode:
314 |
315 | Gnomovision version 69, Copyright (C) year name of author
316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317 | This is free software, and you are welcome to redistribute it
318 | under certain conditions; type `show c' for details.
319 |
320 | The hypothetical commands `show w' and `show c' should show the appropriate
321 | parts of the General Public License. Of course, the commands you use may
322 | be called something other than `show w' and `show c'; they could even be
323 | mouse-clicks or menu items--whatever suits your program.
324 |
325 | You should also get your employer (if you work as a programmer) or your
326 | school, if any, to sign a "copyright disclaimer" for the program, if
327 | necessary. Here is a sample; alter the names:
328 |
329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330 | `Gnomovision' (which makes passes at compilers) written by James Hacker.
331 |
332 | {signature of Ty Coon}, 1 April 1989
333 | Ty Coon, President of Vice
334 |
335 | This General Public License does not permit incorporating your program into
336 | proprietary programs. If your program is a subroutine library, you may
337 | consider it more useful to permit linking proprietary applications with the
338 | library. If this is what you want to do, use the GNU Lesser General
339 | Public License instead of this License.
340 |
341 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://travis-ci.org/jaffamonkey/behat-3-kickstart)
2 |
3 | Key components:
4 | ==============
5 | Behat 3
6 | Mink Extension
7 | PageObjects
8 | WebAPIContext
9 |
10 | SETUP
11 | ==============
12 |
13 | From Behat repo root folder run following commands:-
14 | * composer install (install composer first, of course :))
15 | * npm install -g phantomjs (or brew install phantomjs)
16 | * wget http://selenium-release.storage.googleapis.com/2.44/selenium-server-standalone-2.44.0.jar
17 |
18 | RUNNING SELENIUM BROWSER TESTS
19 | ==============================
20 |
21 | Before running behat to test the feature files in features directory, ensure the following commands are executed :-
22 | * java -jar selenium-server-standalone-[version].jar
23 |
24 | To run tests (open another terminal window):-
25 | * bin/behat features
26 |
27 | Second test runs using Guzzle (for API), the rest using Firefox
28 |
29 | RUNNING PHANTOMJS TESTS
30 | =======================
31 |
32 | * phantomjs --webdriver=4444
33 | * bin/behat -p phantomjs features
34 |
35 | PERFORMANCE/PARALLEL TESTING
36 | ============================
37 |
38 | * apt-get install parallel
39 | * java -jar selenium-server-standalone-2.43.1.jar --role hub
40 | * find features -iname '*.feature'| parallel --gnu -j5 --group bin/behat --ansi {}
41 |
42 | CROSS BROWSER
43 | ============
44 |
45 | Using saucelabs service, you can run tests against most OS/browser combinations and mobile platforms too.
46 |
47 | I added an example profile for IE8, as example. To run it, first run sauceconnect config:-
48 |
49 | * bin/sauce_config saucelabs_user_id saucelabs_api_key
50 |
51 | Now try running the tests ....
52 |
53 | * bin/behat -p saucelabs_ie8 features/
54 |
55 | If you want to use saucelabs service against a localhost url, or any url behind a firewall, then follow these steps (assuming linux):
56 |
57 | 1. sudo wget https://saucelabs.com/downloads/sc-4.3.8-linux.tar.gz
58 | 2. sudo tar -xvf sc-4.3.8-linux.tar.gz
59 | 3. cd sc-4.3.8-linux
60 | 4. bin/sc -u saucelabs_user_id -k saucelabs_api_key
61 |
62 |
63 | REPORTING
64 | ============
65 |
66 | As well as a html style report, there is a graphical report-based version using Twig. These are generated in the "reports" folder. Below is example of the Twig report output.
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/behat.yml:
--------------------------------------------------------------------------------
1 | default:
2 | suites:
3 | default:
4 | path: %paths.base%/features
5 | contexts:
6 | - Behat\WebApiExtension\Context\WebApiContext
7 | - Behat\MinkExtension\Context\MinkContext
8 | - WebFeatureContext
9 | - HomepageContext
10 | - ProfileformContext
11 | extensions:
12 | Behat\WebApiExtension:
13 | base_url: 'https://duckduckgo.com'
14 | Drupal\DrupalExtension:
15 | blackbox: ~
16 | SensioLabs\Behat\PageObjectExtension:
17 | namespaces:
18 | page: [Page]
19 | element: [Page\Element]
20 | chartinger\Behat\TwigReportExtension\Extension:
21 | output:
22 | file: %paths.base%/reports/htmlreport.html
23 | templates:
24 | file: default.twig
25 | Behat\MinkExtension:
26 | base_url: 'https://duckduckgo.com'
27 | files_path: 'vendor'
28 | selenium2: ~
29 | emuse\BehatHTMLFormatter\BehatHTMLFormatterExtension:
30 | name: html
31 | renderer: Twig
32 | file_name: twigreport
33 | formatters:
34 | html:
35 | output_path: %paths.base%/reports
36 | phantomjs:
37 | extensions:
38 | Behat\MinkExtension:
39 | base_url: 'https://duckduckgo.com'
40 | default_session: 'selenium2'
41 | browser_name: phantomjs
42 | selenium2:
43 | browser: phantomjs
44 | wd_host: localhost:4444/wd/hub
45 | capabilities:
46 | version: ''
47 | browser: phantomjs
48 | saucelabs_ie8:
49 | extensions:
50 | Behat\MinkExtension:
51 | base_url: 'https://duckduckgo.com'
52 | javascript_session: 'selenium2'
53 | selenium2:
54 | browser: iexplore
55 | wd_host: saucelabs_user_id:saucelabs_api_key@ondemand.saucelabs.com/wd/hub
56 | capabilities: { "platform": "XP", "browser": "iexplore", "version": "8"}
57 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "behat mink skeleton",
3 | "require": {
4 | "behat/behat": "*",
5 | "drupal/drupal-extension": "~3.0",
6 | "behat/mink-extension": "*",
7 | "behat/mink-browserkit-driver": "*",
8 | "behat/mink-goutte-driver": "*",
9 | "behat/mink-selenium2-driver": "*",
10 | "chartinger/behat-twig-report-extension": "*",
11 | "behat/web-api-extension": "*",
12 | "sensiolabs/behat-page-object-extension": "*",
13 | "bossa/phpspec2-expect": "*",
14 | "sauce/sausage": ">=0.5",
15 | "sauce/connect": ">=3.0",
16 | "emuse/behat-html-formatter": "dev-master"
17 | },
18 | "minimum-stability": "dev",
19 | "config": {
20 | "bin-dir": "bin/"
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/composer.lock:
--------------------------------------------------------------------------------
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 | "content-hash": "7317abab4ce5c5e287271578ac1e8abb",
8 | "packages": [
9 | {
10 | "name": "appium/php-client",
11 | "version": "dev-master",
12 | "source": {
13 | "type": "git",
14 | "url": "https://github.com/appium/php-client.git",
15 | "reference": "cbaf7b8c1f5b037455228ebadfd7a927769cd38f"
16 | },
17 | "dist": {
18 | "type": "zip",
19 | "url": "https://api.github.com/repos/appium/php-client/zipball/cbaf7b8c1f5b037455228ebadfd7a927769cd38f",
20 | "reference": "cbaf7b8c1f5b037455228ebadfd7a927769cd38f",
21 | "shasum": ""
22 | },
23 | "require": {
24 | "php": ">=5.3.0",
25 | "phpunit/phpunit-selenium": ">=1.3.3"
26 | },
27 | "type": "appium-php",
28 | "autoload": {
29 | "classmap": [
30 | "PHPUnit/"
31 | ]
32 | },
33 | "notification-url": "https://packagist.org/downloads/",
34 | "include-path": [
35 | ""
36 | ],
37 | "license": [
38 | "Apache-2.0"
39 | ],
40 | "authors": [
41 | {
42 | "name": "Isaac Murchie",
43 | "email": "isaac@saucelabs.com",
44 | "homepage": "http://www.saucelabs.com",
45 | "role": "Lead"
46 | }
47 | ],
48 | "description": "PHP client for Selenium 3.0/Appium 1.0",
49 | "homepage": "http://github.com/appium/appium-php",
50 | "keywords": [
51 | "appium",
52 | "phpunit",
53 | "selenium"
54 | ],
55 | "time": "2017-03-24 17:33:58"
56 | },
57 | {
58 | "name": "behat/behat",
59 | "version": "v3.0.15",
60 | "source": {
61 | "type": "git",
62 | "url": "https://github.com/Behat/Behat.git",
63 | "reference": "b35ae3d45332d80c532af69cc36f780a9397a996"
64 | },
65 | "dist": {
66 | "type": "zip",
67 | "url": "https://api.github.com/repos/Behat/Behat/zipball/b35ae3d45332d80c532af69cc36f780a9397a996",
68 | "reference": "b35ae3d45332d80c532af69cc36f780a9397a996",
69 | "shasum": ""
70 | },
71 | "require": {
72 | "behat/gherkin": "~4.3",
73 | "behat/transliterator": "~1.0",
74 | "ext-mbstring": "*",
75 | "php": ">=5.3.3",
76 | "symfony/class-loader": "~2.1",
77 | "symfony/config": "~2.3",
78 | "symfony/console": "~2.1",
79 | "symfony/dependency-injection": "~2.1",
80 | "symfony/event-dispatcher": "~2.1",
81 | "symfony/translation": "~2.3",
82 | "symfony/yaml": "~2.1"
83 | },
84 | "require-dev": {
85 | "phpspec/prophecy-phpunit": "~1.0",
86 | "phpunit/phpunit": "~4.0",
87 | "symfony/process": "~2.1"
88 | },
89 | "suggest": {
90 | "behat/mink-extension": "for integration with Mink testing framework",
91 | "behat/symfony2-extension": "for integration with Symfony2 web framework",
92 | "behat/yii-extension": "for integration with Yii web framework"
93 | },
94 | "bin": [
95 | "bin/behat"
96 | ],
97 | "type": "library",
98 | "extra": {
99 | "branch-alias": {
100 | "dev-master": "3.0.x-dev"
101 | }
102 | },
103 | "autoload": {
104 | "psr-0": {
105 | "Behat\\Behat": "src/",
106 | "Behat\\Testwork": "src/"
107 | }
108 | },
109 | "notification-url": "https://packagist.org/downloads/",
110 | "license": [
111 | "MIT"
112 | ],
113 | "authors": [
114 | {
115 | "name": "Konstantin Kudryashov",
116 | "email": "ever.zet@gmail.com",
117 | "homepage": "http://everzet.com"
118 | }
119 | ],
120 | "description": "Scenario-oriented BDD framework for PHP 5.3",
121 | "homepage": "http://behat.org/",
122 | "keywords": [
123 | "Agile",
124 | "BDD",
125 | "ScenarioBDD",
126 | "Scrum",
127 | "StoryBDD",
128 | "User story",
129 | "business",
130 | "development",
131 | "documentation",
132 | "examples",
133 | "symfony",
134 | "testing"
135 | ],
136 | "time": "2015-02-22T14:10:33+00:00"
137 | },
138 | {
139 | "name": "behat/gherkin",
140 | "version": "dev-master",
141 | "source": {
142 | "type": "git",
143 | "url": "https://github.com/Behat/Gherkin.git",
144 | "reference": "5c14cff4f955b17d20d088dec1bde61c0539ec74"
145 | },
146 | "dist": {
147 | "type": "zip",
148 | "url": "https://api.github.com/repos/Behat/Gherkin/zipball/5c14cff4f955b17d20d088dec1bde61c0539ec74",
149 | "reference": "5c14cff4f955b17d20d088dec1bde61c0539ec74",
150 | "shasum": ""
151 | },
152 | "require": {
153 | "php": ">=5.3.1"
154 | },
155 | "require-dev": {
156 | "phpunit/phpunit": "~4.5|~5",
157 | "symfony/phpunit-bridge": "~2.7|~3",
158 | "symfony/yaml": "~2.3|~3"
159 | },
160 | "suggest": {
161 | "symfony/yaml": "If you want to parse features, represented in YAML files"
162 | },
163 | "type": "library",
164 | "extra": {
165 | "branch-alias": {
166 | "dev-master": "4.4-dev"
167 | }
168 | },
169 | "autoload": {
170 | "psr-0": {
171 | "Behat\\Gherkin": "src/"
172 | }
173 | },
174 | "notification-url": "https://packagist.org/downloads/",
175 | "license": [
176 | "MIT"
177 | ],
178 | "authors": [
179 | {
180 | "name": "Konstantin Kudryashov",
181 | "email": "ever.zet@gmail.com",
182 | "homepage": "http://everzet.com"
183 | }
184 | ],
185 | "description": "Gherkin DSL parser for PHP 5.3",
186 | "homepage": "http://behat.org/",
187 | "keywords": [
188 | "BDD",
189 | "Behat",
190 | "Cucumber",
191 | "DSL",
192 | "gherkin",
193 | "parser"
194 | ],
195 | "time": "2016-10-30 11:50:56"
196 | },
197 | {
198 | "name": "behat/mink",
199 | "version": "dev-master",
200 | "source": {
201 | "type": "git",
202 | "url": "https://github.com/minkphp/Mink.git",
203 | "reference": "9ea1cebe3dc529ba3861d87c818f045362c40484"
204 | },
205 | "dist": {
206 | "type": "zip",
207 | "url": "https://api.github.com/repos/minkphp/Mink/zipball/9ea1cebe3dc529ba3861d87c818f045362c40484",
208 | "reference": "9ea1cebe3dc529ba3861d87c818f045362c40484",
209 | "shasum": ""
210 | },
211 | "require": {
212 | "php": ">=5.3.1",
213 | "symfony/css-selector": "~2.1|~3.0"
214 | },
215 | "require-dev": {
216 | "symfony/phpunit-bridge": "~2.7|~3.0"
217 | },
218 | "suggest": {
219 | "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)",
220 | "behat/mink-goutte-driver": "fast headless driver for any app without JS emulation",
221 | "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)",
222 | "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)"
223 | },
224 | "type": "library",
225 | "extra": {
226 | "branch-alias": {
227 | "dev-master": "1.7.x-dev"
228 | }
229 | },
230 | "autoload": {
231 | "psr-4": {
232 | "Behat\\Mink\\": "src/"
233 | }
234 | },
235 | "notification-url": "https://packagist.org/downloads/",
236 | "license": [
237 | "MIT"
238 | ],
239 | "authors": [
240 | {
241 | "name": "Konstantin Kudryashov",
242 | "email": "ever.zet@gmail.com",
243 | "homepage": "http://everzet.com"
244 | }
245 | ],
246 | "description": "Browser controller/emulator abstraction for PHP",
247 | "homepage": "http://mink.behat.org/",
248 | "keywords": [
249 | "browser",
250 | "testing",
251 | "web"
252 | ],
253 | "time": "2017-02-06 09:59:54"
254 | },
255 | {
256 | "name": "behat/mink-browserkit-driver",
257 | "version": "dev-master",
258 | "source": {
259 | "type": "git",
260 | "url": "https://github.com/minkphp/MinkBrowserKitDriver.git",
261 | "reference": "1c9c8ad8838af33448d10baa57658b4cb55f23d6"
262 | },
263 | "dist": {
264 | "type": "zip",
265 | "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/1c9c8ad8838af33448d10baa57658b4cb55f23d6",
266 | "reference": "1c9c8ad8838af33448d10baa57658b4cb55f23d6",
267 | "shasum": ""
268 | },
269 | "require": {
270 | "behat/mink": "^1.7.1@dev",
271 | "php": ">=5.3.6",
272 | "symfony/browser-kit": "~2.3|~3.0",
273 | "symfony/dom-crawler": "~2.3|~3.0"
274 | },
275 | "require-dev": {
276 | "mink/driver-testsuite": "dev-master",
277 | "symfony/http-kernel": "~2.3|~3.0"
278 | },
279 | "type": "mink-driver",
280 | "extra": {
281 | "branch-alias": {
282 | "dev-master": "1.3.x-dev"
283 | }
284 | },
285 | "autoload": {
286 | "psr-4": {
287 | "Behat\\Mink\\Driver\\": "src/"
288 | }
289 | },
290 | "notification-url": "https://packagist.org/downloads/",
291 | "license": [
292 | "MIT"
293 | ],
294 | "authors": [
295 | {
296 | "name": "Konstantin Kudryashov",
297 | "email": "ever.zet@gmail.com",
298 | "homepage": "http://everzet.com"
299 | }
300 | ],
301 | "description": "Symfony2 BrowserKit driver for Mink framework",
302 | "homepage": "http://mink.behat.org/",
303 | "keywords": [
304 | "Mink",
305 | "Symfony2",
306 | "browser",
307 | "testing"
308 | ],
309 | "time": "2016-10-03 08:27:03"
310 | },
311 | {
312 | "name": "behat/mink-extension",
313 | "version": "dev-master",
314 | "source": {
315 | "type": "git",
316 | "url": "https://github.com/Behat/MinkExtension.git",
317 | "reference": "ba90463fab1e92fbdb3b16f25cc106634d373878"
318 | },
319 | "dist": {
320 | "type": "zip",
321 | "url": "https://api.github.com/repos/Behat/MinkExtension/zipball/ba90463fab1e92fbdb3b16f25cc106634d373878",
322 | "reference": "ba90463fab1e92fbdb3b16f25cc106634d373878",
323 | "shasum": ""
324 | },
325 | "require": {
326 | "behat/behat": "~3.0,>=3.0.5",
327 | "behat/mink": "~1.5",
328 | "php": ">=5.3.2",
329 | "symfony/config": "~2.2|~3.0"
330 | },
331 | "require-dev": {
332 | "behat/mink-goutte-driver": "~1.1",
333 | "phpspec/phpspec": "~2.0"
334 | },
335 | "type": "behat-extension",
336 | "extra": {
337 | "branch-alias": {
338 | "dev-master": "2.1.x-dev"
339 | }
340 | },
341 | "autoload": {
342 | "psr-0": {
343 | "Behat\\MinkExtension": "src/"
344 | }
345 | },
346 | "notification-url": "https://packagist.org/downloads/",
347 | "license": [
348 | "MIT"
349 | ],
350 | "authors": [
351 | {
352 | "name": "Christophe Coevoet",
353 | "email": "stof@notk.org"
354 | },
355 | {
356 | "name": "Konstantin Kudryashov",
357 | "email": "ever.zet@gmail.com"
358 | }
359 | ],
360 | "description": "Mink extension for Behat",
361 | "homepage": "http://extensions.behat.org/mink",
362 | "keywords": [
363 | "browser",
364 | "gui",
365 | "test",
366 | "web"
367 | ],
368 | "time": "2016-11-17 11:38:25"
369 | },
370 | {
371 | "name": "behat/mink-goutte-driver",
372 | "version": "dev-master",
373 | "source": {
374 | "type": "git",
375 | "url": "https://github.com/minkphp/MinkGoutteDriver.git",
376 | "reference": "7a4b2d49511865e23d61463514fa2754d42ec658"
377 | },
378 | "dist": {
379 | "type": "zip",
380 | "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/7a4b2d49511865e23d61463514fa2754d42ec658",
381 | "reference": "7a4b2d49511865e23d61463514fa2754d42ec658",
382 | "shasum": ""
383 | },
384 | "require": {
385 | "behat/mink-browserkit-driver": "~1.2@dev",
386 | "fabpot/goutte": "~1.0.4|~2.0|~3.1",
387 | "php": ">=5.3.1"
388 | },
389 | "require-dev": {
390 | "mink/driver-testsuite": "dev-master"
391 | },
392 | "type": "mink-driver",
393 | "extra": {
394 | "branch-alias": {
395 | "dev-master": "1.2.x-dev"
396 | }
397 | },
398 | "autoload": {
399 | "psr-4": {
400 | "Behat\\Mink\\Driver\\": "src/"
401 | }
402 | },
403 | "notification-url": "https://packagist.org/downloads/",
404 | "license": [
405 | "MIT"
406 | ],
407 | "authors": [
408 | {
409 | "name": "Konstantin Kudryashov",
410 | "email": "ever.zet@gmail.com",
411 | "homepage": "http://everzet.com"
412 | }
413 | ],
414 | "description": "Goutte driver for Mink framework",
415 | "homepage": "http://mink.behat.org/",
416 | "keywords": [
417 | "browser",
418 | "goutte",
419 | "headless",
420 | "testing"
421 | ],
422 | "time": "2016-10-14 20:19:06"
423 | },
424 | {
425 | "name": "behat/mink-selenium2-driver",
426 | "version": "dev-master",
427 | "source": {
428 | "type": "git",
429 | "url": "https://github.com/minkphp/MinkSelenium2Driver.git",
430 | "reference": "739b7570f0536bad9b07b511a62c885ee1ec029a"
431 | },
432 | "dist": {
433 | "type": "zip",
434 | "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/739b7570f0536bad9b07b511a62c885ee1ec029a",
435 | "reference": "739b7570f0536bad9b07b511a62c885ee1ec029a",
436 | "shasum": ""
437 | },
438 | "require": {
439 | "behat/mink": "~1.7@dev",
440 | "instaclick/php-webdriver": "~1.1",
441 | "php": ">=5.3.1"
442 | },
443 | "require-dev": {
444 | "mink/driver-testsuite": "dev-master"
445 | },
446 | "type": "mink-driver",
447 | "extra": {
448 | "branch-alias": {
449 | "dev-master": "1.3.x-dev"
450 | }
451 | },
452 | "autoload": {
453 | "psr-4": {
454 | "Behat\\Mink\\Driver\\": "src/"
455 | }
456 | },
457 | "notification-url": "https://packagist.org/downloads/",
458 | "license": [
459 | "MIT"
460 | ],
461 | "authors": [
462 | {
463 | "name": "Konstantin Kudryashov",
464 | "email": "ever.zet@gmail.com",
465 | "homepage": "http://everzet.com"
466 | },
467 | {
468 | "name": "Pete Otaqui",
469 | "email": "pete@otaqui.com",
470 | "homepage": "https://github.com/pete-otaqui"
471 | }
472 | ],
473 | "description": "Selenium2 (WebDriver) driver for Mink framework",
474 | "homepage": "http://mink.behat.org/",
475 | "keywords": [
476 | "ajax",
477 | "browser",
478 | "javascript",
479 | "selenium",
480 | "testing",
481 | "webdriver"
482 | ],
483 | "time": "2017-02-06 08:22:23"
484 | },
485 | {
486 | "name": "behat/transliterator",
487 | "version": "dev-master",
488 | "source": {
489 | "type": "git",
490 | "url": "https://github.com/Behat/Transliterator.git",
491 | "reference": "826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c"
492 | },
493 | "dist": {
494 | "type": "zip",
495 | "url": "https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c",
496 | "reference": "826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c",
497 | "shasum": ""
498 | },
499 | "require": {
500 | "php": ">=5.3.3"
501 | },
502 | "require-dev": {
503 | "chuyskywalker/rolling-curl": "^3.1",
504 | "php-yaoi/php-yaoi": "^1.0"
505 | },
506 | "type": "library",
507 | "extra": {
508 | "branch-alias": {
509 | "dev-master": "1.2-dev"
510 | }
511 | },
512 | "autoload": {
513 | "psr-0": {
514 | "Behat\\Transliterator": "src/"
515 | }
516 | },
517 | "notification-url": "https://packagist.org/downloads/",
518 | "license": [
519 | "Artistic-1.0"
520 | ],
521 | "description": "String transliterator",
522 | "keywords": [
523 | "i18n",
524 | "slug",
525 | "transliterator"
526 | ],
527 | "time": "2017-04-04 11:38:05"
528 | },
529 | {
530 | "name": "behat/web-api-extension",
531 | "version": "dev-master",
532 | "source": {
533 | "type": "git",
534 | "url": "https://github.com/Behat/WebApiExtension.git",
535 | "reference": "ff62c5527d2ecfaae04bd08d385f3c419c3f824e"
536 | },
537 | "dist": {
538 | "type": "zip",
539 | "url": "https://api.github.com/repos/Behat/WebApiExtension/zipball/ff62c5527d2ecfaae04bd08d385f3c419c3f824e",
540 | "reference": "ff62c5527d2ecfaae04bd08d385f3c419c3f824e",
541 | "shasum": ""
542 | },
543 | "require": {
544 | "behat/behat": "~3.0",
545 | "guzzlehttp/guzzle": "4 - 6",
546 | "php": ">=5.4",
547 | "phpunit/phpunit": "4 - 5"
548 | },
549 | "require-dev": {
550 | "silex/silex": "~1",
551 | "symfony/process": "~2.1"
552 | },
553 | "type": "behat-extension",
554 | "extra": {
555 | "branch-alias": {
556 | "dev-master": "1.0.x-dev"
557 | }
558 | },
559 | "autoload": {
560 | "psr-4": {
561 | "Behat\\WebApiExtension\\": "src/"
562 | }
563 | },
564 | "notification-url": "https://packagist.org/downloads/",
565 | "license": [
566 | "MIT"
567 | ],
568 | "authors": [
569 | {
570 | "name": "Christophe Coevoet",
571 | "email": "stof@notk.org"
572 | },
573 | {
574 | "name": "Community contributors",
575 | "homepage": "https://github.com/Behat/WebApiExtension/graphs/contributors"
576 | }
577 | ],
578 | "description": "Web API extension for Behat",
579 | "homepage": "http://extensions.behat.org",
580 | "keywords": [
581 | "api",
582 | "test"
583 | ],
584 | "time": "2016-03-22 18:52:28"
585 | },
586 | {
587 | "name": "bossa/phpspec2-expect",
588 | "version": "dev-master",
589 | "source": {
590 | "type": "git",
591 | "url": "https://github.com/BossaConsulting/phpspec2-expect.git",
592 | "reference": "b21f6f7c3248608e940fcb670f9354b860a8aee5"
593 | },
594 | "dist": {
595 | "type": "zip",
596 | "url": "https://api.github.com/repos/BossaConsulting/phpspec2-expect/zipball/b21f6f7c3248608e940fcb670f9354b860a8aee5",
597 | "reference": "b21f6f7c3248608e940fcb670f9354b860a8aee5",
598 | "shasum": ""
599 | },
600 | "require": {
601 | "phpspec/phpspec": "~3.2 <3.4.0"
602 | },
603 | "require-dev": {
604 | "phpunit/phpunit": "^5.6|^6.0"
605 | },
606 | "type": "library",
607 | "autoload": {
608 | "files": [
609 | "expect.php"
610 | ],
611 | "psr-0": {
612 | "Bossa\\PhpSpec\\Expect\\": ""
613 | }
614 | },
615 | "notification-url": "https://packagist.org/downloads/",
616 | "license": [
617 | "MIT"
618 | ],
619 | "authors": [
620 | {
621 | "name": "Marcello Duarte",
622 | "homepage": "http://marcelloduarte.net/"
623 | }
624 | ],
625 | "description": "Helper that decorates any SUS with a phpspec lazy object wrapper",
626 | "keywords": [
627 | "BDD",
628 | "SpecBDD",
629 | "TDD",
630 | "spec",
631 | "specification"
632 | ],
633 | "time": "2017-04-27 16:17:04"
634 | },
635 | {
636 | "name": "brianium/habitat",
637 | "version": "v1.0.0",
638 | "source": {
639 | "type": "git",
640 | "url": "https://github.com/brianium/habitat.git",
641 | "reference": "d0979e3bb379cbc78ecb42b3ac171bc2b7e06d96"
642 | },
643 | "dist": {
644 | "type": "zip",
645 | "url": "https://api.github.com/repos/brianium/habitat/zipball/d0979e3bb379cbc78ecb42b3ac171bc2b7e06d96",
646 | "reference": "d0979e3bb379cbc78ecb42b3ac171bc2b7e06d96",
647 | "shasum": ""
648 | },
649 | "require-dev": {
650 | "monolog/monolog": ">=1.5.0",
651 | "phpunit/phpunit": ">=3.7.21"
652 | },
653 | "type": "library",
654 | "autoload": {
655 | "psr-0": {
656 | "Habitat": [
657 | "src/"
658 | ]
659 | }
660 | },
661 | "notification-url": "https://packagist.org/downloads/",
662 | "license": [
663 | "MIT"
664 | ],
665 | "authors": [
666 | {
667 | "name": "Brian",
668 | "email": "scaturrob@gmail.com",
669 | "homepage": "http://brianscaturro.com",
670 | "role": "Lead"
671 | }
672 | ],
673 | "description": "A dependable php environment",
674 | "time": "2013-06-08T04:42:29+00:00"
675 | },
676 | {
677 | "name": "brianium/paratest",
678 | "version": "0.15.0",
679 | "source": {
680 | "type": "git",
681 | "url": "https://github.com/brianium/paratest.git",
682 | "reference": "13af4ef6631a2638498de9813bbe0f6493ba84ad"
683 | },
684 | "dist": {
685 | "type": "zip",
686 | "url": "https://api.github.com/repos/brianium/paratest/zipball/13af4ef6631a2638498de9813bbe0f6493ba84ad",
687 | "reference": "13af4ef6631a2638498de9813bbe0f6493ba84ad",
688 | "shasum": ""
689 | },
690 | "require": {
691 | "brianium/habitat": "1.0.0",
692 | "composer/semver": "~1.2",
693 | "ext-pcre": "*",
694 | "ext-reflection": "*",
695 | "ext-simplexml": "*",
696 | "php": ">=5.5.11",
697 | "phpunit/php-timer": ">=1.0.4",
698 | "phpunit/phpunit": "~5.0",
699 | "symfony/console": "~2.3|~3.0",
700 | "symfony/process": "~2.3|~3.0"
701 | },
702 | "bin": [
703 | "bin/paratest"
704 | ],
705 | "type": "library",
706 | "autoload": {
707 | "psr-0": {
708 | "ParaTest": [
709 | "src/"
710 | ]
711 | }
712 | },
713 | "notification-url": "https://packagist.org/downloads/",
714 | "license": [
715 | "MIT"
716 | ],
717 | "authors": [
718 | {
719 | "name": "Brian Scaturro",
720 | "email": "scaturrob@gmail.com",
721 | "homepage": "http://brianscaturro.com",
722 | "role": "Lead"
723 | }
724 | ],
725 | "description": "Parallel testing for PHP",
726 | "homepage": "https://github.com/brianium/paratest",
727 | "keywords": [
728 | "concurrent",
729 | "parallel",
730 | "phpunit",
731 | "testing"
732 | ],
733 | "time": "2017-06-13T19:50:32+00:00"
734 | },
735 | {
736 | "name": "chartinger/behat-twig-report-extension",
737 | "version": "dev-master",
738 | "source": {
739 | "type": "git",
740 | "url": "https://github.com/chartinger/behat-twig-report-extension.git",
741 | "reference": "a3e439d9312061ad9694a5cf0ebb30072fb4a38b"
742 | },
743 | "dist": {
744 | "type": "zip",
745 | "url": "https://api.github.com/repos/chartinger/behat-twig-report-extension/zipball/a3e439d9312061ad9694a5cf0ebb30072fb4a38b",
746 | "reference": "a3e439d9312061ad9694a5cf0ebb30072fb4a38b",
747 | "shasum": ""
748 | },
749 | "require": {
750 | "behat/behat": "~3.0.0@dev",
751 | "php": ">=5.3.2",
752 | "twig/twig": "1.*"
753 | },
754 | "require-dev": {
755 | "phpunit/phpunit": "~3.7.28",
756 | "symfony/process": "~2.1"
757 | },
758 | "type": "behat-extension",
759 | "autoload": {
760 | "psr-0": {
761 | "chartinger\\Behat\\TwigReportExtension": "src/"
762 | }
763 | },
764 | "notification-url": "https://packagist.org/downloads/",
765 | "license": [
766 | "MIT"
767 | ],
768 | "authors": [
769 | {
770 | "name": "Christian Hartinger",
771 | "email": "c.k.hartinger@gmail.com"
772 | }
773 | ],
774 | "description": "Create Behat 3 test reports with Twig templates",
775 | "time": "2015-01-13 15:14:35"
776 | },
777 | {
778 | "name": "composer/semver",
779 | "version": "dev-master",
780 | "source": {
781 | "type": "git",
782 | "url": "https://github.com/composer/semver.git",
783 | "reference": "7ea669582e6396857cf6d1c0a6cd2728f4e7e383"
784 | },
785 | "dist": {
786 | "type": "zip",
787 | "url": "https://api.github.com/repos/composer/semver/zipball/7ea669582e6396857cf6d1c0a6cd2728f4e7e383",
788 | "reference": "7ea669582e6396857cf6d1c0a6cd2728f4e7e383",
789 | "shasum": ""
790 | },
791 | "require": {
792 | "php": "^5.3.2 || ^7.0"
793 | },
794 | "require-dev": {
795 | "phpunit/phpunit": "^4.5 || ^5.0.5",
796 | "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0"
797 | },
798 | "type": "library",
799 | "extra": {
800 | "branch-alias": {
801 | "dev-master": "1.x-dev"
802 | }
803 | },
804 | "autoload": {
805 | "psr-4": {
806 | "Composer\\Semver\\": "src"
807 | }
808 | },
809 | "notification-url": "https://packagist.org/downloads/",
810 | "license": [
811 | "MIT"
812 | ],
813 | "authors": [
814 | {
815 | "name": "Nils Adermann",
816 | "email": "naderman@naderman.de",
817 | "homepage": "http://www.naderman.de"
818 | },
819 | {
820 | "name": "Jordi Boggiano",
821 | "email": "j.boggiano@seld.be",
822 | "homepage": "http://seld.be"
823 | },
824 | {
825 | "name": "Rob Bast",
826 | "email": "rob.bast@gmail.com",
827 | "homepage": "http://robbast.nl"
828 | }
829 | ],
830 | "description": "Semver library that offers utilities, version constraint parsing and validation.",
831 | "keywords": [
832 | "semantic",
833 | "semver",
834 | "validation",
835 | "versioning"
836 | ],
837 | "time": "2017-05-15 12:49:06"
838 | },
839 | {
840 | "name": "doctrine/instantiator",
841 | "version": "dev-master",
842 | "source": {
843 | "type": "git",
844 | "url": "https://github.com/doctrine/instantiator.git",
845 | "reference": "5acd2bd8c2b600ad5cc4c9180ebf0a930604d6a5"
846 | },
847 | "dist": {
848 | "type": "zip",
849 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/5acd2bd8c2b600ad5cc4c9180ebf0a930604d6a5",
850 | "reference": "5acd2bd8c2b600ad5cc4c9180ebf0a930604d6a5",
851 | "shasum": ""
852 | },
853 | "require": {
854 | "php": ">=5.3,<8.0-DEV"
855 | },
856 | "require-dev": {
857 | "athletic/athletic": "~0.1.8",
858 | "ext-pdo": "*",
859 | "ext-phar": "*",
860 | "phpunit/phpunit": "~4.0",
861 | "squizlabs/php_codesniffer": "~2.0"
862 | },
863 | "type": "library",
864 | "extra": {
865 | "branch-alias": {
866 | "dev-master": "1.0.x-dev"
867 | }
868 | },
869 | "autoload": {
870 | "psr-4": {
871 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
872 | }
873 | },
874 | "notification-url": "https://packagist.org/downloads/",
875 | "license": [
876 | "MIT"
877 | ],
878 | "authors": [
879 | {
880 | "name": "Marco Pivetta",
881 | "email": "ocramius@gmail.com",
882 | "homepage": "http://ocramius.github.com/"
883 | }
884 | ],
885 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
886 | "homepage": "https://github.com/doctrine/instantiator",
887 | "keywords": [
888 | "constructor",
889 | "instantiate"
890 | ],
891 | "time": "2017-02-16 16:15:51"
892 | },
893 | {
894 | "name": "drupal/drupal-driver",
895 | "version": "dev-master",
896 | "source": {
897 | "type": "git",
898 | "url": "https://github.com/jhedstrom/DrupalDriver.git",
899 | "reference": "74d4ef1377dd76c290f74b2f26f5c343e2ecbaf8"
900 | },
901 | "dist": {
902 | "type": "zip",
903 | "url": "https://api.github.com/repos/jhedstrom/DrupalDriver/zipball/74d4ef1377dd76c290f74b2f26f5c343e2ecbaf8",
904 | "reference": "74d4ef1377dd76c290f74b2f26f5c343e2ecbaf8",
905 | "shasum": ""
906 | },
907 | "require": {
908 | "symfony/dependency-injection": "~2.6|~3.0",
909 | "symfony/process": "~2.5|~3.0"
910 | },
911 | "require-dev": {
912 | "drupal/coder": "~8.2.0",
913 | "drush-ops/behat-drush-endpoint": "*",
914 | "mockery/mockery": "0.9.4",
915 | "phpspec/phpspec": "~2.0",
916 | "phpunit/phpunit": "~4.0"
917 | },
918 | "type": "library",
919 | "extra": {
920 | "branch-alias": {
921 | "dev-master": "1.2.x-dev"
922 | }
923 | },
924 | "autoload": {
925 | "psr-0": {
926 | "Drupal\\Component": "src/",
927 | "Drupal\\Driver": "src/",
928 | "Drupal\\Tests\\Driver": "tests/"
929 | }
930 | },
931 | "notification-url": "https://packagist.org/downloads/",
932 | "license": [
933 | "GPL-2.0+"
934 | ],
935 | "authors": [
936 | {
937 | "name": "Jonathan Hedstrom",
938 | "email": "jhedstrom@gmail.com"
939 | }
940 | ],
941 | "description": "A collection of reusable Drupal drivers",
942 | "homepage": "http://github.com/jhedstrom/DrupalDriver",
943 | "keywords": [
944 | "drupal",
945 | "test",
946 | "web"
947 | ],
948 | "time": "2017-04-09 08:39:37"
949 | },
950 | {
951 | "name": "drupal/drupal-extension",
952 | "version": "3.1.x-dev",
953 | "source": {
954 | "type": "git",
955 | "url": "https://github.com/jhedstrom/drupalextension.git",
956 | "reference": "89af17c7f6850a4ab3ca1ff656d55b2fbb3a38ef"
957 | },
958 | "dist": {
959 | "type": "zip",
960 | "url": "https://api.github.com/repos/jhedstrom/drupalextension/zipball/89af17c7f6850a4ab3ca1ff656d55b2fbb3a38ef",
961 | "reference": "89af17c7f6850a4ab3ca1ff656d55b2fbb3a38ef",
962 | "shasum": ""
963 | },
964 | "require": {
965 | "behat/behat": "~3.0,>=3.0.5",
966 | "behat/mink": "~1.5",
967 | "behat/mink-extension": "~2.0",
968 | "behat/mink-goutte-driver": "~1.0",
969 | "behat/mink-selenium2-driver": "~1.1",
970 | "drupal/drupal-driver": "~1.1"
971 | },
972 | "require-dev": {
973 | "behat/mink-zombie-driver": "^1.2",
974 | "phpspec/phpspec": "~2.0",
975 | "phpunit/phpunit": "3.7.*"
976 | },
977 | "type": "behat-extension",
978 | "autoload": {
979 | "psr-0": {
980 | "Drupal\\Drupal": "src/",
981 | "Drupal\\Exception": "src/",
982 | "Drupal\\DrupalExtension": "src/"
983 | }
984 | },
985 | "notification-url": "https://packagist.org/downloads/",
986 | "license": [
987 | "GPL-2.0+"
988 | ],
989 | "authors": [
990 | {
991 | "name": "Jonathan Hedstrom",
992 | "email": "jhedstrom@gmail.com"
993 | }
994 | ],
995 | "description": "Drupal extension for Behat",
996 | "homepage": "http://drupal.org/project/drupalextension",
997 | "keywords": [
998 | "drupal",
999 | "test",
1000 | "web"
1001 | ],
1002 | "time": "2016-03-08 16:36:48"
1003 | },
1004 | {
1005 | "name": "emuse/behat-html-formatter",
1006 | "version": "dev-master",
1007 | "source": {
1008 | "type": "git",
1009 | "url": "https://github.com/dutchiexl/BehatHtmlFormatterPlugin.git",
1010 | "reference": "0a9ac960d471225911c592e7de425af663923314"
1011 | },
1012 | "dist": {
1013 | "type": "zip",
1014 | "url": "https://api.github.com/repos/dutchiexl/BehatHtmlFormatterPlugin/zipball/0a9ac960d471225911c592e7de425af663923314",
1015 | "reference": "0a9ac960d471225911c592e7de425af663923314",
1016 | "shasum": ""
1017 | },
1018 | "require": {
1019 | "behat/behat": "~3.0",
1020 | "behat/gherkin": "~4.2",
1021 | "php": ">=5.3.0",
1022 | "twig/twig": "~1.5|~2.0"
1023 | },
1024 | "require-dev": {
1025 | "phpunit/phpunit": "~4.1",
1026 | "symfony/process": ">2.3,<4.0"
1027 | },
1028 | "type": "library",
1029 | "autoload": {
1030 | "psr-4": {
1031 | "emuse\\BehatHTMLFormatter\\": "src/"
1032 | }
1033 | },
1034 | "notification-url": "https://packagist.org/downloads/",
1035 | "authors": [
1036 | {
1037 | "name": "Neal Vanmeert",
1038 | "email": "neal@emuse.be"
1039 | }
1040 | ],
1041 | "description": "This will create a html formatter for Behat.",
1042 | "time": "2017-06-06 09:25:53"
1043 | },
1044 | {
1045 | "name": "fabpot/goutte",
1046 | "version": "dev-master",
1047 | "source": {
1048 | "type": "git",
1049 | "url": "https://github.com/FriendsOfPHP/Goutte.git",
1050 | "reference": "db5c28f4a010b4161d507d5304e28a7ebf211638"
1051 | },
1052 | "dist": {
1053 | "type": "zip",
1054 | "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/db5c28f4a010b4161d507d5304e28a7ebf211638",
1055 | "reference": "db5c28f4a010b4161d507d5304e28a7ebf211638",
1056 | "shasum": ""
1057 | },
1058 | "require": {
1059 | "guzzlehttp/guzzle": "^6.0",
1060 | "php": ">=5.5.0",
1061 | "symfony/browser-kit": "~2.1|~3.0",
1062 | "symfony/css-selector": "~2.1|~3.0",
1063 | "symfony/dom-crawler": "~2.1|~3.0"
1064 | },
1065 | "type": "application",
1066 | "extra": {
1067 | "branch-alias": {
1068 | "dev-master": "3.2-dev"
1069 | }
1070 | },
1071 | "autoload": {
1072 | "psr-4": {
1073 | "Goutte\\": "Goutte"
1074 | }
1075 | },
1076 | "notification-url": "https://packagist.org/downloads/",
1077 | "license": [
1078 | "MIT"
1079 | ],
1080 | "authors": [
1081 | {
1082 | "name": "Fabien Potencier",
1083 | "email": "fabien@symfony.com"
1084 | }
1085 | ],
1086 | "description": "A simple PHP Web Scraper",
1087 | "homepage": "https://github.com/FriendsOfPHP/Goutte",
1088 | "keywords": [
1089 | "scraper"
1090 | ],
1091 | "time": "2017-01-03 13:21:43"
1092 | },
1093 | {
1094 | "name": "guzzlehttp/guzzle",
1095 | "version": "dev-master",
1096 | "source": {
1097 | "type": "git",
1098 | "url": "https://github.com/guzzle/guzzle.git",
1099 | "reference": "065287bc14f3e606fe6aec6ecfeac9616afbd3cb"
1100 | },
1101 | "dist": {
1102 | "type": "zip",
1103 | "url": "https://api.github.com/repos/guzzle/guzzle/zipball/065287bc14f3e606fe6aec6ecfeac9616afbd3cb",
1104 | "reference": "065287bc14f3e606fe6aec6ecfeac9616afbd3cb",
1105 | "shasum": ""
1106 | },
1107 | "require": {
1108 | "guzzlehttp/promises": "^1.0",
1109 | "guzzlehttp/psr7": "^1.4",
1110 | "php": ">=5.5"
1111 | },
1112 | "require-dev": {
1113 | "ext-curl": "*",
1114 | "phpunit/phpunit": "^4.0 || ^5.0",
1115 | "psr/log": "^1.0"
1116 | },
1117 | "suggest": {
1118 | "psr/log": "Required for using the Log middleware"
1119 | },
1120 | "type": "library",
1121 | "extra": {
1122 | "branch-alias": {
1123 | "dev-master": "6.2-dev"
1124 | }
1125 | },
1126 | "autoload": {
1127 | "files": [
1128 | "src/functions_include.php"
1129 | ],
1130 | "psr-4": {
1131 | "GuzzleHttp\\": "src/"
1132 | }
1133 | },
1134 | "notification-url": "https://packagist.org/downloads/",
1135 | "license": [
1136 | "MIT"
1137 | ],
1138 | "authors": [
1139 | {
1140 | "name": "Michael Dowling",
1141 | "email": "mtdowling@gmail.com",
1142 | "homepage": "https://github.com/mtdowling"
1143 | }
1144 | ],
1145 | "description": "Guzzle is a PHP HTTP client library",
1146 | "homepage": "http://guzzlephp.org/",
1147 | "keywords": [
1148 | "client",
1149 | "curl",
1150 | "framework",
1151 | "http",
1152 | "http client",
1153 | "rest",
1154 | "web service"
1155 | ],
1156 | "time": "2017-06-10 14:17:14"
1157 | },
1158 | {
1159 | "name": "guzzlehttp/promises",
1160 | "version": "dev-master",
1161 | "source": {
1162 | "type": "git",
1163 | "url": "https://github.com/guzzle/promises.git",
1164 | "reference": "09e549f5534380c68761260a71f847644d8f65aa"
1165 | },
1166 | "dist": {
1167 | "type": "zip",
1168 | "url": "https://api.github.com/repos/guzzle/promises/zipball/09e549f5534380c68761260a71f847644d8f65aa",
1169 | "reference": "09e549f5534380c68761260a71f847644d8f65aa",
1170 | "shasum": ""
1171 | },
1172 | "require": {
1173 | "php": ">=5.5.0"
1174 | },
1175 | "require-dev": {
1176 | "phpunit/phpunit": "^4.0"
1177 | },
1178 | "type": "library",
1179 | "extra": {
1180 | "branch-alias": {
1181 | "dev-master": "1.4-dev"
1182 | }
1183 | },
1184 | "autoload": {
1185 | "psr-4": {
1186 | "GuzzleHttp\\Promise\\": "src/"
1187 | },
1188 | "files": [
1189 | "src/functions_include.php"
1190 | ]
1191 | },
1192 | "notification-url": "https://packagist.org/downloads/",
1193 | "license": [
1194 | "MIT"
1195 | ],
1196 | "authors": [
1197 | {
1198 | "name": "Michael Dowling",
1199 | "email": "mtdowling@gmail.com",
1200 | "homepage": "https://github.com/mtdowling"
1201 | }
1202 | ],
1203 | "description": "Guzzle promises library",
1204 | "keywords": [
1205 | "promise"
1206 | ],
1207 | "time": "2017-05-20 23:14:18"
1208 | },
1209 | {
1210 | "name": "guzzlehttp/psr7",
1211 | "version": "dev-master",
1212 | "source": {
1213 | "type": "git",
1214 | "url": "https://github.com/guzzle/psr7.git",
1215 | "reference": "8dfe52c2d14a68ff3dce6af82058391c6c4eb9b3"
1216 | },
1217 | "dist": {
1218 | "type": "zip",
1219 | "url": "https://api.github.com/repos/guzzle/psr7/zipball/8dfe52c2d14a68ff3dce6af82058391c6c4eb9b3",
1220 | "reference": "8dfe52c2d14a68ff3dce6af82058391c6c4eb9b3",
1221 | "shasum": ""
1222 | },
1223 | "require": {
1224 | "php": ">=5.4.0",
1225 | "psr/http-message": "~1.0"
1226 | },
1227 | "provide": {
1228 | "psr/http-message-implementation": "1.0"
1229 | },
1230 | "require-dev": {
1231 | "phpunit/phpunit": "~4.0"
1232 | },
1233 | "type": "library",
1234 | "extra": {
1235 | "branch-alias": {
1236 | "dev-master": "1.4-dev"
1237 | }
1238 | },
1239 | "autoload": {
1240 | "psr-4": {
1241 | "GuzzleHttp\\Psr7\\": "src/"
1242 | },
1243 | "files": [
1244 | "src/functions_include.php"
1245 | ]
1246 | },
1247 | "notification-url": "https://packagist.org/downloads/",
1248 | "license": [
1249 | "MIT"
1250 | ],
1251 | "authors": [
1252 | {
1253 | "name": "Michael Dowling",
1254 | "email": "mtdowling@gmail.com",
1255 | "homepage": "https://github.com/mtdowling"
1256 | },
1257 | {
1258 | "name": "Tobias Schultze",
1259 | "homepage": "https://github.com/Tobion"
1260 | }
1261 | ],
1262 | "description": "PSR-7 message implementation that also provides common utility methods",
1263 | "keywords": [
1264 | "http",
1265 | "message",
1266 | "request",
1267 | "response",
1268 | "stream",
1269 | "uri",
1270 | "url"
1271 | ],
1272 | "time": "2017-06-10 19:55:42"
1273 | },
1274 | {
1275 | "name": "instaclick/php-webdriver",
1276 | "version": "dev-master",
1277 | "source": {
1278 | "type": "git",
1279 | "url": "https://github.com/instaclick/php-webdriver.git",
1280 | "reference": "9c9836dc5f2dcb1db9a94dd2599aa1049fc64b13"
1281 | },
1282 | "dist": {
1283 | "type": "zip",
1284 | "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/9c9836dc5f2dcb1db9a94dd2599aa1049fc64b13",
1285 | "reference": "9c9836dc5f2dcb1db9a94dd2599aa1049fc64b13",
1286 | "shasum": ""
1287 | },
1288 | "require": {
1289 | "ext-curl": "*",
1290 | "php": ">=5.3.2"
1291 | },
1292 | "require-dev": {
1293 | "satooshi/php-coveralls": "^1.0||^2.0"
1294 | },
1295 | "type": "library",
1296 | "extra": {
1297 | "branch-alias": {
1298 | "dev-master": "1.4.x-dev"
1299 | }
1300 | },
1301 | "autoload": {
1302 | "psr-0": {
1303 | "WebDriver": "lib/"
1304 | }
1305 | },
1306 | "notification-url": "https://packagist.org/downloads/",
1307 | "license": [
1308 | "Apache-2.0"
1309 | ],
1310 | "authors": [
1311 | {
1312 | "name": "Justin Bishop",
1313 | "email": "jubishop@gmail.com",
1314 | "role": "Developer"
1315 | },
1316 | {
1317 | "name": "Anthon Pang",
1318 | "email": "apang@softwaredevelopment.ca",
1319 | "role": "Fork maintainer"
1320 | }
1321 | ],
1322 | "description": "PHP WebDriver for Selenium 2",
1323 | "homepage": "http://instaclick.com/",
1324 | "keywords": [
1325 | "browser",
1326 | "selenium",
1327 | "webdriver",
1328 | "webtest"
1329 | ],
1330 | "time": "2017-03-22 17:46:51"
1331 | },
1332 | {
1333 | "name": "myclabs/deep-copy",
1334 | "version": "1.x-dev",
1335 | "source": {
1336 | "type": "git",
1337 | "url": "https://github.com/myclabs/DeepCopy.git",
1338 | "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102"
1339 | },
1340 | "dist": {
1341 | "type": "zip",
1342 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8e6e04167378abf1ddb4d3522d8755c5fd90d102",
1343 | "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102",
1344 | "shasum": ""
1345 | },
1346 | "require": {
1347 | "php": ">=5.4.0"
1348 | },
1349 | "require-dev": {
1350 | "doctrine/collections": "1.*",
1351 | "phpunit/phpunit": "~4.1"
1352 | },
1353 | "type": "library",
1354 | "autoload": {
1355 | "psr-4": {
1356 | "DeepCopy\\": "src/DeepCopy/"
1357 | }
1358 | },
1359 | "notification-url": "https://packagist.org/downloads/",
1360 | "license": [
1361 | "MIT"
1362 | ],
1363 | "description": "Create deep copies (clones) of your objects",
1364 | "homepage": "https://github.com/myclabs/DeepCopy",
1365 | "keywords": [
1366 | "clone",
1367 | "copy",
1368 | "duplicate",
1369 | "object",
1370 | "object graph"
1371 | ],
1372 | "time": "2017-04-12 18:52:22"
1373 | },
1374 | {
1375 | "name": "ocramius/proxy-manager",
1376 | "version": "1.0.x-dev",
1377 | "source": {
1378 | "type": "git",
1379 | "url": "https://github.com/Ocramius/ProxyManager.git",
1380 | "reference": "57e9272ec0e8deccf09421596e0e2252df440e11"
1381 | },
1382 | "dist": {
1383 | "type": "zip",
1384 | "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/57e9272ec0e8deccf09421596e0e2252df440e11",
1385 | "reference": "57e9272ec0e8deccf09421596e0e2252df440e11",
1386 | "shasum": ""
1387 | },
1388 | "require": {
1389 | "php": ">=5.3.3",
1390 | "zendframework/zend-code": ">2.2.5,<3.0"
1391 | },
1392 | "require-dev": {
1393 | "ext-phar": "*",
1394 | "phpunit/phpunit": "~4.0",
1395 | "squizlabs/php_codesniffer": "1.5.*"
1396 | },
1397 | "suggest": {
1398 | "ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects",
1399 | "zendframework/zend-json": "To have the JsonRpc adapter (Remote Object feature)",
1400 | "zendframework/zend-soap": "To have the Soap adapter (Remote Object feature)",
1401 | "zendframework/zend-stdlib": "To use the hydrator proxy",
1402 | "zendframework/zend-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)"
1403 | },
1404 | "type": "library",
1405 | "extra": {
1406 | "branch-alias": {
1407 | "dev-master": "2.0.x-dev"
1408 | }
1409 | },
1410 | "autoload": {
1411 | "psr-0": {
1412 | "ProxyManager\\": "src"
1413 | }
1414 | },
1415 | "notification-url": "https://packagist.org/downloads/",
1416 | "license": [
1417 | "MIT"
1418 | ],
1419 | "authors": [
1420 | {
1421 | "name": "Marco Pivetta",
1422 | "email": "ocramius@gmail.com",
1423 | "homepage": "http://ocramius.github.com/"
1424 | }
1425 | ],
1426 | "description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies",
1427 | "homepage": "https://github.com/Ocramius/ProxyManager",
1428 | "keywords": [
1429 | "aop",
1430 | "lazy loading",
1431 | "proxy",
1432 | "proxy pattern",
1433 | "service proxies"
1434 | ],
1435 | "time": "2015-08-09 04:28:19"
1436 | },
1437 | {
1438 | "name": "phpdocumentor/reflection-common",
1439 | "version": "dev-master",
1440 | "source": {
1441 | "type": "git",
1442 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
1443 | "reference": "a046af61c36e9162372f205de091a1cab7340f1c"
1444 | },
1445 | "dist": {
1446 | "type": "zip",
1447 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/a046af61c36e9162372f205de091a1cab7340f1c",
1448 | "reference": "a046af61c36e9162372f205de091a1cab7340f1c",
1449 | "shasum": ""
1450 | },
1451 | "require": {
1452 | "php": ">=5.5"
1453 | },
1454 | "require-dev": {
1455 | "phpunit/phpunit": "^4.6"
1456 | },
1457 | "type": "library",
1458 | "extra": {
1459 | "branch-alias": {
1460 | "dev-master": "1.0.x-dev"
1461 | }
1462 | },
1463 | "autoload": {
1464 | "psr-4": {
1465 | "phpDocumentor\\Reflection\\": [
1466 | "src"
1467 | ]
1468 | }
1469 | },
1470 | "notification-url": "https://packagist.org/downloads/",
1471 | "license": [
1472 | "MIT"
1473 | ],
1474 | "authors": [
1475 | {
1476 | "name": "Jaap van Otterdijk",
1477 | "email": "opensource@ijaap.nl"
1478 | }
1479 | ],
1480 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
1481 | "homepage": "http://www.phpdoc.org",
1482 | "keywords": [
1483 | "FQSEN",
1484 | "phpDocumentor",
1485 | "phpdoc",
1486 | "reflection",
1487 | "static analysis"
1488 | ],
1489 | "time": "2017-04-30 11:58:12"
1490 | },
1491 | {
1492 | "name": "phpdocumentor/reflection-docblock",
1493 | "version": "3.1.1",
1494 | "source": {
1495 | "type": "git",
1496 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
1497 | "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e"
1498 | },
1499 | "dist": {
1500 | "type": "zip",
1501 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e",
1502 | "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e",
1503 | "shasum": ""
1504 | },
1505 | "require": {
1506 | "php": ">=5.5",
1507 | "phpdocumentor/reflection-common": "^1.0@dev",
1508 | "phpdocumentor/type-resolver": "^0.2.0",
1509 | "webmozart/assert": "^1.0"
1510 | },
1511 | "require-dev": {
1512 | "mockery/mockery": "^0.9.4",
1513 | "phpunit/phpunit": "^4.4"
1514 | },
1515 | "type": "library",
1516 | "autoload": {
1517 | "psr-4": {
1518 | "phpDocumentor\\Reflection\\": [
1519 | "src/"
1520 | ]
1521 | }
1522 | },
1523 | "notification-url": "https://packagist.org/downloads/",
1524 | "license": [
1525 | "MIT"
1526 | ],
1527 | "authors": [
1528 | {
1529 | "name": "Mike van Riel",
1530 | "email": "me@mikevanriel.com"
1531 | }
1532 | ],
1533 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
1534 | "time": "2016-09-30T07:12:33+00:00"
1535 | },
1536 | {
1537 | "name": "phpdocumentor/type-resolver",
1538 | "version": "0.2.1",
1539 | "source": {
1540 | "type": "git",
1541 | "url": "https://github.com/phpDocumentor/TypeResolver.git",
1542 | "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb"
1543 | },
1544 | "dist": {
1545 | "type": "zip",
1546 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
1547 | "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
1548 | "shasum": ""
1549 | },
1550 | "require": {
1551 | "php": ">=5.5",
1552 | "phpdocumentor/reflection-common": "^1.0"
1553 | },
1554 | "require-dev": {
1555 | "mockery/mockery": "^0.9.4",
1556 | "phpunit/phpunit": "^5.2||^4.8.24"
1557 | },
1558 | "type": "library",
1559 | "extra": {
1560 | "branch-alias": {
1561 | "dev-master": "1.0.x-dev"
1562 | }
1563 | },
1564 | "autoload": {
1565 | "psr-4": {
1566 | "phpDocumentor\\Reflection\\": [
1567 | "src/"
1568 | ]
1569 | }
1570 | },
1571 | "notification-url": "https://packagist.org/downloads/",
1572 | "license": [
1573 | "MIT"
1574 | ],
1575 | "authors": [
1576 | {
1577 | "name": "Mike van Riel",
1578 | "email": "me@mikevanriel.com"
1579 | }
1580 | ],
1581 | "time": "2016-11-25T06:54:22+00:00"
1582 | },
1583 | {
1584 | "name": "phpspec/php-diff",
1585 | "version": "v1.1.0",
1586 | "source": {
1587 | "type": "git",
1588 | "url": "https://github.com/phpspec/php-diff.git",
1589 | "reference": "0464787bfa7cd13576c5a1e318709768798bec6a"
1590 | },
1591 | "dist": {
1592 | "type": "zip",
1593 | "url": "https://api.github.com/repos/phpspec/php-diff/zipball/0464787bfa7cd13576c5a1e318709768798bec6a",
1594 | "reference": "0464787bfa7cd13576c5a1e318709768798bec6a",
1595 | "shasum": ""
1596 | },
1597 | "type": "library",
1598 | "extra": {
1599 | "branch-alias": {
1600 | "dev-master": "1.0.x-dev"
1601 | }
1602 | },
1603 | "autoload": {
1604 | "psr-0": {
1605 | "Diff": "lib/"
1606 | }
1607 | },
1608 | "notification-url": "https://packagist.org/downloads/",
1609 | "license": [
1610 | "BSD-3-Clause"
1611 | ],
1612 | "authors": [
1613 | {
1614 | "name": "Chris Boulton",
1615 | "homepage": "http://github.com/chrisboulton"
1616 | }
1617 | ],
1618 | "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).",
1619 | "time": "2016-04-07T12:29:16+00:00"
1620 | },
1621 | {
1622 | "name": "phpspec/phpspec",
1623 | "version": "3.3.0",
1624 | "source": {
1625 | "type": "git",
1626 | "url": "https://github.com/phpspec/phpspec.git",
1627 | "reference": "1c77d11878c4bd475bc66f0eaa2686df0fcfa30f"
1628 | },
1629 | "dist": {
1630 | "type": "zip",
1631 | "url": "https://api.github.com/repos/phpspec/phpspec/zipball/1c77d11878c4bd475bc66f0eaa2686df0fcfa30f",
1632 | "reference": "1c77d11878c4bd475bc66f0eaa2686df0fcfa30f",
1633 | "shasum": ""
1634 | },
1635 | "require": {
1636 | "doctrine/instantiator": "^1.0.1",
1637 | "ext-tokenizer": "*",
1638 | "php": "^5.6 || ^7.0",
1639 | "phpspec/php-diff": "^1.0.0",
1640 | "phpspec/prophecy": "^1.5",
1641 | "sebastian/exporter": "^1.0 || ^2.0 || ^3.0",
1642 | "symfony/console": "^2.7 || ^3.0",
1643 | "symfony/event-dispatcher": "^2.7 || ^3.0",
1644 | "symfony/finder": "^2.7 || ^3.0",
1645 | "symfony/process": "^2.7 || ^3.0",
1646 | "symfony/yaml": "^2.7 || ^3.0"
1647 | },
1648 | "require-dev": {
1649 | "behat/behat": "^3.3",
1650 | "ciaranmcnulty/versionbasedtestskipper": "^0.2.1",
1651 | "phpunit/phpunit": "^5.5|^6.0",
1652 | "symfony/filesystem": "^3.0"
1653 | },
1654 | "suggest": {
1655 | "phpspec/nyan-formatters": "Adds Nyan formatters"
1656 | },
1657 | "bin": [
1658 | "bin/phpspec"
1659 | ],
1660 | "type": "library",
1661 | "extra": {
1662 | "branch-alias": {
1663 | "dev-master": "3.0.x-dev"
1664 | }
1665 | },
1666 | "autoload": {
1667 | "psr-0": {
1668 | "PhpSpec": "src/"
1669 | }
1670 | },
1671 | "notification-url": "https://packagist.org/downloads/",
1672 | "license": [
1673 | "MIT"
1674 | ],
1675 | "authors": [
1676 | {
1677 | "name": "Konstantin Kudryashov",
1678 | "email": "ever.zet@gmail.com",
1679 | "homepage": "http://everzet.com"
1680 | },
1681 | {
1682 | "name": "Marcello Duarte",
1683 | "homepage": "http://marcelloduarte.net/"
1684 | },
1685 | {
1686 | "name": "Ciaran McNulty",
1687 | "homepage": "https://ciaranmcnulty.com/"
1688 | }
1689 | ],
1690 | "description": "Specification-oriented BDD framework for PHP 5.6+",
1691 | "homepage": "http://phpspec.net/",
1692 | "keywords": [
1693 | "BDD",
1694 | "SpecBDD",
1695 | "TDD",
1696 | "spec",
1697 | "specification",
1698 | "testing",
1699 | "tests"
1700 | ],
1701 | "time": "2017-04-27T12:40:39+00:00"
1702 | },
1703 | {
1704 | "name": "phpspec/prophecy",
1705 | "version": "dev-master",
1706 | "source": {
1707 | "type": "git",
1708 | "url": "https://github.com/phpspec/prophecy.git",
1709 | "reference": "79db5dd907ee977039f77ac8471a739497463429"
1710 | },
1711 | "dist": {
1712 | "type": "zip",
1713 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/79db5dd907ee977039f77ac8471a739497463429",
1714 | "reference": "79db5dd907ee977039f77ac8471a739497463429",
1715 | "shasum": ""
1716 | },
1717 | "require": {
1718 | "doctrine/instantiator": "^1.0.2",
1719 | "php": "^5.3|^7.0",
1720 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
1721 | "sebastian/comparator": "^1.1|^2.0",
1722 | "sebastian/recursion-context": "^1.0|^2.0|^3.0"
1723 | },
1724 | "require-dev": {
1725 | "phpspec/phpspec": "^2.5|^3.2",
1726 | "phpunit/phpunit": "^4.8 || ^5.6.5"
1727 | },
1728 | "type": "library",
1729 | "extra": {
1730 | "branch-alias": {
1731 | "dev-master": "1.7.x-dev"
1732 | }
1733 | },
1734 | "autoload": {
1735 | "psr-0": {
1736 | "Prophecy\\": "src/"
1737 | }
1738 | },
1739 | "notification-url": "https://packagist.org/downloads/",
1740 | "license": [
1741 | "MIT"
1742 | ],
1743 | "authors": [
1744 | {
1745 | "name": "Konstantin Kudryashov",
1746 | "email": "ever.zet@gmail.com",
1747 | "homepage": "http://everzet.com"
1748 | },
1749 | {
1750 | "name": "Marcello Duarte",
1751 | "email": "marcello.duarte@gmail.com"
1752 | }
1753 | ],
1754 | "description": "Highly opinionated mocking framework for PHP 5.3+",
1755 | "homepage": "https://github.com/phpspec/prophecy",
1756 | "keywords": [
1757 | "Double",
1758 | "Dummy",
1759 | "fake",
1760 | "mock",
1761 | "spy",
1762 | "stub"
1763 | ],
1764 | "time": "2017-05-31 16:22:32"
1765 | },
1766 | {
1767 | "name": "phpunit/php-code-coverage",
1768 | "version": "4.0.x-dev",
1769 | "source": {
1770 | "type": "git",
1771 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
1772 | "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d"
1773 | },
1774 | "dist": {
1775 | "type": "zip",
1776 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
1777 | "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
1778 | "shasum": ""
1779 | },
1780 | "require": {
1781 | "ext-dom": "*",
1782 | "ext-xmlwriter": "*",
1783 | "php": "^5.6 || ^7.0",
1784 | "phpunit/php-file-iterator": "^1.3",
1785 | "phpunit/php-text-template": "^1.2",
1786 | "phpunit/php-token-stream": "^1.4.2 || ^2.0",
1787 | "sebastian/code-unit-reverse-lookup": "^1.0",
1788 | "sebastian/environment": "^1.3.2 || ^2.0",
1789 | "sebastian/version": "^1.0 || ^2.0"
1790 | },
1791 | "require-dev": {
1792 | "ext-xdebug": "^2.1.4",
1793 | "phpunit/phpunit": "^5.7"
1794 | },
1795 | "suggest": {
1796 | "ext-xdebug": "^2.5.1"
1797 | },
1798 | "type": "library",
1799 | "extra": {
1800 | "branch-alias": {
1801 | "dev-master": "4.0.x-dev"
1802 | }
1803 | },
1804 | "autoload": {
1805 | "classmap": [
1806 | "src/"
1807 | ]
1808 | },
1809 | "notification-url": "https://packagist.org/downloads/",
1810 | "license": [
1811 | "BSD-3-Clause"
1812 | ],
1813 | "authors": [
1814 | {
1815 | "name": "Sebastian Bergmann",
1816 | "email": "sb@sebastian-bergmann.de",
1817 | "role": "lead"
1818 | }
1819 | ],
1820 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
1821 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
1822 | "keywords": [
1823 | "coverage",
1824 | "testing",
1825 | "xunit"
1826 | ],
1827 | "time": "2017-04-02 07:44:40"
1828 | },
1829 | {
1830 | "name": "phpunit/php-file-iterator",
1831 | "version": "dev-master",
1832 | "source": {
1833 | "type": "git",
1834 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
1835 | "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5"
1836 | },
1837 | "dist": {
1838 | "type": "zip",
1839 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
1840 | "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
1841 | "shasum": ""
1842 | },
1843 | "require": {
1844 | "php": ">=5.3.3"
1845 | },
1846 | "type": "library",
1847 | "extra": {
1848 | "branch-alias": {
1849 | "dev-master": "1.4.x-dev"
1850 | }
1851 | },
1852 | "autoload": {
1853 | "classmap": [
1854 | "src/"
1855 | ]
1856 | },
1857 | "notification-url": "https://packagist.org/downloads/",
1858 | "license": [
1859 | "BSD-3-Clause"
1860 | ],
1861 | "authors": [
1862 | {
1863 | "name": "Sebastian Bergmann",
1864 | "email": "sb@sebastian-bergmann.de",
1865 | "role": "lead"
1866 | }
1867 | ],
1868 | "description": "FilterIterator implementation that filters files based on a list of suffixes.",
1869 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
1870 | "keywords": [
1871 | "filesystem",
1872 | "iterator"
1873 | ],
1874 | "time": "2016-10-03 07:40:28"
1875 | },
1876 | {
1877 | "name": "phpunit/php-text-template",
1878 | "version": "1.2.1",
1879 | "source": {
1880 | "type": "git",
1881 | "url": "https://github.com/sebastianbergmann/php-text-template.git",
1882 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
1883 | },
1884 | "dist": {
1885 | "type": "zip",
1886 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1887 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1888 | "shasum": ""
1889 | },
1890 | "require": {
1891 | "php": ">=5.3.3"
1892 | },
1893 | "type": "library",
1894 | "autoload": {
1895 | "classmap": [
1896 | "src/"
1897 | ]
1898 | },
1899 | "notification-url": "https://packagist.org/downloads/",
1900 | "license": [
1901 | "BSD-3-Clause"
1902 | ],
1903 | "authors": [
1904 | {
1905 | "name": "Sebastian Bergmann",
1906 | "email": "sebastian@phpunit.de",
1907 | "role": "lead"
1908 | }
1909 | ],
1910 | "description": "Simple template engine.",
1911 | "homepage": "https://github.com/sebastianbergmann/php-text-template/",
1912 | "keywords": [
1913 | "template"
1914 | ],
1915 | "time": "2015-06-21T13:50:34+00:00"
1916 | },
1917 | {
1918 | "name": "phpunit/php-timer",
1919 | "version": "dev-master",
1920 | "source": {
1921 | "type": "git",
1922 | "url": "https://github.com/sebastianbergmann/php-timer.git",
1923 | "reference": "d107f347d368dd8a384601398280c7c608390ab7"
1924 | },
1925 | "dist": {
1926 | "type": "zip",
1927 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/d107f347d368dd8a384601398280c7c608390ab7",
1928 | "reference": "d107f347d368dd8a384601398280c7c608390ab7",
1929 | "shasum": ""
1930 | },
1931 | "require": {
1932 | "php": "^5.3.3 || ^7.0"
1933 | },
1934 | "require-dev": {
1935 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
1936 | },
1937 | "type": "library",
1938 | "extra": {
1939 | "branch-alias": {
1940 | "dev-master": "1.0-dev"
1941 | }
1942 | },
1943 | "autoload": {
1944 | "classmap": [
1945 | "src/"
1946 | ]
1947 | },
1948 | "notification-url": "https://packagist.org/downloads/",
1949 | "license": [
1950 | "BSD-3-Clause"
1951 | ],
1952 | "authors": [
1953 | {
1954 | "name": "Sebastian Bergmann",
1955 | "email": "sb@sebastian-bergmann.de",
1956 | "role": "lead"
1957 | }
1958 | ],
1959 | "description": "Utility class for timing",
1960 | "homepage": "https://github.com/sebastianbergmann/php-timer/",
1961 | "keywords": [
1962 | "timer"
1963 | ],
1964 | "time": "2017-03-07 15:42:04"
1965 | },
1966 | {
1967 | "name": "phpunit/php-token-stream",
1968 | "version": "dev-master",
1969 | "source": {
1970 | "type": "git",
1971 | "url": "https://github.com/sebastianbergmann/php-token-stream.git",
1972 | "reference": "9ddb181faa4a3841fe131c357fd01de75cbb4da9"
1973 | },
1974 | "dist": {
1975 | "type": "zip",
1976 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9ddb181faa4a3841fe131c357fd01de75cbb4da9",
1977 | "reference": "9ddb181faa4a3841fe131c357fd01de75cbb4da9",
1978 | "shasum": ""
1979 | },
1980 | "require": {
1981 | "ext-tokenizer": "*",
1982 | "php": "^5.6 || ^7.0"
1983 | },
1984 | "require-dev": {
1985 | "phpunit/phpunit": "^5.7 || ^6.0"
1986 | },
1987 | "type": "library",
1988 | "extra": {
1989 | "branch-alias": {
1990 | "dev-master": "2.0-dev"
1991 | }
1992 | },
1993 | "autoload": {
1994 | "classmap": [
1995 | "src/"
1996 | ]
1997 | },
1998 | "notification-url": "https://packagist.org/downloads/",
1999 | "license": [
2000 | "BSD-3-Clause"
2001 | ],
2002 | "authors": [
2003 | {
2004 | "name": "Sebastian Bergmann",
2005 | "email": "sebastian@phpunit.de"
2006 | }
2007 | ],
2008 | "description": "Wrapper around PHP's tokenizer extension.",
2009 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
2010 | "keywords": [
2011 | "tokenizer"
2012 | ],
2013 | "time": "2017-03-07 07:36:57"
2014 | },
2015 | {
2016 | "name": "phpunit/phpunit",
2017 | "version": "5.7.x-dev",
2018 | "source": {
2019 | "type": "git",
2020 | "url": "https://github.com/sebastianbergmann/phpunit.git",
2021 | "reference": "db3166889854d881265f7d3caa20fa82132305fa"
2022 | },
2023 | "dist": {
2024 | "type": "zip",
2025 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/db3166889854d881265f7d3caa20fa82132305fa",
2026 | "reference": "db3166889854d881265f7d3caa20fa82132305fa",
2027 | "shasum": ""
2028 | },
2029 | "require": {
2030 | "ext-dom": "*",
2031 | "ext-json": "*",
2032 | "ext-libxml": "*",
2033 | "ext-mbstring": "*",
2034 | "ext-xml": "*",
2035 | "myclabs/deep-copy": "~1.3",
2036 | "php": "^5.6 || ^7.0",
2037 | "phpspec/prophecy": "^1.6.2",
2038 | "phpunit/php-code-coverage": "^4.0.4",
2039 | "phpunit/php-file-iterator": "~1.4",
2040 | "phpunit/php-text-template": "~1.2",
2041 | "phpunit/php-timer": "^1.0.6",
2042 | "phpunit/phpunit-mock-objects": "^3.2",
2043 | "sebastian/comparator": "^1.2.4",
2044 | "sebastian/diff": "^1.4.3",
2045 | "sebastian/environment": "^1.3.4 || ^2.0",
2046 | "sebastian/exporter": "~2.0",
2047 | "sebastian/global-state": "^1.1",
2048 | "sebastian/object-enumerator": "~2.0",
2049 | "sebastian/resource-operations": "~1.0",
2050 | "sebastian/version": "~1.0.3|~2.0",
2051 | "symfony/yaml": "~2.1|~3.0"
2052 | },
2053 | "conflict": {
2054 | "phpdocumentor/reflection-docblock": "3.0.2"
2055 | },
2056 | "require-dev": {
2057 | "ext-pdo": "*"
2058 | },
2059 | "suggest": {
2060 | "ext-xdebug": "*",
2061 | "phpunit/php-invoker": "~1.1"
2062 | },
2063 | "bin": [
2064 | "phpunit"
2065 | ],
2066 | "type": "library",
2067 | "extra": {
2068 | "branch-alias": {
2069 | "dev-master": "5.7.x-dev"
2070 | }
2071 | },
2072 | "autoload": {
2073 | "classmap": [
2074 | "src/"
2075 | ]
2076 | },
2077 | "notification-url": "https://packagist.org/downloads/",
2078 | "license": [
2079 | "BSD-3-Clause"
2080 | ],
2081 | "authors": [
2082 | {
2083 | "name": "Sebastian Bergmann",
2084 | "email": "sebastian@phpunit.de",
2085 | "role": "lead"
2086 | }
2087 | ],
2088 | "description": "The PHP Unit Testing framework.",
2089 | "homepage": "https://phpunit.de/",
2090 | "keywords": [
2091 | "phpunit",
2092 | "testing",
2093 | "xunit"
2094 | ],
2095 | "time": "2017-06-14 16:53:16"
2096 | },
2097 | {
2098 | "name": "phpunit/phpunit-mock-objects",
2099 | "version": "3.4.x-dev",
2100 | "source": {
2101 | "type": "git",
2102 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
2103 | "reference": "4001a301f86fc006c32f532a741ab613f2bd8990"
2104 | },
2105 | "dist": {
2106 | "type": "zip",
2107 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/4001a301f86fc006c32f532a741ab613f2bd8990",
2108 | "reference": "4001a301f86fc006c32f532a741ab613f2bd8990",
2109 | "shasum": ""
2110 | },
2111 | "require": {
2112 | "doctrine/instantiator": "^1.0.2",
2113 | "php": "^5.6 || ^7.0",
2114 | "phpunit/php-text-template": "^1.2",
2115 | "sebastian/exporter": "^1.2 || ^2.0"
2116 | },
2117 | "conflict": {
2118 | "phpunit/phpunit": "<5.4.0"
2119 | },
2120 | "require-dev": {
2121 | "phpunit/phpunit": "^5.4"
2122 | },
2123 | "suggest": {
2124 | "ext-soap": "*"
2125 | },
2126 | "type": "library",
2127 | "extra": {
2128 | "branch-alias": {
2129 | "dev-master": "3.2.x-dev"
2130 | }
2131 | },
2132 | "autoload": {
2133 | "classmap": [
2134 | "src/"
2135 | ]
2136 | },
2137 | "notification-url": "https://packagist.org/downloads/",
2138 | "license": [
2139 | "BSD-3-Clause"
2140 | ],
2141 | "authors": [
2142 | {
2143 | "name": "Sebastian Bergmann",
2144 | "email": "sb@sebastian-bergmann.de",
2145 | "role": "lead"
2146 | }
2147 | ],
2148 | "description": "Mock Object library for PHPUnit",
2149 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
2150 | "keywords": [
2151 | "mock",
2152 | "xunit"
2153 | ],
2154 | "time": "2017-03-07 08:47:31"
2155 | },
2156 | {
2157 | "name": "phpunit/phpunit-selenium",
2158 | "version": "dev-master",
2159 | "source": {
2160 | "type": "git",
2161 | "url": "https://github.com/giorgiosironi/phpunit-selenium.git",
2162 | "reference": "ce50d5f819e649d48add1152ed0abdbe8a8c9319"
2163 | },
2164 | "dist": {
2165 | "type": "zip",
2166 | "url": "https://api.github.com/repos/giorgiosironi/phpunit-selenium/zipball/ce50d5f819e649d48add1152ed0abdbe8a8c9319",
2167 | "reference": "ce50d5f819e649d48add1152ed0abdbe8a8c9319",
2168 | "shasum": ""
2169 | },
2170 | "require": {
2171 | "ext-curl": "*",
2172 | "ext-dom": "*",
2173 | "php": ">=5.6",
2174 | "phpunit/phpunit": "~5.0",
2175 | "sebastian/comparator": "~1.0"
2176 | },
2177 | "require-dev": {
2178 | "phing/phing": "2.*"
2179 | },
2180 | "type": "library",
2181 | "autoload": {
2182 | "classmap": [
2183 | "PHPUnit/"
2184 | ]
2185 | },
2186 | "notification-url": "https://packagist.org/downloads/",
2187 | "include-path": [
2188 | ""
2189 | ],
2190 | "license": [
2191 | "BSD-3-Clause"
2192 | ],
2193 | "authors": [
2194 | {
2195 | "name": "Giorgio Sironi",
2196 | "email": "info@giorgiosironi.com",
2197 | "role": "developer"
2198 | },
2199 | {
2200 | "name": "Ivan Kurnosov",
2201 | "email": "zerkms@zerkms.com",
2202 | "role": "developer"
2203 | },
2204 | {
2205 | "name": "Sebastian Bergmann",
2206 | "email": "sb@sebastian-bergmann.de",
2207 | "role": "original developer"
2208 | },
2209 | {
2210 | "name": "Paul Briton",
2211 | "role": "developer"
2212 | }
2213 | ],
2214 | "description": "Selenium Server integration for PHPUnit",
2215 | "homepage": "http://www.phpunit.de/",
2216 | "keywords": [
2217 | "phpunit",
2218 | "selenium",
2219 | "testing",
2220 | "xunit"
2221 | ],
2222 | "time": "2017-02-12 15:05:48"
2223 | },
2224 | {
2225 | "name": "psr/http-message",
2226 | "version": "dev-master",
2227 | "source": {
2228 | "type": "git",
2229 | "url": "https://github.com/php-fig/http-message.git",
2230 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
2231 | },
2232 | "dist": {
2233 | "type": "zip",
2234 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
2235 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
2236 | "shasum": ""
2237 | },
2238 | "require": {
2239 | "php": ">=5.3.0"
2240 | },
2241 | "type": "library",
2242 | "extra": {
2243 | "branch-alias": {
2244 | "dev-master": "1.0.x-dev"
2245 | }
2246 | },
2247 | "autoload": {
2248 | "psr-4": {
2249 | "Psr\\Http\\Message\\": "src/"
2250 | }
2251 | },
2252 | "notification-url": "https://packagist.org/downloads/",
2253 | "license": [
2254 | "MIT"
2255 | ],
2256 | "authors": [
2257 | {
2258 | "name": "PHP-FIG",
2259 | "homepage": "http://www.php-fig.org/"
2260 | }
2261 | ],
2262 | "description": "Common interface for HTTP messages",
2263 | "homepage": "https://github.com/php-fig/http-message",
2264 | "keywords": [
2265 | "http",
2266 | "http-message",
2267 | "psr",
2268 | "psr-7",
2269 | "request",
2270 | "response"
2271 | ],
2272 | "time": "2016-08-06 14:39:51"
2273 | },
2274 | {
2275 | "name": "psr/log",
2276 | "version": "dev-master",
2277 | "source": {
2278 | "type": "git",
2279 | "url": "https://github.com/php-fig/log.git",
2280 | "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
2281 | },
2282 | "dist": {
2283 | "type": "zip",
2284 | "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
2285 | "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
2286 | "shasum": ""
2287 | },
2288 | "require": {
2289 | "php": ">=5.3.0"
2290 | },
2291 | "type": "library",
2292 | "extra": {
2293 | "branch-alias": {
2294 | "dev-master": "1.0.x-dev"
2295 | }
2296 | },
2297 | "autoload": {
2298 | "psr-4": {
2299 | "Psr\\Log\\": "Psr/Log/"
2300 | }
2301 | },
2302 | "notification-url": "https://packagist.org/downloads/",
2303 | "license": [
2304 | "MIT"
2305 | ],
2306 | "authors": [
2307 | {
2308 | "name": "PHP-FIG",
2309 | "homepage": "http://www.php-fig.org/"
2310 | }
2311 | ],
2312 | "description": "Common interface for logging libraries",
2313 | "homepage": "https://github.com/php-fig/log",
2314 | "keywords": [
2315 | "log",
2316 | "psr",
2317 | "psr-3"
2318 | ],
2319 | "time": "2016-10-10 12:19:37"
2320 | },
2321 | {
2322 | "name": "sauce/connect",
2323 | "version": "dev-master",
2324 | "source": {
2325 | "type": "git",
2326 | "url": "https://github.com/saucelabs/sauce-connect-composer.git",
2327 | "reference": "86347b057d036b85aa5ffecba045b0eb26a061ba"
2328 | },
2329 | "dist": {
2330 | "type": "zip",
2331 | "url": "https://api.github.com/repos/saucelabs/sauce-connect-composer/zipball/86347b057d036b85aa5ffecba045b0eb26a061ba",
2332 | "reference": "86347b057d036b85aa5ffecba045b0eb26a061ba",
2333 | "shasum": ""
2334 | },
2335 | "require": {
2336 | "php": ">=5.3.0",
2337 | "sauce/sausage": ">=0.5.0"
2338 | },
2339 | "bin": [
2340 | "bin/sauce_connect"
2341 | ],
2342 | "type": "library",
2343 | "autoload": {
2344 | "psr-0": {
2345 | "Sauce": "src/"
2346 | }
2347 | },
2348 | "notification-url": "https://packagist.org/downloads/",
2349 | "license": [
2350 | "Apache-2.0"
2351 | ],
2352 | "authors": [
2353 | {
2354 | "name": "Jonathan Lipps",
2355 | "email": "jlipps@saucelabs.com",
2356 | "homepage": "http://www.saucelabs.com",
2357 | "role": "Lead"
2358 | }
2359 | ],
2360 | "description": "PHP package for the Sauce Connect Java binary",
2361 | "homepage": "http://github.com/saucelabs/sauce-connect-composer",
2362 | "keywords": [
2363 | "Sauce",
2364 | "SauceLabs",
2365 | "api",
2366 | "phpunit",
2367 | "selenium",
2368 | "testing",
2369 | "tunnel"
2370 | ],
2371 | "time": "2014-02-26 18:22:58"
2372 | },
2373 | {
2374 | "name": "sauce/sausage",
2375 | "version": "dev-master",
2376 | "source": {
2377 | "type": "git",
2378 | "url": "https://github.com/jlipps/sausage.git",
2379 | "reference": "ce7fea6a8de0090459cf23719aec907452600aa6"
2380 | },
2381 | "dist": {
2382 | "type": "zip",
2383 | "url": "https://api.github.com/repos/jlipps/sausage/zipball/ce7fea6a8de0090459cf23719aec907452600aa6",
2384 | "reference": "ce7fea6a8de0090459cf23719aec907452600aa6",
2385 | "shasum": ""
2386 | },
2387 | "require": {
2388 | "appium/php-client": ">=0.1.0",
2389 | "brianium/paratest": ">=0.12.1",
2390 | "php": ">=5.4.0",
2391 | "phpunit/phpunit-selenium": ">=1.4.1",
2392 | "sauce/sausage-installer": ">=0.1.0"
2393 | },
2394 | "require-dev": {
2395 | "phpunit/phpunit": ">=4.5.1"
2396 | },
2397 | "suggest": {
2398 | "sauce/connect": ">=3.1"
2399 | },
2400 | "bin": [
2401 | "bin/sauce_config"
2402 | ],
2403 | "type": "sauce-sausage",
2404 | "autoload": {
2405 | "psr-0": {
2406 | "Sauce": "src/"
2407 | }
2408 | },
2409 | "notification-url": "https://packagist.org/downloads/",
2410 | "license": [
2411 | "Apache-2.0"
2412 | ],
2413 | "authors": [
2414 | {
2415 | "name": "Jonathan Lipps",
2416 | "email": "jlipps@saucelabs.com",
2417 | "homepage": "http://www.saucelabs.com",
2418 | "role": "Lead"
2419 | }
2420 | ],
2421 | "description": "PHP version of the Sauce Labs API",
2422 | "homepage": "http://github.com/jlipps/sausage",
2423 | "keywords": [
2424 | "Sauce",
2425 | "SauceLabs",
2426 | "api",
2427 | "appium",
2428 | "phpunit",
2429 | "selenium",
2430 | "testing"
2431 | ],
2432 | "time": "2015-04-28 03:02:03"
2433 | },
2434 | {
2435 | "name": "sauce/sausage-installer",
2436 | "version": "dev-master",
2437 | "source": {
2438 | "type": "git",
2439 | "url": "https://github.com/jlipps/sausage-installer.git",
2440 | "reference": "5435cadb3ef1cec77218814af3c121b3556a5444"
2441 | },
2442 | "dist": {
2443 | "type": "zip",
2444 | "url": "https://api.github.com/repos/jlipps/sausage-installer/zipball/5435cadb3ef1cec77218814af3c121b3556a5444",
2445 | "reference": "5435cadb3ef1cec77218814af3c121b3556a5444",
2446 | "shasum": ""
2447 | },
2448 | "type": "composer-installer",
2449 | "extra": {
2450 | "class": "Sauce\\Composer\\SausageInstaller"
2451 | },
2452 | "autoload": {
2453 | "psr-0": {
2454 | "Sauce": "src/"
2455 | }
2456 | },
2457 | "notification-url": "https://packagist.org/downloads/",
2458 | "license": [
2459 | "Apache-2.0"
2460 | ],
2461 | "authors": [
2462 | {
2463 | "name": "Jonathan Lipps",
2464 | "email": "jlipps@saucelabs.com",
2465 | "homepage": "http://www.saucelabs.com",
2466 | "role": "Lead"
2467 | }
2468 | ],
2469 | "homepage": "http://github.com/jlipps/sausage-installer",
2470 | "time": "2012-09-28 18:41:38"
2471 | },
2472 | {
2473 | "name": "sebastian/code-unit-reverse-lookup",
2474 | "version": "dev-master",
2475 | "source": {
2476 | "type": "git",
2477 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
2478 | "reference": "3488be0a7b346cd6e5361510ed07e88f9bea2e88"
2479 | },
2480 | "dist": {
2481 | "type": "zip",
2482 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/3488be0a7b346cd6e5361510ed07e88f9bea2e88",
2483 | "reference": "3488be0a7b346cd6e5361510ed07e88f9bea2e88",
2484 | "shasum": ""
2485 | },
2486 | "require": {
2487 | "php": "^5.6 || ^7.0"
2488 | },
2489 | "require-dev": {
2490 | "phpunit/phpunit": "^5.7 || ^6.0"
2491 | },
2492 | "type": "library",
2493 | "extra": {
2494 | "branch-alias": {
2495 | "dev-master": "1.0.x-dev"
2496 | }
2497 | },
2498 | "autoload": {
2499 | "classmap": [
2500 | "src/"
2501 | ]
2502 | },
2503 | "notification-url": "https://packagist.org/downloads/",
2504 | "license": [
2505 | "BSD-3-Clause"
2506 | ],
2507 | "authors": [
2508 | {
2509 | "name": "Sebastian Bergmann",
2510 | "email": "sebastian@phpunit.de"
2511 | }
2512 | ],
2513 | "description": "Looks up which function or method a line of code belongs to",
2514 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
2515 | "time": "2017-03-04 10:23:55"
2516 | },
2517 | {
2518 | "name": "sebastian/comparator",
2519 | "version": "1.2.x-dev",
2520 | "source": {
2521 | "type": "git",
2522 | "url": "https://github.com/sebastianbergmann/comparator.git",
2523 | "reference": "18a5d97c25f408f48acaf6d1b9f4079314c5996a"
2524 | },
2525 | "dist": {
2526 | "type": "zip",
2527 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/18a5d97c25f408f48acaf6d1b9f4079314c5996a",
2528 | "reference": "18a5d97c25f408f48acaf6d1b9f4079314c5996a",
2529 | "shasum": ""
2530 | },
2531 | "require": {
2532 | "php": ">=5.3.3",
2533 | "sebastian/diff": "~1.2",
2534 | "sebastian/exporter": "~1.2 || ~2.0"
2535 | },
2536 | "require-dev": {
2537 | "phpunit/phpunit": "~4.4"
2538 | },
2539 | "type": "library",
2540 | "extra": {
2541 | "branch-alias": {
2542 | "dev-master": "1.2.x-dev"
2543 | }
2544 | },
2545 | "autoload": {
2546 | "classmap": [
2547 | "src/"
2548 | ]
2549 | },
2550 | "notification-url": "https://packagist.org/downloads/",
2551 | "license": [
2552 | "BSD-3-Clause"
2553 | ],
2554 | "authors": [
2555 | {
2556 | "name": "Jeff Welch",
2557 | "email": "whatthejeff@gmail.com"
2558 | },
2559 | {
2560 | "name": "Volker Dusch",
2561 | "email": "github@wallbash.com"
2562 | },
2563 | {
2564 | "name": "Bernhard Schussek",
2565 | "email": "bschussek@2bepublished.at"
2566 | },
2567 | {
2568 | "name": "Sebastian Bergmann",
2569 | "email": "sebastian@phpunit.de"
2570 | }
2571 | ],
2572 | "description": "Provides the functionality to compare PHP values for equality",
2573 | "homepage": "http://www.github.com/sebastianbergmann/comparator",
2574 | "keywords": [
2575 | "comparator",
2576 | "compare",
2577 | "equality"
2578 | ],
2579 | "time": "2017-03-07 10:34:43"
2580 | },
2581 | {
2582 | "name": "sebastian/diff",
2583 | "version": "1.4.x-dev",
2584 | "source": {
2585 | "type": "git",
2586 | "url": "https://github.com/sebastianbergmann/diff.git",
2587 | "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
2588 | },
2589 | "dist": {
2590 | "type": "zip",
2591 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
2592 | "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
2593 | "shasum": ""
2594 | },
2595 | "require": {
2596 | "php": "^5.3.3 || ^7.0"
2597 | },
2598 | "require-dev": {
2599 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
2600 | },
2601 | "type": "library",
2602 | "extra": {
2603 | "branch-alias": {
2604 | "dev-master": "1.4-dev"
2605 | }
2606 | },
2607 | "autoload": {
2608 | "classmap": [
2609 | "src/"
2610 | ]
2611 | },
2612 | "notification-url": "https://packagist.org/downloads/",
2613 | "license": [
2614 | "BSD-3-Clause"
2615 | ],
2616 | "authors": [
2617 | {
2618 | "name": "Kore Nordmann",
2619 | "email": "mail@kore-nordmann.de"
2620 | },
2621 | {
2622 | "name": "Sebastian Bergmann",
2623 | "email": "sebastian@phpunit.de"
2624 | }
2625 | ],
2626 | "description": "Diff implementation",
2627 | "homepage": "https://github.com/sebastianbergmann/diff",
2628 | "keywords": [
2629 | "diff"
2630 | ],
2631 | "time": "2017-05-22 07:24:03"
2632 | },
2633 | {
2634 | "name": "sebastian/environment",
2635 | "version": "2.0.x-dev",
2636 | "source": {
2637 | "type": "git",
2638 | "url": "https://github.com/sebastianbergmann/environment.git",
2639 | "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac"
2640 | },
2641 | "dist": {
2642 | "type": "zip",
2643 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
2644 | "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
2645 | "shasum": ""
2646 | },
2647 | "require": {
2648 | "php": "^5.6 || ^7.0"
2649 | },
2650 | "require-dev": {
2651 | "phpunit/phpunit": "^5.0"
2652 | },
2653 | "type": "library",
2654 | "extra": {
2655 | "branch-alias": {
2656 | "dev-master": "2.0.x-dev"
2657 | }
2658 | },
2659 | "autoload": {
2660 | "classmap": [
2661 | "src/"
2662 | ]
2663 | },
2664 | "notification-url": "https://packagist.org/downloads/",
2665 | "license": [
2666 | "BSD-3-Clause"
2667 | ],
2668 | "authors": [
2669 | {
2670 | "name": "Sebastian Bergmann",
2671 | "email": "sebastian@phpunit.de"
2672 | }
2673 | ],
2674 | "description": "Provides functionality to handle HHVM/PHP environments",
2675 | "homepage": "http://www.github.com/sebastianbergmann/environment",
2676 | "keywords": [
2677 | "Xdebug",
2678 | "environment",
2679 | "hhvm"
2680 | ],
2681 | "time": "2016-11-26 07:53:53"
2682 | },
2683 | {
2684 | "name": "sebastian/exporter",
2685 | "version": "2.0.x-dev",
2686 | "source": {
2687 | "type": "git",
2688 | "url": "https://github.com/sebastianbergmann/exporter.git",
2689 | "reference": "5e8e30670c3f36481e75211dbbcfd029a41ebf07"
2690 | },
2691 | "dist": {
2692 | "type": "zip",
2693 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/5e8e30670c3f36481e75211dbbcfd029a41ebf07",
2694 | "reference": "5e8e30670c3f36481e75211dbbcfd029a41ebf07",
2695 | "shasum": ""
2696 | },
2697 | "require": {
2698 | "php": "^5.3.3 || ^7.0",
2699 | "sebastian/recursion-context": "^2.0"
2700 | },
2701 | "require-dev": {
2702 | "ext-mbstring": "*",
2703 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
2704 | },
2705 | "type": "library",
2706 | "extra": {
2707 | "branch-alias": {
2708 | "dev-master": "2.0.x-dev"
2709 | }
2710 | },
2711 | "autoload": {
2712 | "classmap": [
2713 | "src/"
2714 | ]
2715 | },
2716 | "notification-url": "https://packagist.org/downloads/",
2717 | "license": [
2718 | "BSD-3-Clause"
2719 | ],
2720 | "authors": [
2721 | {
2722 | "name": "Jeff Welch",
2723 | "email": "whatthejeff@gmail.com"
2724 | },
2725 | {
2726 | "name": "Volker Dusch",
2727 | "email": "github@wallbash.com"
2728 | },
2729 | {
2730 | "name": "Bernhard Schussek",
2731 | "email": "bschussek@2bepublished.at"
2732 | },
2733 | {
2734 | "name": "Sebastian Bergmann",
2735 | "email": "sebastian@phpunit.de"
2736 | },
2737 | {
2738 | "name": "Adam Harvey",
2739 | "email": "aharvey@php.net"
2740 | }
2741 | ],
2742 | "description": "Provides the functionality to export PHP variables for visualization",
2743 | "homepage": "http://www.github.com/sebastianbergmann/exporter",
2744 | "keywords": [
2745 | "export",
2746 | "exporter"
2747 | ],
2748 | "time": "2017-03-07 10:36:49"
2749 | },
2750 | {
2751 | "name": "sebastian/global-state",
2752 | "version": "1.1.x-dev",
2753 | "source": {
2754 | "type": "git",
2755 | "url": "https://github.com/sebastianbergmann/global-state.git",
2756 | "reference": "cea85a84b00f2795341ebbbca4fa396347f2494e"
2757 | },
2758 | "dist": {
2759 | "type": "zip",
2760 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/cea85a84b00f2795341ebbbca4fa396347f2494e",
2761 | "reference": "cea85a84b00f2795341ebbbca4fa396347f2494e",
2762 | "shasum": ""
2763 | },
2764 | "require": {
2765 | "php": ">=5.3.3"
2766 | },
2767 | "require-dev": {
2768 | "phpunit/phpunit": "~4.2|~5.0"
2769 | },
2770 | "suggest": {
2771 | "ext-uopz": "*"
2772 | },
2773 | "type": "library",
2774 | "extra": {
2775 | "branch-alias": {
2776 | "dev-master": "1.0-dev"
2777 | }
2778 | },
2779 | "autoload": {
2780 | "classmap": [
2781 | "src/"
2782 | ]
2783 | },
2784 | "notification-url": "https://packagist.org/downloads/",
2785 | "license": [
2786 | "BSD-3-Clause"
2787 | ],
2788 | "authors": [
2789 | {
2790 | "name": "Sebastian Bergmann",
2791 | "email": "sebastian@phpunit.de"
2792 | }
2793 | ],
2794 | "description": "Snapshotting of global state",
2795 | "homepage": "http://www.github.com/sebastianbergmann/global-state",
2796 | "keywords": [
2797 | "global state"
2798 | ],
2799 | "time": "2017-02-23 14:11:06"
2800 | },
2801 | {
2802 | "name": "sebastian/object-enumerator",
2803 | "version": "2.0.x-dev",
2804 | "source": {
2805 | "type": "git",
2806 | "url": "https://github.com/sebastianbergmann/object-enumerator.git",
2807 | "reference": "c956fe7a68318639f694fc6bba0c89b7cdf1b08c"
2808 | },
2809 | "dist": {
2810 | "type": "zip",
2811 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/c956fe7a68318639f694fc6bba0c89b7cdf1b08c",
2812 | "reference": "c956fe7a68318639f694fc6bba0c89b7cdf1b08c",
2813 | "shasum": ""
2814 | },
2815 | "require": {
2816 | "php": "^5.6 || ^7.0",
2817 | "sebastian/recursion-context": "^2.0"
2818 | },
2819 | "require-dev": {
2820 | "phpunit/phpunit": "^5.7"
2821 | },
2822 | "type": "library",
2823 | "extra": {
2824 | "branch-alias": {
2825 | "dev-master": "2.0.x-dev"
2826 | }
2827 | },
2828 | "autoload": {
2829 | "classmap": [
2830 | "src/"
2831 | ]
2832 | },
2833 | "notification-url": "https://packagist.org/downloads/",
2834 | "license": [
2835 | "BSD-3-Clause"
2836 | ],
2837 | "authors": [
2838 | {
2839 | "name": "Sebastian Bergmann",
2840 | "email": "sebastian@phpunit.de"
2841 | }
2842 | ],
2843 | "description": "Traverses array structures and object graphs to enumerate all referenced objects",
2844 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
2845 | "time": "2017-03-07 10:37:45"
2846 | },
2847 | {
2848 | "name": "sebastian/recursion-context",
2849 | "version": "2.0.x-dev",
2850 | "source": {
2851 | "type": "git",
2852 | "url": "https://github.com/sebastianbergmann/recursion-context.git",
2853 | "reference": "7e4d7c56f6e65d215f71ad913a5256e5439aca1c"
2854 | },
2855 | "dist": {
2856 | "type": "zip",
2857 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/7e4d7c56f6e65d215f71ad913a5256e5439aca1c",
2858 | "reference": "7e4d7c56f6e65d215f71ad913a5256e5439aca1c",
2859 | "shasum": ""
2860 | },
2861 | "require": {
2862 | "php": ">=5.3.3"
2863 | },
2864 | "require-dev": {
2865 | "phpunit/phpunit": "~4.4"
2866 | },
2867 | "type": "library",
2868 | "extra": {
2869 | "branch-alias": {
2870 | "dev-master": "2.0.x-dev"
2871 | }
2872 | },
2873 | "autoload": {
2874 | "classmap": [
2875 | "src/"
2876 | ]
2877 | },
2878 | "notification-url": "https://packagist.org/downloads/",
2879 | "license": [
2880 | "BSD-3-Clause"
2881 | ],
2882 | "authors": [
2883 | {
2884 | "name": "Jeff Welch",
2885 | "email": "whatthejeff@gmail.com"
2886 | },
2887 | {
2888 | "name": "Sebastian Bergmann",
2889 | "email": "sebastian@phpunit.de"
2890 | },
2891 | {
2892 | "name": "Adam Harvey",
2893 | "email": "aharvey@php.net"
2894 | }
2895 | ],
2896 | "description": "Provides functionality to recursively process PHP variables",
2897 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
2898 | "time": "2017-03-08 08:21:15"
2899 | },
2900 | {
2901 | "name": "sebastian/resource-operations",
2902 | "version": "dev-master",
2903 | "source": {
2904 | "type": "git",
2905 | "url": "https://github.com/sebastianbergmann/resource-operations.git",
2906 | "reference": "fadc83f7c41fb2924e542635fea47ae546816ece"
2907 | },
2908 | "dist": {
2909 | "type": "zip",
2910 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/fadc83f7c41fb2924e542635fea47ae546816ece",
2911 | "reference": "fadc83f7c41fb2924e542635fea47ae546816ece",
2912 | "shasum": ""
2913 | },
2914 | "require": {
2915 | "php": ">=5.6.0"
2916 | },
2917 | "type": "library",
2918 | "extra": {
2919 | "branch-alias": {
2920 | "dev-master": "1.0.x-dev"
2921 | }
2922 | },
2923 | "autoload": {
2924 | "classmap": [
2925 | "src/"
2926 | ]
2927 | },
2928 | "notification-url": "https://packagist.org/downloads/",
2929 | "license": [
2930 | "BSD-3-Clause"
2931 | ],
2932 | "authors": [
2933 | {
2934 | "name": "Sebastian Bergmann",
2935 | "email": "sebastian@phpunit.de"
2936 | }
2937 | ],
2938 | "description": "Provides a list of PHP built-in functions that operate on resources",
2939 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
2940 | "time": "2016-10-03 07:43:09"
2941 | },
2942 | {
2943 | "name": "sebastian/version",
2944 | "version": "dev-master",
2945 | "source": {
2946 | "type": "git",
2947 | "url": "https://github.com/sebastianbergmann/version.git",
2948 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
2949 | },
2950 | "dist": {
2951 | "type": "zip",
2952 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
2953 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
2954 | "shasum": ""
2955 | },
2956 | "require": {
2957 | "php": ">=5.6"
2958 | },
2959 | "type": "library",
2960 | "extra": {
2961 | "branch-alias": {
2962 | "dev-master": "2.0.x-dev"
2963 | }
2964 | },
2965 | "autoload": {
2966 | "classmap": [
2967 | "src/"
2968 | ]
2969 | },
2970 | "notification-url": "https://packagist.org/downloads/",
2971 | "license": [
2972 | "BSD-3-Clause"
2973 | ],
2974 | "authors": [
2975 | {
2976 | "name": "Sebastian Bergmann",
2977 | "email": "sebastian@phpunit.de",
2978 | "role": "lead"
2979 | }
2980 | ],
2981 | "description": "Library that helps with managing the version number of Git-hosted PHP projects",
2982 | "homepage": "https://github.com/sebastianbergmann/version",
2983 | "time": "2016-10-03 07:35:21"
2984 | },
2985 | {
2986 | "name": "sensiolabs/behat-page-object-extension",
2987 | "version": "v2.1.0",
2988 | "source": {
2989 | "type": "git",
2990 | "url": "https://github.com/sensiolabs/BehatPageObjectExtension.git",
2991 | "reference": "bd2a34221ba65ea8c86d8e693992d718de03dbae"
2992 | },
2993 | "dist": {
2994 | "type": "zip",
2995 | "url": "https://api.github.com/repos/sensiolabs/BehatPageObjectExtension/zipball/bd2a34221ba65ea8c86d8e693992d718de03dbae",
2996 | "reference": "bd2a34221ba65ea8c86d8e693992d718de03dbae",
2997 | "shasum": ""
2998 | },
2999 | "require": {
3000 | "behat/behat": "^3.0.6",
3001 | "behat/mink": "^1.6",
3002 | "behat/mink-extension": "^2.0",
3003 | "ocramius/proxy-manager": "^1.0||^2.0",
3004 | "php": ">=5.3.0"
3005 | },
3006 | "require-dev": {
3007 | "behat/mink-goutte-driver": "^1.0",
3008 | "bossa/phpspec2-expect": "^1.0.3||^2.0",
3009 | "fabpot/goutte": "^1.0.4||^2.0||^3.0",
3010 | "phpspec/phpspec": "^2.5||^3.0",
3011 | "symfony/filesystem": "^2.8||^3.0",
3012 | "symfony/process": "^2.8||^3.0",
3013 | "symfony/yaml": "^2.8||^3.0"
3014 | },
3015 | "suggest": {
3016 | "bossa/phpspec2-expect": "Allows to use PHPSpec2 matchers in Behat context files"
3017 | },
3018 | "type": "library",
3019 | "extra": {
3020 | "branch-alias": {
3021 | "dev-master": "2.0-dev"
3022 | }
3023 | },
3024 | "autoload": {
3025 | "psr-0": {
3026 | "SensioLabs\\Behat\\PageObjectExtension\\": "src/"
3027 | }
3028 | },
3029 | "notification-url": "https://packagist.org/downloads/",
3030 | "license": [
3031 | "MIT"
3032 | ],
3033 | "authors": [
3034 | {
3035 | "name": "Marcello Duarte",
3036 | "email": "mduarte@inviqa.com"
3037 | },
3038 | {
3039 | "name": "Jakub Zalas",
3040 | "email": "jakub@zalas.pl"
3041 | }
3042 | ],
3043 | "description": "Page object extension for Behat",
3044 | "homepage": "https://github.com/sensiolabs/BehatPageObjectExtension",
3045 | "keywords": [
3046 | "BDD",
3047 | "Behat",
3048 | "page"
3049 | ],
3050 | "time": "2017-05-22T14:16:06+00:00"
3051 | },
3052 | {
3053 | "name": "symfony/browser-kit",
3054 | "version": "3.4.x-dev",
3055 | "source": {
3056 | "type": "git",
3057 | "url": "https://github.com/symfony/browser-kit.git",
3058 | "reference": "7292a66997c5f456e02141451f11e5135e80482c"
3059 | },
3060 | "dist": {
3061 | "type": "zip",
3062 | "url": "https://api.github.com/repos/symfony/browser-kit/zipball/7292a66997c5f456e02141451f11e5135e80482c",
3063 | "reference": "7292a66997c5f456e02141451f11e5135e80482c",
3064 | "shasum": ""
3065 | },
3066 | "require": {
3067 | "php": ">=5.5.9",
3068 | "symfony/dom-crawler": "~2.8|~3.0|~4.0"
3069 | },
3070 | "require-dev": {
3071 | "symfony/css-selector": "~2.8|~3.0|~4.0",
3072 | "symfony/process": "~2.8|~3.0|~4.0"
3073 | },
3074 | "suggest": {
3075 | "symfony/process": ""
3076 | },
3077 | "type": "library",
3078 | "extra": {
3079 | "branch-alias": {
3080 | "dev-master": "3.4-dev"
3081 | }
3082 | },
3083 | "autoload": {
3084 | "psr-4": {
3085 | "Symfony\\Component\\BrowserKit\\": ""
3086 | },
3087 | "exclude-from-classmap": [
3088 | "/Tests/"
3089 | ]
3090 | },
3091 | "notification-url": "https://packagist.org/downloads/",
3092 | "license": [
3093 | "MIT"
3094 | ],
3095 | "authors": [
3096 | {
3097 | "name": "Fabien Potencier",
3098 | "email": "fabien@symfony.com"
3099 | },
3100 | {
3101 | "name": "Symfony Community",
3102 | "homepage": "https://symfony.com/contributors"
3103 | }
3104 | ],
3105 | "description": "Symfony BrowserKit Component",
3106 | "homepage": "https://symfony.com",
3107 | "time": "2017-05-24 09:02:43"
3108 | },
3109 | {
3110 | "name": "symfony/class-loader",
3111 | "version": "2.8.x-dev",
3112 | "source": {
3113 | "type": "git",
3114 | "url": "https://github.com/symfony/class-loader.git",
3115 | "reference": "48b96f2fa9bf394cb428aced8efb28709ab54cfc"
3116 | },
3117 | "dist": {
3118 | "type": "zip",
3119 | "url": "https://api.github.com/repos/symfony/class-loader/zipball/48b96f2fa9bf394cb428aced8efb28709ab54cfc",
3120 | "reference": "48b96f2fa9bf394cb428aced8efb28709ab54cfc",
3121 | "shasum": ""
3122 | },
3123 | "require": {
3124 | "php": ">=5.3.9",
3125 | "symfony/polyfill-apcu": "~1.1"
3126 | },
3127 | "require-dev": {
3128 | "symfony/finder": "^2.0.5|~3.0.0"
3129 | },
3130 | "type": "library",
3131 | "extra": {
3132 | "branch-alias": {
3133 | "dev-master": "2.8-dev"
3134 | }
3135 | },
3136 | "autoload": {
3137 | "psr-4": {
3138 | "Symfony\\Component\\ClassLoader\\": ""
3139 | },
3140 | "exclude-from-classmap": [
3141 | "/Tests/"
3142 | ]
3143 | },
3144 | "notification-url": "https://packagist.org/downloads/",
3145 | "license": [
3146 | "MIT"
3147 | ],
3148 | "authors": [
3149 | {
3150 | "name": "Fabien Potencier",
3151 | "email": "fabien@symfony.com"
3152 | },
3153 | {
3154 | "name": "Symfony Community",
3155 | "homepage": "https://symfony.com/contributors"
3156 | }
3157 | ],
3158 | "description": "Symfony ClassLoader Component",
3159 | "homepage": "https://symfony.com",
3160 | "time": "2017-06-01 20:52:29"
3161 | },
3162 | {
3163 | "name": "symfony/config",
3164 | "version": "2.8.x-dev",
3165 | "source": {
3166 | "type": "git",
3167 | "url": "https://github.com/symfony/config.git",
3168 | "reference": "0b8541d18507d10204a08384640ff6df3c739ebe"
3169 | },
3170 | "dist": {
3171 | "type": "zip",
3172 | "url": "https://api.github.com/repos/symfony/config/zipball/0b8541d18507d10204a08384640ff6df3c739ebe",
3173 | "reference": "0b8541d18507d10204a08384640ff6df3c739ebe",
3174 | "shasum": ""
3175 | },
3176 | "require": {
3177 | "php": ">=5.3.9",
3178 | "symfony/filesystem": "~2.3|~3.0.0"
3179 | },
3180 | "require-dev": {
3181 | "symfony/yaml": "~2.7|~3.0.0"
3182 | },
3183 | "suggest": {
3184 | "symfony/yaml": "To use the yaml reference dumper"
3185 | },
3186 | "type": "library",
3187 | "extra": {
3188 | "branch-alias": {
3189 | "dev-master": "2.8-dev"
3190 | }
3191 | },
3192 | "autoload": {
3193 | "psr-4": {
3194 | "Symfony\\Component\\Config\\": ""
3195 | },
3196 | "exclude-from-classmap": [
3197 | "/Tests/"
3198 | ]
3199 | },
3200 | "notification-url": "https://packagist.org/downloads/",
3201 | "license": [
3202 | "MIT"
3203 | ],
3204 | "authors": [
3205 | {
3206 | "name": "Fabien Potencier",
3207 | "email": "fabien@symfony.com"
3208 | },
3209 | {
3210 | "name": "Symfony Community",
3211 | "homepage": "https://symfony.com/contributors"
3212 | }
3213 | ],
3214 | "description": "Symfony Config Component",
3215 | "homepage": "https://symfony.com",
3216 | "time": "2017-04-12 14:07:15"
3217 | },
3218 | {
3219 | "name": "symfony/console",
3220 | "version": "2.8.x-dev",
3221 | "source": {
3222 | "type": "git",
3223 | "url": "https://github.com/symfony/console.git",
3224 | "reference": "3ef6ef64abecd566d551d9e7f6393ac6e93b2462"
3225 | },
3226 | "dist": {
3227 | "type": "zip",
3228 | "url": "https://api.github.com/repos/symfony/console/zipball/3ef6ef64abecd566d551d9e7f6393ac6e93b2462",
3229 | "reference": "3ef6ef64abecd566d551d9e7f6393ac6e93b2462",
3230 | "shasum": ""
3231 | },
3232 | "require": {
3233 | "php": ">=5.3.9",
3234 | "symfony/debug": "^2.7.2|~3.0.0",
3235 | "symfony/polyfill-mbstring": "~1.0"
3236 | },
3237 | "require-dev": {
3238 | "psr/log": "~1.0",
3239 | "symfony/event-dispatcher": "~2.1|~3.0.0",
3240 | "symfony/process": "~2.1|~3.0.0"
3241 | },
3242 | "suggest": {
3243 | "psr/log": "For using the console logger",
3244 | "symfony/event-dispatcher": "",
3245 | "symfony/process": ""
3246 | },
3247 | "type": "library",
3248 | "extra": {
3249 | "branch-alias": {
3250 | "dev-master": "2.8-dev"
3251 | }
3252 | },
3253 | "autoload": {
3254 | "psr-4": {
3255 | "Symfony\\Component\\Console\\": ""
3256 | },
3257 | "exclude-from-classmap": [
3258 | "/Tests/"
3259 | ]
3260 | },
3261 | "notification-url": "https://packagist.org/downloads/",
3262 | "license": [
3263 | "MIT"
3264 | ],
3265 | "authors": [
3266 | {
3267 | "name": "Fabien Potencier",
3268 | "email": "fabien@symfony.com"
3269 | },
3270 | {
3271 | "name": "Symfony Community",
3272 | "homepage": "https://symfony.com/contributors"
3273 | }
3274 | ],
3275 | "description": "Symfony Console Component",
3276 | "homepage": "https://symfony.com",
3277 | "time": "2017-06-02 14:36:56"
3278 | },
3279 | {
3280 | "name": "symfony/css-selector",
3281 | "version": "3.4.x-dev",
3282 | "source": {
3283 | "type": "git",
3284 | "url": "https://github.com/symfony/css-selector.git",
3285 | "reference": "9920f285889b075d249717509e073c3f4fbf9718"
3286 | },
3287 | "dist": {
3288 | "type": "zip",
3289 | "url": "https://api.github.com/repos/symfony/css-selector/zipball/9920f285889b075d249717509e073c3f4fbf9718",
3290 | "reference": "9920f285889b075d249717509e073c3f4fbf9718",
3291 | "shasum": ""
3292 | },
3293 | "require": {
3294 | "php": ">=5.5.9"
3295 | },
3296 | "type": "library",
3297 | "extra": {
3298 | "branch-alias": {
3299 | "dev-master": "3.4-dev"
3300 | }
3301 | },
3302 | "autoload": {
3303 | "psr-4": {
3304 | "Symfony\\Component\\CssSelector\\": ""
3305 | },
3306 | "exclude-from-classmap": [
3307 | "/Tests/"
3308 | ]
3309 | },
3310 | "notification-url": "https://packagist.org/downloads/",
3311 | "license": [
3312 | "MIT"
3313 | ],
3314 | "authors": [
3315 | {
3316 | "name": "Jean-François Simon",
3317 | "email": "jeanfrancois.simon@sensiolabs.com"
3318 | },
3319 | {
3320 | "name": "Fabien Potencier",
3321 | "email": "fabien@symfony.com"
3322 | },
3323 | {
3324 | "name": "Symfony Community",
3325 | "homepage": "https://symfony.com/contributors"
3326 | }
3327 | ],
3328 | "description": "Symfony CssSelector Component",
3329 | "homepage": "https://symfony.com",
3330 | "time": "2017-05-17 16:21:40"
3331 | },
3332 | {
3333 | "name": "symfony/debug",
3334 | "version": "3.0.x-dev",
3335 | "source": {
3336 | "type": "git",
3337 | "url": "https://github.com/symfony/debug.git",
3338 | "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a"
3339 | },
3340 | "dist": {
3341 | "type": "zip",
3342 | "url": "https://api.github.com/repos/symfony/debug/zipball/697c527acd9ea1b2d3efac34d9806bf255278b0a",
3343 | "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a",
3344 | "shasum": ""
3345 | },
3346 | "require": {
3347 | "php": ">=5.5.9",
3348 | "psr/log": "~1.0"
3349 | },
3350 | "conflict": {
3351 | "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
3352 | },
3353 | "require-dev": {
3354 | "symfony/class-loader": "~2.8|~3.0",
3355 | "symfony/http-kernel": "~2.8|~3.0"
3356 | },
3357 | "type": "library",
3358 | "extra": {
3359 | "branch-alias": {
3360 | "dev-master": "3.0-dev"
3361 | }
3362 | },
3363 | "autoload": {
3364 | "psr-4": {
3365 | "Symfony\\Component\\Debug\\": ""
3366 | },
3367 | "exclude-from-classmap": [
3368 | "/Tests/"
3369 | ]
3370 | },
3371 | "notification-url": "https://packagist.org/downloads/",
3372 | "license": [
3373 | "MIT"
3374 | ],
3375 | "authors": [
3376 | {
3377 | "name": "Fabien Potencier",
3378 | "email": "fabien@symfony.com"
3379 | },
3380 | {
3381 | "name": "Symfony Community",
3382 | "homepage": "https://symfony.com/contributors"
3383 | }
3384 | ],
3385 | "description": "Symfony Debug Component",
3386 | "homepage": "https://symfony.com",
3387 | "time": "2016-07-30 07:22:48"
3388 | },
3389 | {
3390 | "name": "symfony/dependency-injection",
3391 | "version": "2.8.x-dev",
3392 | "source": {
3393 | "type": "git",
3394 | "url": "https://github.com/symfony/dependency-injection.git",
3395 | "reference": "66d2e252262749e0f3c735c183e4562c72ffb8c8"
3396 | },
3397 | "dist": {
3398 | "type": "zip",
3399 | "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/66d2e252262749e0f3c735c183e4562c72ffb8c8",
3400 | "reference": "66d2e252262749e0f3c735c183e4562c72ffb8c8",
3401 | "shasum": ""
3402 | },
3403 | "require": {
3404 | "php": ">=5.3.9"
3405 | },
3406 | "conflict": {
3407 | "symfony/expression-language": "<2.6"
3408 | },
3409 | "require-dev": {
3410 | "symfony/config": "~2.2|~3.0.0",
3411 | "symfony/expression-language": "~2.6|~3.0.0",
3412 | "symfony/yaml": "~2.3.42|~2.7.14|~2.8.7|~3.0.7"
3413 | },
3414 | "suggest": {
3415 | "symfony/config": "",
3416 | "symfony/expression-language": "For using expressions in service container configuration",
3417 | "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
3418 | "symfony/yaml": ""
3419 | },
3420 | "type": "library",
3421 | "extra": {
3422 | "branch-alias": {
3423 | "dev-master": "2.8-dev"
3424 | }
3425 | },
3426 | "autoload": {
3427 | "psr-4": {
3428 | "Symfony\\Component\\DependencyInjection\\": ""
3429 | },
3430 | "exclude-from-classmap": [
3431 | "/Tests/"
3432 | ]
3433 | },
3434 | "notification-url": "https://packagist.org/downloads/",
3435 | "license": [
3436 | "MIT"
3437 | ],
3438 | "authors": [
3439 | {
3440 | "name": "Fabien Potencier",
3441 | "email": "fabien@symfony.com"
3442 | },
3443 | {
3444 | "name": "Symfony Community",
3445 | "homepage": "https://symfony.com/contributors"
3446 | }
3447 | ],
3448 | "description": "Symfony DependencyInjection Component",
3449 | "homepage": "https://symfony.com",
3450 | "time": "2017-06-14 00:55:24"
3451 | },
3452 | {
3453 | "name": "symfony/dom-crawler",
3454 | "version": "3.4.x-dev",
3455 | "source": {
3456 | "type": "git",
3457 | "url": "https://github.com/symfony/dom-crawler.git",
3458 | "reference": "efc337921960808c8cf681b212bfaf08b2acf97e"
3459 | },
3460 | "dist": {
3461 | "type": "zip",
3462 | "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/efc337921960808c8cf681b212bfaf08b2acf97e",
3463 | "reference": "efc337921960808c8cf681b212bfaf08b2acf97e",
3464 | "shasum": ""
3465 | },
3466 | "require": {
3467 | "php": ">=5.5.9",
3468 | "symfony/polyfill-mbstring": "~1.0"
3469 | },
3470 | "require-dev": {
3471 | "symfony/css-selector": "~2.8|~3.0|~4.0"
3472 | },
3473 | "suggest": {
3474 | "symfony/css-selector": ""
3475 | },
3476 | "type": "library",
3477 | "extra": {
3478 | "branch-alias": {
3479 | "dev-master": "3.4-dev"
3480 | }
3481 | },
3482 | "autoload": {
3483 | "psr-4": {
3484 | "Symfony\\Component\\DomCrawler\\": ""
3485 | },
3486 | "exclude-from-classmap": [
3487 | "/Tests/"
3488 | ]
3489 | },
3490 | "notification-url": "https://packagist.org/downloads/",
3491 | "license": [
3492 | "MIT"
3493 | ],
3494 | "authors": [
3495 | {
3496 | "name": "Fabien Potencier",
3497 | "email": "fabien@symfony.com"
3498 | },
3499 | {
3500 | "name": "Symfony Community",
3501 | "homepage": "https://symfony.com/contributors"
3502 | }
3503 | ],
3504 | "description": "Symfony DomCrawler Component",
3505 | "homepage": "https://symfony.com",
3506 | "time": "2017-05-25 23:27:00"
3507 | },
3508 | {
3509 | "name": "symfony/event-dispatcher",
3510 | "version": "2.8.x-dev",
3511 | "source": {
3512 | "type": "git",
3513 | "url": "https://github.com/symfony/event-dispatcher.git",
3514 | "reference": "1377400fd641d7d1935981546aaef780ecd5bf6d"
3515 | },
3516 | "dist": {
3517 | "type": "zip",
3518 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1377400fd641d7d1935981546aaef780ecd5bf6d",
3519 | "reference": "1377400fd641d7d1935981546aaef780ecd5bf6d",
3520 | "shasum": ""
3521 | },
3522 | "require": {
3523 | "php": ">=5.3.9"
3524 | },
3525 | "require-dev": {
3526 | "psr/log": "~1.0",
3527 | "symfony/config": "^2.0.5|~3.0.0",
3528 | "symfony/dependency-injection": "~2.6|~3.0.0",
3529 | "symfony/expression-language": "~2.6|~3.0.0",
3530 | "symfony/stopwatch": "~2.3|~3.0.0"
3531 | },
3532 | "suggest": {
3533 | "symfony/dependency-injection": "",
3534 | "symfony/http-kernel": ""
3535 | },
3536 | "type": "library",
3537 | "extra": {
3538 | "branch-alias": {
3539 | "dev-master": "2.8-dev"
3540 | }
3541 | },
3542 | "autoload": {
3543 | "psr-4": {
3544 | "Symfony\\Component\\EventDispatcher\\": ""
3545 | },
3546 | "exclude-from-classmap": [
3547 | "/Tests/"
3548 | ]
3549 | },
3550 | "notification-url": "https://packagist.org/downloads/",
3551 | "license": [
3552 | "MIT"
3553 | ],
3554 | "authors": [
3555 | {
3556 | "name": "Fabien Potencier",
3557 | "email": "fabien@symfony.com"
3558 | },
3559 | {
3560 | "name": "Symfony Community",
3561 | "homepage": "https://symfony.com/contributors"
3562 | }
3563 | ],
3564 | "description": "Symfony EventDispatcher Component",
3565 | "homepage": "https://symfony.com",
3566 | "time": "2017-06-02 07:47:27"
3567 | },
3568 | {
3569 | "name": "symfony/filesystem",
3570 | "version": "3.0.x-dev",
3571 | "source": {
3572 | "type": "git",
3573 | "url": "https://github.com/symfony/filesystem.git",
3574 | "reference": "b2da5009d9bacbd91d83486aa1f44c793a8c380d"
3575 | },
3576 | "dist": {
3577 | "type": "zip",
3578 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/b2da5009d9bacbd91d83486aa1f44c793a8c380d",
3579 | "reference": "b2da5009d9bacbd91d83486aa1f44c793a8c380d",
3580 | "shasum": ""
3581 | },
3582 | "require": {
3583 | "php": ">=5.5.9"
3584 | },
3585 | "type": "library",
3586 | "extra": {
3587 | "branch-alias": {
3588 | "dev-master": "3.0-dev"
3589 | }
3590 | },
3591 | "autoload": {
3592 | "psr-4": {
3593 | "Symfony\\Component\\Filesystem\\": ""
3594 | },
3595 | "exclude-from-classmap": [
3596 | "/Tests/"
3597 | ]
3598 | },
3599 | "notification-url": "https://packagist.org/downloads/",
3600 | "license": [
3601 | "MIT"
3602 | ],
3603 | "authors": [
3604 | {
3605 | "name": "Fabien Potencier",
3606 | "email": "fabien@symfony.com"
3607 | },
3608 | {
3609 | "name": "Symfony Community",
3610 | "homepage": "https://symfony.com/contributors"
3611 | }
3612 | ],
3613 | "description": "Symfony Filesystem Component",
3614 | "homepage": "https://symfony.com",
3615 | "time": "2016-07-20 05:43:46"
3616 | },
3617 | {
3618 | "name": "symfony/finder",
3619 | "version": "3.4.x-dev",
3620 | "source": {
3621 | "type": "git",
3622 | "url": "https://github.com/symfony/finder.git",
3623 | "reference": "295fa37f13dbc4bba200680d2f4ae2c4a1f77709"
3624 | },
3625 | "dist": {
3626 | "type": "zip",
3627 | "url": "https://api.github.com/repos/symfony/finder/zipball/295fa37f13dbc4bba200680d2f4ae2c4a1f77709",
3628 | "reference": "295fa37f13dbc4bba200680d2f4ae2c4a1f77709",
3629 | "shasum": ""
3630 | },
3631 | "require": {
3632 | "php": ">=5.5.9"
3633 | },
3634 | "type": "library",
3635 | "extra": {
3636 | "branch-alias": {
3637 | "dev-master": "3.4-dev"
3638 | }
3639 | },
3640 | "autoload": {
3641 | "psr-4": {
3642 | "Symfony\\Component\\Finder\\": ""
3643 | },
3644 | "exclude-from-classmap": [
3645 | "/Tests/"
3646 | ]
3647 | },
3648 | "notification-url": "https://packagist.org/downloads/",
3649 | "license": [
3650 | "MIT"
3651 | ],
3652 | "authors": [
3653 | {
3654 | "name": "Fabien Potencier",
3655 | "email": "fabien@symfony.com"
3656 | },
3657 | {
3658 | "name": "Symfony Community",
3659 | "homepage": "https://symfony.com/contributors"
3660 | }
3661 | ],
3662 | "description": "Symfony Finder Component",
3663 | "homepage": "https://symfony.com",
3664 | "time": "2017-06-01 21:02:15"
3665 | },
3666 | {
3667 | "name": "symfony/polyfill-apcu",
3668 | "version": "dev-master",
3669 | "source": {
3670 | "type": "git",
3671 | "url": "https://github.com/symfony/polyfill-apcu.git",
3672 | "reference": "ddb6ce1ab412f6987099bbb72ab2f4354e545fec"
3673 | },
3674 | "dist": {
3675 | "type": "zip",
3676 | "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/ddb6ce1ab412f6987099bbb72ab2f4354e545fec",
3677 | "reference": "ddb6ce1ab412f6987099bbb72ab2f4354e545fec",
3678 | "shasum": ""
3679 | },
3680 | "require": {
3681 | "php": ">=5.3.3"
3682 | },
3683 | "type": "library",
3684 | "extra": {
3685 | "branch-alias": {
3686 | "dev-master": "1.5-dev"
3687 | }
3688 | },
3689 | "autoload": {
3690 | "files": [
3691 | "bootstrap.php"
3692 | ]
3693 | },
3694 | "notification-url": "https://packagist.org/downloads/",
3695 | "license": [
3696 | "MIT"
3697 | ],
3698 | "authors": [
3699 | {
3700 | "name": "Nicolas Grekas",
3701 | "email": "p@tchwork.com"
3702 | },
3703 | {
3704 | "name": "Symfony Community",
3705 | "homepage": "https://symfony.com/contributors"
3706 | }
3707 | ],
3708 | "description": "Symfony polyfill backporting apcu_* functions to lower PHP versions",
3709 | "homepage": "https://symfony.com",
3710 | "keywords": [
3711 | "apcu",
3712 | "compatibility",
3713 | "polyfill",
3714 | "portable",
3715 | "shim"
3716 | ],
3717 | "time": "2017-06-14 15:44:48"
3718 | },
3719 | {
3720 | "name": "symfony/polyfill-mbstring",
3721 | "version": "dev-master",
3722 | "source": {
3723 | "type": "git",
3724 | "url": "https://github.com/symfony/polyfill-mbstring.git",
3725 | "reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803"
3726 | },
3727 | "dist": {
3728 | "type": "zip",
3729 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7c8fae0ac1d216eb54349e6a8baa57d515fe8803",
3730 | "reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803",
3731 | "shasum": ""
3732 | },
3733 | "require": {
3734 | "php": ">=5.3.3"
3735 | },
3736 | "suggest": {
3737 | "ext-mbstring": "For best performance"
3738 | },
3739 | "type": "library",
3740 | "extra": {
3741 | "branch-alias": {
3742 | "dev-master": "1.5-dev"
3743 | }
3744 | },
3745 | "autoload": {
3746 | "psr-4": {
3747 | "Symfony\\Polyfill\\Mbstring\\": ""
3748 | },
3749 | "files": [
3750 | "bootstrap.php"
3751 | ]
3752 | },
3753 | "notification-url": "https://packagist.org/downloads/",
3754 | "license": [
3755 | "MIT"
3756 | ],
3757 | "authors": [
3758 | {
3759 | "name": "Nicolas Grekas",
3760 | "email": "p@tchwork.com"
3761 | },
3762 | {
3763 | "name": "Symfony Community",
3764 | "homepage": "https://symfony.com/contributors"
3765 | }
3766 | ],
3767 | "description": "Symfony polyfill for the Mbstring extension",
3768 | "homepage": "https://symfony.com",
3769 | "keywords": [
3770 | "compatibility",
3771 | "mbstring",
3772 | "polyfill",
3773 | "portable",
3774 | "shim"
3775 | ],
3776 | "time": "2017-06-14 15:44:48"
3777 | },
3778 | {
3779 | "name": "symfony/process",
3780 | "version": "3.4.x-dev",
3781 | "source": {
3782 | "type": "git",
3783 | "url": "https://github.com/symfony/process.git",
3784 | "reference": "201c3bd3f167804bdfba2bf6a3a26097978a854a"
3785 | },
3786 | "dist": {
3787 | "type": "zip",
3788 | "url": "https://api.github.com/repos/symfony/process/zipball/201c3bd3f167804bdfba2bf6a3a26097978a854a",
3789 | "reference": "201c3bd3f167804bdfba2bf6a3a26097978a854a",
3790 | "shasum": ""
3791 | },
3792 | "require": {
3793 | "php": ">=5.5.9"
3794 | },
3795 | "type": "library",
3796 | "extra": {
3797 | "branch-alias": {
3798 | "dev-master": "3.4-dev"
3799 | }
3800 | },
3801 | "autoload": {
3802 | "psr-4": {
3803 | "Symfony\\Component\\Process\\": ""
3804 | },
3805 | "exclude-from-classmap": [
3806 | "/Tests/"
3807 | ]
3808 | },
3809 | "notification-url": "https://packagist.org/downloads/",
3810 | "license": [
3811 | "MIT"
3812 | ],
3813 | "authors": [
3814 | {
3815 | "name": "Fabien Potencier",
3816 | "email": "fabien@symfony.com"
3817 | },
3818 | {
3819 | "name": "Symfony Community",
3820 | "homepage": "https://symfony.com/contributors"
3821 | }
3822 | ],
3823 | "description": "Symfony Process Component",
3824 | "homepage": "https://symfony.com",
3825 | "time": "2017-06-09 13:37:35"
3826 | },
3827 | {
3828 | "name": "symfony/translation",
3829 | "version": "2.8.x-dev",
3830 | "source": {
3831 | "type": "git",
3832 | "url": "https://github.com/symfony/translation.git",
3833 | "reference": "8ca77617d3a45276f7cabb07eeccc9859730af25"
3834 | },
3835 | "dist": {
3836 | "type": "zip",
3837 | "url": "https://api.github.com/repos/symfony/translation/zipball/8ca77617d3a45276f7cabb07eeccc9859730af25",
3838 | "reference": "8ca77617d3a45276f7cabb07eeccc9859730af25",
3839 | "shasum": ""
3840 | },
3841 | "require": {
3842 | "php": ">=5.3.9",
3843 | "symfony/polyfill-mbstring": "~1.0"
3844 | },
3845 | "conflict": {
3846 | "symfony/config": "<2.7"
3847 | },
3848 | "require-dev": {
3849 | "psr/log": "~1.0",
3850 | "symfony/config": "~2.8",
3851 | "symfony/intl": "~2.7.25|^2.8.18|~3.2.5",
3852 | "symfony/yaml": "~2.2|~3.0.0"
3853 | },
3854 | "suggest": {
3855 | "psr/log": "To use logging capability in translator",
3856 | "symfony/config": "",
3857 | "symfony/yaml": ""
3858 | },
3859 | "type": "library",
3860 | "extra": {
3861 | "branch-alias": {
3862 | "dev-master": "2.8-dev"
3863 | }
3864 | },
3865 | "autoload": {
3866 | "psr-4": {
3867 | "Symfony\\Component\\Translation\\": ""
3868 | },
3869 | "exclude-from-classmap": [
3870 | "/Tests/"
3871 | ]
3872 | },
3873 | "notification-url": "https://packagist.org/downloads/",
3874 | "license": [
3875 | "MIT"
3876 | ],
3877 | "authors": [
3878 | {
3879 | "name": "Fabien Potencier",
3880 | "email": "fabien@symfony.com"
3881 | },
3882 | {
3883 | "name": "Symfony Community",
3884 | "homepage": "https://symfony.com/contributors"
3885 | }
3886 | ],
3887 | "description": "Symfony Translation Component",
3888 | "homepage": "https://symfony.com",
3889 | "time": "2017-06-17 19:00:18"
3890 | },
3891 | {
3892 | "name": "symfony/yaml",
3893 | "version": "2.8.x-dev",
3894 | "source": {
3895 | "type": "git",
3896 | "url": "https://github.com/symfony/yaml.git",
3897 | "reference": "4c29dec8d489c4e37cf87ccd7166cd0b0e6a45c5"
3898 | },
3899 | "dist": {
3900 | "type": "zip",
3901 | "url": "https://api.github.com/repos/symfony/yaml/zipball/4c29dec8d489c4e37cf87ccd7166cd0b0e6a45c5",
3902 | "reference": "4c29dec8d489c4e37cf87ccd7166cd0b0e6a45c5",
3903 | "shasum": ""
3904 | },
3905 | "require": {
3906 | "php": ">=5.3.9"
3907 | },
3908 | "type": "library",
3909 | "extra": {
3910 | "branch-alias": {
3911 | "dev-master": "2.8-dev"
3912 | }
3913 | },
3914 | "autoload": {
3915 | "psr-4": {
3916 | "Symfony\\Component\\Yaml\\": ""
3917 | },
3918 | "exclude-from-classmap": [
3919 | "/Tests/"
3920 | ]
3921 | },
3922 | "notification-url": "https://packagist.org/downloads/",
3923 | "license": [
3924 | "MIT"
3925 | ],
3926 | "authors": [
3927 | {
3928 | "name": "Fabien Potencier",
3929 | "email": "fabien@symfony.com"
3930 | },
3931 | {
3932 | "name": "Symfony Community",
3933 | "homepage": "https://symfony.com/contributors"
3934 | }
3935 | ],
3936 | "description": "Symfony Yaml Component",
3937 | "homepage": "https://symfony.com",
3938 | "time": "2017-06-01 20:52:29"
3939 | },
3940 | {
3941 | "name": "twig/twig",
3942 | "version": "1.x-dev",
3943 | "source": {
3944 | "type": "git",
3945 | "url": "https://github.com/twigphp/Twig.git",
3946 | "reference": "8c9bb921ea35b1bc9b59fe99bdce2e8e1d076d45"
3947 | },
3948 | "dist": {
3949 | "type": "zip",
3950 | "url": "https://api.github.com/repos/twigphp/Twig/zipball/8c9bb921ea35b1bc9b59fe99bdce2e8e1d076d45",
3951 | "reference": "8c9bb921ea35b1bc9b59fe99bdce2e8e1d076d45",
3952 | "shasum": ""
3953 | },
3954 | "require": {
3955 | "php": ">=5.3.3"
3956 | },
3957 | "require-dev": {
3958 | "psr/container": "^1.0",
3959 | "symfony/debug": "~2.7",
3960 | "symfony/phpunit-bridge": "~3.3@dev"
3961 | },
3962 | "type": "library",
3963 | "extra": {
3964 | "branch-alias": {
3965 | "dev-master": "1.34-dev"
3966 | }
3967 | },
3968 | "autoload": {
3969 | "psr-0": {
3970 | "Twig_": "lib/"
3971 | },
3972 | "psr-4": {
3973 | "Twig\\": "src/"
3974 | }
3975 | },
3976 | "notification-url": "https://packagist.org/downloads/",
3977 | "license": [
3978 | "BSD-3-Clause"
3979 | ],
3980 | "authors": [
3981 | {
3982 | "name": "Fabien Potencier",
3983 | "email": "fabien@symfony.com",
3984 | "homepage": "http://fabien.potencier.org",
3985 | "role": "Lead Developer"
3986 | },
3987 | {
3988 | "name": "Armin Ronacher",
3989 | "email": "armin.ronacher@active-4.com",
3990 | "role": "Project Founder"
3991 | },
3992 | {
3993 | "name": "Twig Team",
3994 | "homepage": "http://twig.sensiolabs.org/contributors",
3995 | "role": "Contributors"
3996 | }
3997 | ],
3998 | "description": "Twig, the flexible, fast, and secure template language for PHP",
3999 | "homepage": "http://twig.sensiolabs.org",
4000 | "keywords": [
4001 | "templating"
4002 | ],
4003 | "time": "2017-06-16 13:42:12"
4004 | },
4005 | {
4006 | "name": "webmozart/assert",
4007 | "version": "dev-master",
4008 | "source": {
4009 | "type": "git",
4010 | "url": "https://github.com/webmozart/assert.git",
4011 | "reference": "4a8bf11547e139e77b651365113fc12850c43d9a"
4012 | },
4013 | "dist": {
4014 | "type": "zip",
4015 | "url": "https://api.github.com/repos/webmozart/assert/zipball/4a8bf11547e139e77b651365113fc12850c43d9a",
4016 | "reference": "4a8bf11547e139e77b651365113fc12850c43d9a",
4017 | "shasum": ""
4018 | },
4019 | "require": {
4020 | "php": "^5.3.3 || ^7.0"
4021 | },
4022 | "require-dev": {
4023 | "phpunit/phpunit": "^4.6",
4024 | "sebastian/version": "^1.0.1"
4025 | },
4026 | "type": "library",
4027 | "extra": {
4028 | "branch-alias": {
4029 | "dev-master": "1.3-dev"
4030 | }
4031 | },
4032 | "autoload": {
4033 | "psr-4": {
4034 | "Webmozart\\Assert\\": "src/"
4035 | }
4036 | },
4037 | "notification-url": "https://packagist.org/downloads/",
4038 | "license": [
4039 | "MIT"
4040 | ],
4041 | "authors": [
4042 | {
4043 | "name": "Bernhard Schussek",
4044 | "email": "bschussek@gmail.com"
4045 | }
4046 | ],
4047 | "description": "Assertions to validate method input/output with nice error messages.",
4048 | "keywords": [
4049 | "assert",
4050 | "check",
4051 | "validate"
4052 | ],
4053 | "time": "2016-11-23 20:04:41"
4054 | },
4055 | {
4056 | "name": "zendframework/zend-code",
4057 | "version": "2.6.3",
4058 | "source": {
4059 | "type": "git",
4060 | "url": "https://github.com/zendframework/zend-code.git",
4061 | "reference": "95033f061b083e16cdee60530ec260d7d628b887"
4062 | },
4063 | "dist": {
4064 | "type": "zip",
4065 | "url": "https://api.github.com/repos/zendframework/zend-code/zipball/95033f061b083e16cdee60530ec260d7d628b887",
4066 | "reference": "95033f061b083e16cdee60530ec260d7d628b887",
4067 | "shasum": ""
4068 | },
4069 | "require": {
4070 | "php": "^5.5 || 7.0.0 - 7.0.4 || ^7.0.6",
4071 | "zendframework/zend-eventmanager": "^2.6 || ^3.0"
4072 | },
4073 | "require-dev": {
4074 | "doctrine/annotations": "~1.0",
4075 | "fabpot/php-cs-fixer": "1.7.*",
4076 | "phpunit/phpunit": "^4.8.21",
4077 | "zendframework/zend-stdlib": "^2.7 || ^3.0"
4078 | },
4079 | "suggest": {
4080 | "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features",
4081 | "zendframework/zend-stdlib": "Zend\\Stdlib component"
4082 | },
4083 | "type": "library",
4084 | "extra": {
4085 | "branch-alias": {
4086 | "dev-master": "2.6-dev",
4087 | "dev-develop": "2.7-dev"
4088 | }
4089 | },
4090 | "autoload": {
4091 | "psr-4": {
4092 | "Zend\\Code\\": "src/"
4093 | }
4094 | },
4095 | "notification-url": "https://packagist.org/downloads/",
4096 | "license": [
4097 | "BSD-3-Clause"
4098 | ],
4099 | "description": "provides facilities to generate arbitrary code using an object oriented interface",
4100 | "homepage": "https://github.com/zendframework/zend-code",
4101 | "keywords": [
4102 | "code",
4103 | "zf2"
4104 | ],
4105 | "time": "2016-04-20T17:26:42+00:00"
4106 | },
4107 | {
4108 | "name": "zendframework/zend-eventmanager",
4109 | "version": "dev-develop",
4110 | "source": {
4111 | "type": "git",
4112 | "url": "https://github.com/zendframework/zend-eventmanager.git",
4113 | "reference": "42d2abcdfc56ee2005e9271ac7666d88db7b91b9"
4114 | },
4115 | "dist": {
4116 | "type": "zip",
4117 | "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/42d2abcdfc56ee2005e9271ac7666d88db7b91b9",
4118 | "reference": "42d2abcdfc56ee2005e9271ac7666d88db7b91b9",
4119 | "shasum": ""
4120 | },
4121 | "require": {
4122 | "php": "^5.6 || ^7.0"
4123 | },
4124 | "require-dev": {
4125 | "athletic/athletic": "^0.1",
4126 | "container-interop/container-interop": "^1.1.0",
4127 | "phpunit/phpunit": "^5.6",
4128 | "zendframework/zend-coding-standard": "~1.0.0",
4129 | "zendframework/zend-stdlib": "^2.7.3 || ^3.0"
4130 | },
4131 | "suggest": {
4132 | "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature",
4133 | "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature"
4134 | },
4135 | "type": "library",
4136 | "extra": {
4137 | "branch-alias": {
4138 | "dev-master": "3.1-dev",
4139 | "dev-develop": "3.2-dev"
4140 | }
4141 | },
4142 | "autoload": {
4143 | "psr-4": {
4144 | "Zend\\EventManager\\": "src/"
4145 | }
4146 | },
4147 | "notification-url": "https://packagist.org/downloads/",
4148 | "license": [
4149 | "BSD-3-Clause"
4150 | ],
4151 | "description": "Trigger and listen to events within a PHP application",
4152 | "homepage": "https://github.com/zendframework/zend-eventmanager",
4153 | "keywords": [
4154 | "event",
4155 | "eventmanager",
4156 | "events",
4157 | "zf2"
4158 | ],
4159 | "time": "2017-03-05 07:56:37"
4160 | }
4161 | ],
4162 | "packages-dev": [],
4163 | "aliases": [],
4164 | "minimum-stability": "dev",
4165 | "stability-flags": {
4166 | "emuse/behat-html-formatter": 20
4167 | },
4168 | "prefer-stable": false,
4169 | "prefer-lowest": false,
4170 | "platform": [],
4171 | "platform-dev": []
4172 | }
4173 |
--------------------------------------------------------------------------------
/config/service.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jaffamonkeyAPI",
3 | "operations": {
4 | "JaffamonkeySite": {
5 | "httpMethod": "GET",
6 | "uri": "api/get_recent_posts/"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/features/bootstrap/ElementCountContext.php:
--------------------------------------------------------------------------------
1 | [^"]*)" exists on page$/
14 | */
15 | public function countOfExistsOnPage($count, $area)
16 | {
17 | $this->getPage('Elementcount')->countOfElements($count, $area);
18 | }
19 |
20 | }
--------------------------------------------------------------------------------
/features/bootstrap/HomepageContext.php:
--------------------------------------------------------------------------------
1 | getPage('Homepage')->loginCredentials($email, $password);
18 | }
19 |
20 | /**
21 | * @Then /^count of "([^"]*)" instances of "(?P[^"]*)" exists on page$/
22 | */
23 | public function countOfExistsOnPage($count, $area)
24 | {
25 | $this->getPage('Homepage')->countTheElements($count, $area);
26 | }
27 |
28 | /**
29 | * @Given /^the current post display date is today plus "([^"]*)" working days$/
30 | */
31 | public function taskDueDateIsRegDueDatePlusDays($workingDays)
32 | {
33 | $this->getPage('Homepage')->theCurrentPostDateTodayPlusWorkingDays($workingDays);
34 | }
35 |
36 | /**
37 | * @Given /^I set system date to today plus "([^"]*)" working days$/
38 | */
39 | public function iSetSystemDateToTodayPlusWorkingDays($days)
40 | {
41 | $this->getPage('Homepage')->systemDateToTodayPlusWorkingDays($days);
42 | }
43 |
44 | /**
45 | * @Given I click the burger menu
46 | */
47 | public function iClickTheBurgerMenu()
48 | {
49 | $this->getPage('Homepage')->openTheBurgerMenu();
50 | }
51 |
52 | /**
53 | * @Given I press Enter on keyboard
54 | */
55 | public function iPressEnterOnKeyboard()
56 | {
57 | $this->getPage('Homepage')->iPressEnter();
58 | }
59 |
60 | /**
61 | * @Given I click the "([^"]*)" field
62 | */
63 | public function iClickTheField()
64 | {
65 | $this->getPage('Homepage')->clickOnField();
66 | }
67 |
68 | /**
69 | * @Then /^I select first autocomplete option for "([^"]*)"$/
70 | */
71 | public function iSelectFirstAutcompleteOption($searchTerm)
72 | {
73 | $this->getPage('Homepage')->firstAutcompleteOptionSelect($searchTerm);
74 | }
75 |
76 | /**
77 | * @Given /^I fill random email for "([^"]*)" field$/
78 | */
79 | public function iFillRandomEmailForField($emailAddress)
80 | {
81 | $this->getPage('Homepage')->randomEmailGenerator($emailAddress);
82 | }
83 |
84 | /**
85 | * @Then /^I should see expected fields "([^"]*)"$/
86 | */
87 | public function iShouldSeeExpectedFields($fields)
88 | {
89 | $this->getPage('Homepage')->checkFieldsExistOnPage($fields);
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/features/bootstrap/Page/Element/Elementcount.php:
--------------------------------------------------------------------------------
1 | getRows() as $row) {
27 | list($fieldSelector, $value) = $row;
28 | // echo 'this is a value of some kind:' . $fieldSelector;
29 | $field = $page->findField($fieldSelector);
30 | if (empty($field)) {
31 | $field = $this->getDriver()->find('//label[contains(normalize-space(string(.)), "' . $fieldSelector . '")]');
32 | if (!empty($field)) {
33 | $field = current($field);
34 | }
35 | }
36 | if (empty($field)) {
37 | throw new \Exception('Field not found: ' . $fieldSelector);
38 | }
39 | $tag = strtolower($field->getTagName());
40 | if ($tag == 'textarea') {
41 | $page->fillField($fieldSelector, $value);
42 | } elseif ($tag == 'select') {
43 | if ($field->hasAttribute('multiple')) {
44 | foreach (explode(',', $value) as $index => $option) {
45 | $page->selectFieldOption($fieldSelector, trim($option), true);
46 | }
47 | } else {
48 | $page->selectFieldOption($fieldSelector, $value);
49 | }
50 | } elseif ($tag == 'input') {
51 | $type = strtolower($field->getAttribute('type'));
52 | if ($type == 'checkbox') {
53 | if (strtolower($value) == 'yes') {
54 | $page->checkField($fieldSelector);
55 | } else {
56 | $page->uncheckField($fieldSelector);
57 | }
58 | } else {
59 | $page->fillField($fieldSelector, $value);
60 | }
61 | } elseif ($tag == 'label') {
62 | foreach (explode(',', $value) as $option) {
63 | $option = $this->fixStepArgument(trim($option));
64 | $field->getParent()->checkField($option);
65 | }
66 | }
67 | }
68 | }
69 |
70 | /**
71 | * @param TableNode $table
72 | * @return Page
73 | * @throws \Exception
74 | */
75 | public function assertFormContains(TableNode $table)
76 | {
77 | foreach ($table->getRows() as $row) {
78 | list($field, $value) = $row;
79 |
80 | $node = $this->findField($field);
81 | if (empty($node)) {
82 | $node = $this->getSession()->getDriver()->find('//label[contains(normalize-space(string(.)), "' . $field . '")]');
83 | if (!empty($node)) {
84 | $node = current($node);
85 | }
86 | }
87 |
88 | if (null === $node) {
89 | throw new \Exception($this->getSession(), 'form field', 'id|name|label|value', $field);
90 | }
91 |
92 | if ($node->getTagName() == 'input' && in_array($node->getAttribute('type'), array('checkbox', 'radio'))) {
93 | $actual = $node->isChecked() ? 'YES' : 'NO';
94 | } elseif ($node->getTagName() == 'select') {
95 | $actual = $node->getValue();
96 | if (!is_array($actual)) {
97 | $actual = array($actual);
98 | }
99 |
100 | $options = array();
101 | $optionNodes = $this->getDriver()->find($node->getXpath() . "/option");
102 | foreach ($optionNodes as $optionNode) {
103 | $options[$optionNode->getValue()] = $optionNode->getText();
104 | $options[$optionNode->getText()] = $optionNode->getText();
105 | }
106 | foreach ($actual as $index => $optionValue) {
107 | if (isset($options[$optionValue])) {
108 | $actual[$index] = $options[$optionValue];
109 | }
110 | }
111 | } elseif ($node->getTagName() == 'label') {
112 | foreach (explode(',', $value) as $option) {
113 | $option = $this->fixStepArgument(trim($option));
114 | $this->hasCheckedField($option);
115 | }
116 | return true;
117 | } else {
118 | $actual = $node->getValue();
119 | }
120 |
121 | if (is_array($actual)) {
122 | $actual = join(',', $actual);
123 | }
124 | $regex = '/^' . preg_quote($value, '$/') . '/ui';
125 |
126 | if (!preg_match($regex, $actual)) {
127 | $message = sprintf('The field "%s" value is "%s", but "%s" expected.', $field, $actual, $value);
128 | throw new \Exception($message);
129 | }
130 | }
131 | }
132 |
133 | /**
134 | * Returns fixed step argument (with \\" replaced back to ").
135 | *
136 | * @param string $argument
137 | *
138 | * @return string
139 | */
140 | protected function fixStepArgument($argument)
141 | {
142 | return str_replace('\\"', '"', $argument);
143 | }
144 |
145 | }
--------------------------------------------------------------------------------
/features/bootstrap/Page/Element/Holidays.php:
--------------------------------------------------------------------------------
1 | fillField('user_login', $email);
19 | $this->fillField('user_pass', $password);
20 | $this->pressButton('wp-submit');
21 | }
22 |
23 |
24 | /**
25 | * @param string $count
26 | * @param string $area
27 | * @return Page
28 | * @throws \Exception
29 | */
30 | public function countTheElements($count, $area)
31 | {
32 | $str = $this->getDriver()->getContent();
33 | $count2 = substr_count($str, $area);
34 | if ($count != $count2) {
35 | throw new \Exception($count . ' is incorrect, it should be: ' . $count2);
36 | };
37 | }
38 |
39 | /**
40 | * @param string $days
41 | * @return Page
42 | * @throws \Exception
43 | */
44 | public function theCurrentPostDateTodayPlusWorkingDays($days)
45 | {
46 | $displayeddate = $this->find('css', 'entry-date published updated')->getText();
47 | $initialDate = \DateTime::createFromFormat('j/M/y', $displayeddate);
48 | $initialDate->format('d-m-Y');
49 | $dayCounter = 1;
50 | $currentDay = $initialDate->getTimestamp();
51 | while ($dayCounter <= $days) {
52 | $date = date('d-m-Y', $currentDay);
53 | $currentDay = strtotime($date . ' +1 day');
54 | $weekday = date('N', $currentDay);
55 | if ($weekday < 6) {
56 | $dayCounter++;
57 | }
58 | }
59 | $final = date('m-d-Y', $currentDay);
60 | assertEquals($displayeddate, $final);
61 | }
62 |
63 | /**
64 | * Javascript method that checks for an element with a specific id
65 | * @param $idOfElement
66 | * @return string
67 | */
68 | public function javascriptCheckForIdElement($idOfElement)
69 | {
70 | $script = 'if ($("#' . $idOfElement . '").length) { return true; } else { return false; }';
71 | $result = $this->getDriver()->evaluateScript($script);
72 | return $result;
73 | }
74 |
75 | /**
76 | * Javascript method that checks for A Tag element with a specific title tag
77 | * @param $value
78 | * @return string
79 | */
80 | public function javascriptCheckForHrefThatHasTitleAttributeWithSpecificValue($value)
81 | {
82 | $script = '
83 | Element = jQuery("[title=\'' . $value . '\']");
84 | if(Element.length == 0) {
85 | return false
86 | }
87 | return true;
88 | ';
89 | $result = $this->getDriver()->evaluateScript($script);
90 | return $result;
91 | }
92 |
93 | public function checkForBankHolidays($year)
94 | {
95 | $bankHolsThisYear = $this->getElement('Holidays')->calculateBankHolidays($year);
96 | return $bankHolsThisYear;
97 | }
98 |
99 |
100 | /**
101 | * @param string $emailAddress
102 | * @return Page
103 | * @throws \Exception
104 | */
105 | public function randomEmailGenerator($emailAddress)
106 | {
107 | $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
108 | $randomString = '';
109 | for ($i = 0; $i < 15; $i++) {
110 | $randomString .= $characters[rand(0, strlen($characters) - 1)];
111 | }
112 | echo($randomString . '@test.com');
113 | $this->fillField($emailAddress, $randomString . '@test.com');
114 | }
115 |
116 | /**
117 | * @param string $fields
118 | * @return Page
119 | * @throws \Exception
120 | */
121 | public function checkFieldsExistOnPage($fields)
122 | {
123 | $params = explode(',', $fields);
124 | foreach ($params as $param) {
125 | $this->hasField($param);
126 | }
127 |
128 | }
129 |
130 | /**
131 | * @param string $searchTerm
132 | * @return Page
133 | * @throws \Exception
134 | */
135 | public function firstAutcompleteOptionSelect($searchTerm)
136 |
137 | {
138 | /**
139 | * The code below puts text in the input type, calls the jquery autocomplete feature
140 | * and then simulates clicking an item in the list that is returned.
141 | * To debug this javascript run a feature that runs this step and echo the $script variable below.
142 | */
143 | $this->fillField('searchBox', $searchTerm);
144 | $script = 'jQuery("#searchBox").autocomplete( "search", "' . $searchTerm . '");
145 | var c = setInterval(function() {
146 |
147 |
148 | var collection = jQuery("#ui-id-1").find("a"), exists;
149 |
150 | collection.each(function(el) {
151 |
152 | if ($(this).text() === "' . $searchTerm . '") {
153 | exists = $(this);
154 | }
155 |
156 | });
157 |
158 | if (exists) {
159 | exists.click();
160 | clearInterval(c);
161 | }
162 |
163 | }, 50);';
164 | $this->getDriver()->evaluateScript($script);
165 |
166 | }
167 |
168 |
169 | /**
170 | * Takes current date and adds number of working days
171 | * @param $days
172 | * @return Page
173 | * @throws \Exception
174 | */
175 | public function systemDateToTodayPlusWorkingDays($days)
176 | {
177 | $t = date('Y-m-d');
178 | $initialDate = \DateTime::createFromFormat('Y-m-d', $t);
179 | $dayCounter = 0;
180 | $currentDay = $initialDate->getTimestamp();
181 | $currentYear = $initialDate->format('Y');
182 | $bankHolsThisYear = $this->getElement('Holidays')->calculateBankHolidays($currentYear);
183 | $bankHolsThisYear2 = $this->getElement('Holidays')->calculateBankHolidays('2015');
184 | while ($dayCounter <= $days) {
185 | $date = date('Y-m-d', $currentDay);
186 | if ((in_array($date, $bankHolsThisYear)) || (in_array($date, $bankHolsThisYear2))) {
187 | $currentDay = strtotime($date . ' +2 days');
188 | } else {
189 | $currentDay = strtotime($date . ' +1 day');
190 | }
191 | $date = date('Y-m-d', $currentDay);
192 | $weekday = date('N', $currentDay);
193 | if ($weekday < 6) {
194 | $dayCounter++;
195 | }
196 | }
197 | //return $currentDay;
198 | $final = date('Y-m-d', $currentDay);
199 | echo $final;
200 | exec("sudo /bin/date -s " . $final);
201 | }
202 |
203 | /**
204 | * Click the main burger menu
205 | * @return Page
206 | * @throws \Exception
207 | */
208 | public function iPressEnter()
209 | {
210 | $this->keys('11^M');
211 | sleep(1);
212 | }
213 | }
--------------------------------------------------------------------------------
/features/bootstrap/Page/Profileform.php:
--------------------------------------------------------------------------------
1 | getElement('Formfilling')->fillForm($table);
21 | }
22 |
23 | /**
24 | * @param TableNode $table
25 | * @return Page
26 | * @throws \Exception
27 | */
28 | public function checkFormContains(TableNode $table)
29 | {
30 | return $this->getElement('Formfilling')->assertFormContains($table);
31 | }
32 |
33 |
34 | /**
35 | * @When /^I click the "([^"]*)" radio button$/
36 | */
37 | public function iClickTheRadioButton($radioLabel)
38 | {
39 | $radioButton = $this->findField($radioLabel);
40 | if (null === $radioButton) {
41 | throw new \Exception("Cannot find radio button " . $radioLabel);
42 | }
43 | $this->getDriver()->click($radioButton->getXPath());
44 | }
45 |
46 | }
--------------------------------------------------------------------------------
/features/bootstrap/ProfileformContext.php:
--------------------------------------------------------------------------------
1 | getPage('Profileform')->fillOutForm($table);
20 | }
21 |
22 | /**
23 | * @param TableNode $table
24 | * @Given /^I should see form with:$/
25 | */
26 | public function iShouldSeeFormWith(TableNode $table)
27 | {
28 | $this->getPage('Profileform')->checkFormContains($table);
29 | }
30 | }
--------------------------------------------------------------------------------
/features/bootstrap/WebFeatureContext.php:
--------------------------------------------------------------------------------
1 |