From d844b7e47f263f6eb6e7bdf163139d07aaada711 Mon Sep 17 00:00:00 2001 From: Pavel Dohnal Date: Tue, 18 Jul 2017 14:43:22 +0100 Subject: [PATCH] Initial acceptance testing setup [MAILPOET-997] --- .gitignore | 1 - Dockerfile | 39 + README.md | 18 + RoboFile.php | 20 +- codeception.acceptance.yml | 50 + codeception.yml => codeception.unit.yml | 22 + composer.json | 2 + composer.lock | 2250 +++++++++++++++----- docker-compose.yml | 58 + docker-entrypoint.sh | 28 + tests/_support/AcceptanceTester.php | 25 + tests/acceptance.suite.yml | 6 + tests/acceptance/NewsletterListingCept.php | 15 + tests/acceptance/_bootstrap.php | 1 + tests/unit.suite.yml | 2 + tests/wordpressDockerfile/Dockerfile | 13 + 16 files changed, 2067 insertions(+), 483 deletions(-) create mode 100644 Dockerfile create mode 100644 codeception.acceptance.yml rename codeception.yml => codeception.unit.yml (51%) create mode 100644 docker-compose.yml create mode 100644 docker-entrypoint.sh create mode 100644 tests/acceptance.suite.yml create mode 100644 tests/acceptance/NewsletterListingCept.php create mode 100644 tests/acceptance/_bootstrap.php create mode 100644 tests/wordpressDockerfile/Dockerfile diff --git a/.gitignore b/.gitignore index 53ea0cc9e5..9c78a05781 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ TODO composer.phar /vendor tests/_output/* -tests/acceptance.suite.yml tests/_support/_generated/* node_modules .env diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..5a36bb53fe --- /dev/null +++ b/Dockerfile @@ -0,0 +1,39 @@ +FROM php:5.6-cli + +ENV COMPOSER_ALLOW_SUPERUSER=1 + +RUN apt-get update && \ + apt-get -y install \ + git \ + zlib1g-dev \ + libssl-dev \ + mysql-client \ + sudo less \ + --no-install-recommends && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ + docker-php-ext-install bcmath zip mysqli pdo pdo_mysql && \ + echo "date.timezone = UTC" >> /usr/local/etc/php/php.ini && \ + curl -sS https://getcomposer.org/installer | php -- \ + --filename=composer \ + --install-dir=/usr/local/bin && \ + composer global require --optimize-autoloader "hirak/prestissimo" && \ + curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \ + chmod +x wp-cli.phar && \ + mv wp-cli.phar /usr/local/bin/wp + +# Prepare application +WORKDIR /repo + +# Install vendor +COPY ./composer.json /repo/composer.json + +# Add source-code +COPY . /repo + +WORKDIR /wp-core/wp-content/plugins/mailpoet +ENV WP_TEST_PATH=/wp-core + +ADD docker-entrypoint.sh / + +RUN ["chmod", "+x", "/docker-entrypoint.sh"] \ No newline at end of file diff --git a/README.md b/README.md index 92599d1deb..13b9bd4ea9 100644 --- a/README.md +++ b/README.md @@ -180,3 +180,21 @@ Run 'svn copy ...' to tag the release It's quite literal: you can review the changes to be pushed and if you're satisfied, run the suggested command to finish the release publishing process. If you're confident, execute `./do publish --force` and your release will be published to the remote SVN repository without manual intervention (automatically). For easier authentication you might want to set `WP_SVN_USERNAME` and `WP_SVN_PASSWORD` environment variables. + +# Acceptance testing + +We are using Gravity Flow plugin's setup as an example for our acceptance test suite: https://www.stevenhenty.com/learn-acceptance-testing-deeply/ + +From the article above: + +_Windows users only: enable hard drive sharing in the Docker settings._ + +The browser runs in a docker container. You can use a VNC client to watch the test run, follow instructions in official +repo: https://github.com/SeleniumHQ/docker-selenium +If you’re on a Mac, you can open vnc://localhost:5900 in Safari to watch the tests running in Chrome. If you’re on Windows, you’ll need a VNC client. Password: secret. + + +To run tests: +```sh +$ ./do test:acceptance +``` \ No newline at end of file diff --git a/RoboFile.php b/RoboFile.php index 4e321f24c9..2946293661 100644 --- a/RoboFile.php +++ b/RoboFile.php @@ -154,9 +154,9 @@ class RoboFile extends \Robo\Tasks { function testUnit($opts=['file' => null, 'xml' => false]) { $this->loadEnv(); - $this->_exec('vendor/bin/codecept build'); + $this->_exec('vendor/bin/codecept build -c codeception.unit.yml'); - $command = 'vendor/bin/codecept run unit -f '.(($opts['file']) ? $opts['file'] : ''); + $command = 'vendor/bin/codecept run unit -c codeception.unit.yml -f '.(($opts['file']) ? $opts['file'] : ''); if($opts['xml']) { $command .= ' --xml'; @@ -166,9 +166,9 @@ class RoboFile extends \Robo\Tasks { function testCoverage($opts=['file' => null, 'xml' => false]) { $this->loadEnv(); - $this->_exec('vendor/bin/codecept build'); + $this->_exec('vendor/bin/codecept build -c codeception.unit.yml'); $command = join(' ', array( - 'vendor/bin/codecept run', + 'vendor/bin/codecept run -c codeception.unit.yml ', (($opts['file']) ? $opts['file'] : ''), '--coverage', ($opts['xml']) ? '--coverage-xml' : '--coverage-html' @@ -201,9 +201,9 @@ class RoboFile extends \Robo\Tasks { function testDebug($opts=['file' => null, 'xml' => false]) { $this->loadEnv(); - $this->_exec('vendor/bin/codecept build'); + $this->_exec('vendor/bin/codecept build -c codeception.unit.yml'); - $command = 'vendor/bin/codecept run unit --debug -f '.(($opts['file']) ? $opts['file'] : ''); + $command = 'vendor/bin/codecept run unit -c codeception.unit.yml --debug -f '.(($opts['file']) ? $opts['file'] : ''); if($opts['xml']) { $command .= ' --xml'; @@ -211,10 +211,14 @@ class RoboFile extends \Robo\Tasks { return $this->_exec($command); } + function testAcceptance() { + return $this->_exec('docker-compose run codeception --steps --debug -vvv'); + } + function testFailed() { $this->loadEnv(); - $this->_exec('vendor/bin/codecept build'); - return $this->_exec('vendor/bin/codecept run -g failed'); + $this->_exec('vendor/bin/codecept build -c codeception.unit.yml'); + return $this->_exec('vendor/bin/codecept run -c codeception.unit.yml -g failed'); } function qa() { diff --git a/codeception.acceptance.yml b/codeception.acceptance.yml new file mode 100644 index 0000000000..e3538eb547 --- /dev/null +++ b/codeception.acceptance.yml @@ -0,0 +1,50 @@ +actor: Tester +paths: + tests: tests + log: tests/_output + data: tests/_data + support: tests/_support + envs: tests/_envs +settings: + colors: true + memory_limit: 1024M + log: true + strict_xml: true +extensions: + enabled: + - Codeception\Extension\RunFailed +modules: + config: + WPWebDriver: + host: chrome + url: 'http://wordpress' + browser: chrome + port: 4444 + window_size: '1024x768' + restart: true + wait: 0 + adminUsername: admin + adminPassword: password + adminPath: /wp-admin + WPLoader: + wpRootFolder: /wp-core + dbName: wordpress + dbHost: mysql + dbUser: wordpress + dbPassword: wordpress + wpDebug: false + tablePrefix: wp_ + domain: wordpress + plugins: ['mailpoet/mailpoet.php'] + activatePlugins: ['mailpoet/mailpoet.php'] +coverage: + enabled: true + whitelist: + include: + - lib/* + exclude: + - lib/Config/PopulatorData/* + - lib/Util/Sudzy/* + - lib/Util/CSS.php + - lib/Util/Helpers.php + - lib/Util/XLSXWriter.php diff --git a/codeception.yml b/codeception.unit.yml similarity index 51% rename from codeception.yml rename to codeception.unit.yml index cc77bde89f..b566bd83f4 100644 --- a/codeception.yml +++ b/codeception.unit.yml @@ -21,6 +21,28 @@ modules: user: '' password: '' dump: tests/_data/dump.sql + WPLoader: + wpRootFolder: /wp-core + dbName: wordpress + dbHost: mysql + dbUser: wordpress + dbPassword: wordpress + wpDebug: false + tablePrefix: wp_ + domain: wordpress + plugins: ['mailpoet/mailpoet.php'] + activatePlugins: ['mailpoet/mailpoet.php'] + WPWebDriver: + host: chrome + url: 'http://wordpress' + browser: chrome + port: 4444 + window_size: '1024x768' + restart: true + wait: 0 + adminUsername: admin + adminPassword: password + adminPath: /wp-admin coverage: enabled: true whitelist: diff --git a/composer.json b/composer.json index fc17a66ae3..5dd4db90b2 100644 --- a/composer.json +++ b/composer.json @@ -24,6 +24,8 @@ "codeception/verify": "^0.3.3", "consolidation/robo": "^1.0.5", "henrikbjorn/lurker": "^1.2", + "lucatume/wp-browser": "1.19.12", + "phpunit/phpunit": "4.8.21", "vlucas/phpdotenv": "^2.4.0", "umpirsky/twig-gettext-extractor": "1.1.*", "raveren/kint": "^1.0", diff --git a/composer.lock b/composer.lock index dc317048fe..fbe0acdd26 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "1190ad8112dd74f1f9156eccf6231dbb", + "content-hash": "ebc2f9b5c26572d9104bfc7ec1bd4a71", "packages": [ { "name": "cerdic/css-tidy", @@ -572,7 +572,7 @@ }, { "name": "symfony/translation", - "version": "v2.8.26", + "version": "v2.8.25", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", @@ -753,6 +753,100 @@ } ], "packages-dev": [ + { + "name": "antecedent/patchwork", + "version": "2.0.7", + "source": { + "type": "git", + "url": "https://github.com/antecedent/patchwork.git", + "reference": "d8e772ee90390960c23c6c64e09f1279d8a7b0df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/antecedent/patchwork/zipball/d8e772ee90390960c23c6c64e09f1279d8a7b0df", + "reference": "d8e772ee90390960c23c6c64e09f1279d8a7b0df", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignas Rudaitis", + "email": "ignas.rudaitis@gmail.com" + } + ], + "description": "Method redefinition (monkey-patching) functionality for PHP.", + "homepage": "http://patchwork2.org/", + "keywords": [ + "aop", + "aspect", + "interception", + "monkeypatching", + "redefinition", + "runkit", + "testing" + ], + "time": "2017-07-11T07:22:21+00:00" + }, + { + "name": "bacon/bacon-string-utils", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/Bacon/BaconStringUtils.git", + "reference": "3d7818aca25190149a9a2415a0928d4964d6007e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Bacon/BaconStringUtils/zipball/3d7818aca25190149a9a2415a0928d4964d6007e", + "reference": "3d7818aca25190149a9a2415a0928d4964d6007e", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~3.7", + "satooshi/php-coveralls": "~0.6", + "squizlabs/php_codesniffer": "~1.5", + "zendframework/zendframework": "~2.0" + }, + "suggest": { + "zendframework/zend-filter": "To use the Slugifier as a Zend\\Filter instance." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "BaconStringUtils": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Ben Scholzen 'DASPRiD'", + "email": "mail@dasprids.de", + "homepage": "http://www.dasprids.de", + "role": "Developer" + } + ], + "description": "BaconStringUtils contain utitilies to work with strings.", + "homepage": "https://github.com/Bacon/BaconStringUtils", + "time": "2014-10-11T16:58:02+00:00" + }, { "name": "behat/gherkin", "version": "v4.4.5", @@ -857,16 +951,16 @@ }, { "name": "codeception/codeception", - "version": "2.2.11", + "version": "2.3.4", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "a8681b416921ae282ccca2c485d75a3ed6756080" + "reference": "b5391497f9a3c9d0a9c02ae39b53441e413e35a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/a8681b416921ae282ccca2c485d75a3ed6756080", - "reference": "a8681b416921ae282ccca2c485d75a3ed6756080", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/b5391497f9a3c9d0a9c02ae39b53441e413e35a8", + "reference": "b5391497f9a3c9d0a9c02ae39b53441e413e35a8", "shasum": "" }, "require": { @@ -878,7 +972,7 @@ "guzzlehttp/psr7": "~1.0", "php": ">=5.4.0 <8.0", "phpunit/php-code-coverage": ">=2.2.4 <6.0", - "phpunit/phpunit": ">4.8.20 <6.0", + "phpunit/phpunit": ">4.8.20 <7.0", "phpunit/phpunit-mock-objects": ">2.3 <5.0", "sebastian/comparator": ">1.1 <3.0", "sebastian/diff": "^1.4", @@ -903,6 +997,7 @@ "php-amqplib/php-amqplib": "~2.4", "predis/predis": "^1.0", "squizlabs/php_codesniffer": "~2.0", + "symfony/process": ">=2.7 <4.0", "vlucas/phpdotenv": "^2.4.0" }, "suggest": { @@ -947,7 +1042,7 @@ "functional testing", "unit testing" ], - "time": "2017-05-11T21:07:05+00:00" + "time": "2017-07-10T19:45:09+00:00" }, { "name": "codeception/verify", @@ -986,21 +1081,280 @@ "time": "2017-01-09T10:58:51+00:00" }, { - "name": "consolidation/annotated-command", - "version": "2.4.11", + "name": "composer/ca-bundle", + "version": "1.0.7", "source": { "type": "git", - "url": "https://github.com/consolidation/annotated-command.git", - "reference": "7fbf68dc6abf2f1f0746ceab0701dee1ee97516e" + "url": "https://github.com/composer/ca-bundle.git", + "reference": "b17e6153cb7f33c7e44eb59578dc12eee5dc8e12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/7fbf68dc6abf2f1f0746ceab0701dee1ee97516e", - "reference": "7fbf68dc6abf2f1f0746ceab0701dee1ee97516e", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/b17e6153cb7f33c7e44eb59578dc12eee5dc8e12", + "reference": "b17e6153cb7f33c7e44eb59578dc12eee5dc8e12", "shasum": "" }, "require": { - "consolidation/output-formatters": "^3.1.10", + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^5.3.2 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.5", + "psr/log": "^1.0", + "symfony/process": "^2.5 || ^3.0" + }, + "suggest": { + "symfony/process": "This is necessary to reliably check whether openssl_x509_parse is vulnerable on older php versions, but can be ignored on PHP 5.5.6+" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "time": "2017-03-06T11:59:08+00:00" + }, + { + "name": "composer/composer", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/composer/composer.git", + "reference": "489e09ee6c3ba431fbeeef9147afdaeb6f91b647" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/composer/zipball/489e09ee6c3ba431fbeeef9147afdaeb6f91b647", + "reference": "489e09ee6c3ba431fbeeef9147afdaeb6f91b647", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.0", + "composer/semver": "^1.0", + "composer/spdx-licenses": "^1.0", + "justinrainbow/json-schema": "^3.0 || ^4.0 || ^5.0", + "php": "^5.3.2 || ^7.0", + "psr/log": "^1.0", + "seld/cli-prompt": "^1.0", + "seld/jsonlint": "^1.4", + "seld/phar-utils": "^1.0", + "symfony/console": "^2.7 || ^3.0", + "symfony/filesystem": "^2.7 || ^3.0", + "symfony/finder": "^2.7 || ^3.0", + "symfony/process": "^2.7 || ^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.5 || ^5.0.5", + "phpunit/phpunit-mock-objects": "^2.3 || ^3.0" + }, + "suggest": { + "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", + "ext-zip": "Enabling the zip extension allows you to unzip archives", + "ext-zlib": "Allow gzip compression of HTTP requests" + }, + "bin": [ + "bin/composer" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\": "src/Composer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Composer helps you declare, manage and install dependencies of PHP projects, ensuring you have the right stack everywhere.", + "homepage": "https://getcomposer.org/", + "keywords": [ + "autoload", + "dependency", + "package" + ], + "time": "2017-05-17T06:17:53+00:00" + }, + { + "name": "composer/semver", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "c7cb9a2095a074d131b65a8a0cd294479d785573" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/c7cb9a2095a074d131b65a8a0cd294479d785573", + "reference": "c7cb9a2095a074d131b65a8a0cd294479d785573", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.5 || ^5.0.5", + "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "time": "2016-08-30T16:08:34+00:00" + }, + { + "name": "composer/spdx-licenses", + "version": "1.1.6", + "source": { + "type": "git", + "url": "https://github.com/composer/spdx-licenses.git", + "reference": "2603a0d7ddc00a015deb576fa5297ca43dee6b1c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/2603a0d7ddc00a015deb576fa5297ca43dee6b1c", + "reference": "2603a0d7ddc00a015deb576fa5297ca43dee6b1c", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.5 || ^5.0.5", + "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Spdx\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "SPDX licenses list and validation library.", + "keywords": [ + "license", + "spdx", + "validator" + ], + "time": "2017-04-03T19:08:52+00:00" + }, + { + "name": "consolidation/annotated-command", + "version": "2.4.8", + "source": { + "type": "git", + "url": "https://github.com/consolidation/annotated-command.git", + "reference": "6672ea38212f8bffb71fec7eadc8b3372154b17e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/6672ea38212f8bffb71fec7eadc8b3372154b17e", + "reference": "6672ea38212f8bffb71fec7eadc8b3372154b17e", + "shasum": "" + }, + "require": { + "consolidation/output-formatters": "^3.1.5", "php": ">=5.4.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", "psr/log": "^1", @@ -1035,20 +1389,20 @@ } ], "description": "Initialize Symfony Console commands from annotated command class methods.", - "time": "2017-07-27T20:29:17+00:00" + "time": "2017-04-03T22:37:00+00:00" }, { "name": "consolidation/config", - "version": "1.0.1", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/consolidation/config.git", - "reference": "e3c7311f8926488fe2fbce0ec6af56be417da504" + "reference": "b30571aa8f0eae40581ae8b8aeaa26706b444781" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/config/zipball/e3c7311f8926488fe2fbce0ec6af56be417da504", - "reference": "e3c7311f8926488fe2fbce0ec6af56be417da504", + "url": "https://api.github.com/repos/consolidation/config/zipball/b30571aa8f0eae40581ae8b8aeaa26706b444781", + "reference": "b30571aa8f0eae40581ae8b8aeaa26706b444781", "shasum": "" }, "require": { @@ -1084,7 +1438,7 @@ } ], "description": "Provide configuration services for a commandline tool.", - "time": "2017-07-28T18:05:53+00:00" + "time": "2017-06-28T18:24:02+00:00" }, { "name": "consolidation/log", @@ -1184,21 +1538,21 @@ }, { "name": "consolidation/robo", - "version": "1.1.2", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/consolidation/Robo.git", - "reference": "46340c0ba2477e6f30a22ebaa072da0ba2b15bb1" + "reference": "b83f558a6d7efa8d4d1d3faaff90d6448a6d2716" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/Robo/zipball/46340c0ba2477e6f30a22ebaa072da0ba2b15bb1", - "reference": "46340c0ba2477e6f30a22ebaa072da0ba2b15bb1", + "url": "https://api.github.com/repos/consolidation/Robo/zipball/b83f558a6d7efa8d4d1d3faaff90d6448a6d2716", + "reference": "b83f558a6d7efa8d4d1d3faaff90d6448a6d2716", "shasum": "" }, "require": { "consolidation/annotated-command": "^2.2", - "consolidation/config": "^1.0.1", + "consolidation/config": "^1", "consolidation/log": "~1", "consolidation/output-formatters": "^3.1.5", "league/container": "^2.2", @@ -1259,7 +1613,7 @@ } ], "description": "Modern task runner", - "time": "2017-07-28T21:29:52+00:00" + "time": "2017-07-07T19:48:25+00:00" }, { "name": "container-interop/container-interop", @@ -1351,6 +1705,43 @@ ], "time": "2017-01-20T21:14:22+00:00" }, + { + "name": "dg/mysql-dump", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/dg/MySQL-dump.git", + "reference": "8970328c9a8665e65f3855c849f5d4de94075f13" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dg/MySQL-dump/zipball/8970328c9a8665e65f3855c849f5d4de94075f13", + "reference": "8970328c9a8665e65f3855c849f5d4de94075f13", + "shasum": "" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "http://davidgrudl.com" + } + ], + "description": "MySQL database dump.", + "homepage": "https://github.com/dg/MySQL-dump", + "keywords": [ + "mysql" + ], + "time": "2017-05-24T12:44:51+00:00" + }, { "name": "doctrine/annotations", "version": "v1.4.0", @@ -1419,6 +1810,73 @@ ], "time": "2017-02-24T16:22:25+00:00" }, + { + "name": "doctrine/inflector", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "4.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Inflector\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Common String Manipulations with regard to casing and singular/plural rules.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string" + ], + "time": "2015-11-06T14:35:42+00:00" + }, { "name": "doctrine/instantiator", "version": "1.0.5", @@ -1695,21 +2153,22 @@ }, { "name": "grasmash/yaml-expander", - "version": "1.1.1", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/grasmash/yaml-expander.git", - "reference": "720c54b2c99b80d5d696714b6826183d34edce93" + "reference": "95f9c876ca31f31bf5bfd9c8e89cc1f065c45528" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/grasmash/yaml-expander/zipball/720c54b2c99b80d5d696714b6826183d34edce93", - "reference": "720c54b2c99b80d5d696714b6826183d34edce93", + "url": "https://api.github.com/repos/grasmash/yaml-expander/zipball/95f9c876ca31f31bf5bfd9c8e89cc1f065c45528", + "reference": "95f9c876ca31f31bf5bfd9c8e89cc1f065c45528", "shasum": "" }, "require": { "dflydev/dot-access-data": "^1.1.0", "php": ">=5.4", + "symfony/console": "^2.8.11|^3", "symfony/yaml": "^2.8.11|^3" }, "require-dev": { @@ -1738,7 +2197,7 @@ } ], "description": "Expands internal property references in a yaml file.", - "time": "2017-08-01T16:15:05+00:00" + "time": "2017-03-24T20:31:04+00:00" }, { "name": "guzzlehttp/guzzle", @@ -1921,6 +2380,50 @@ ], "time": "2017-03-20T17:10:46+00:00" }, + { + "name": "hautelook/phpass", + "version": "0.3.3", + "source": { + "type": "git", + "url": "https://github.com/hautelook/phpass.git", + "reference": "9590c12bf7c92f67f646d7bf2cf6384e7292cc41" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hautelook/phpass/zipball/9590c12bf7c92f67f646d7bf2cf6384e7292cc41", + "reference": "9590c12bf7c92f67f646d7bf2cf6384e7292cc41", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "psr-0": { + "Hautelook": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Public Domain" + ], + "authors": [ + { + "name": "Solar Designer", + "email": "solar@openwall.com", + "homepage": "http://openwall.com/phpass/" + } + ], + "description": "Portable PHP password hashing framework", + "homepage": "http://github.com/hautelook/phpass/", + "keywords": [ + "blowfish", + "crypt", + "password", + "security" + ], + "time": "2012-08-31T00:00:00+00:00" + }, { "name": "henrikbjorn/lurker", "version": "1.2.0", @@ -1980,6 +2483,105 @@ ], "time": "2016-03-16T15:22:20+00:00" }, + { + "name": "illuminate/contracts", + "version": "v5.4.27", + "source": { + "type": "git", + "url": "https://github.com/illuminate/contracts.git", + "reference": "31f0193eb14aa3ee07841dc254081425616e79f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/contracts/zipball/31f0193eb14aa3ee07841dc254081425616e79f0", + "reference": "31f0193eb14aa3ee07841dc254081425616e79f0", + "shasum": "" + }, + "require": { + "php": ">=5.6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Contracts\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Contracts package.", + "homepage": "https://laravel.com", + "time": "2017-04-19T20:17:43+00:00" + }, + { + "name": "illuminate/support", + "version": "v5.4.27", + "source": { + "type": "git", + "url": "https://github.com/illuminate/support.git", + "reference": "a42393b56d0ec75f55e760f2a47bcf85a17a278d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/support/zipball/a42393b56d0ec75f55e760f2a47bcf85a17a278d", + "reference": "a42393b56d0ec75f55e760f2a47bcf85a17a278d", + "shasum": "" + }, + "require": { + "doctrine/inflector": "~1.0", + "ext-mbstring": "*", + "illuminate/contracts": "5.4.*", + "paragonie/random_compat": "~1.4|~2.0", + "php": ">=5.6.4" + }, + "replace": { + "tightenco/collect": "self.version" + }, + "suggest": { + "illuminate/filesystem": "Required to use the composer class (5.2.*).", + "symfony/process": "Required to use the composer class (~3.2).", + "symfony/var-dumper": "Required to use the dd function (~3.2)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Support\\": "" + }, + "files": [ + "helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Support package.", + "homepage": "https://laravel.com", + "time": "2017-06-15T12:35:32+00:00" + }, { "name": "jakubledl/dissect", "version": "v1.0.1", @@ -2035,6 +2637,73 @@ ], "time": "2013-01-29T21:29:14+00:00" }, + { + "name": "justinrainbow/json-schema", + "version": "5.2.1", + "source": { + "type": "git", + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "429be236f296ca249d61c65649cdf2652f4a5e80" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/429be236f296ca249d61c65649cdf2652f4a5e80", + "reference": "429be236f296ca249d61c65649cdf2652f4a5e80", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpdocumentor/phpdocumentor": "^2.7", + "phpunit/phpunit": "^4.8.22" + }, + "bin": [ + "bin/validate-json" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" + } + ], + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": [ + "json", + "schema" + ], + "time": "2017-05-16T21:06:09+00:00" + }, { "name": "league/container", "version": "2.4.1", @@ -2101,59 +2770,355 @@ "time": "2017-05-10T09:20:27+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.6.1", + "name": "lucatume/codeception-setup-local", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102" + "url": "https://github.com/lucatume/codeception-setup-local.git", + "reference": "0020cb2d1756d7262782c5cfd966dd9a93188c79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8e6e04167378abf1ddb4d3522d8755c5fd90d102", - "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102", + "url": "https://api.github.com/repos/lucatume/codeception-setup-local/zipball/0020cb2d1756d7262782c5cfd966dd9a93188c79", + "reference": "0020cb2d1756d7262782c5cfd966dd9a93188c79", "shasum": "" }, "require": { - "php": ">=5.4.0" + "codeception/codeception": "^2.1", + "lucatume/wp-browser-commons": "^1.0" }, "require-dev": { - "doctrine/collections": "1.*", - "phpunit/phpunit": "~4.1" + "codeception/codeception": "^2.1", + "mikey179/vfsstream": "^1.6" }, "type": "library", "autoload": { "psr-4": { - "DeepCopy\\": "src/DeepCopy/" + "tad\\Codeception\\Command\\": "src/Command", + "tad\\Codeception\\Command\\Helpers\\": "src/Helpers" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Create deep copies (clones) of your objects", - "homepage": "https://github.com/myclabs/DeepCopy", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" + "authors": [ + { + "name": "Luca Tumedei", + "email": "luca@theaveragedev.com" + } ], - "time": "2017-04-12T18:52:22+00:00" + "description": "Flexible local setup for Codeception", + "time": "2017-06-01T09:49:40+00:00" }, { - "name": "nikic/php-parser", - "version": "v3.1.0", + "name": "lucatume/wp-browser", + "version": "1.19.12", "source": { "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "4d4896e553f2094e657fe493506dc37c509d4e2b" + "url": "https://github.com/lucatume/wp-browser.git", + "reference": "3b3ce54baf2afd8af0245c8fb90d1cabde9d009f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4d4896e553f2094e657fe493506dc37c509d4e2b", - "reference": "4d4896e553f2094e657fe493506dc37c509d4e2b", + "url": "https://api.github.com/repos/lucatume/wp-browser/zipball/3b3ce54baf2afd8af0245c8fb90d1cabde9d009f", + "reference": "3b3ce54baf2afd8af0245c8fb90d1cabde9d009f", + "shasum": "" + }, + "require": { + "antecedent/patchwork": "^2.0", + "lucatume/codeception-setup-local": "~1.0", + "lucatume/wp-browser-commons": "^1.2.5", + "symfony/process": "~2.1", + "wp-cli/wp-cli": "^0.24.1" + }, + "require-dev": { + "codeception/codeception": "~2.2", + "mikey179/vfsstream": "^1.6", + "ofbeaton/console-tester": "^1.1", + "site5/phantoman": "^1.1" + }, + "bin": [ + "wpcept" + ], + "type": "library", + "autoload": { + "psr-4": { + "Codeception\\": "src\\Codeception", + "tad\\": "src\\tad" + }, + "files": [ + "src/tad/WPBrowser/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "theAverageDev (Luca Tumedei)", + "email": "luca@theaveragedev.com", + "homepage": "http://theaveragedev.com", + "role": "Developer" + } + ], + "description": "WordPress extension of the PhpBrowser class.", + "homepage": "http://github.com/lucatume/wp-browser", + "keywords": [ + "codeception", + "wordpress" + ], + "time": "2017-03-09T19:45:05+00:00" + }, + { + "name": "lucatume/wp-browser-commons", + "version": "1.2.8.2", + "source": { + "type": "git", + "url": "https://github.com/lucatume/wp-browser-commons.git", + "reference": "bc979467dfa6945032c73ab39143aa5a331d298e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lucatume/wp-browser-commons/zipball/bc979467dfa6945032c73ab39143aa5a331d298e", + "reference": "bc979467dfa6945032c73ab39143aa5a331d298e", + "shasum": "" + }, + "require": { + "bacon/bacon-string-utils": "~1.0", + "codeception/codeception": "~2.1", + "dg/mysql-dump": "^1.3", + "mikemclin/laravel-wp-password": "~2.0.0", + "php": ">=5.4.0", + "symfony/filesystem": "^2.7", + "xamin/handlebars.php": "~0.10" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6" + }, + "type": "library", + "autoload": { + "psr-4": { + "tad\\": "src\\tad" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL v2.0" + ], + "authors": [ + { + "name": "Luca Tumedei", + "email": "luca@theaveragedev.com" + } + ], + "description": "Common libraries of the WP-Browser package.", + "time": "2017-01-25T18:09:43+00:00" + }, + { + "name": "mikemclin/laravel-wp-password", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/mikemclin/laravel-wp-password.git", + "reference": "3460f1e38dea501c5d0cbe9bff67d043f6821724" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mikemclin/laravel-wp-password/zipball/3460f1e38dea501c5d0cbe9bff67d043f6821724", + "reference": "3460f1e38dea501c5d0cbe9bff67d043f6821724", + "shasum": "" + }, + "require": { + "hautelook/phpass": "0.3.3", + "illuminate/support": ">=4.0.0", + "php": ">=5.3.0" + }, + "replace": { + "mikemclin/laravel-wp-password": "self.version" + }, + "require-dev": { + "mockery/mockery": "~0.9", + "phpunit/phpunit": "~4.0", + "satooshi/php-coveralls": "dev-master" + }, + "type": "laravel-package", + "autoload": { + "psr-4": { + "MikeMcLin\\WpPassword\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike McLin", + "email": "mike@mikemclin.com", + "homepage": "http://mikemclin.net" + } + ], + "description": "Laravel package that checks and creates WordPress password hashes", + "homepage": "https://github.com/mikemclin/laravel-wp-password", + "keywords": [ + "hashing", + "laravel", + "password", + "wordpress" + ], + "time": "2015-02-12T03:09:57+00:00" + }, + { + "name": "mustache/mustache", + "version": "v2.12.0", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/mustache.php.git", + "reference": "fe8fe72e9d580591854de404cc59a1b83ca4d19e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/mustache.php/zipball/fe8fe72e9d580591854de404cc59a1b83ca4d19e", + "reference": "fe8fe72e9d580591854de404cc59a1b83ca4d19e", + "shasum": "" + }, + "require": { + "php": ">=5.2.4" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~1.11", + "phpunit/phpunit": "~3.7|~4.0|~5.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "Mustache": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "A Mustache implementation in PHP.", + "homepage": "https://github.com/bobthecow/mustache.php", + "keywords": [ + "mustache", + "templating" + ], + "time": "2017-07-11T12:54:05+00:00" + }, + { + "name": "mustangostang/spyc", + "version": "0.6.2", + "source": { + "type": "git", + "url": "https://github.com/mustangostang/spyc.git", + "reference": "23c35ae854d835f2d7bcc3e3ad743d7e57a8c14d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mustangostang/spyc/zipball/23c35ae854d835f2d7bcc3e3ad743d7e57a8c14d", + "reference": "23c35ae854d835f2d7bcc3e3ad743d7e57a8c14d", + "shasum": "" + }, + "require": { + "php": ">=5.3.1" + }, + "require-dev": { + "phpunit/phpunit": "4.3.*@dev" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.5.x-dev" + } + }, + "autoload": { + "files": [ + "Spyc.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "mustangostang", + "email": "vlad.andersen@gmail.com" + } + ], + "description": "A simple YAML loader/dumper class for PHP", + "homepage": "https://github.com/mustangostang/spyc/", + "keywords": [ + "spyc", + "yaml", + "yml" + ], + "time": "2017-02-24T16:06:33+00:00" + }, + { + "name": "nb/oxymel", + "version": "v0.1.0", + "source": { + "type": "git", + "url": "https://github.com/nb/oxymel.git", + "reference": "cbe626ef55d5c4cc9b5e6e3904b395861ea76e3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nb/oxymel/zipball/cbe626ef55d5c4cc9b5e6e3904b395861ea76e3c", + "reference": "cbe626ef55d5c4cc9b5e6e3904b395861ea76e3c", + "shasum": "" + }, + "require": { + "php": ">=5.2.4" + }, + "type": "library", + "autoload": { + "psr-0": { + "Oxymel": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nikolay Bachiyski", + "email": "nb@nikolay.bg", + "homepage": "http://extrapolate.me/" + } + ], + "description": "A sweet XML builder", + "homepage": "https://github.com/nb/oxymel", + "keywords": [ + "xml" + ], + "time": "2013-02-24T15:01:54+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v3.0.6", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "0808939f81c1347a3c8a82a5925385a08074b0f1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0808939f81c1347a3c8a82a5925385a08074b0f1", + "reference": "0808939f81c1347a3c8a82a5925385a08074b0f1", "shasum": "" }, "require": { @@ -2191,7 +3156,55 @@ "parser", "php" ], - "time": "2017-07-28T14:45:09+00:00" + "time": "2017-06-28T20:53:48+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v2.0.10", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/634bae8e911eefa89c1abfbf1b66da679ac8f54d", + "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "autoload": { + "files": [ + "lib/random.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "pseudorandom", + "random" + ], + "time": "2017-03-13T16:27:32+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -2249,22 +3262,22 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "3.2.2", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157" + "reference": "46f7e8bb075036c92695b15a1ddb6971c751e585" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/4aada1f93c72c35e22fb1383b47fee43b8f1d157", - "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/46f7e8bb075036c92695b15a1ddb6971c751e585", + "reference": "46f7e8bb075036c92695b15a1ddb6971c751e585", "shasum": "" }, "require": { "php": ">=5.5", "phpdocumentor/reflection-common": "^1.0@dev", - "phpdocumentor/type-resolver": "^0.3.0", + "phpdocumentor/type-resolver": "^0.4.0", "webmozart/assert": "^1.0" }, "require-dev": { @@ -2290,20 +3303,20 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2017-08-08T06:39:58+00:00" + "time": "2017-07-15T11:38:20+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "0.3.0", + "version": "0.4.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773" + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fb3933512008d8162b3cdf9e18dba9309b7c3773", - "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", "shasum": "" }, "require": { @@ -2337,7 +3350,7 @@ "email": "me@mikevanriel.com" } ], - "time": "2017-06-03T08:32:36+00:00" + "time": "2017-07-14T14:27:02+00:00" }, { "name": "phpspec/prophecy", @@ -2404,40 +3417,39 @@ }, { "name": "phpunit/php-code-coverage", - "version": "4.0.8", + "version": "2.2.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" + "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", - "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", + "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": "^5.6 || ^7.0", - "phpunit/php-file-iterator": "^1.3", - "phpunit/php-text-template": "^1.2", - "phpunit/php-token-stream": "^1.4.2 || ^2.0", - "sebastian/code-unit-reverse-lookup": "^1.0", - "sebastian/environment": "^1.3.2 || ^2.0", - "sebastian/version": "^1.0 || ^2.0" + "php": ">=5.3.3", + "phpunit/php-file-iterator": "~1.3", + "phpunit/php-text-template": "~1.2", + "phpunit/php-token-stream": "~1.3", + "sebastian/environment": "^1.3.2", + "sebastian/version": "~1.0" }, "require-dev": { - "ext-xdebug": "^2.1.4", - "phpunit/phpunit": "^5.7" + "ext-xdebug": ">=2.1.4", + "phpunit/phpunit": "~4" }, "suggest": { - "ext-xdebug": "^2.5.1" + "ext-dom": "*", + "ext-xdebug": ">=2.2.1", + "ext-xmlwriter": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0.x-dev" + "dev-master": "2.2.x-dev" } }, "autoload": { @@ -2463,7 +3475,7 @@ "testing", "xunit" ], - "time": "2017-04-02T07:44:40+00:00" + "time": "2015-10-06T15:47:00+00:00" }, { "name": "phpunit/php-file-iterator", @@ -2653,50 +3665,40 @@ }, { "name": "phpunit/phpunit", - "version": "5.7.21", + "version": "4.8.21", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "3b91adfb64264ddec5a2dee9851f354aa66327db" + "reference": "ea76b17bced0500a28098626b84eda12dbcf119c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3b91adfb64264ddec5a2dee9851f354aa66327db", - "reference": "3b91adfb64264ddec5a2dee9851f354aa66327db", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ea76b17bced0500a28098626b84eda12dbcf119c", + "reference": "ea76b17bced0500a28098626b84eda12dbcf119c", "shasum": "" }, "require": { "ext-dom": "*", "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "~1.3", - "php": "^5.6 || ^7.0", - "phpspec/prophecy": "^1.6.2", - "phpunit/php-code-coverage": "^4.0.4", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.3.3", + "phpspec/prophecy": "^1.3.1", + "phpunit/php-code-coverage": "~2.1", "phpunit/php-file-iterator": "~1.4", "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": "^1.0.6", - "phpunit/phpunit-mock-objects": "^3.2", - "sebastian/comparator": "^1.2.4", - "sebastian/diff": "^1.4.3", - "sebastian/environment": "^1.3.4 || ^2.0", - "sebastian/exporter": "~2.0", - "sebastian/global-state": "^1.1", - "sebastian/object-enumerator": "~2.0", - "sebastian/resource-operations": "~1.0", - "sebastian/version": "~1.0.3|~2.0", + "phpunit/php-timer": ">=1.0.6", + "phpunit/phpunit-mock-objects": "~2.3", + "sebastian/comparator": "~1.1", + "sebastian/diff": "~1.2", + "sebastian/environment": "~1.3", + "sebastian/exporter": "~1.2", + "sebastian/global-state": "~1.0", + "sebastian/version": "~1.0", "symfony/yaml": "~2.1|~3.0" }, - "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2" - }, - "require-dev": { - "ext-pdo": "*" - }, "suggest": { - "ext-xdebug": "*", "phpunit/php-invoker": "~1.1" }, "bin": [ @@ -2705,7 +3707,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.7.x-dev" + "dev-master": "4.8.x-dev" } }, "autoload": { @@ -2731,33 +3733,30 @@ "testing", "xunit" ], - "time": "2017-06-21T08:11:54+00:00" + "time": "2015-12-12T07:45:58+00:00" }, { "name": "phpunit/phpunit-mock-objects", - "version": "3.4.4", + "version": "2.3.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "a23b761686d50a560cc56233b9ecf49597cc9118" + "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118", - "reference": "a23b761686d50a560cc56233b9ecf49597cc9118", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", + "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", - "php": "^5.6 || ^7.0", - "phpunit/php-text-template": "^1.2", - "sebastian/exporter": "^1.2 || ^2.0" - }, - "conflict": { - "phpunit/phpunit": "<5.4.0" + "php": ">=5.3.3", + "phpunit/php-text-template": "~1.2", + "sebastian/exporter": "~1.2" }, "require-dev": { - "phpunit/phpunit": "^5.4" + "phpunit/phpunit": "~4.4" }, "suggest": { "ext-soap": "*" @@ -2765,7 +3764,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2.x-dev" + "dev-master": "2.3.x-dev" } }, "autoload": { @@ -2790,7 +3789,7 @@ "mock", "xunit" ], - "time": "2017-06-30T09:13:00+00:00" + "time": "2015-10-02T06:51:40+00:00" }, { "name": "psr/container", @@ -2938,6 +3937,51 @@ ], "time": "2016-10-10T12:19:37+00:00" }, + { + "name": "ramsey/array_column", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/ramsey/array_column.git", + "reference": "f8e52eb28e67eb50e613b451dd916abcf783c1db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/array_column/zipball/f8e52eb28e67eb50e613b451dd916abcf783c1db", + "reference": "f8e52eb28e67eb50e613b451dd916abcf783c1db", + "shasum": "" + }, + "require-dev": { + "jakub-onderka/php-parallel-lint": "0.8.*", + "phpunit/phpunit": "~4.5", + "satooshi/php-coveralls": "0.6.*", + "squizlabs/php_codesniffer": "~2.2" + }, + "type": "library", + "autoload": { + "files": [ + "src/array_column.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "homepage": "http://benramsey.com" + } + ], + "description": "Provides functionality for array_column() to projects using PHP earlier than version 5.5.", + "homepage": "https://github.com/ramsey/array_column", + "keywords": [ + "array", + "array_column", + "column" + ], + "time": "2015-03-20T22:07:39+00:00" + }, { "name": "raveren/kint", "version": "1.1", @@ -2991,49 +4035,53 @@ "time": "2017-01-15T14:23:43+00:00" }, { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "name": "rmccue/requests", + "version": "v1.7.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "url": "https://github.com/rmccue/Requests.git", + "reference": "87932f52ffad70504d93f04f15690cf16a089546" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/rmccue/Requests/zipball/87932f52ffad70504d93f04f15690cf16a089546", + "reference": "87932f52ffad70504d93f04f15690cf16a089546", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=5.2" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "requests/test-server": "dev-master" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-0": { + "Requests": "library/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "ISC" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Ryan McCue", + "homepage": "http://ryanmccue.info" } ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "description": "A HTTP library written in PHP, for human beings.", + "homepage": "http://github.com/rmccue/Requests", + "keywords": [ + "curl", + "fsockopen", + "http", + "idna", + "ipv6", + "iri", + "sockets" + ], + "time": "2016-10-13T00:11:37+00:00" }, { "name": "sebastian/comparator", @@ -3153,28 +4201,28 @@ }, { "name": "sebastian/environment", - "version": "2.0.0", + "version": "1.3.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" + "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", - "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea", + "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^5.3.3 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^5.0" + "phpunit/phpunit": "^4.8 || ^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { @@ -3199,25 +4247,25 @@ "environment", "hhvm" ], - "time": "2016-11-26T07:53:53+00:00" + "time": "2016-08-18T05:49:44+00:00" }, { "name": "sebastian/exporter", - "version": "2.0.0", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4" + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", - "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", "shasum": "" }, "require": { "php": ">=5.3.3", - "sebastian/recursion-context": "~2.0" + "sebastian/recursion-context": "~1.0" }, "require-dev": { "ext-mbstring": "*", @@ -3226,7 +4274,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { @@ -3266,7 +4314,7 @@ "export", "exporter" ], - "time": "2016-11-19T08:54:04+00:00" + "time": "2016-06-17T09:04:28+00:00" }, { "name": "sebastian/global-state", @@ -3319,64 +4367,18 @@ ], "time": "2015-10-12T03:26:01+00:00" }, - { - "name": "sebastian/object-enumerator", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7", - "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7", - "shasum": "" - }, - "require": { - "php": ">=5.6", - "sebastian/recursion-context": "~2.0" - }, - "require-dev": { - "phpunit/phpunit": "~5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-02-18T15:18:39+00:00" - }, { "name": "sebastian/recursion-context", - "version": "2.0.0", + "version": "1.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a" + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a", - "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7", + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7", "shasum": "" }, "require": { @@ -3388,7 +4390,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -3416,73 +4418,23 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2016-11-19T07:33:16+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "shasum": "" - }, - "require": { - "php": ">=5.6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2015-07-28T20:34:47+00:00" + "time": "2016-10-03T07:41:43+00:00" }, { "name": "sebastian/version", - "version": "2.0.1", + "version": "1.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", "shasum": "" }, - "require": { - "php": ">=5.6" - }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, "autoload": { "classmap": [ "src/" @@ -3501,7 +4453,148 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" + "time": "2015-06-21T13:59:46+00:00" + }, + { + "name": "seld/cli-prompt", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/cli-prompt.git", + "reference": "a19a7376a4689d4d94cab66ab4f3c816019ba8dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/cli-prompt/zipball/a19a7376a4689d4d94cab66ab4f3c816019ba8dd", + "reference": "a19a7376a4689d4d94cab66ab4f3c816019ba8dd", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\CliPrompt\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "Allows you to prompt for user input on the command line, and optionally hide the characters they type", + "keywords": [ + "cli", + "console", + "hidden", + "input", + "prompt" + ], + "time": "2017-03-18T11:32:45+00:00" + }, + { + "name": "seld/jsonlint", + "version": "1.6.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "50d63f2858d87c4738d5b76a7dcbb99fa8cf7c77" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/50d63f2858d87c4738d5b76a7dcbb99fa8cf7c77", + "reference": "50d63f2858d87c4738d5b76a7dcbb99fa8cf7c77", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.5" + }, + "bin": [ + "bin/jsonlint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Seld\\JsonLint\\": "src/Seld/JsonLint/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], + "time": "2017-06-18T15:11:04+00:00" + }, + { + "name": "seld/phar-utils", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/phar-utils.git", + "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/7009b5139491975ef6486545a39f3e6dad5ac30a", + "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\PharUtils\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "PHAR file format utilities, for when PHP phars you up", + "keywords": [ + "phra" + ], + "time": "2015-10-13T18:44:15+00:00" }, { "name": "simplyadmire/composer-plugins", @@ -3681,7 +4774,7 @@ }, { "name": "symfony/browser-kit", - "version": "v3.3.6", + "version": "v3.3.5", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", @@ -3738,30 +4831,24 @@ }, { "name": "symfony/config", - "version": "v3.3.6", + "version": "v2.8.25", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "54ee12b0dd60f294132cabae6f5da9573d2e5297" + "reference": "0b8541d18507d10204a08384640ff6df3c739ebe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/54ee12b0dd60f294132cabae6f5da9573d2e5297", - "reference": "54ee12b0dd60f294132cabae6f5da9573d2e5297", + "url": "https://api.github.com/repos/symfony/config/zipball/0b8541d18507d10204a08384640ff6df3c739ebe", + "reference": "0b8541d18507d10204a08384640ff6df3c739ebe", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/filesystem": "~2.8|~3.0" - }, - "conflict": { - "symfony/dependency-injection": "<3.3", - "symfony/finder": "<3.3" + "php": ">=5.3.9", + "symfony/filesystem": "~2.3|~3.0.0" }, "require-dev": { - "symfony/dependency-injection": "~3.3", - "symfony/finder": "~3.3", - "symfony/yaml": "~3.0" + "symfony/yaml": "~2.7|~3.0.0" }, "suggest": { "symfony/yaml": "To use the yaml reference dumper" @@ -3769,7 +4856,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "2.8-dev" } }, "autoload": { @@ -3796,49 +4883,41 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2017-07-19T07:37:29+00:00" + "time": "2017-04-12T14:07:15+00:00" }, { "name": "symfony/console", - "version": "v3.3.6", + "version": "v2.8.25", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "b0878233cb5c4391347e5495089c7af11b8e6201" + "reference": "46e65f8d98c9ab629bbfcc16a4ff023f61c37fb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/b0878233cb5c4391347e5495089c7af11b8e6201", - "reference": "b0878233cb5c4391347e5495089c7af11b8e6201", + "url": "https://api.github.com/repos/symfony/console/zipball/46e65f8d98c9ab629bbfcc16a4ff023f61c37fb2", + "reference": "46e65f8d98c9ab629bbfcc16a4ff023f61c37fb2", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/debug": "~2.8|~3.0", + "php": ">=5.3.9", + "symfony/debug": "^2.7.2|~3.0.0", "symfony/polyfill-mbstring": "~1.0" }, - "conflict": { - "symfony/dependency-injection": "<3.3" - }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~3.3", - "symfony/dependency-injection": "~3.3", - "symfony/event-dispatcher": "~2.8|~3.0", - "symfony/filesystem": "~2.8|~3.0", - "symfony/http-kernel": "~2.8|~3.0", - "symfony/process": "~2.8|~3.0" + "symfony/event-dispatcher": "~2.1|~3.0.0", + "symfony/process": "~2.1|~3.0.0" }, "suggest": { "psr/log": "For using the console logger", "symfony/event-dispatcher": "", - "symfony/filesystem": "", "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "2.8-dev" } }, "autoload": { @@ -3865,11 +4944,11 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2017-07-29T21:27:59+00:00" + "time": "2017-07-03T08:04:30+00:00" }, { "name": "symfony/css-selector", - "version": "v3.3.6", + "version": "v3.3.5", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", @@ -3922,16 +5001,16 @@ }, { "name": "symfony/debug", - "version": "v3.3.6", + "version": "v3.0.9", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "7c13ae8ce1e2adbbd574fc39de7be498e1284e13" + "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/7c13ae8ce1e2adbbd574fc39de7be498e1284e13", - "reference": "7c13ae8ce1e2adbbd574fc39de7be498e1284e13", + "url": "https://api.github.com/repos/symfony/debug/zipball/697c527acd9ea1b2d3efac34d9806bf255278b0a", + "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a", "shasum": "" }, "require": { @@ -3942,12 +5021,13 @@ "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" }, "require-dev": { + "symfony/class-loader": "~2.8|~3.0", "symfony/http-kernel": "~2.8|~3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -3974,11 +5054,74 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2017-07-28T15:27:31+00:00" + "time": "2016-07-30T07:22:48+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v2.8.25", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "db8bdcfc6f54c6968756f31c8a9ea77ac10d08d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/db8bdcfc6f54c6968756f31c8a9ea77ac10d08d7", + "reference": "db8bdcfc6f54c6968756f31c8a9ea77ac10d08d7", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "conflict": { + "symfony/expression-language": "<2.6" + }, + "require-dev": { + "symfony/config": "~2.2|~3.0.0", + "symfony/expression-language": "~2.6|~3.0.0", + "symfony/yaml": "~2.3.42|~2.7.14|~2.8.7|~3.0.7" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DependencyInjection Component", + "homepage": "https://symfony.com", + "time": "2017-07-17T14:02:19+00:00" }, { "name": "symfony/dom-crawler", - "version": "v3.3.6", + "version": "v3.3.5", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", @@ -4034,30 +5177,27 @@ }, { "name": "symfony/event-dispatcher", - "version": "v3.3.6", + "version": "v2.8.25", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "67535f1e3fd662bdc68d7ba317c93eecd973617e" + "reference": "1377400fd641d7d1935981546aaef780ecd5bf6d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/67535f1e3fd662bdc68d7ba317c93eecd973617e", - "reference": "67535f1e3fd662bdc68d7ba317c93eecd973617e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1377400fd641d7d1935981546aaef780ecd5bf6d", + "reference": "1377400fd641d7d1935981546aaef780ecd5bf6d", "shasum": "" }, "require": { - "php": ">=5.5.9" - }, - "conflict": { - "symfony/dependency-injection": "<3.3" + "php": ">=5.3.9" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0", - "symfony/dependency-injection": "~3.3", - "symfony/expression-language": "~2.8|~3.0", - "symfony/stopwatch": "~2.8|~3.0" + "symfony/config": "^2.0.5|~3.0.0", + "symfony/dependency-injection": "~2.6|~3.0.0", + "symfony/expression-language": "~2.6|~3.0.0", + "symfony/stopwatch": "~2.3|~3.0.0" }, "suggest": { "symfony/dependency-injection": "", @@ -4066,7 +5206,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "2.8-dev" } }, "autoload": { @@ -4093,11 +5233,11 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2017-06-09T14:53:08+00:00" + "time": "2017-06-02T07:47:27+00:00" }, { "name": "symfony/filesystem", - "version": "v2.8.26", + "version": "v2.8.25", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", @@ -4146,25 +5286,25 @@ }, { "name": "symfony/finder", - "version": "v3.3.6", + "version": "v2.8.25", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "baea7f66d30854ad32988c11a09d7ffd485810c4" + "reference": "4f4e84811004e065a3bb5ceeb1d9aa592630f9ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/baea7f66d30854ad32988c11a09d7ffd485810c4", - "reference": "baea7f66d30854ad32988c11a09d7ffd485810c4", + "url": "https://api.github.com/repos/symfony/finder/zipball/4f4e84811004e065a3bb5ceeb1d9aa592630f9ad", + "reference": "4f4e84811004e065a3bb5ceeb1d9aa592630f9ad", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.3.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "2.8-dev" } }, "autoload": { @@ -4191,68 +5331,94 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2017-06-01T21:01:25+00:00" + "time": "2017-06-01T20:52:29+00:00" }, { "name": "symfony/form", - "version": "2.0.6", - "target-dir": "Symfony/Component/Form", + "version": "v2.8.17", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "a229cc023d71b15c23de2c52d3686601f957e884" + "reference": "724b4a84b3b81800fde85703749ac2b8fc84c651" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/a229cc023d71b15c23de2c52d3686601f957e884", - "reference": "a229cc023d71b15c23de2c52d3686601f957e884", + "url": "https://api.github.com/repos/symfony/form/zipball/724b4a84b3b81800fde85703749ac2b8fc84c651", + "reference": "724b4a84b3b81800fde85703749ac2b8fc84c651", "shasum": "" }, "require": { - "php": ">=5.3.2", - "symfony/event-dispatcher": ">=2.0", - "symfony/locale": ">=2.0", - "symfony/validator": ">=2.0" + "php": ">=5.3.9", + "symfony/event-dispatcher": "~2.1|~3.0.0", + "symfony/intl": "~2.4|~3.0.0", + "symfony/options-resolver": "~2.6", + "symfony/polyfill-mbstring": "~1.0", + "symfony/property-access": "~2.3|~3.0.0" + }, + "conflict": { + "symfony/doctrine-bridge": "<2.7", + "symfony/framework-bundle": "<2.7", + "symfony/twig-bridge": "<2.7" + }, + "require-dev": { + "doctrine/collections": "~1.0", + "symfony/dependency-injection": "~2.3|~3.0.0", + "symfony/http-foundation": "~2.2|~3.0.0", + "symfony/http-kernel": "~2.4|~3.0.0", + "symfony/security-csrf": "~2.4|~3.0.0", + "symfony/translation": "~2.0,>=2.0.5|~3.0.0", + "symfony/validator": "~2.8|~3.0.0" }, "suggest": { - "symfony/http-foundation": ">=2.0" + "symfony/framework-bundle": "For templating with PHP.", + "symfony/security-csrf": "For protecting forms against CSRF attacks.", + "symfony/twig-bridge": "For templating with Twig.", + "symfony/validator": "For form validation." }, "type": "library", - "autoload": { - "psr-0": { - "Symfony\\Component\\Form": "" + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" } }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Form\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony Form Component", - "homepage": "http://symfony.com", - "time": "2011-11-11T23:58:46+00:00" + "homepage": "https://symfony.com", + "time": "2017-02-06T12:27:13+00:00" }, { "name": "symfony/intl", - "version": "v3.2.13", + "version": "v3.0.9", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "801796ace3769266cc9e8380fc65707249096a39" + "reference": "d360e43fe5a17a75983a473c3acafaf45fd25cd6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/801796ace3769266cc9e8380fc65707249096a39", - "reference": "801796ace3769266cc9e8380fc65707249096a39", + "url": "https://api.github.com/repos/symfony/intl/zipball/d360e43fe5a17a75983a473c3acafaf45fd25cd6", + "reference": "d360e43fe5a17a75983a473c3acafaf45fd25cd6", "shasum": "" }, "require": { @@ -4268,7 +5434,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4314,25 +5480,24 @@ "l10n", "localization" ], - "time": "2017-06-01T21:00:24+00:00" + "time": "2016-07-30T07:22:48+00:00" }, { - "name": "symfony/locale", - "version": "v2.8.26", + "name": "symfony/options-resolver", + "version": "v2.8.25", "source": { "type": "git", - "url": "https://github.com/symfony/locale.git", - "reference": "e559a9f99d87e64a37fde2c6fc3f2b79d7a3e7e4" + "url": "https://github.com/symfony/options-resolver.git", + "reference": "55bf349a3395afad81a369d57b3b99c373fbbdf5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/locale/zipball/e559a9f99d87e64a37fde2c6fc3f2b79d7a3e7e4", - "reference": "e559a9f99d87e64a37fde2c6fc3f2b79d7a3e7e4", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/55bf349a3395afad81a369d57b3b99c373fbbdf5", + "reference": "55bf349a3395afad81a369d57b3b99c373fbbdf5", "shasum": "" }, "require": { - "php": ">=5.3.9", - "symfony/intl": "~2.7.25|^2.8.18|~3.2.5" + "php": ">=5.3.9" }, "type": "library", "extra": { @@ -4342,7 +5507,7 @@ }, "autoload": { "psr-4": { - "Symfony\\Component\\Locale\\": "" + "Symfony\\Component\\OptionsResolver\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -4362,9 +5527,13 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Locale Component", + "description": "Symfony OptionsResolver Component", "homepage": "https://symfony.com", - "abandoned": "symfony/intl", + "keywords": [ + "config", + "configuration", + "options" + ], "time": "2017-04-12T14:07:15+00:00" }, { @@ -4427,25 +5596,25 @@ }, { "name": "symfony/process", - "version": "v3.3.6", + "version": "v2.8.25", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "07432804942b9f6dd7b7377faf9920af5f95d70a" + "reference": "57e52a0a6a80ea0aec4fc1b785a7920a95cb88a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/07432804942b9f6dd7b7377faf9920af5f95d70a", - "reference": "07432804942b9f6dd7b7377faf9920af5f95d70a", + "url": "https://api.github.com/repos/symfony/process/zipball/57e52a0a6a80ea0aec4fc1b785a7920a95cb88a8", + "reference": "57e52a0a6a80ea0aec4fc1b785a7920a95cb88a8", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.3.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "2.8-dev" } }, "autoload": { @@ -4472,11 +5641,71 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2017-07-13T13:05:09+00:00" + "time": "2017-07-03T08:04:30+00:00" + }, + { + "name": "symfony/property-access", + "version": "v3.0.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "a4f1a668d0a269a65790f07d9ab2a97dd060fccb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/a4f1a668d0a269a65790f07d9ab2a97dd060fccb", + "reference": "a4f1a668d0a269a65790f07d9ab2a97dd060fccb", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyAccess\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony PropertyAccess Component", + "homepage": "https://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property path", + "reflection" + ], + "time": "2016-07-30T07:22:48+00:00" }, { "name": "symfony/routing", - "version": "v2.8.26", + "version": "v2.8.25", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", @@ -4630,112 +5859,27 @@ "homepage": "https://symfony.com", "time": "2017-06-06T02:49:00+00:00" }, - { - "name": "symfony/validator", - "version": "v3.3.6", - "source": { - "type": "git", - "url": "https://github.com/symfony/validator.git", - "reference": "d511c27987c93d71e32f348ebd74121939bdc2e8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/d511c27987c93d71e32f348ebd74121939bdc2e8", - "reference": "d511c27987c93d71e32f348ebd74121939bdc2e8", - "shasum": "" - }, - "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.0", - "symfony/translation": "~2.8|~3.0" - }, - "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/dependency-injection": "<3.3", - "symfony/yaml": "<3.3" - }, - "require-dev": { - "doctrine/annotations": "~1.0", - "doctrine/cache": "~1.0", - "egulias/email-validator": "^1.2.8|~2.0", - "symfony/cache": "~3.1", - "symfony/config": "~2.8|~3.0", - "symfony/dependency-injection": "~3.3", - "symfony/expression-language": "~2.8|~3.0", - "symfony/http-foundation": "~2.8|~3.0", - "symfony/intl": "^2.8.18|^3.2.5", - "symfony/yaml": "~3.3" - }, - "suggest": { - "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", - "doctrine/cache": "For using the default cached annotation reader and metadata cache.", - "egulias/email-validator": "Strict (RFC compliant) email validation", - "psr/cache-implementation": "For using the metadata cache.", - "symfony/config": "", - "symfony/expression-language": "For using the Expression validator", - "symfony/http-foundation": "", - "symfony/intl": "", - "symfony/yaml": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.3-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Validator\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Validator Component", - "homepage": "https://symfony.com", - "time": "2017-07-26T06:42:48+00:00" - }, { "name": "symfony/yaml", - "version": "v3.3.6", + "version": "v2.8.25", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "ddc23324e6cfe066f3dd34a37ff494fa80b617ed" + "reference": "4c29dec8d489c4e37cf87ccd7166cd0b0e6a45c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/ddc23324e6cfe066f3dd34a37ff494fa80b617ed", - "reference": "ddc23324e6cfe066f3dd34a37ff494fa80b617ed", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4c29dec8d489c4e37cf87ccd7166cd0b0e6a45c5", + "reference": "4c29dec8d489c4e37cf87ccd7166cd0b0e6a45c5", "shasum": "" }, "require": { - "php": ">=5.5.9" - }, - "require-dev": { - "symfony/console": "~2.8|~3.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" + "php": ">=5.3.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "2.8-dev" } }, "autoload": { @@ -4762,7 +5906,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2017-07-23T12:43:26+00:00" + "time": "2017-06-01T20:52:29+00:00" }, { "name": "twig/extensions", @@ -5012,6 +6156,164 @@ "standards" ], "time": "2017-07-15T23:03:53+00:00" + }, + { + "name": "wp-cli/php-cli-tools", + "version": "v0.11.3", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/php-cli-tools.git", + "reference": "09075e5a5ba804df43e148f887cbf4466bebfa2c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/php-cli-tools/zipball/09075e5a5ba804df43e148f887cbf4466bebfa2c", + "reference": "09075e5a5ba804df43e148f887cbf4466bebfa2c", + "shasum": "" + }, + "require": { + "php": ">= 5.3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "cli": "lib/" + }, + "files": [ + "lib/cli/cli.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "James Logsdon", + "email": "jlogsdon@php.net", + "role": "Developer" + }, + { + "name": "Daniel Bachhuber", + "email": "daniel@handbuilt.co", + "role": "Maintainer" + } + ], + "description": "Console utilities for PHP", + "homepage": "http://github.com/wp-cli/php-cli-tools", + "keywords": [ + "cli", + "console" + ], + "time": "2017-06-08T12:06:09+00:00" + }, + { + "name": "wp-cli/wp-cli", + "version": "v0.24.1", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/wp-cli.git", + "reference": "97424dc18431a2d4d10e590157b57b9ea4a88da4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/97424dc18431a2d4d10e590157b57b9ea4a88da4", + "reference": "97424dc18431a2d4d10e590157b57b9ea4a88da4", + "shasum": "" + }, + "require": { + "composer/composer": "^1.0.0", + "composer/semver": "~1.0", + "mustache/mustache": "~2.4", + "mustangostang/spyc": "~0.5", + "nb/oxymel": "~0.1.0", + "php": ">=5.3.29", + "ramsey/array_column": "~1.1", + "rmccue/requests": "~1.6", + "symfony/config": "~2.7", + "symfony/console": "~2.7", + "symfony/dependency-injection": "~2.7", + "symfony/event-dispatcher": "~2.7", + "symfony/filesystem": "~2.7", + "symfony/finder": "~2.7", + "symfony/process": "~2.1", + "symfony/translation": "~2.7", + "symfony/yaml": "~2.7", + "wp-cli/php-cli-tools": "~0.11.1" + }, + "require-dev": { + "behat/behat": "2.5.*", + "phpunit/phpunit": "3.7.*" + }, + "suggest": { + "psy/psysh": "Enhanced `wp shell` functionality" + }, + "bin": [ + "bin/wp.bat", + "bin/wp" + ], + "type": "library", + "autoload": { + "psr-0": { + "WP_CLI": "php" + }, + "classmap": [ + "php/export" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A command line interface for WordPress", + "homepage": "http://wp-cli.org", + "keywords": [ + "cli", + "wordpress" + ], + "time": "2016-08-09T13:25:56+00:00" + }, + { + "name": "xamin/handlebars.php", + "version": "v0.10.4", + "source": { + "type": "git", + "url": "https://github.com/XaminProject/handlebars.php.git", + "reference": "b85cee07eae96db0e1eec224ca90f5ce1e4d857a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/XaminProject/handlebars.php/zipball/b85cee07eae96db0e1eec224ca90f5ce1e4d857a", + "reference": "b85cee07eae96db0e1eec224ca90f5ce1e4d857a", + "shasum": "" + }, + "require-dev": { + "phpunit/phpunit": "~4.4", + "squizlabs/php_codesniffer": "~1.5" + }, + "type": "library", + "autoload": { + "psr-0": { + "Handlebars": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "fzerorubigd", + "email": "fzerorubigd@gmail.com" + }, + { + "name": "Behrooz Shabani (everplays)", + "email": "everplays@gmail.com" + } + ], + "description": "Handlebars processor for php", + "homepage": "https://github.com/XaminProject/handlebars.php", + "time": "2016-12-12T13:51:02+00:00" } ], "aliases": [], diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000000..36a5627a0d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,58 @@ +version: '2.1' + +services: + codeception: + build: . + depends_on: + - wordpress + volumes: + - ./:/project + - wp-core:/wp-core + - ./:/wp-core/wp-content/plugins/mailpoet + entrypoint: /docker-entrypoint.sh + + wordpress: + build: ./tests/wordpressDockerfile + image: wordpress:latest + depends_on: + mysql: + condition: service_healthy + chrome: + condition: service_healthy + volumes: + - wp-core:/var/www/html + - ./:/var/www/html/wp-content/plugins/mailpoet + ports: + - 8080:80 + environment: + WORDPRESS_DB_PASSWORD: wordpress + + mysql: + image: mysql:5.6 + environment: + MYSQL_ROOT_PASSWORD: wordpress + MYSQL_DATABASE: wordpress + MYSQL_USER: wordpress + MYSQL_PASSWORD: wordpress + healthcheck: + test: "mysql -uwordpress -pwordpress -e 'SELECT 1'" + interval: 30s + timeout: 10s + retries: 5 + + chrome: + environment: + - DBUS_SESSION_BUS_ADDRESS=/dev/null + volumes: + - /dev/shm:/dev/shm + image: selenium/standalone-chrome-debug + ports: + - '4444' + - '5900:5900' + healthcheck: + test: "wget -O/dev/null http://localhost:4444" + interval: 30s + timeout: 10s + retries: 5 +volumes: + wp-core: \ No newline at end of file diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100644 index 0000000000..c6349ee9bf --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Allows WP CLI to run with the right permissions. +wp-su() { + sudo -E -u www-data wp "$@" +} + +# Make sure permissions are correct. +cd /wp-core +chown www-data:www-data wp-content/plugins +chmod 755 wp-content/plugins + +# Make sure WordPress is installed. +if ! $(wp-su core is-installed); then + + echo "Installing WordPress" + + wp-su core install --url=wordpress --title=tests --admin_user=admin --admin_email=test@test.com + + echo "Configuring WordPress" + # The development version of Gravity Flow requires SCRIPT_DEBUG + wp-su core config --dbhost=mysql --dbname=wordpress --dbuser=wordpress --dbpass=wordpress --extra-php="define( 'SCRIPT_DEBUG', true );" --force + +fi + +cd /wp-core/wp-content/plugins/mailpoet + +/repo/vendor/bin/codecept run acceptance -c codeception.acceptance.yml $@ \ No newline at end of file diff --git a/tests/_support/AcceptanceTester.php b/tests/_support/AcceptanceTester.php index 33c834bc23..cb07c984a5 100644 --- a/tests/_support/AcceptanceTester.php +++ b/tests/_support/AcceptanceTester.php @@ -29,4 +29,29 @@ class AcceptanceTester extends \Codeception\Actor { $this->click('Log In'); $this->saveSessionSnapshot('login'); } + + /** + * Define custom actions here + */ + public function logOut() { + $I = $this; + $I->amOnPage('/wp-login.php?action=logout'); + $I->click('log out'); + $I->wait(1); + } + + /** + * Navigate to the specified Mailpoet page in the admin. + * + * @param string $page The page to visit e.g. Inbox or Status + */ + public function amOnMailpoetPage($page) { + $I = $this; + $I->amOnPage('/wp-admin'); + $I->click('MailPoet'); + $I->waitForText($page, 3); + $I->click($page); + $I->waitForText($page, 3); + } + } diff --git a/tests/acceptance.suite.yml b/tests/acceptance.suite.yml new file mode 100644 index 0000000000..8e3043e92d --- /dev/null +++ b/tests/acceptance.suite.yml @@ -0,0 +1,6 @@ +actor: AcceptanceTester +modules: + enabled: + - \Helper\Acceptance + - WPLoader + - WPWebDriver \ No newline at end of file diff --git a/tests/acceptance/NewsletterListingCept.php b/tests/acceptance/NewsletterListingCept.php new file mode 100644 index 0000000000..8fdc7efcee --- /dev/null +++ b/tests/acceptance/NewsletterListingCept.php @@ -0,0 +1,15 @@ +wantTo('Open newsletters page'); + +$I->loginAsAdmin(); +$I->seeInCurrentUrl('/wp-admin/'); +// Go to Status +$I->amOnMailpoetPage('Emails'); +$I->waitForElement('#newsletters_container', 3); diff --git a/tests/acceptance/_bootstrap.php b/tests/acceptance/_bootstrap.php new file mode 100644 index 0000000000..b3d9bbc7f3 --- /dev/null +++ b/tests/acceptance/_bootstrap.php @@ -0,0 +1 @@ +> /usr/local/etc/php/php.ini && \ + mkdir -p /var/www/html/wp-content/uploads/mailpoet/cache && \ + chmod 777 /var/www/html/wp-content/uploads/mailpoet/cache \ No newline at end of file