├── .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 | [![Build Status](https://travis-ci.org/jaffamonkey/behat-3-kickstart.svg?branch=master)](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 |