From 41ec6d4a5471709d6e7e5941fb3058bb28e89fe6 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 20:31:10 -0500 Subject: [PATCH 01/83] Circle 2.0 config --- .circleci/config.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..5b148ba --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,26 @@ +version: 2 +# https://circleci.com/docs/configuration#machine +jobs: + build: + docker: + - image: notnoopci/php:7.1.5-browsers + working_directory: ~/pantheon_advanced_page_cache + environment: + + BASH_ENV: ~/.bashrc + TZ: "/usr/share/zoneinfo/America/Los_Angeles" + + steps: + - run: + name: install-terminus + command: composer --working-dir=$HOME require pantheon-systems/terminus "^1" + - run: $HOME/vendor/bin/terminus --version + - run: + name: create-terminus-directory + command: mkdir -p ~/.terminus/plugins + - run: + name: install-terminus-plugins + command: composer create-project -n -d ~/.terminus/plugins pantheon-systems/terminus-composer:^1 + - run: + name: login-pantheon + command: $HOME/vendor/bin/terminus auth:login -n --machine-token="$TERMINUS_TOKEN" From 78716056d388bd1ac0fdf55b0be3750c59a41305 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 20:33:34 -0500 Subject: [PATCH 02/83] terminus composer plugin fix --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5b148ba..dbb5114 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -20,7 +20,7 @@ jobs: command: mkdir -p ~/.terminus/plugins - run: name: install-terminus-plugins - command: composer create-project -n -d ~/.terminus/plugins pantheon-systems/terminus-composer:^1 + command: composer create-project -n -d ~/.terminus/plugins pantheon-systems/terminus-composer-plugin:^1 - run: name: login-pantheon command: $HOME/vendor/bin/terminus auth:login -n --machine-token="$TERMINUS_TOKEN" From df303fc04d04bca39c2e1a5b4baae384e14818ff Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 20:46:16 -0500 Subject: [PATCH 03/83] adding Dockerfile --- .circleci/images/primary/Dockerfile | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .circleci/images/primary/Dockerfile diff --git a/.circleci/images/primary/Dockerfile b/.circleci/images/primary/Dockerfile new file mode 100644 index 0000000..bba4abe --- /dev/null +++ b/.circleci/images/primary/Dockerfile @@ -0,0 +1,5 @@ +FROM circleci/php:7.1-node-browsers + +RUN composer --working-dir=$HOME require pantheon-systems/terminus "^1" +RUN mkdir -p ~/.terminus/plugins +RUN composer create-project -n -d ~/.terminus/plugins pantheon-systems/terminus-composer-plugin:^1 From 5a299fdd85af4c55def01a1f835970e65e3f8418 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 20:48:51 -0500 Subject: [PATCH 04/83] whitespace change --- .circleci/images/primary/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/images/primary/Dockerfile b/.circleci/images/primary/Dockerfile index bba4abe..860591e 100644 --- a/.circleci/images/primary/Dockerfile +++ b/.circleci/images/primary/Dockerfile @@ -1,5 +1,5 @@ FROM circleci/php:7.1-node-browsers -RUN composer --working-dir=$HOME require pantheon-systems/terminus "^1" +RUN composer --working-dir=$HOME require pantheon-systems/terminus "^1" RUN mkdir -p ~/.terminus/plugins RUN composer create-project -n -d ~/.terminus/plugins pantheon-systems/terminus-composer-plugin:^1 From 727b9342e237cd104841f1f9aa0a0b6c90ea01fa Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 21:24:53 -0500 Subject: [PATCH 05/83] changing parent --- .circleci/images/primary/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/images/primary/Dockerfile b/.circleci/images/primary/Dockerfile index 860591e..2cea43b 100644 --- a/.circleci/images/primary/Dockerfile +++ b/.circleci/images/primary/Dockerfile @@ -1,4 +1,4 @@ -FROM circleci/php:7.1-node-browsers +FROM drupaldocker/php:7.0-cli RUN composer --working-dir=$HOME require pantheon-systems/terminus "^1" RUN mkdir -p ~/.terminus/plugins From f255e9c3f6d3b8c54c43c4ecfd44aebc103b21ab Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 21:28:28 -0500 Subject: [PATCH 06/83] using dockerfile --- .circleci/config.yml | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index dbb5114..7bea672 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2 jobs: build: docker: - - image: notnoopci/php:7.1.5-browsers + - image: stevector/pantheon_advanced_page_cache working_directory: ~/pantheon_advanced_page_cache environment: @@ -11,16 +11,18 @@ jobs: TZ: "/usr/share/zoneinfo/America/Los_Angeles" steps: - - run: - name: install-terminus - command: composer --working-dir=$HOME require pantheon-systems/terminus "^1" - - run: $HOME/vendor/bin/terminus --version - - run: - name: create-terminus-directory - command: mkdir -p ~/.terminus/plugins - - run: - name: install-terminus-plugins - command: composer create-project -n -d ~/.terminus/plugins pantheon-systems/terminus-composer-plugin:^1 + - run: name: login-pantheon command: $HOME/vendor/bin/terminus auth:login -n --machine-token="$TERMINUS_TOKEN" + - run: + name: whoami + command: $HOME/vendor/bin/terminus auth:whoami + - run: + name: list + command: $HOME/vendor/bin/terminus list + + + # - run: + # name: login-pantheon + # command: terminus multidev:create $TERMINUS_SITE.asdf From 65c85e8cddfe83bbc68faf7a5b75846d38b23ab8 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 21:43:50 -0500 Subject: [PATCH 07/83] using dockerfile --- .circleci/images/primary/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.circleci/images/primary/Dockerfile b/.circleci/images/primary/Dockerfile index 2cea43b..bcacd4c 100644 --- a/.circleci/images/primary/Dockerfile +++ b/.circleci/images/primary/Dockerfile @@ -1,5 +1,7 @@ FROM drupaldocker/php:7.0-cli -RUN composer --working-dir=$HOME require pantheon-systems/terminus "^1" +RUN git clone https://github.com/pantheon-systems/terminus.git ~/terminus +RUN cd ~/terminus && composer install +RUN ln -s ~/terminus/bin/terminus /usr/local/bin/terminus RUN mkdir -p ~/.terminus/plugins RUN composer create-project -n -d ~/.terminus/plugins pantheon-systems/terminus-composer-plugin:^1 From 495ac31c40b880b58b76de30818ea8b7b798d236 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 21:51:12 -0500 Subject: [PATCH 08/83] using terminus directly --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7bea672..4da01ed 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,13 +14,13 @@ jobs: - run: name: login-pantheon - command: $HOME/vendor/bin/terminus auth:login -n --machine-token="$TERMINUS_TOKEN" + command: terminus auth:login -n --machine-token="$TERMINUS_TOKEN" - run: name: whoami - command: $HOME/vendor/bin/terminus auth:whoami + command: terminus auth:whoami - run: name: list - command: $HOME/vendor/bin/terminus list + command: terminus list # - run: From ebbef51bcb9b04e85f3fd41a1bc1bad9ef0c288d Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 21:59:00 -0500 Subject: [PATCH 09/83] Trying to make the multidev --- .circleci/config.yml | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4da01ed..14fbb18 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,15 +14,20 @@ jobs: - run: name: login-pantheon - command: terminus auth:login -n --machine-token="$TERMINUS_TOKEN" - - run: - name: whoami - command: terminus auth:whoami - - run: - name: list - command: terminus list - - - # - run: - # name: login-pantheon - # command: terminus multidev:create $TERMINUS_SITE.asdf + command: | + terminus auth:login -n --machine-token="$TERMINUS_TOKEN" + terminus auth:whoami + terminus list + - run: + name: make-multidev + command: | + terminus multidev:create ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} + terminus connection:set ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} sftp + - run: + name: Enable anonymous caching + command: terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- cset system.performance cache.page.max_age 600 -y + - run: + name: Composer require + command: | + terminus composer d8cdn.maxage -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git + terminus composer d8cdn.maxage -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 From ad0f9b50a04765e3cb731a77acb68c69e49b5162 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 21:59:22 -0500 Subject: [PATCH 10/83] Trying to make the multidev --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 14fbb18..c1ab1a0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -29,5 +29,5 @@ jobs: - run: name: Composer require command: | - terminus composer d8cdn.maxage -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git - terminus composer d8cdn.maxage -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 + terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git + terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 From 6bc193bb7f85b0982c2ba652e508e80f6cacea82 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 22:03:39 -0500 Subject: [PATCH 11/83] whitespace --- .circleci/config.yml | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c1ab1a0..e195e94 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -11,23 +11,22 @@ jobs: TZ: "/usr/share/zoneinfo/America/Los_Angeles" steps: - - run: name: login-pantheon command: | terminus auth:login -n --machine-token="$TERMINUS_TOKEN" terminus auth:whoami terminus list - - run: - name: make-multidev - command: | - terminus multidev:create ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} - terminus connection:set ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} sftp - - run: - name: Enable anonymous caching - command: terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- cset system.performance cache.page.max_age 600 -y - - run: - name: Composer require - command: | - terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git - terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 + - run: + name: make-multidev + command: | + terminus multidev:create ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} + terminus connection:set ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} sftp + - run: + name: Enable anonymous caching + command: terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- cset system.performance cache.page.max_age 600 -y + - run: + name: Composer require + command: | + terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git + terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 From 4c627bc4411f792b06084e68fd806bd8e0182ba3 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 22:04:57 -0500 Subject: [PATCH 12/83] fixing multidev creation --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e195e94..a34c415 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -20,7 +20,7 @@ jobs: - run: name: make-multidev command: | - terminus multidev:create ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} + terminus multidev:create ${TERMINUS_SITE}.dev ${CIRCLE_BUILD_NUM} --yes terminus connection:set ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} sftp - run: name: Enable anonymous caching From a60bc58f7fe7183be08e044d6522507e215588da Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 22:07:49 -0500 Subject: [PATCH 13/83] multi fix --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a34c415..d37a989 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,10 +17,11 @@ jobs: terminus auth:login -n --machine-token="$TERMINUS_TOKEN" terminus auth:whoami terminus list + echo ${CIRCLE_BUILD_NUM} - run: name: make-multidev command: | - terminus multidev:create ${TERMINUS_SITE}.dev ${CIRCLE_BUILD_NUM} --yes + terminus env:create $TERMINUS_SITE.dev ${CIRCLE_BUILD_NUM} terminus connection:set ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} sftp - run: name: Enable anonymous caching From b8aa796493600bb8d2fdb8f8b82e67fa73d288d3 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 22:09:47 -0500 Subject: [PATCH 14/83] multi fix --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index d37a989..774169b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,6 +9,7 @@ jobs: BASH_ENV: ~/.bashrc TZ: "/usr/share/zoneinfo/America/Los_Angeles" + TERMINUS_SITE: d8cdn steps: - run: From 9f0653d08ef95ee9db35e2842c7ce9253498b942 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 22:14:32 -0500 Subject: [PATCH 15/83] StrictHostKeyChecking no --- .circleci/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 774169b..3e431da 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -26,7 +26,9 @@ jobs: terminus connection:set ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} sftp - run: name: Enable anonymous caching - command: terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- cset system.performance cache.page.max_age 600 -y + command: | + echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config" + terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- cset system.performance cache.page.max_age 600 -y - run: name: Composer require command: | From f77b0fcc5b67468cdc8e849574bf2c25012fbcbe Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 22:18:08 -0500 Subject: [PATCH 16/83] StrictHostKeyChecking no --- .circleci/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3e431da..3558dea 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -22,12 +22,14 @@ jobs: - run: name: make-multidev command: | + mkdir HOME/.ssh + touch $HOME/.ssh/config + echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config" terminus env:create $TERMINUS_SITE.dev ${CIRCLE_BUILD_NUM} terminus connection:set ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} sftp - run: name: Enable anonymous caching command: | - echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config" terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- cset system.performance cache.page.max_age 600 -y - run: name: Composer require From 66bfcc7b0b9742378d0452c4c41976bc5a4c9cb4 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 22:19:10 -0500 Subject: [PATCH 17/83] StrictHostKeyChecking no --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3558dea..7e66657 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -22,7 +22,7 @@ jobs: - run: name: make-multidev command: | - mkdir HOME/.ssh + mkdir $HOME/.ssh touch $HOME/.ssh/config echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config" terminus env:create $TERMINUS_SITE.dev ${CIRCLE_BUILD_NUM} From a2efd2e6d2074de95ba8ae3a13f32fe68cab259c Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 28 Jun 2017 22:23:36 -0500 Subject: [PATCH 18/83] site install --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7e66657..af35d1a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -30,6 +30,7 @@ jobs: - run: name: Enable anonymous caching command: | + terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- site-install -y terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- cset system.performance cache.page.max_age 600 -y - run: name: Composer require From 6b7233b2a208ca0fabad829d6cc5d666fc41433f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 20:15:34 -0500 Subject: [PATCH 19/83] Adding composer install --- .circleci/config.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index af35d1a..d43d273 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -27,9 +27,6 @@ jobs: echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config" terminus env:create $TERMINUS_SITE.dev ${CIRCLE_BUILD_NUM} terminus connection:set ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} sftp - - run: - name: Enable anonymous caching - command: | terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- site-install -y terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- cset system.performance cache.page.max_age 600 -y - run: @@ -37,3 +34,10 @@ jobs: command: | terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 + - run: + name: Composer install + command: composer install + + + # Run PHP code sniff + # Run Behat tests From ca824d3b9d31a271325cfe50bc437d6bf43080d6 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 20:22:29 -0500 Subject: [PATCH 20/83] debugging composer install --- .circleci/config.yml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d43d273..b279783 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,13 +12,19 @@ jobs: TERMINUS_SITE: d8cdn steps: + - run: + name: Composer install + command: | + pwd + ls -al + composer install + - run: + name: PHP Code Sniff + command: - ./vendor/bin/phpcs --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal . --ignore=vendor - run: name: login-pantheon command: | terminus auth:login -n --machine-token="$TERMINUS_TOKEN" - terminus auth:whoami - terminus list - echo ${CIRCLE_BUILD_NUM} - run: name: make-multidev command: | @@ -34,9 +40,9 @@ jobs: command: | terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 - - run: - name: Composer install - command: composer install + + + # Run PHP code sniff From 6032f226b5a8de92bacb403960e128c7ebb405d4 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 20:24:19 -0500 Subject: [PATCH 21/83] debugging composer install --- .circleci/config.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b279783..1811edb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -16,11 +16,11 @@ jobs: name: Composer install command: | pwd - ls -al + ls composer install - - run: - name: PHP Code Sniff - command: - ./vendor/bin/phpcs --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal . --ignore=vendor + # - run: + # name: PHP Code Sniff + # command: - ./vendor/bin/phpcs --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal . --ignore=vendor - run: name: login-pantheon command: | From 2f9bc5ed81de3da2459426c01b2799c145ccdb77 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 20:43:21 -0500 Subject: [PATCH 22/83] Adding checkout step --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1811edb..1aa75f3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,6 +12,7 @@ jobs: TERMINUS_SITE: d8cdn steps: + - checkout - run: name: Composer install command: | From 2345a7f404c9a9f90c11cd20e48c95b2107e6c69 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 20:44:56 -0500 Subject: [PATCH 23/83] adding behat-pantheon.yml --- tests/behat/behat-pantheon.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 tests/behat/behat-pantheon.yml diff --git a/tests/behat/behat-pantheon.yml b/tests/behat/behat-pantheon.yml new file mode 100644 index 0000000..0b83576 --- /dev/null +++ b/tests/behat/behat-pantheon.yml @@ -0,0 +1,24 @@ +# +# behat.yml file for testing with a Drupal site on Pantheon. +# +default: + suites: + default: + paths: + - %paths.base%/features + contexts: + #- FeatureContext + - Drupal\DrupalExtension\Context\DrupalContext + - Drupal\DrupalExtension\Context\DrushContext + - Drupal\DrupalExtension\Context\MinkContext + extensions: + Behat\MinkExtension: + goutte: ~ +# Supplied by env variable. +# base_url: http://dev-d8cdn.pantheonsite.io/ + Drupal\DrupalExtension: + blackbox: ~ + api_driver: 'drush' + drush: +# Supplied by env variable. +# alias: '@pantheon.d8cdn.dev' From bdf66cb03003729cdf846d1356fccf2b3426c0bd Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 20:46:41 -0500 Subject: [PATCH 24/83] Set minimum stability --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 44a1a9e..f231a0e 100644 --- a/composer.json +++ b/composer.json @@ -12,5 +12,6 @@ "type": "composer", "url": "https://packages.drupal.org/8" } - } + }, + "minimum-stability": "dev" } From 6d52568df90cd24699ee155e9d4bd25bef30a40f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 20:49:07 -0500 Subject: [PATCH 25/83] PHPCS --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1aa75f3..b11e49e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -19,9 +19,9 @@ jobs: pwd ls composer install - # - run: - # name: PHP Code Sniff - # command: - ./vendor/bin/phpcs --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal . --ignore=vendor + - run: + name: PHP Code Sniff + command: - ./vendor/bin/phpcs --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal . --ignore=vendor - run: name: login-pantheon command: | From 353507cae09f7d56af8be0d097a5dff6da80b86b Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 20:49:52 -0500 Subject: [PATCH 26/83] node feature --- tests/behat/features/node.feature | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/behat/features/node.feature diff --git a/tests/behat/features/node.feature b/tests/behat/features/node.feature new file mode 100644 index 0000000..e69de29 From fa9dcefcfded5d70403b774e0ab104da8f3534b2 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 20:50:03 -0500 Subject: [PATCH 27/83] PHPCS --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b11e49e..d2a3a89 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -21,7 +21,7 @@ jobs: composer install - run: name: PHP Code Sniff - command: - ./vendor/bin/phpcs --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal . --ignore=vendor + command: ./vendor/bin/phpcs --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal . --ignore=vendor - run: name: login-pantheon command: | From 70dc6ad63dec5ca2db917cac7f299faa196c3928 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 21:32:28 -0500 Subject: [PATCH 28/83] gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4f95497 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/vendor +/drush From 4cb680f860f41b7e53943d17ac307840c631e845 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 21:33:08 -0500 Subject: [PATCH 29/83] code sniff fix --- composer.json | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index f231a0e..ffced47 100644 --- a/composer.json +++ b/composer.json @@ -2,16 +2,22 @@ "name": "drupal/pantheon_advanced_page_cache", "type": "drupal-module", "require-dev": { - "drupal/coder": "2.0-beta1", - "squizlabs/php_codesniffer": "2.0.*@dev", "drush-ops/behat-drush-endpoint": "*", "drupal/drupal-extension": "dev-master" }, + + + "scripts": { + "codesniff": "phpcs --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal src" + }, "repositories": { "drupal": { "type": "composer", "url": "https://packages.drupal.org/8" } }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "require": { + "drupal/coder": "^8.2" + } } From 74ae49cc119602d184f00d210561f62e7da1f185 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 21:33:19 -0500 Subject: [PATCH 30/83] Adding composer.lock --- composer.lock | 2162 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2162 insertions(+) create mode 100644 composer.lock diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..b8f83ea --- /dev/null +++ b/composer.lock @@ -0,0 +1,2162 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "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": "f707cd54ac71e093adfbc2b1401930b4", + "packages": [ + { + "name": "drupal/coder", + "version": "8.2.12", + "source": { + "type": "git", + "url": "https://github.com/klausi/coder.git", + "reference": "984c54a7b1e8f27ff1c32348df69712afd86b17f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/klausi/coder/zipball/984c54a7b1e8f27ff1c32348df69712afd86b17f", + "reference": "984c54a7b1e8f27ff1c32348df69712afd86b17f", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=5.4.0", + "squizlabs/php_codesniffer": ">=2.8.1 <3.0", + "symfony/yaml": ">=2.0.0" + }, + "require-dev": { + "phpunit/phpunit": ">=3.7 <6" + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "description": "Coder is a library to review Drupal code.", + "homepage": "https://www.drupal.org/project/coder", + "keywords": [ + "code review", + "phpcs", + "standards" + ], + "time": "2017-03-18T10:28:49+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "2.9.x-dev", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62", + "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "bin": [ + "scripts/phpcs", + "scripts/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "classmap": [ + "CodeSniffer.php", + "CodeSniffer/CLI.php", + "CodeSniffer/Exception.php", + "CodeSniffer/File.php", + "CodeSniffer/Fixer.php", + "CodeSniffer/Report.php", + "CodeSniffer/Reporting.php", + "CodeSniffer/Sniff.php", + "CodeSniffer/Tokens.php", + "CodeSniffer/Reports/", + "CodeSniffer/Tokenizers/", + "CodeSniffer/DocGenerators/", + "CodeSniffer/Standards/AbstractPatternSniff.php", + "CodeSniffer/Standards/AbstractScopeSniff.php", + "CodeSniffer/Standards/AbstractVariableSniff.php", + "CodeSniffer/Standards/IncorrectPatternException.php", + "CodeSniffer/Standards/Generic/Sniffs/", + "CodeSniffer/Standards/MySource/Sniffs/", + "CodeSniffer/Standards/PEAR/Sniffs/", + "CodeSniffer/Standards/PSR1/Sniffs/", + "CodeSniffer/Standards/PSR2/Sniffs/", + "CodeSniffer/Standards/Squiz/Sniffs/", + "CodeSniffer/Standards/Zend/Sniffs/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "http://www.squizlabs.com/php-codesniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2017-05-22 02:43:20" + }, + { + "name": "symfony/yaml", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "519fb0872bb41e0f0c221ead8945eb12197bb034" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/519fb0872bb41e0f0c221ead8945eb12197bb034", + "reference": "519fb0872bb41e0f0c221ead8945eb12197bb034", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "require-dev": { + "symfony/console": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "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 Yaml Component", + "homepage": "https://symfony.com", + "time": "2017-07-03 10:20:17" + } + ], + "packages-dev": [ + { + "name": "behat/behat", + "version": "v3.3.1", + "source": { + "type": "git", + "url": "https://github.com/Behat/Behat.git", + "reference": "44a58c1480d6144b2dc2c2bf02b9cef73c83840d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Behat/zipball/44a58c1480d6144b2dc2c2bf02b9cef73c83840d", + "reference": "44a58c1480d6144b2dc2c2bf02b9cef73c83840d", + "shasum": "" + }, + "require": { + "behat/gherkin": "^4.4.4", + "behat/transliterator": "^1.2", + "container-interop/container-interop": "^1.1", + "ext-mbstring": "*", + "php": ">=5.3.3", + "symfony/class-loader": "~2.1||~3.0", + "symfony/config": "~2.3||~3.0", + "symfony/console": "~2.5||~3.0", + "symfony/dependency-injection": "~2.1||~3.0", + "symfony/event-dispatcher": "~2.1||~3.0", + "symfony/translation": "~2.3||~3.0", + "symfony/yaml": "~2.1||~3.0" + }, + "require-dev": { + "herrera-io/box": "~1.6.1", + "phpunit/phpunit": "~4.5", + "symfony/process": "~2.5|~3.0" + }, + "suggest": { + "behat/mink-extension": "for integration with Mink testing framework", + "behat/symfony2-extension": "for integration with Symfony2 web framework", + "behat/yii-extension": "for integration with Yii web framework" + }, + "bin": [ + "bin/behat" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2.x-dev" + } + }, + "autoload": { + "psr-0": { + "Behat\\Behat": "src/", + "Behat\\Testwork": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Scenario-oriented BDD framework for PHP 5.3", + "homepage": "http://behat.org/", + "keywords": [ + "Agile", + "BDD", + "ScenarioBDD", + "Scrum", + "StoryBDD", + "User story", + "business", + "development", + "documentation", + "examples", + "symfony", + "testing" + ], + "time": "2017-05-15T16:49:16+00:00" + }, + { + "name": "behat/gherkin", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/Behat/Gherkin.git", + "reference": "5c14cff4f955b17d20d088dec1bde61c0539ec74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/5c14cff4f955b17d20d088dec1bde61c0539ec74", + "reference": "5c14cff4f955b17d20d088dec1bde61c0539ec74", + "shasum": "" + }, + "require": { + "php": ">=5.3.1" + }, + "require-dev": { + "phpunit/phpunit": "~4.5|~5", + "symfony/phpunit-bridge": "~2.7|~3", + "symfony/yaml": "~2.3|~3" + }, + "suggest": { + "symfony/yaml": "If you want to parse features, represented in YAML files" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-0": { + "Behat\\Gherkin": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Gherkin DSL parser for PHP 5.3", + "homepage": "http://behat.org/", + "keywords": [ + "BDD", + "Behat", + "Cucumber", + "DSL", + "gherkin", + "parser" + ], + "time": "2016-10-30 11:50:56" + }, + { + "name": "behat/mink", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/minkphp/Mink.git", + "reference": "9ea1cebe3dc529ba3861d87c818f045362c40484" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/Mink/zipball/9ea1cebe3dc529ba3861d87c818f045362c40484", + "reference": "9ea1cebe3dc529ba3861d87c818f045362c40484", + "shasum": "" + }, + "require": { + "php": ">=5.3.1", + "symfony/css-selector": "~2.1|~3.0" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7|~3.0" + }, + "suggest": { + "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)", + "behat/mink-goutte-driver": "fast headless driver for any app without JS emulation", + "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)", + "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Browser controller/emulator abstraction for PHP", + "homepage": "http://mink.behat.org/", + "keywords": [ + "browser", + "testing", + "web" + ], + "time": "2017-02-06 09:59:54" + }, + { + "name": "behat/mink-browserkit-driver", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/minkphp/MinkBrowserKitDriver.git", + "reference": "1c9c8ad8838af33448d10baa57658b4cb55f23d6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/1c9c8ad8838af33448d10baa57658b4cb55f23d6", + "reference": "1c9c8ad8838af33448d10baa57658b4cb55f23d6", + "shasum": "" + }, + "require": { + "behat/mink": "^1.7.1@dev", + "php": ">=5.3.6", + "symfony/browser-kit": "~2.3|~3.0", + "symfony/dom-crawler": "~2.3|~3.0" + }, + "require-dev": { + "mink/driver-testsuite": "dev-master", + "symfony/http-kernel": "~2.3|~3.0" + }, + "type": "mink-driver", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\Driver\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Symfony2 BrowserKit driver for Mink framework", + "homepage": "http://mink.behat.org/", + "keywords": [ + "Mink", + "Symfony2", + "browser", + "testing" + ], + "time": "2016-10-03 08:27:03" + }, + { + "name": "behat/mink-extension", + "version": "v2.2", + "source": { + "type": "git", + "url": "https://github.com/Behat/MinkExtension.git", + "reference": "5b4bda64ff456104564317e212c823e45cad9d59" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/MinkExtension/zipball/5b4bda64ff456104564317e212c823e45cad9d59", + "reference": "5b4bda64ff456104564317e212c823e45cad9d59", + "shasum": "" + }, + "require": { + "behat/behat": "~3.0,>=3.0.5", + "behat/mink": "~1.5", + "php": ">=5.3.2", + "symfony/config": "~2.2|~3.0" + }, + "require-dev": { + "behat/mink-goutte-driver": "~1.1", + "phpspec/phpspec": "~2.0" + }, + "type": "behat-extension", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "autoload": { + "psr-0": { + "Behat\\MinkExtension": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + }, + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com" + } + ], + "description": "Mink extension for Behat", + "homepage": "http://extensions.behat.org/mink", + "keywords": [ + "browser", + "gui", + "test", + "web" + ], + "time": "2016-02-15T07:55:18+00:00" + }, + { + "name": "behat/mink-goutte-driver", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/minkphp/MinkGoutteDriver.git", + "reference": "7a4b2d49511865e23d61463514fa2754d42ec658" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/7a4b2d49511865e23d61463514fa2754d42ec658", + "reference": "7a4b2d49511865e23d61463514fa2754d42ec658", + "shasum": "" + }, + "require": { + "behat/mink-browserkit-driver": "~1.2@dev", + "fabpot/goutte": "~1.0.4|~2.0|~3.1", + "php": ">=5.3.1" + }, + "require-dev": { + "mink/driver-testsuite": "dev-master" + }, + "type": "mink-driver", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\Driver\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Goutte driver for Mink framework", + "homepage": "http://mink.behat.org/", + "keywords": [ + "browser", + "goutte", + "headless", + "testing" + ], + "time": "2016-10-14 20:19:06" + }, + { + "name": "behat/mink-selenium2-driver", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/minkphp/MinkSelenium2Driver.git", + "reference": "739b7570f0536bad9b07b511a62c885ee1ec029a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/739b7570f0536bad9b07b511a62c885ee1ec029a", + "reference": "739b7570f0536bad9b07b511a62c885ee1ec029a", + "shasum": "" + }, + "require": { + "behat/mink": "~1.7@dev", + "instaclick/php-webdriver": "~1.1", + "php": ">=5.3.1" + }, + "require-dev": { + "mink/driver-testsuite": "dev-master" + }, + "type": "mink-driver", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\Driver\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Pete Otaqui", + "email": "pete@otaqui.com", + "homepage": "https://github.com/pete-otaqui" + } + ], + "description": "Selenium2 (WebDriver) driver for Mink framework", + "homepage": "http://mink.behat.org/", + "keywords": [ + "ajax", + "browser", + "javascript", + "selenium", + "testing", + "webdriver" + ], + "time": "2017-02-06 08:22:23" + }, + { + "name": "behat/transliterator", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/Behat/Transliterator.git", + "reference": "826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c", + "reference": "826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "chuyskywalker/rolling-curl": "^3.1", + "php-yaoi/php-yaoi": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "psr-0": { + "Behat\\Transliterator": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Artistic-1.0" + ], + "description": "String transliterator", + "keywords": [ + "i18n", + "slug", + "transliterator" + ], + "time": "2017-04-04 11:38:05" + }, + { + "name": "composer/installers", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/composer/installers.git", + "reference": "79ad876c7498c0bbfe7eed065b8651c93bfd6045" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/installers/zipball/79ad876c7498c0bbfe7eed065b8651c93bfd6045", + "reference": "79ad876c7498c0bbfe7eed065b8651c93bfd6045", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0" + }, + "replace": { + "roundcube/plugin-installer": "*", + "shama/baton": "*" + }, + "require-dev": { + "composer/composer": "1.0.*@dev", + "phpunit/phpunit": "4.1.*" + }, + "type": "composer-plugin", + "extra": { + "class": "Composer\\Installers\\Plugin", + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Installers\\": "src/Composer/Installers" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kyle Robinson Young", + "email": "kyle@dontkry.com", + "homepage": "https://github.com/shama" + } + ], + "description": "A multi-framework Composer library installer", + "homepage": "https://composer.github.io/installers/", + "keywords": [ + "Craft", + "Dolibarr", + "Eliasis", + "Hurad", + "ImageCMS", + "Kanboard", + "MODX Evo", + "Mautic", + "Maya", + "OXID", + "Plentymarkets", + "Porto", + "RadPHP", + "SMF", + "Thelia", + "WolfCMS", + "agl", + "aimeos", + "annotatecms", + "attogram", + "bitrix", + "cakephp", + "chef", + "cockpit", + "codeigniter", + "concrete5", + "croogo", + "dokuwiki", + "drupal", + "elgg", + "expressionengine", + "fuelphp", + "grav", + "installer", + "itop", + "joomla", + "kohana", + "laravel", + "lavalite", + "lithium", + "magento", + "mako", + "mediawiki", + "modulework", + "moodle", + "phpbb", + "piwik", + "ppi", + "puppet", + "reindex", + "roundcube", + "shopware", + "silverstripe", + "sydes", + "symfony", + "typo3", + "wordpress", + "yawik", + "zend", + "zikula" + ], + "time": "2017-04-24T06:37:16+00:00" + }, + { + "name": "container-interop/container-interop", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/container-interop/container-interop.git", + "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8", + "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8", + "shasum": "" + }, + "require": { + "psr/container": "^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Interop\\Container\\": "src/Interop/Container/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", + "homepage": "https://github.com/container-interop/container-interop", + "time": "2017-02-14T19:40:03+00:00" + }, + { + "name": "drupal/drupal-driver", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/jhedstrom/DrupalDriver.git", + "reference": "74d4ef1377dd76c290f74b2f26f5c343e2ecbaf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jhedstrom/DrupalDriver/zipball/74d4ef1377dd76c290f74b2f26f5c343e2ecbaf8", + "reference": "74d4ef1377dd76c290f74b2f26f5c343e2ecbaf8", + "shasum": "" + }, + "require": { + "symfony/dependency-injection": "~2.6|~3.0", + "symfony/process": "~2.5|~3.0" + }, + "require-dev": { + "drupal/coder": "~8.2.0", + "drush-ops/behat-drush-endpoint": "*", + "mockery/mockery": "0.9.4", + "phpspec/phpspec": "~2.0", + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-0": { + "Drupal\\Component": "src/", + "Drupal\\Driver": "src/", + "Drupal\\Tests\\Driver": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "Jonathan Hedstrom", + "email": "jhedstrom@gmail.com" + } + ], + "description": "A collection of reusable Drupal drivers", + "homepage": "http://github.com/jhedstrom/DrupalDriver", + "keywords": [ + "drupal", + "test", + "web" + ], + "time": "2017-04-09 08:39:37" + }, + { + "name": "drupal/drupal-extension", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/jhedstrom/drupalextension.git", + "reference": "8b9e54853698f02033d187b528693d5fac8d90ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jhedstrom/drupalextension/zipball/8b9e54853698f02033d187b528693d5fac8d90ea", + "reference": "8b9e54853698f02033d187b528693d5fac8d90ea", + "shasum": "" + }, + "require": { + "behat/behat": "~3.2", + "behat/mink": "~1.5", + "behat/mink-extension": "~2.0", + "behat/mink-goutte-driver": "~1.0", + "behat/mink-selenium2-driver": "~1.1", + "drupal/drupal-driver": "dev-master", + "symfony/dependency-injection": "~2.7|~3.0", + "symfony/event-dispatcher": "~2.7|~3.0" + }, + "require-dev": { + "behat/mink-zombie-driver": "^1.2", + "phpspec/phpspec": "~2.0", + "phpunit/phpunit": "3.7.*" + }, + "type": "behat-extension", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Drupal\\Drupal": "src/", + "Drupal\\Exception": "src/", + "Drupal\\DrupalExtension": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "Jonathan Hedstrom", + "email": "jhedstrom@gmail.com" + } + ], + "description": "Drupal extension for Behat", + "homepage": "http://drupal.org/project/drupalextension", + "keywords": [ + "drupal", + "test", + "web" + ], + "time": "2017-07-06 17:24:52" + }, + { + "name": "drush-ops/behat-drush-endpoint", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/drush-ops/behat-drush-endpoint.git", + "reference": "3f2c96ed26fc4780ec3605e8bd9ef81b02d39dd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/drush-ops/behat-drush-endpoint/zipball/3f2c96ed26fc4780ec3605e8bd9ef81b02d39dd2", + "reference": "3f2c96ed26fc4780ec3605e8bd9ef81b02d39dd2", + "shasum": "" + }, + "require": { + "composer/installers": "~1.0", + "drupal/drupal-driver": "*", + "php": ">=5.3.0" + }, + "type": "drupal-drush", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPLv2" + ], + "description": "Drush commandfile for use with drupal/drupal-driver.", + "homepage": "https://github.com/drush-ops/behat-drush-endpoint", + "keywords": [ + "Behat", + "Drush", + "testing" + ], + "time": "2015-12-17 02:01:56" + }, + { + "name": "fabpot/goutte", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfPHP/Goutte.git", + "reference": "db5c28f4a010b4161d507d5304e28a7ebf211638" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/db5c28f4a010b4161d507d5304e28a7ebf211638", + "reference": "db5c28f4a010b4161d507d5304e28a7ebf211638", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^6.0", + "php": ">=5.5.0", + "symfony/browser-kit": "~2.1|~3.0", + "symfony/css-selector": "~2.1|~3.0", + "symfony/dom-crawler": "~2.1|~3.0" + }, + "type": "application", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "psr-4": { + "Goutte\\": "Goutte" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "A simple PHP Web Scraper", + "homepage": "https://github.com/FriendsOfPHP/Goutte", + "keywords": [ + "scraper" + ], + "time": "2017-01-03 13:21:43" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.3.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699", + "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699", + "shasum": "" + }, + "require": { + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.4", + "php": ">=5.5" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.0 || ^5.0", + "psr/log": "^1.0" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.2-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "time": "2017-06-22T18:50:49+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "09e549f5534380c68761260a71f847644d8f65aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/09e549f5534380c68761260a71f847644d8f65aa", + "reference": "09e549f5534380c68761260a71f847644d8f65aa", + "shasum": "" + }, + "require": { + "php": ">=5.5.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "time": "2017-05-20 23:14:18" + }, + { + "name": "guzzlehttp/psr7", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "526d8ef63e8701e02216b621e4a3a16085e2286f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/526d8ef63e8701e02216b621e4a3a16085e2286f", + "reference": "526d8ef63e8701e02216b621e4a3a16085e2286f", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Schultze", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "request", + "response", + "stream", + "uri", + "url" + ], + "time": "2017-06-19 13:30:27" + }, + { + "name": "instaclick/php-webdriver", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/instaclick/php-webdriver.git", + "reference": "6fa959452e774dcaed543faad3a9d1a37d803327" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/6fa959452e774dcaed543faad3a9d1a37d803327", + "reference": "6fa959452e774dcaed543faad3a9d1a37d803327", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "^4.8", + "satooshi/php-coveralls": "^1.0||^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "WebDriver": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Justin Bishop", + "email": "jubishop@gmail.com", + "role": "Developer" + }, + { + "name": "Anthon Pang", + "email": "apang@softwaredevelopment.ca", + "role": "Fork Maintainer" + } + ], + "description": "PHP WebDriver for Selenium 2", + "homepage": "http://instaclick.com/", + "keywords": [ + "browser", + "selenium", + "webdriver", + "webtest" + ], + "time": "2017-06-30 04:02:48" + }, + { + "name": "psr/container", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "2cc4a01788191489dc7459446ba832fa79a216a7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/2cc4a01788191489dc7459446ba832fa79a216a7", + "reference": "2cc4a01788191489dc7459446ba832fa79a216a7", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-06-28 15:35:32" + }, + { + "name": "psr/http-message", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "time": "2016-08-06 14:39:51" + }, + { + "name": "psr/log", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2016-10-10 12:19:37" + }, + { + "name": "symfony/browser-kit", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/browser-kit.git", + "reference": "e5420ccdba7671f057804f02bfe71861719b45a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/e5420ccdba7671f057804f02bfe71861719b45a4", + "reference": "e5420ccdba7671f057804f02bfe71861719b45a4", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/dom-crawler": "~2.8|~3.0|~4.0" + }, + "require-dev": { + "symfony/css-selector": "~2.8|~3.0|~4.0", + "symfony/process": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + }, + "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 BrowserKit Component", + "homepage": "https://symfony.com", + "time": "2017-07-06 07:45:45" + }, + { + "name": "symfony/class-loader", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/symfony/class-loader.git", + "reference": "379123b6b897a1e5eb2e3727be050148e5038438" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/379123b6b897a1e5eb2e3727be050148e5038438", + "reference": "379123b6b897a1e5eb2e3727be050148e5038438", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "require-dev": { + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/polyfill-apcu": "~1.1" + }, + "suggest": { + "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\ClassLoader\\": "" + }, + "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 ClassLoader Component", + "homepage": "https://symfony.com", + "time": "2017-06-02 09:54:06" + }, + { + "name": "symfony/config", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "a34381a455c296a5a2cd97317933aa70c1336e5e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/a34381a455c296a5a2cd97317933aa70c1336e5e", + "reference": "a34381a455c296a5a2cd97317933aa70c1336e5e", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/filesystem": "~2.8|~3.0|~4.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.3", + "symfony/finder": "<3.3" + }, + "require-dev": { + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/finder": "~3.3|~4.0", + "symfony/yaml": "~3.0|~4.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "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 Config Component", + "homepage": "https://symfony.com", + "time": "2017-06-24 09:47:31" + }, + { + "name": "symfony/console", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "10537916d60d2affc5d4a6d04906f431af454f63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/10537916d60d2affc5d4a6d04906f431af454f63", + "reference": "10537916d60d2affc5d4a6d04906f431af454f63", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.3", + "symfony/process": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.3|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/filesystem": "~2.8|~3.0|~4.0", + "symfony/http-kernel": "~2.8|~3.0|~4.0", + "symfony/process": "~3.3|~4.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/filesystem": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "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 Console Component", + "homepage": "https://symfony.com", + "time": "2017-07-03 13:31:36" + }, + { + "name": "symfony/css-selector", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "9920f285889b075d249717509e073c3f4fbf9718" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/9920f285889b075d249717509e073c3f4fbf9718", + "reference": "9920f285889b075d249717509e073c3f4fbf9718", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony CssSelector Component", + "homepage": "https://symfony.com", + "time": "2017-05-17 16:21:40" + }, + { + "name": "symfony/debug", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "296d63b9b2fbe8da9308713295543c08e93cc9cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/296d63b9b2fbe8da9308713295543c08e93cc9cf", + "reference": "296d63b9b2fbe8da9308713295543c08e93cc9cf", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + }, + "require-dev": { + "symfony/http-kernel": "~2.8|~3.0|~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "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 Debug Component", + "homepage": "https://symfony.com", + "time": "2017-07-06 13:36:30" + }, + { + "name": "symfony/dependency-injection", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "d71a629e0cdd6b519aa8e70a2cd4141ed356f1c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d71a629e0cdd6b519aa8e70a2cd4141ed356f1c6", + "reference": "d71a629e0cdd6b519aa8e70a2cd4141ed356f1c6", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "psr/container": "^1.0" + }, + "conflict": { + "symfony/config": "<3.3.1", + "symfony/finder": "<3.3", + "symfony/yaml": "<3.3" + }, + "provide": { + "psr/container-implementation": "1.0" + }, + "require-dev": { + "symfony/config": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/yaml": "~3.3|~4.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-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-06 10:23:40" + }, + { + "name": "symfony/dom-crawler", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "efc337921960808c8cf681b212bfaf08b2acf97e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/efc337921960808c8cf681b212bfaf08b2acf97e", + "reference": "efc337921960808c8cf681b212bfaf08b2acf97e", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.0" + }, + "require-dev": { + "symfony/css-selector": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/css-selector": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "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 DomCrawler Component", + "homepage": "https://symfony.com", + "time": "2017-05-25 23:27:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "db08b1b2f9adb5d59a5e838d1577e73c418e05ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/db08b1b2f9adb5d59a5e838d1577e73c418e05ed", + "reference": "db08b1b2f9adb5d59a5e838d1577e73c418e05ed", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "conflict": { + "symfony/dependency-injection": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "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 EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2017-06-12 16:03:21" + }, + { + "name": "symfony/filesystem", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "b8f565808330129d4475d108d0129e897cde9f54" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/b8f565808330129d4475d108d0129e897cde9f54", + "reference": "b8f565808330129d4475d108d0129e897cde9f54", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "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 Filesystem Component", + "homepage": "https://symfony.com", + "time": "2017-06-24 09:47:31" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7c8fae0ac1d216eb54349e6a8baa57d515fe8803", + "reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2017-06-14 15:44:48" + }, + { + "name": "symfony/process", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "23d5ac279cc7b71f733daecca49782a644ef6b9f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/23d5ac279cc7b71f733daecca49782a644ef6b9f", + "reference": "23d5ac279cc7b71f733daecca49782a644ef6b9f", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "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 Process Component", + "homepage": "https://symfony.com", + "time": "2017-07-03 08:12:16" + }, + { + "name": "symfony/translation", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "eca09e9af11fe317f313d2915e1573a01609fcb9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/eca09e9af11fe317f313d2915e1573a01609fcb9", + "reference": "eca09e9af11fe317f313d2915e1573a01609fcb9", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/yaml": "~3.3|~4.0" + }, + "suggest": { + "psr/log": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "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 Translation Component", + "homepage": "https://symfony.com", + "time": "2017-07-06 06:49:25" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": { + "drupal/drupal-extension": 20 + }, + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [] +} From 136167917c3f769e06ce9b7929bec838212245a0 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 21:35:34 -0500 Subject: [PATCH 31/83] code sniff fix --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d2a3a89..19caf53 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -21,7 +21,7 @@ jobs: composer install - run: name: PHP Code Sniff - command: ./vendor/bin/phpcs --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal . --ignore=vendor + command: composer codesniff - run: name: login-pantheon command: | From b69abb368e94a1831c7321631fa0ca503da233a5 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 21:38:18 -0500 Subject: [PATCH 32/83] Code sniff fixes --- src/CacheTagsInvalidator.php | 5 ----- src/EventSubscriber/CacheableResponseSubscriber.php | 8 +++----- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/CacheTagsInvalidator.php b/src/CacheTagsInvalidator.php index 0570650..139e67a 100644 --- a/src/CacheTagsInvalidator.php +++ b/src/CacheTagsInvalidator.php @@ -1,10 +1,5 @@ Date: Thu, 6 Jul 2017 21:42:17 -0500 Subject: [PATCH 33/83] composer cache --- .circleci/config.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 19caf53..056c3bf 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -13,12 +13,18 @@ jobs: steps: - checkout + - restore_cache: + key: dependency-cache-{{ checksum "composer.lock" }} - run: name: Composer install command: | pwd ls composer install + - save_cache: + key: dependency-cache-{{ checksum "composer.lock" }} + paths: + - ~/.composer/cache - run: name: PHP Code Sniff command: composer codesniff From 64015bd8b2bd3574a7321dc6c7eeed0c035cc528 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 21:43:13 -0500 Subject: [PATCH 34/83] ci fix --- .circleci/config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 056c3bf..ad17388 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -35,7 +35,6 @@ jobs: - run: name: make-multidev command: | - mkdir $HOME/.ssh touch $HOME/.ssh/config echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config" terminus env:create $TERMINUS_SITE.dev ${CIRCLE_BUILD_NUM} From a52650e1f6fe658cf3d677eaeacd4315c9bf475b Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 21:51:14 -0500 Subject: [PATCH 35/83] TERMINUS_ENV variable --- .circleci/config.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ad17388..ed8acb2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -10,6 +10,7 @@ jobs: BASH_ENV: ~/.bashrc TZ: "/usr/share/zoneinfo/America/Los_Angeles" TERMINUS_SITE: d8cdn + TERMINUS_ENV: ci-${CIRCLE_BUILD_NUM} steps: - checkout @@ -37,15 +38,15 @@ jobs: command: | touch $HOME/.ssh/config echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config" - terminus env:create $TERMINUS_SITE.dev ${CIRCLE_BUILD_NUM} - terminus connection:set ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} sftp - terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- site-install -y - terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- cset system.performance cache.page.max_age 600 -y + terminus env:create $TERMINUS_SITE.dev ${TERMINUS_ENV} + terminus connection:set ${TERMINUS_SITE}.${TERMINUS_ENV} sftp + terminus drush ${TERMINUS_SITE}.${TERMINUS_ENV} -- site-install -y + terminus drush ${TERMINUS_SITE}.${TERMINUS_ENV} -- cset system.performance cache.page.max_age 600 -y - run: name: Composer require command: | - terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git - terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 + terminus composer ${TERMINUS_SITE}.${TERMINUS_ENV} -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git + terminus composer ${TERMINUS_SITE}.${TERMINUS_ENV} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 From 35c28484951a68daa6ae0cf401bee0246c001617 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 21:51:31 -0500 Subject: [PATCH 36/83] node feature file --- tests/behat/features/node.feature | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/behat/features/node.feature b/tests/behat/features/node.feature index e69de29..998fa5a 100644 --- a/tests/behat/features/node.feature +++ b/tests/behat/features/node.feature @@ -0,0 +1,27 @@ +Feature: Node cache tags +In order to serve fresh content +As an administrator +I want caches for node pages to clear immediately after nodes are saved. + + @api + Scenario: Normal expiration + Given a node + When I clear all caches on the site + That node's page cache age will be near zero + And the age will increase until reach the max age for the page. + And then the age will reset to near zero. + + @api + Scenario: Normal expiration + Given I am logged in as a user with the "administrator" role + When I visit "node/add/article" + And I fill in "Title" with "Test article title" + And I press the "Save and publish" button + When I visit "admin/content" + Then I should see the text "Test article" + +# Given a node +# When I clear all caches on the site +# That node's page cache age will be near zero +# And the age will increase until reach the max age for the page. +# And then the age will reset to near zero. From ebb9b4f900ac1ab640daf0f7c1314429a3995af9 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 21:55:08 -0500 Subject: [PATCH 37/83] Revert "TERMINUS_ENV variable" This reverts commit a52650e1f6fe658cf3d677eaeacd4315c9bf475b. --- .circleci/config.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ed8acb2..ad17388 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -10,7 +10,6 @@ jobs: BASH_ENV: ~/.bashrc TZ: "/usr/share/zoneinfo/America/Los_Angeles" TERMINUS_SITE: d8cdn - TERMINUS_ENV: ci-${CIRCLE_BUILD_NUM} steps: - checkout @@ -38,15 +37,15 @@ jobs: command: | touch $HOME/.ssh/config echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config" - terminus env:create $TERMINUS_SITE.dev ${TERMINUS_ENV} - terminus connection:set ${TERMINUS_SITE}.${TERMINUS_ENV} sftp - terminus drush ${TERMINUS_SITE}.${TERMINUS_ENV} -- site-install -y - terminus drush ${TERMINUS_SITE}.${TERMINUS_ENV} -- cset system.performance cache.page.max_age 600 -y + terminus env:create $TERMINUS_SITE.dev ${CIRCLE_BUILD_NUM} + terminus connection:set ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} sftp + terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- site-install -y + terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- cset system.performance cache.page.max_age 600 -y - run: name: Composer require command: | - terminus composer ${TERMINUS_SITE}.${TERMINUS_ENV} -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git - terminus composer ${TERMINUS_SITE}.${TERMINUS_ENV} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 + terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git + terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 From 5459d33818660320259de42553013a5c4bdea89d Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 6 Jul 2017 22:06:59 -0500 Subject: [PATCH 38/83] run behat --- .circleci/config.yml | 12 +++++------- tests/behat/features/node.feature | 18 +++++------------- tests/behat/run-behat.sh | 11 +++++++++++ 3 files changed, 21 insertions(+), 20 deletions(-) create mode 100755 tests/behat/run-behat.sh diff --git a/.circleci/config.yml b/.circleci/config.yml index ad17388..a15651b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,10 +46,8 @@ jobs: command: | terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 - - - - - - # Run PHP code sniff - # Run Behat tests + test: + steps: + - run: + name: run behat + command: ./run-behat.sh diff --git a/tests/behat/features/node.feature b/tests/behat/features/node.feature index 998fa5a..c85f91c 100644 --- a/tests/behat/features/node.feature +++ b/tests/behat/features/node.feature @@ -5,23 +5,15 @@ I want caches for node pages to clear immediately after nodes are saved. @api Scenario: Normal expiration - Given a node - When I clear all caches on the site - That node's page cache age will be near zero - And the age will increase until reach the max age for the page. - And then the age will reset to near zero. + # Given a node + # When I clear all caches on the site + # That node's page cache age will be near zero + # And the age will increase until reach the max age for the page. + # And then the age will reset to near zero. - @api - Scenario: Normal expiration Given I am logged in as a user with the "administrator" role When I visit "node/add/article" And I fill in "Title" with "Test article title" And I press the "Save and publish" button When I visit "admin/content" Then I should see the text "Test article" - -# Given a node -# When I clear all caches on the site -# That node's page cache age will be near zero -# And the age will increase until reach the max age for the page. -# And then the age will reset to near zero. diff --git a/tests/behat/run-behat.sh b/tests/behat/run-behat.sh new file mode 100755 index 0000000..7a6d3d2 --- /dev/null +++ b/tests/behat/run-behat.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Create a drush alias file so that Behat tests can be executed against Pantheon. +terminus aliases +# Drush Behat driver fails without this option. +echo "\$options['strict'] = 0;" >> ~/.drush/pantheon.aliases.drushrc.php + +TERMINUS_ENV=$CIRCLE_BUILD_NUM + +export BEHAT_PARAMS='{"extensions" : {"Behat\\MinkExtension" : {"base_url" : "http://'$TERMINUS_ENV'-'$TERMINUS_SITE'.pantheonsite.io/"}, "Drupal\\DrupalExtension" : {"drush" : { "alias": "@pantheon.'$TERMINUS_SITE'.'$TERMINUS_ENV'" }}}}' +./vendor/bin/behat --config=tests/behat/behat-pantheon.yml From a6d5d8bb0595b95644524d6495ab3688904dc035 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 7 Jul 2017 09:28:51 -0500 Subject: [PATCH 39/83] circle workflow section --- .circleci/config.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index a15651b..e36d26f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -51,3 +51,11 @@ jobs: - run: name: run behat command: ./run-behat.sh +workflows: + version: 2 + build_and_test: + jobs: + - build + - test: + requires: + - build From ff1a8a32cd81be604d6d24f35b1d1dae6f547c85 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 7 Jul 2017 09:42:25 -0500 Subject: [PATCH 40/83] build and test --- .circleci/config.yml | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e36d26f..7a08464 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,7 @@ version: 2 # https://circleci.com/docs/configuration#machine jobs: - build: + build_and_test: docker: - image: stevector/pantheon_advanced_page_cache working_directory: ~/pantheon_advanced_page_cache @@ -46,16 +46,6 @@ jobs: command: | terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 - test: - steps: - run: name: run behat command: ./run-behat.sh -workflows: - version: 2 - build_and_test: - jobs: - - build - - test: - requires: - - build From 604d1b4d12cce343bb9c5a1896567e442dd34893 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 7 Jul 2017 12:52:28 -0500 Subject: [PATCH 41/83] todo --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7a08464..caf432f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,8 @@ version: 2 # https://circleci.com/docs/configuration#machine jobs: - build_and_test: + # @todo, separate build and test phases. + build: docker: - image: stevector/pantheon_advanced_page_cache working_directory: ~/pantheon_advanced_page_cache From 52bbb11179dbc36af653590fd714ad2b8c98afec Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 7 Jul 2017 12:59:23 -0500 Subject: [PATCH 42/83] behat script fix --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index caf432f..8b7f40f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -49,4 +49,4 @@ jobs: terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 - run: name: run behat - command: ./run-behat.sh + command: ./tests/behat/run-behat.sh From 5b04a94ac024114c585569e6979edeaf1bb7c027 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 7 Jul 2017 13:27:40 -0500 Subject: [PATCH 43/83] drush test --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8b7f40f..f17b7a2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -22,6 +22,7 @@ jobs: pwd ls composer install + drush help - save_cache: key: dependency-cache-{{ checksum "composer.lock" }} paths: From 3ee0f2dab4f484c6a8c32e60fe7715c949ceb5e0 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 7 Jul 2017 13:44:21 -0500 Subject: [PATCH 44/83] drush in Dockerfile --- .circleci/images/primary/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/images/primary/Dockerfile b/.circleci/images/primary/Dockerfile index bcacd4c..856a0c5 100644 --- a/.circleci/images/primary/Dockerfile +++ b/.circleci/images/primary/Dockerfile @@ -5,3 +5,5 @@ RUN cd ~/terminus && composer install RUN ln -s ~/terminus/bin/terminus /usr/local/bin/terminus RUN mkdir -p ~/.terminus/plugins RUN composer create-project -n -d ~/.terminus/plugins pantheon-systems/terminus-composer-plugin:^1 +# Why doesn't the drupaldocker/php image have drush? +RUN composer global require drush/drush:8.* From 9cebe2dc64dfc5d8baed513aa86d139430d9487f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 7 Jul 2017 13:57:55 -0500 Subject: [PATCH 45/83] cleanup --- .circleci/config.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f17b7a2..6e9d723 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -19,8 +19,6 @@ jobs: - run: name: Composer install command: | - pwd - ls composer install drush help - save_cache: From 8a32365539484bdf54d04cc1c00b00afa52923df Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 7 Jul 2017 14:10:11 -0500 Subject: [PATCH 46/83] whitespace --- .circleci/config.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6e9d723..18dc265 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,11 +7,9 @@ jobs: - image: stevector/pantheon_advanced_page_cache working_directory: ~/pantheon_advanced_page_cache environment: - BASH_ENV: ~/.bashrc TZ: "/usr/share/zoneinfo/America/Los_Angeles" TERMINUS_SITE: d8cdn - steps: - checkout - restore_cache: From 7b1b40e916f24aef3954ef345377b8017b71dd1e Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 7 Jul 2017 14:20:10 -0500 Subject: [PATCH 47/83] different drush install mechanism --- .circleci/images/primary/Dockerfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.circleci/images/primary/Dockerfile b/.circleci/images/primary/Dockerfile index 856a0c5..7099515 100644 --- a/.circleci/images/primary/Dockerfile +++ b/.circleci/images/primary/Dockerfile @@ -5,5 +5,8 @@ RUN cd ~/terminus && composer install RUN ln -s ~/terminus/bin/terminus /usr/local/bin/terminus RUN mkdir -p ~/.terminus/plugins RUN composer create-project -n -d ~/.terminus/plugins pantheon-systems/terminus-composer-plugin:^1 + # Why doesn't the drupaldocker/php image have drush? -RUN composer global require drush/drush:8.* +RUN git clone git@github.com:drush-ops/drush.git ~/drush +RUN cd ~/drush && git checkout 8.x && composer install +RUN ln -s ~/drush/drush /usr/local/bin/drush From a54d98a64e11f48ad6bfc989f562e13ed34512df Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 7 Jul 2017 14:25:46 -0500 Subject: [PATCH 48/83] drush fix --- .circleci/images/primary/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/images/primary/Dockerfile b/.circleci/images/primary/Dockerfile index 7099515..2fd886d 100644 --- a/.circleci/images/primary/Dockerfile +++ b/.circleci/images/primary/Dockerfile @@ -7,6 +7,6 @@ RUN mkdir -p ~/.terminus/plugins RUN composer create-project -n -d ~/.terminus/plugins pantheon-systems/terminus-composer-plugin:^1 # Why doesn't the drupaldocker/php image have drush? -RUN git clone git@github.com:drush-ops/drush.git ~/drush +RUN git clone https://github.com/drush-ops/drush.git ~/drush RUN cd ~/drush && git checkout 8.x && composer install RUN ln -s ~/drush/drush /usr/local/bin/drush From ccd2bd1d5073ffb4695592f050f2ad8d866320e2 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sun, 16 Jul 2017 21:14:06 -0500 Subject: [PATCH 49/83] move drupal/coder to require-dev --- composer.json | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/composer.json b/composer.json index ffced47..f940b47 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,8 @@ "type": "drupal-module", "require-dev": { "drush-ops/behat-drush-endpoint": "*", - "drupal/drupal-extension": "dev-master" + "drupal/drupal-extension": "dev-master", + "drupal/coder": "^8.2" }, @@ -16,8 +17,5 @@ "url": "https://packages.drupal.org/8" } }, - "minimum-stability": "dev", - "require": { - "drupal/coder": "^8.2" - } + "minimum-stability": "dev" } From c8e8697657bbc0cc9ee7ad865be454859d22c03f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Sun, 16 Jul 2017 21:14:16 -0500 Subject: [PATCH 50/83] composer.lock --- composer.lock | 345 +++++++++++++++++++++++++------------------------- 1 file changed, 172 insertions(+), 173 deletions(-) diff --git a/composer.lock b/composer.lock index b8f83ea..4161234 100644 --- a/composer.lock +++ b/composer.lock @@ -4,179 +4,8 @@ "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": "f707cd54ac71e093adfbc2b1401930b4", - "packages": [ - { - "name": "drupal/coder", - "version": "8.2.12", - "source": { - "type": "git", - "url": "https://github.com/klausi/coder.git", - "reference": "984c54a7b1e8f27ff1c32348df69712afd86b17f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/klausi/coder/zipball/984c54a7b1e8f27ff1c32348df69712afd86b17f", - "reference": "984c54a7b1e8f27ff1c32348df69712afd86b17f", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=5.4.0", - "squizlabs/php_codesniffer": ">=2.8.1 <3.0", - "symfony/yaml": ">=2.0.0" - }, - "require-dev": { - "phpunit/phpunit": ">=3.7 <6" - }, - "type": "phpcodesniffer-standard", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0+" - ], - "description": "Coder is a library to review Drupal code.", - "homepage": "https://www.drupal.org/project/coder", - "keywords": [ - "code review", - "phpcs", - "standards" - ], - "time": "2017-03-18T10:28:49+00:00" - }, - { - "name": "squizlabs/php_codesniffer", - "version": "2.9.x-dev", - "source": { - "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62", - "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62", - "shasum": "" - }, - "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.1.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "bin": [ - "scripts/phpcs", - "scripts/phpcbf" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "classmap": [ - "CodeSniffer.php", - "CodeSniffer/CLI.php", - "CodeSniffer/Exception.php", - "CodeSniffer/File.php", - "CodeSniffer/Fixer.php", - "CodeSniffer/Report.php", - "CodeSniffer/Reporting.php", - "CodeSniffer/Sniff.php", - "CodeSniffer/Tokens.php", - "CodeSniffer/Reports/", - "CodeSniffer/Tokenizers/", - "CodeSniffer/DocGenerators/", - "CodeSniffer/Standards/AbstractPatternSniff.php", - "CodeSniffer/Standards/AbstractScopeSniff.php", - "CodeSniffer/Standards/AbstractVariableSniff.php", - "CodeSniffer/Standards/IncorrectPatternException.php", - "CodeSniffer/Standards/Generic/Sniffs/", - "CodeSniffer/Standards/MySource/Sniffs/", - "CodeSniffer/Standards/PEAR/Sniffs/", - "CodeSniffer/Standards/PSR1/Sniffs/", - "CodeSniffer/Standards/PSR2/Sniffs/", - "CodeSniffer/Standards/Squiz/Sniffs/", - "CodeSniffer/Standards/Zend/Sniffs/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Greg Sherwood", - "role": "lead" - } - ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "http://www.squizlabs.com/php-codesniffer", - "keywords": [ - "phpcs", - "standards" - ], - "time": "2017-05-22 02:43:20" - }, - { - "name": "symfony/yaml", - "version": "3.4.x-dev", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "519fb0872bb41e0f0c221ead8945eb12197bb034" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/519fb0872bb41e0f0c221ead8945eb12197bb034", - "reference": "519fb0872bb41e0f0c221ead8945eb12197bb034", - "shasum": "" - }, - "require": { - "php": ">=5.5.9" - }, - "require-dev": { - "symfony/console": "~2.8|~3.0|~4.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "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 Yaml Component", - "homepage": "https://symfony.com", - "time": "2017-07-03 10:20:17" - } - ], + "content-hash": "79a73ec18a8fe48b20881689bcef4bc8", + "packages": [], "packages-dev": [ { "name": "behat/behat", @@ -796,6 +625,43 @@ "homepage": "https://github.com/container-interop/container-interop", "time": "2017-02-14T19:40:03+00:00" }, + { + "name": "drupal/coder", + "version": "8.2.12", + "source": { + "type": "git", + "url": "https://github.com/klausi/coder.git", + "reference": "984c54a7b1e8f27ff1c32348df69712afd86b17f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/klausi/coder/zipball/984c54a7b1e8f27ff1c32348df69712afd86b17f", + "reference": "984c54a7b1e8f27ff1c32348df69712afd86b17f", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=5.4.0", + "squizlabs/php_codesniffer": ">=2.8.1 <3.0", + "symfony/yaml": ">=2.0.0" + }, + "require-dev": { + "phpunit/phpunit": ">=3.7 <6" + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "description": "Coder is a library to review Drupal code.", + "homepage": "https://www.drupal.org/project/coder", + "keywords": [ + "code review", + "phpcs", + "standards" + ], + "time": "2017-03-18T10:28:49+00:00" + }, { "name": "drupal/drupal-driver", "version": "dev-master", @@ -1382,6 +1248,84 @@ ], "time": "2016-10-10 12:19:37" }, + { + "name": "squizlabs/php_codesniffer", + "version": "2.9.x-dev", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62", + "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "bin": [ + "scripts/phpcs", + "scripts/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "classmap": [ + "CodeSniffer.php", + "CodeSniffer/CLI.php", + "CodeSniffer/Exception.php", + "CodeSniffer/File.php", + "CodeSniffer/Fixer.php", + "CodeSniffer/Report.php", + "CodeSniffer/Reporting.php", + "CodeSniffer/Sniff.php", + "CodeSniffer/Tokens.php", + "CodeSniffer/Reports/", + "CodeSniffer/Tokenizers/", + "CodeSniffer/DocGenerators/", + "CodeSniffer/Standards/AbstractPatternSniff.php", + "CodeSniffer/Standards/AbstractScopeSniff.php", + "CodeSniffer/Standards/AbstractVariableSniff.php", + "CodeSniffer/Standards/IncorrectPatternException.php", + "CodeSniffer/Standards/Generic/Sniffs/", + "CodeSniffer/Standards/MySource/Sniffs/", + "CodeSniffer/Standards/PEAR/Sniffs/", + "CodeSniffer/Standards/PSR1/Sniffs/", + "CodeSniffer/Standards/PSR2/Sniffs/", + "CodeSniffer/Standards/Squiz/Sniffs/", + "CodeSniffer/Standards/Zend/Sniffs/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "http://www.squizlabs.com/php-codesniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2017-05-22 02:43:20" + }, { "name": "symfony/browser-kit", "version": "3.4.x-dev", @@ -2148,6 +2092,61 @@ "description": "Symfony Translation Component", "homepage": "https://symfony.com", "time": "2017-07-06 06:49:25" + }, + { + "name": "symfony/yaml", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "519fb0872bb41e0f0c221ead8945eb12197bb034" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/519fb0872bb41e0f0c221ead8945eb12197bb034", + "reference": "519fb0872bb41e0f0c221ead8945eb12197bb034", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "require-dev": { + "symfony/console": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "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 Yaml Component", + "homepage": "https://symfony.com", + "time": "2017-07-03 10:20:17" } ], "aliases": [], From 3b97b04d92dadc491270787fd3d232ffbb1a870d Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 17 Jul 2017 21:59:43 -0500 Subject: [PATCH 51/83] download devel module too to get devel_generate --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 18dc265..c9431da 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -44,6 +44,7 @@ jobs: command: | terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 + terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- dl devel - run: name: run behat command: ./tests/behat/run-behat.sh From e655fa41c529a0e1efb36aa2ca0a45c49d7b06ba Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 19 Jul 2017 11:23:42 -0500 Subject: [PATCH 52/83] Updating gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 4f95497..667f09f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ +/drush/behat-drush-endpoint /vendor -/drush + From c4b2fd1780e3d08764adf2c97d3dcfb4086d7cb0 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 2 Aug 2017 16:58:41 -0500 Subject: [PATCH 53/83] adding start of views_custom_cache_tag test. [ci skip] --- .../features/bootstrap/FeatureContext.php | 250 ++++++++++++++++++ .../features/views_custom_cache_tag.feature | 36 +++ 2 files changed, 286 insertions(+) create mode 100644 tests/behat/features/bootstrap/FeatureContext.php create mode 100644 tests/behat/features/views_custom_cache_tag.feature diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php new file mode 100644 index 0000000..e8f54bc --- /dev/null +++ b/tests/behat/features/bootstrap/FeatureContext.php @@ -0,0 +1,250 @@ +getEnvironment(); + $this->minkContext = $environment->getContext('Drupal\DrupalExtension\Context\MinkContext'); + } + +// +// Place your definition and hook methods here: +// +// /** +// * @Given I have done something with :stuff +// */ +// public function iHaveDoneSomethingWith($stuff) { +// doSomethingWith($stuff); +// } +// + + /** + * Fills in form field with specified id|name|label|value + * Example: And I enter the value of the env var "TEST_PASSWORD" for "edit-account-pass-pass1" + * + * @Given I enter the value of the env var :arg1 for :arg2 + */ + public function fillFieldWithEnv($value, $field) + { + $this->minkContext->fillField($field, getenv($value)); + } + + /** + * @Given I wait for the progress bar to finish + */ + public function iWaitForTheProgressBarToFinish() { + $this->iFollowMetaRefresh(); + } + + /** + * @Given I follow meta refresh + * + * https://www.drupal.org/node/2011390 + */ + public function iFollowMetaRefresh() { + while ($refresh = $this->getSession()->getPage()->find('css', 'meta[http-equiv="Refresh"]')) { + $content = $refresh->getAttribute('content'); + $url = str_replace('0; URL=', '', $content); + $this->getSession()->visit($url); + } + } + + /** + * @Given I have wiped the site + */ + public function iHaveWipedTheSite() + { + $site = getenv('TERMINUS_SITE'); + $env = getenv('TERMINUS_ENV'); + + passthru("terminus env:wipe $site.$env --yes"); + } + + /** + * @Given I have reinstalled + */ + public function iHaveReinstalled() + { + $site = getenv('TERMINUS_SITE'); + $env = getenv('TERMINUS_ENV'); + $site_name = getenv('TEST_SITE_NAME'); + $site_mail = getenv('ADMIN_EMAIL'); + $admin_password = getenv('ADMIN_PASSWORD'); + + passthru("terminus --yes drush $site.$env -- --yes site-install standard --site-name=\"$site_name\" --site-mail=\"$site_mail\" --account-name=admin --account-pass=\"$admin_password\"'"); + } + + /** + * @Given I have run the drush command :arg1 + */ + public function iHaveRunTheDrushCommand($arg1) + { + $site = getenv('TERMINUS_SITE'); + $env = getenv('TERMINUS_ENV'); + + $return = ''; + $output = array(); + exec("terminus drush $site.$env -- " . $arg1, $output, $return); + // echo $return; + // print_r($output); + + } + + /** + * @Given I have committed my changes with comment :arg1 + */ + public function iHaveCommittedMyChangesWithComment($arg1) + { + $site = getenv('TERMINUS_SITE'); + $env = getenv('TERMINUS_ENV'); + + passthru("terminus --yes $site.$env env:commit --message='$arg1'"); + } + + /** + * @Given I have exported configuration + */ + public function iHaveExportedConfiguration() + { + $site = getenv('TERMINUS_SITE'); + $env = getenv('TERMINUS_ENV'); + + $return = ''; + $output = array(); + exec("terminus drush $site.$env -- config-export -y", $output, $return); + } + + /** + * @Given I wait :seconds seconds + */ + public function iWaitSeconds($seconds) + { + sleep($seconds); + } + + /** + * @Given I wait :seconds seconds or until I see :text + */ + public function iWaitSecondsOrUntilISee($seconds, $text) + { + $errorNode = $this->spin( function($context) use($text) { + $node = $context->getSession()->getPage()->find('named', array('content', $text)); + if (!$node) { + return false; + } + return $node->isVisible(); + }, $seconds); + + // Throw to signal a problem if we were passed back an error message. + if (is_object($errorNode)) { + throw new Exception("Error detected when waiting for '$text': " . $errorNode->getText()); + } + } + + // http://docs.behat.org/en/v2.5/cookbook/using_spin_functions.html + // http://mink.behat.org/en/latest/guides/traversing-pages.html#selectors + public function spin ($lambda, $wait = 60) + { + for ($i = 0; $i <= $wait; $i++) + { + if ($i > 0) { + sleep(1); + } + + $debugContent = $this->getSession()->getPage()->getContent(); + file_put_contents("/tmp/mink/debug-" . $i, "\n\n\n=================================\n$debugContent\n=================================\n\n\n"); + + try { + if ($lambda($this)) { + return true; + } + } catch (Exception $e) { + // do nothing + } + + // If we do not see the text we are waiting for, fail fast if + // we see a Drupal 8 error message pane on the page. + $node = $this->getSession()->getPage()->find('named', array('content', 'Error')); + if ($node) { + $errorNode = $this->getSession()->getPage()->find('css', '.messages--error'); + if ($errorNode) { + return $errorNode; + } + $errorNode = $this->getSession()->getPage()->find('css', 'main'); + if ($errorNode) { + return $errorNode; + } + return $node; + } + } + + $backtrace = debug_backtrace(); + + throw new Exception( + "Timeout thrown by " . $backtrace[1]['class'] . "::" . $backtrace[1]['function'] . "()\n" . + $backtrace[1]['file'] . ", line " . $backtrace[1]['line'] + ); + + return false; + } + + /** + * @AfterStep + */ + public function afterStep(AfterStepScope $scope) + { + // Do nothing on steps that pass + $result = $scope->getTestResult(); + if ($result->isPassed()) { + return; + } + + // Otherwise, dump the page contents. + $session = $this->getSession(); + $page = $session->getPage(); + $html = $page->getContent(); + $html = static::trimHead($html); + + print "::::::::::::::::::::::::::::::::::::::::::::::::\n"; + print $html . "\n"; + print "::::::::::::::::::::::::::::::::::::::::::::::::\n"; + } + + /** + * Remove everything in the '' element except the + * title, because it is long and uninteresting. + */ + protected static function trimHead($html) + { + $html = preg_replace('#\.*\#sU', '', $html); + $html = preg_replace('#\</title\>.*\</head\>#sU', '', $html); + return $html; + } +} diff --git a/tests/behat/features/views_custom_cache_tag.feature b/tests/behat/features/views_custom_cache_tag.feature new file mode 100644 index 0000000..f1dedf2 --- /dev/null +++ b/tests/behat/features/views_custom_cache_tag.feature @@ -0,0 +1,36 @@ +Feature: Views custom cache tags +In order to keep as many pages cached as possible when content is updated +As an administrator +I want to use granular cache tags for Views that reflect the type of content displayed by the View. + + @api + Scenario: Normal expiration + # Given a node + # When I clear all caches on the site + # That node's page cache age will be near zero + # And the age will increase until reach the max age for the page. + # And then the age will reset to near zero. + + Given I am logged in as a user with the "administrator" role + + # Given that the views custom cache tag example module is enabled + And I run drush "pml --status=enabled --type=module" + And drush output should contain "views_custom_cache_tag" + + # And there are nodes of type page and article + And I run drush "generate-content 20 --types=page,article" + And drush output should contain "Finished creating 20 nodes" + And drush output should contain "Generate process complete." + + +# And the listing pages for page and article are cached + + +# When I make nodes of type "page" + And I run drush "generate-content 2 --types=page" + And drush output should contain "Finished creating 2 nodes" + And drush output should contain "Generate process complete." + +# Then I see that the cache for the page node listing has been purged +# And the age increases again on subsequent requests to the page node listing +# And the article node listing was not purged. From a1d78365e1270883fde5419ed882047e4dc4b25b Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 2 Aug 2017 17:17:24 -0500 Subject: [PATCH 54/83] adding start of views_custom_cache_tag test. [ci skip] --- tests/behat/behat-pantheon.yml | 2 +- .../features/bootstrap/FeatureContext.php | 205 ++++++------------ .../features/views_custom_cache_tag.feature | 51 +++-- 3 files changed, 93 insertions(+), 165 deletions(-) diff --git a/tests/behat/behat-pantheon.yml b/tests/behat/behat-pantheon.yml index 0b83576..760cb80 100644 --- a/tests/behat/behat-pantheon.yml +++ b/tests/behat/behat-pantheon.yml @@ -7,7 +7,7 @@ default: paths: - %paths.base%/features contexts: - #- FeatureContext + - FeatureContext - Drupal\DrupalExtension\Context\DrupalContext - Drupal\DrupalExtension\Context\DrushContext - Drupal\DrupalExtension\Context\MinkContext diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php index e8f54bc..47f4104 100644 --- a/tests/behat/features/bootstrap/FeatureContext.php +++ b/tests/behat/features/bootstrap/FeatureContext.php @@ -45,16 +45,6 @@ public function gatherContexts(BeforeScenarioScope $scope) // } // - /** - * Fills in form field with specified id|name|label|value - * Example: And I enter the value of the env var "TEST_PASSWORD" for "edit-account-pass-pass1" - * - * @Given I enter the value of the env var :arg1 for :arg2 - */ - public function fillFieldWithEnv($value, $field) - { - $this->minkContext->fillField($field, getenv($value)); - } /** * @Given I wait for the progress bar to finish @@ -76,70 +66,6 @@ public function iFollowMetaRefresh() { } } - /** - * @Given I have wiped the site - */ - public function iHaveWipedTheSite() - { - $site = getenv('TERMINUS_SITE'); - $env = getenv('TERMINUS_ENV'); - - passthru("terminus env:wipe $site.$env --yes"); - } - - /** - * @Given I have reinstalled - */ - public function iHaveReinstalled() - { - $site = getenv('TERMINUS_SITE'); - $env = getenv('TERMINUS_ENV'); - $site_name = getenv('TEST_SITE_NAME'); - $site_mail = getenv('ADMIN_EMAIL'); - $admin_password = getenv('ADMIN_PASSWORD'); - - passthru("terminus --yes drush $site.$env -- --yes site-install standard --site-name=\"$site_name\" --site-mail=\"$site_mail\" --account-name=admin --account-pass=\"$admin_password\"'"); - } - - /** - * @Given I have run the drush command :arg1 - */ - public function iHaveRunTheDrushCommand($arg1) - { - $site = getenv('TERMINUS_SITE'); - $env = getenv('TERMINUS_ENV'); - - $return = ''; - $output = array(); - exec("terminus drush $site.$env -- " . $arg1, $output, $return); - // echo $return; - // print_r($output); - - } - - /** - * @Given I have committed my changes with comment :arg1 - */ - public function iHaveCommittedMyChangesWithComment($arg1) - { - $site = getenv('TERMINUS_SITE'); - $env = getenv('TERMINUS_ENV'); - - passthru("terminus --yes $site.$env env:commit --message='$arg1'"); - } - - /** - * @Given I have exported configuration - */ - public function iHaveExportedConfiguration() - { - $site = getenv('TERMINUS_SITE'); - $env = getenv('TERMINUS_ENV'); - - $return = ''; - $output = array(); - exec("terminus drush $site.$env -- config-export -y", $output, $return); - } /** * @Given I wait :seconds seconds @@ -149,71 +75,6 @@ public function iWaitSeconds($seconds) sleep($seconds); } - /** - * @Given I wait :seconds seconds or until I see :text - */ - public function iWaitSecondsOrUntilISee($seconds, $text) - { - $errorNode = $this->spin( function($context) use($text) { - $node = $context->getSession()->getPage()->find('named', array('content', $text)); - if (!$node) { - return false; - } - return $node->isVisible(); - }, $seconds); - - // Throw to signal a problem if we were passed back an error message. - if (is_object($errorNode)) { - throw new Exception("Error detected when waiting for '$text': " . $errorNode->getText()); - } - } - - // http://docs.behat.org/en/v2.5/cookbook/using_spin_functions.html - // http://mink.behat.org/en/latest/guides/traversing-pages.html#selectors - public function spin ($lambda, $wait = 60) - { - for ($i = 0; $i <= $wait; $i++) - { - if ($i > 0) { - sleep(1); - } - - $debugContent = $this->getSession()->getPage()->getContent(); - file_put_contents("/tmp/mink/debug-" . $i, "\n\n\n=================================\n$debugContent\n=================================\n\n\n"); - - try { - if ($lambda($this)) { - return true; - } - } catch (Exception $e) { - // do nothing - } - - // If we do not see the text we are waiting for, fail fast if - // we see a Drupal 8 error message pane on the page. - $node = $this->getSession()->getPage()->find('named', array('content', 'Error')); - if ($node) { - $errorNode = $this->getSession()->getPage()->find('css', '.messages--error'); - if ($errorNode) { - return $errorNode; - } - $errorNode = $this->getSession()->getPage()->find('css', 'main'); - if ($errorNode) { - return $errorNode; - } - return $node; - } - } - - $backtrace = debug_backtrace(); - - throw new Exception( - "Timeout thrown by " . $backtrace[1]['class'] . "::" . $backtrace[1]['function'] . "()\n" . - $backtrace[1]['file'] . ", line " . $backtrace[1]['line'] - ); - - return false; - } /** * @AfterStep @@ -233,7 +94,7 @@ public function afterStep(AfterStepScope $scope) $html = static::trimHead($html); print "::::::::::::::::::::::::::::::::::::::::::::::::\n"; - print $html . "\n"; +// print $html . "\n"; print "::::::::::::::::::::::::::::::::::::::::::::::::\n"; } @@ -247,4 +108,68 @@ protected static function trimHead($html) $html = preg_replace('#\.*\#sU', '', $html); return $html; } + + + /** + * @Given the listing pages for page and article are cached + */ + public function theListingPagesForPageAndArticleAreCached() + { + + $this->minkContext->visit('custom-cache-tags/article'); + $age = $this->getAge(); + print_r($age); + print_r(" + + "); + + $this->minkContext->visit('custom-cache-tags/page'); + $age = $this->getAge(); + print_r($age); + print_r(" + + "); + sleep(2); + + + $this->minkContext->visit('custom-cache-tags/article'); + $age = $this->getAge(); + print_r($age); + print_r(" + + "); + $this->minkContext->visit('custom-cache-tags/page'); + $age = $this->getAge(); + print_r($age); + print_r(" + + "); + + + +// throw new PendingException(); + } + + + + /** + * @Given the article node listing was not purged. + */ + public function theArticleNodeListingWasNotPurged() + { + + $this->minkContext->visit('custom-cache-tags/article'); + $age = $this->getAge(); + throw new PendingException(); + } + + protected function getAge() { + return $this->minkContext->getSession()->getResponseHeader('Age'); + } + + + + + + } diff --git a/tests/behat/features/views_custom_cache_tag.feature b/tests/behat/features/views_custom_cache_tag.feature index f1dedf2..7cbc21d 100644 --- a/tests/behat/features/views_custom_cache_tag.feature +++ b/tests/behat/features/views_custom_cache_tag.feature @@ -5,32 +5,35 @@ I want to use granular cache tags for Views that reflect the type of content dis @api Scenario: Normal expiration - # Given a node - # When I clear all caches on the site - # That node's page cache age will be near zero - # And the age will increase until reach the max age for the page. - # And then the age will reset to near zero. - Given I am logged in as a user with the "administrator" role - # Given that the views custom cache tag example module is enabled - And I run drush "pml --status=enabled --type=module" - And drush output should contain "views_custom_cache_tag" - # And there are nodes of type page and article - And I run drush "generate-content 20 --types=page,article" - And drush output should contain "Finished creating 20 nodes" - And drush output should contain "Generate process complete." -# And the listing pages for page and article are cached - - -# When I make nodes of type "page" - And I run drush "generate-content 2 --types=page" - And drush output should contain "Finished creating 2 nodes" - And drush output should contain "Generate process complete." - -# Then I see that the cache for the page node listing has been purged -# And the age increases again on subsequent requests to the page node listing -# And the article node listing was not purged. +# Given I am logged in as a user with the "administrator" role +# +# # Given that the views custom cache tag example module is enabled +# And I run drush "pml --status=enabled --type=module" +# And drush output should contain "views_custom_cache_tag" +# +# # And there are nodes of type page and article +# And I run drush "generate-content 20 --types=page,article" +# And drush output should contain "Finished creating 20 nodes" +# And drush output should contain "Generate process complete." +# +# + And the listing pages for page and article are cached + And I break +# +# +## When I make nodes of type "page" +# And I run drush "generate-content 2 --types=page" +# And drush output should contain "Finished creating 2 nodes" +# And drush output should contain "Generate process complete." +# +## Then I see that the cache for the page node listing has been purged +## And the age increases again on subsequent requests to the page node listing +# And the article node listing was not purged. + + + And the article node listing was not purged. \ No newline at end of file From dd32de4ca4ee3609041b90c934ea968549d88a15 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Wed, 2 Aug 2017 21:07:13 -0500 Subject: [PATCH 55/83] adding start of views_custom_cache_tag test. [ci skip] --- .../features/bootstrap/FeatureContext.php | 69 ++++++++----------- .../features/views_custom_cache_tag.feature | 2 +- 2 files changed, 29 insertions(+), 42 deletions(-) diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php index 47f4104..3ebeccc 100644 --- a/tests/behat/features/bootstrap/FeatureContext.php +++ b/tests/behat/features/bootstrap/FeatureContext.php @@ -110,44 +110,31 @@ protected static function trimHead($html) } + public function pageIsCaching($page) { + + $age = $this->getAge($page); + if (!empty($age)) { + return TRUE; + } + else { + sleep(3); + $age = $this->getAge($page); + if (empty($age)) { + throw \Exception('not cached'); + } else { + return TRUE; + } + + } + } + /** - * @Given the listing pages for page and article are cached + * @Given the listing pages for page and article are caching */ public function theListingPagesForPageAndArticleAreCached() { - - $this->minkContext->visit('custom-cache-tags/article'); - $age = $this->getAge(); - print_r($age); - print_r(" - - "); - - $this->minkContext->visit('custom-cache-tags/page'); - $age = $this->getAge(); - print_r($age); - print_r(" - - "); - sleep(2); - - - $this->minkContext->visit('custom-cache-tags/article'); - $age = $this->getAge(); - print_r($age); - print_r(" - - "); - $this->minkContext->visit('custom-cache-tags/page'); - $age = $this->getAge(); - print_r($age); - print_r(" - - "); - - - -// throw new PendingException(); + $this->pageIsCaching('custom-cache-tags/article'); + $this->pageIsCaching('custom-cache-tags/page'); } @@ -163,13 +150,13 @@ public function theArticleNodeListingWasNotPurged() throw new PendingException(); } - protected function getAge() { - return $this->minkContext->getSession()->getResponseHeader('Age'); - } - - - - + protected function getAge($page = '') { + if (!empty($page)) { + $this->minkContext->visit($page); + } + return $this->minkContext->getSession()->getResponseHeader('Age'); + } + } diff --git a/tests/behat/features/views_custom_cache_tag.feature b/tests/behat/features/views_custom_cache_tag.feature index 7cbc21d..b220667 100644 --- a/tests/behat/features/views_custom_cache_tag.feature +++ b/tests/behat/features/views_custom_cache_tag.feature @@ -22,7 +22,7 @@ I want to use granular cache tags for Views that reflect the type of content dis # And drush output should contain "Generate process complete." # # - And the listing pages for page and article are cached + And the listing pages for page and article are caching And I break # # From c71a5ab93765159bb2e0a6221f63eb4d4ab2418a Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 10 Aug 2017 16:05:46 -0500 Subject: [PATCH 56/83] Age wrangling --- .../features/bootstrap/FeatureContext.php | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php index 3ebeccc..392f5ee 100644 --- a/tests/behat/features/bootstrap/FeatureContext.php +++ b/tests/behat/features/bootstrap/FeatureContext.php @@ -145,18 +145,22 @@ public function theListingPagesForPageAndArticleAreCached() public function theArticleNodeListingWasNotPurged() { - $this->minkContext->visit('custom-cache-tags/article'); - $age = $this->getAge(); - throw new PendingException(); + + $age = $this->getAge('custom-cache-tags/article'); + + print_r($age); + + //throw new PendingException(); } - protected function getAge($page = '') { + protected function getAge($page) { - if (!empty($page)) { +// if (!empty($page)) { $this->minkContext->visit($page); - } + // } - return $this->minkContext->getSession()->getResponseHeader('Age'); + $age = $this->minkContext->getSession()->getResponseHeader('Age'); + return $age; } - + } From b9e259bbce1db8c593b189a3337e9296d9939fc6 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 10 Aug 2017 16:20:38 -0500 Subject: [PATCH 57/83] Adding phpunit --- composer.json | 3 +- composer.lock | 1785 ++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 1619 insertions(+), 169 deletions(-) diff --git a/composer.json b/composer.json index f940b47..e205bb4 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,8 @@ "require-dev": { "drush-ops/behat-drush-endpoint": "*", "drupal/drupal-extension": "dev-master", - "drupal/coder": "^8.2" + "drupal/coder": "^8.2", + "phpunit/phpunit": "^6.3" }, diff --git a/composer.lock b/composer.lock index 4161234..8328500 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": "79a73ec18a8fe48b20881689bcef4bc8", + "content-hash": "c66f287ee91fc6ddcf2a81d9ce3e9106", "packages": [], "packages-dev": [ { @@ -625,6 +625,60 @@ "homepage": "https://github.com/container-interop/container-interop", "time": "2017-02-14T19:40:03+00:00" }, + { + "name": "doctrine/instantiator", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "^6.2.3", + "squizlabs/php_codesniffer": "^3.0.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2017-07-22T11:58:36+00:00" + }, { "name": "drupal/coder", "version": "8.2.12", @@ -909,264 +963,1581 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "time": "2017-06-22T18:50:49+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "09e549f5534380c68761260a71f847644d8f65aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/09e549f5534380c68761260a71f847644d8f65aa", + "reference": "09e549f5534380c68761260a71f847644d8f65aa", + "shasum": "" + }, + "require": { + "php": ">=5.5.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "time": "2017-05-20 23:14:18" + }, + { + "name": "guzzlehttp/psr7", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "526d8ef63e8701e02216b621e4a3a16085e2286f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/526d8ef63e8701e02216b621e4a3a16085e2286f", + "reference": "526d8ef63e8701e02216b621e4a3a16085e2286f", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Schultze", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "request", + "response", + "stream", + "uri", + "url" + ], + "time": "2017-06-19 13:30:27" + }, + { + "name": "instaclick/php-webdriver", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/instaclick/php-webdriver.git", + "reference": "6fa959452e774dcaed543faad3a9d1a37d803327" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/6fa959452e774dcaed543faad3a9d1a37d803327", + "reference": "6fa959452e774dcaed543faad3a9d1a37d803327", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "^4.8", + "satooshi/php-coveralls": "^1.0||^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "WebDriver": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Justin Bishop", + "email": "jubishop@gmail.com", + "role": "Developer" + }, + { + "name": "Anthon Pang", + "email": "apang@softwaredevelopment.ca", + "role": "Fork Maintainer" + } + ], + "description": "PHP WebDriver for Selenium 2", + "homepage": "http://instaclick.com/", + "keywords": [ + "browser", + "selenium", + "webdriver", + "webtest" + ], + "time": "2017-06-30 04:02:48" + }, + { + "name": "myclabs/deep-copy", + "version": "1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8e6e04167378abf1ddb4d3522d8755c5fd90d102", + "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "doctrine/collections": "1.*", + "phpunit/phpunit": "~4.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "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" + ], + "time": "2017-04-12T18:52:22+00:00" + }, + { + "name": "phar-io/manifest", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "014feadb268809af7c8e2f7ccd396b8494901f58" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/014feadb268809af7c8e2f7ccd396b8494901f58", + "reference": "014feadb268809af7c8e2f7ccd396b8494901f58", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^1.0.1", + "php": "^5.6 || ^7.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": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2017-04-07T07:07:10+00:00" + }, + { + "name": "phar-io/version", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "time": "2017-03-05T17:38:23+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "a046af61c36e9162372f205de091a1cab7340f1c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/a046af61c36e9162372f205de091a1cab7340f1c", + "reference": "a046af61c36e9162372f205de091a1cab7340f1c", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2017-04-30T11:58:12+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "3.2.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/4aada1f93c72c35e22fb1383b47fee43b8f1d157", + "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157", + "shasum": "" + }, + "require": { + "php": ">=5.5", + "phpdocumentor/reflection-common": "^1.0@dev", + "phpdocumentor/type-resolver": "^0.3.0", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "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" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "0.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fb3933512008d8162b3cdf9e18dba9309b7c3773", + "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7.0", + "phpdocumentor/reflection-common": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "time": "2017-06-03T08:32:36+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "420d44c5534bbf269e85e6213446e8284d53c6c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/420d44c5534bbf269e85e6213446e8284d53c6c7", + "reference": "420d44c5534bbf269e85e6213446e8284d53c6c7", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", + "sebastian/comparator": "^1.1|^2.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8 || ^5.6.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7.x-dev" + } + }, + "autoload": { + "psr-0": { + "Prophecy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "time": "2017-07-19T07:44:25+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "c3a4de854cbd91af0993d4be36c3a4db8ef24f6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c3a4de854cbd91af0993d4be36c3a4db8ef24f6b", + "reference": "c3a4de854cbd91af0993d4be36c3a4db8ef24f6b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.0", + "phpunit/php-file-iterator": "^1.4.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^2.0", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^3.0", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" + }, + "require-dev": { + "ext-xdebug": "^2.5", + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-xdebug": "^2.5.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "time": "2017-08-03T14:42:12+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5", + "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2016-10-03T07:40:28+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "d107f347d368dd8a384601398280c7c608390ab7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/d107f347d368dd8a384601398280c7c608390ab7", + "reference": "d107f347d368dd8a384601398280c7c608390ab7", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2017-03-07T15:42:04+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "8c0bca4db90bb0a0b400ad8e90fee3210081701d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/8c0bca4db90bb0a0b400ad8e90fee3210081701d", + "reference": "8c0bca4db90bb0a0b400ad8e90fee3210081701d", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.2.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2017-08-03T14:21:49+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "169bb8351039018b315438d7661606ed5e8609f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/169bb8351039018b315438d7661606ed5e8609f3", + "reference": "169bb8351039018b315438d7661606ed5e8609f3", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "myclabs/deep-copy": "^1.6.1", + "phar-io/manifest": "^1.0.1", + "phar-io/version": "^1.0", + "php": "^7.0", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^5.2.2", + "phpunit/php-file-iterator": "^1.4.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^1.0.9", + "phpunit/phpunit-mock-objects": "^4.0.3", + "sebastian/comparator": "^2.0.2", + "sebastian/diff": "^2.0", + "sebastian/environment": "^3.1", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^2.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^1.0", + "sebastian/version": "^2.0.1" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "3.0.2", + "phpunit/dbunit": "<3.0" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-xdebug": "*", + "phpunit/php-invoker": "^1.1" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.4.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2017-08-10T16:53:26+00:00" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "2f789b59ab89669015ad984afa350c4ec577ade0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/2f789b59ab89669015ad984afa350c4ec577ade0", + "reference": "2f789b59ab89669015ad984afa350c4ec577ade0", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.5", + "php": "^7.0", + "phpunit/php-text-template": "^1.2.1", + "sebastian/exporter": "^3.0" + }, + "conflict": { + "phpunit/phpunit": "<6.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-soap": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "time": "2017-08-03T14:08:16+00:00" + }, + { + "name": "psr/container", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "2cc4a01788191489dc7459446ba832fa79a216a7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/2cc4a01788191489dc7459446ba832fa79a216a7", + "reference": "2cc4a01788191489dc7459446ba832fa79a216a7", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-06-28 15:35:32" + }, + { + "name": "psr/http-message", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "time": "2016-08-06 14:39:51" + }, + { + "name": "psr/log", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2016-10-10 12:19:37" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "3488be0a7b346cd6e5361510ed07e88f9bea2e88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/3488be0a7b346cd6e5361510ed07e88f9bea2e88", + "reference": "3488be0a7b346cd6e5361510ed07e88f9bea2e88", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^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": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "time": "2017-03-04T10:23:55+00:00" + }, + { + "name": "sebastian/comparator", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "ae068fede81d06e7bb9bb46a367210a3d3e1fe6a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/ae068fede81d06e7bb9bb46a367210a3d3e1fe6a", + "reference": "ae068fede81d06e7bb9bb46a367210a3d3e1fe6a", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/diff": "^2.0", + "sebastian/exporter": "^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "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": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "http://www.github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2017-08-03T07:14:59+00:00" + }, + { + "name": "sebastian/diff", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", + "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2017-08-03T08:09:46+00:00" + }, + { + "name": "sebastian/environment", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.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 functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2017-07-01T08:51:00+00:00" + }, + { + "name": "sebastian/exporter", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" + "export", + "exporter" ], - "time": "2017-06-22T18:50:49+00:00" + "time": "2017-04-03T13:19:02+00:00" }, { - "name": "guzzlehttp/promises", + "name": "sebastian/global-state", "version": "dev-master", "source": { "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "09e549f5534380c68761260a71f847644d8f65aa" + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/09e549f5534380c68761260a71f847644d8f65aa", - "reference": "09e549f5534380c68761260a71f847644d8f65aa", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", "shasum": "" }, "require": { - "php": ">=5.5.0" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.0" + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-uopz": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "2.0-dev" } }, "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Guzzle promises library", + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", "keywords": [ - "promise" + "global state" ], - "time": "2017-05-20 23:14:18" + "time": "2017-04-27T15:39:26+00:00" }, { - "name": "guzzlehttp/psr7", + "name": "sebastian/object-enumerator", "version": "dev-master", "source": { "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "526d8ef63e8701e02216b621e4a3a16085e2286f" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/526d8ef63e8701e02216b621e4a3a16085e2286f", - "reference": "526d8ef63e8701e02216b621e4a3a16085e2286f", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", "shasum": "" }, "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Schultze", - "homepage": "https://github.com/Tobion" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": [ - "http", - "message", - "request", - "response", - "stream", - "uri", - "url" - ], - "time": "2017-06-19 13:30:27" + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-08-03T12:35:26+00:00" }, { - "name": "instaclick/php-webdriver", + "name": "sebastian/object-reflector", "version": "dev-master", "source": { "type": "git", - "url": "https://github.com/instaclick/php-webdriver.git", - "reference": "6fa959452e774dcaed543faad3a9d1a37d803327" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/6fa959452e774dcaed543faad3a9d1a37d803327", - "reference": "6fa959452e774dcaed543faad3a9d1a37d803327", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", "shasum": "" }, "require": { - "ext-curl": "*", - "php": ">=5.3.2" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.8", - "satooshi/php-coveralls": "^1.0||^2.0" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.1-dev" } }, "autoload": { - "psr-0": { - "WebDriver": "lib/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "BSD-3-Clause" ], "authors": [ { - "name": "Justin Bishop", - "email": "jubishop@gmail.com", - "role": "Developer" - }, - { - "name": "Anthon Pang", - "email": "apang@softwaredevelopment.ca", - "role": "Fork Maintainer" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "PHP WebDriver for Selenium 2", - "homepage": "http://instaclick.com/", - "keywords": [ - "browser", - "selenium", - "webdriver", - "webtest" - ], - "time": "2017-06-30 04:02:48" + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2017-03-29T09:07:27+00:00" }, { - "name": "psr/container", + "name": "sebastian/recursion-context", "version": "dev-master", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "2cc4a01788191489dc7459446ba832fa79a216a7" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "a0e54bc9bf04e2c5b302236984cebc277631f0f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/2cc4a01788191489dc7459446ba832fa79a216a7", - "reference": "2cc4a01788191489dc7459446ba832fa79a216a7", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/a0e54bc9bf04e2c5b302236984cebc277631f0f1", + "reference": "a0e54bc9bf04e2c5b302236984cebc277631f0f1", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "time": "2017-06-28 15:35:32" + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2017-03-07T15:09:59+00:00" }, { - "name": "psr/http-message", + "name": "sebastian/resource-operations", "version": "dev-master", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "fadc83f7c41fb2924e542635fea47ae546816ece" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/fadc83f7c41fb2924e542635fea47ae546816ece", + "reference": "fadc83f7c41fb2924e542635fea47ae546816ece", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=5.6.0" }, "type": "library", "extra": { @@ -1175,78 +2546,66 @@ } }, "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "time": "2016-08-06 14:39:51" + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2016-10-03T07:43:09+00:00" }, { - "name": "psr/log", + "name": "sebastian/version", "version": "dev-master", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=5.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2016-10-10 12:19:37" + "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" }, { "name": "squizlabs/php_codesniffer", @@ -2147,6 +3506,96 @@ "description": "Symfony Yaml Component", "homepage": "https://symfony.com", "time": "2017-07-03 10:20:17" + }, + { + "name": "theseer/tokenizer", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2017-04-07T12:08:54+00:00" + }, + { + "name": "webmozart/assert", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "4a8bf11547e139e77b651365113fc12850c43d9a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/4a8bf11547e139e77b651365113fc12850c43d9a", + "reference": "4a8bf11547e139e77b651365113fc12850c43d9a", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2016-11-23T20:04:41+00:00" } ], "aliases": [], From 17c53ce9c4db76570a59e458b822f2dd076f4e85 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 10 Aug 2017 16:20:55 -0500 Subject: [PATCH 58/83] Adding files for tests --- tests/behat/helper_classes/agetracker.php | 39 +++++++++++++++++++ .../helper_classes/tests/agetrackerTest.php | 33 ++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 tests/behat/helper_classes/agetracker.php create mode 100644 tests/behat/helper_classes/tests/agetrackerTest.php diff --git a/tests/behat/helper_classes/agetracker.php b/tests/behat/helper_classes/agetracker.php new file mode 100644 index 0000000..5468e5a --- /dev/null +++ b/tests/behat/helper_classes/agetracker.php @@ -0,0 +1,39 @@ +ensureIsValidEmail($email); + + $this->email = $email; + } + + public static function fromString(string $email): self + { + return new self($email); + } + + public function __toString(): string + { + return $this->email; + } + + private function ensureIsValidEmail(string $email) + { + if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { + throw new InvalidArgumentException( + sprintf( + '"%s" is not a valid email address', + $email + ) + ); + } + } +} \ No newline at end of file diff --git a/tests/behat/helper_classes/tests/agetrackerTest.php b/tests/behat/helper_classes/tests/agetrackerTest.php new file mode 100644 index 0000000..3dc4fa9 --- /dev/null +++ b/tests/behat/helper_classes/tests/agetrackerTest.php @@ -0,0 +1,33 @@ +assertInstanceOf( + Email::class, + Email::fromString('user@example.com') + ); + } + + public function testCannotBeCreatedFromInvalidEmailAddress() + { + $this->expectException(InvalidArgumentException::class); + + Email::fromString('invalid'); + } + + public function testCanBeUsedAsString() + { + $this->assertEquals( + 'user@example.com', + Email::fromString('user@example.com') + ); + } +} \ No newline at end of file From c2515cb52c3988f0e8b12b0242cf5f9e614a4edf Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 10 Aug 2017 16:58:42 -0500 Subject: [PATCH 59/83] tracking response headers --- composer.json | 5 +- .../features/bootstrap/FeatureContext.php | 8 +++ tests/behat/helper_classes/agetracker.php | 46 ++++-------- .../helper_classes/tests/agetrackerTest.php | 70 ++++++++++++++----- 4 files changed, 80 insertions(+), 49 deletions(-) diff --git a/composer.json b/composer.json index e205bb4..5d1519a 100644 --- a/composer.json +++ b/composer.json @@ -18,5 +18,8 @@ "url": "https://packages.drupal.org/8" } }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "autoload": { + "psr-4": { "PantheonSystems\\CDNBehatHelpers\\": "tests/behat/helper_classes/" } + } } diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php index 392f5ee..624fa50 100644 --- a/tests/behat/features/bootstrap/FeatureContext.php +++ b/tests/behat/features/bootstrap/FeatureContext.php @@ -159,8 +159,16 @@ protected function getAge($page) { $this->minkContext->visit($page); // } + + print_r($this->minkContext->getSession()->getResponseHeaders()); + $age = $this->minkContext->getSession()->getResponseHeader('Age'); return $age; } + protected function getAgeTracker() { + + +} + } diff --git a/tests/behat/helper_classes/agetracker.php b/tests/behat/helper_classes/agetracker.php index 5468e5a..8a14535 100644 --- a/tests/behat/helper_classes/agetracker.php +++ b/tests/behat/helper_classes/agetracker.php @@ -2,38 +2,20 @@ declare(strict_types=1); +namespace PantheonSystems\CDNBehatHelpers; +use InvalidArgumentException; - -final class Email +final class agetracker { - private $email; - - private function __construct(string $email) - { - $this->ensureIsValidEmail($email); - - $this->email = $email; - } - - public static function fromString(string $email): self - { - return new self($email); - } - - public function __toString(): string - { - return $this->email; - } - - private function ensureIsValidEmail(string $email) - { - if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { - throw new InvalidArgumentException( - sprintf( - '"%s" is not a valid email address', - $email - ) - ); - } - } + + + + public function trackHeaders($path, $headers) { + $this->headers[$path][] = $headers; + +} + public function getTrackedHeaders($path) { + return $this->headers[$path]; + + } } \ No newline at end of file diff --git a/tests/behat/helper_classes/tests/agetrackerTest.php b/tests/behat/helper_classes/tests/agetrackerTest.php index 3dc4fa9..062c938 100644 --- a/tests/behat/helper_classes/tests/agetrackerTest.php +++ b/tests/behat/helper_classes/tests/agetrackerTest.php @@ -3,31 +3,69 @@ use PHPUnit\Framework\TestCase; + +use PantheonSystems\CDNBehatHelpers\agetracker; + /** * @covers Email */ final class EmailTest extends TestCase { - public function testCanBeCreatedFromValidEmailAddress() - { - $this->assertInstanceOf( - Email::class, - Email::fromString('user@example.com') - ); + + /** + * Tests ClipCreator::extractClipTitles(). + * + * @param string $body_text + * The body text of a podcast_episode. + * @param array $extracted_titles + * Clip titles extracted from body field. + * + * @dataProvider providerPathsAndHeaders + * @covers ::getTrackedHeaders + */ + public function testGetTrackedHeaders($path, array $headers) { + $agetracker = new agetracker(''); + $agetracker->trackHeaders($path, $headers); + + + $actual_tracked_headers = $agetracker->getTrackedHeaders($path); + +print_r($actual_tracked_headers); + + + $this->assertEquals(array($headers), $actual_tracked_headers); + } + /** + * Data provider for testExtractClipTitles. + * + * @return array + * An array of test data. + */ + public function providerPathsAndHeaders() { + $data = array(); + $data[] = [ + '/home', + + array('Age' => array(3)) +]; + + + return $data; } - public function testCannotBeCreatedFromInvalidEmailAddress() - { - $this->expectException(InvalidArgumentException::class); - Email::fromString('invalid'); + + + public function trackHeaders($path, $headers) { + + } + public function getTrackedHeaders($path) { + return []; + - public function testCanBeUsedAsString() - { - $this->assertEquals( - 'user@example.com', - Email::fromString('user@example.com') - ); } + + + } \ No newline at end of file From b6bcc01e023f6c3634b085e1c00dd97a1d185881 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 10 Aug 2017 17:24:59 -0500 Subject: [PATCH 60/83] tracking response headers --- .../features/bootstrap/FeatureContext.php | 2 +- tests/behat/helper_classes/agetracker.php | 9 +- .../helper_classes/tests/agetrackerTest.php | 96 ++++++++++++++++--- 3 files changed, 92 insertions(+), 15 deletions(-) diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php index 624fa50..8c9b859 100644 --- a/tests/behat/features/bootstrap/FeatureContext.php +++ b/tests/behat/features/bootstrap/FeatureContext.php @@ -160,7 +160,7 @@ protected function getAge($page) { // } - print_r($this->minkContext->getSession()->getResponseHeaders()); + var_export($this->minkContext->getSession()->getResponseHeaders()); $age = $this->minkContext->getSession()->getResponseHeader('Age'); return $age; diff --git a/tests/behat/helper_classes/agetracker.php b/tests/behat/helper_classes/agetracker.php index 8a14535..7dcc52b 100644 --- a/tests/behat/helper_classes/agetracker.php +++ b/tests/behat/helper_classes/agetracker.php @@ -11,11 +11,14 @@ final class agetracker public function trackHeaders($path, $headers) { - $this->headers[$path][] = $headers; - -} + $this->headers[$path][] = $headers; + } public function getTrackedHeaders($path) { return $this->headers[$path]; + } + public function wasCacheClearedBetweenLastTwoRequests($path) { + return TRUE; } + } \ No newline at end of file diff --git a/tests/behat/helper_classes/tests/agetrackerTest.php b/tests/behat/helper_classes/tests/agetrackerTest.php index 062c938..d853166 100644 --- a/tests/behat/helper_classes/tests/agetrackerTest.php +++ b/tests/behat/helper_classes/tests/agetrackerTest.php @@ -13,12 +13,12 @@ final class EmailTest extends TestCase { /** - * Tests ClipCreator::extractClipTitles(). + * Tests agetracker::getTrackedHeaders * - * @param string $body_text - * The body text of a podcast_episode. - * @param array $extracted_titles - * Clip titles extracted from body field. + * @param string $path + * The url being tracked + * @param array $headers + * The headers of each time the URL was checked * * @dataProvider providerPathsAndHeaders * @covers ::getTrackedHeaders @@ -29,10 +29,6 @@ public function testGetTrackedHeaders($path, array $headers) { $actual_tracked_headers = $agetracker->getTrackedHeaders($path); - -print_r($actual_tracked_headers); - - $this->assertEquals(array($headers), $actual_tracked_headers); } /** @@ -45,10 +41,29 @@ public function providerPathsAndHeaders() { $data = array(); $data[] = [ '/home', + $this->cacheLifeIncreasing(), + ]; + $data[] = [ + '/cache-got-cleared', + $this->cacheGotClearedHeaders(), + ]; + + return $data; + } - array('Age' => array(3)) -]; + public function providerExpectedCacheClears() { + $data = array(); + $data[] = [ + '/home', + $this->cacheLifeIncreasing(), + FALSE, + ]; + $data[] = [ + '/cache-got-cleared', + $this->cacheGotClearedHeaders(), + TRUE, + ]; return $data; } @@ -56,6 +71,65 @@ public function providerPathsAndHeaders() { + /** + * Tests agetracker::getTrackedHeaders + * + * @param string $path + * The url being tracked + * @param array $headers + * The headers of each time the URL was checked + * + * @dataProvider providerExpectedCacheClears + * @covers ::wasCacheClearedBetweenLastTwoRequests + */ + public function testCheckCacheClear($path, array $headers, $expected_cache_clear) { + $agetracker = new agetracker(''); + $agetracker->trackHeaders($path, $headers); + + + + $this->assertEquals($expected_cache_clear, $agetracker->wasCacheClearedBetweenLastTwoRequests($path)); + } + + + + protected function cacheLifeIncreasing(){ + return [ + [ + 'Cache-Control' => ['max-age=600, public'], + 'Age' => [3], + 'X-Timer' => ['S1502402462.916272,VS0,VE1'] + ], + [ + 'Cache-Control' => ['max-age=600, public'], + 'Age' => [10], + 'X-Timer' => ['S1502402469.916272,VS0,VE1'] + ], + ]; + + } + + protected function cacheGotClearedHeaders(){ + return [ + [ + 'Cache-Control' => ['max-age=600, public'], + 'Age' => [30], + 'X-Timer' => ['S1502402462.916272,VS0,VE1'] + ], + [ + 'Cache-Control' => ['max-age=600, public'], + 'Age' => [4], + 'X-Timer' => ['S1502402469.916272,VS0,VE1'] + ], + ]; + + } + + + + + + public function trackHeaders($path, $headers) { From 69951bf39503d1a4170cf0527a453f847eaf8ca8 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 10:27:12 -0500 Subject: [PATCH 61/83] working on age tracking --- tests/behat/helper_classes/agetracker.php | 18 +++++++++++++++++- .../helper_classes/tests/agetrackerTest.php | 10 +++++----- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/tests/behat/helper_classes/agetracker.php b/tests/behat/helper_classes/agetracker.php index 7dcc52b..f5705b3 100644 --- a/tests/behat/helper_classes/agetracker.php +++ b/tests/behat/helper_classes/agetracker.php @@ -18,7 +18,23 @@ public function getTrackedHeaders($path) { } public function wasCacheClearedBetweenLastTwoRequests($path) { - return TRUE; + + // Assign the headers to a new variable so that $this->headers is not modified by array_pop(). + $headers = $this->headers[$path]; + + print_r($headers); + + $most_recent = array_pop($headers); + + + + $second_most_recent = array_pop($headers); + // If the Age header on the most recent request is smaller than the age header on the second most recent + // Then the cache was cleared (@todo, or it expired) + // @todo, account for max age. + return $most_recent['Age'][0] < $second_most_recent['Age'][0]; + + } } \ No newline at end of file diff --git a/tests/behat/helper_classes/tests/agetrackerTest.php b/tests/behat/helper_classes/tests/agetrackerTest.php index d853166..5c30da2 100644 --- a/tests/behat/helper_classes/tests/agetrackerTest.php +++ b/tests/behat/helper_classes/tests/agetrackerTest.php @@ -82,19 +82,19 @@ public function providerExpectedCacheClears() { * @dataProvider providerExpectedCacheClears * @covers ::wasCacheClearedBetweenLastTwoRequests */ - public function testCheckCacheClear($path, array $headers, $expected_cache_clear) { + public function testCheckCacheClear($path, array $headers_set, $expected_cache_clear) { $agetracker = new agetracker(''); - $agetracker->trackHeaders($path, $headers); - - + foreach ($headers_set as $headers) { + $agetracker->trackHeaders($path, $headers); + } $this->assertEquals($expected_cache_clear, $agetracker->wasCacheClearedBetweenLastTwoRequests($path)); } protected function cacheLifeIncreasing(){ - return [ + return [ [ 'Cache-Control' => ['max-age=600, public'], 'Age' => [3], From 50a5a1a9daf99c1ef1831d6592b24816ea183c5f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 10:34:01 -0500 Subject: [PATCH 62/83] Fixing tracker test --- tests/behat/helper_classes/agetracker.php | 6 ------ tests/behat/helper_classes/tests/agetrackerTest.php | 10 +++++----- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/tests/behat/helper_classes/agetracker.php b/tests/behat/helper_classes/agetracker.php index f5705b3..c86bb55 100644 --- a/tests/behat/helper_classes/agetracker.php +++ b/tests/behat/helper_classes/agetracker.php @@ -21,13 +21,7 @@ public function wasCacheClearedBetweenLastTwoRequests($path) { // Assign the headers to a new variable so that $this->headers is not modified by array_pop(). $headers = $this->headers[$path]; - - print_r($headers); - $most_recent = array_pop($headers); - - - $second_most_recent = array_pop($headers); // If the Age header on the most recent request is smaller than the age header on the second most recent // Then the cache was cleared (@todo, or it expired) diff --git a/tests/behat/helper_classes/tests/agetrackerTest.php b/tests/behat/helper_classes/tests/agetrackerTest.php index 5c30da2..72e7220 100644 --- a/tests/behat/helper_classes/tests/agetrackerTest.php +++ b/tests/behat/helper_classes/tests/agetrackerTest.php @@ -23,13 +23,13 @@ final class EmailTest extends TestCase * @dataProvider providerPathsAndHeaders * @covers ::getTrackedHeaders */ - public function testGetTrackedHeaders($path, array $headers) { + public function testGetTrackedHeaders($path, array $headers_set) { $agetracker = new agetracker(''); - $agetracker->trackHeaders($path, $headers); - - + foreach ($headers_set as $headers) { + $agetracker->trackHeaders($path, $headers); + } $actual_tracked_headers = $agetracker->getTrackedHeaders($path); - $this->assertEquals(array($headers), $actual_tracked_headers); + $this->assertEquals($headers_set, $actual_tracked_headers); } /** * Data provider for testExtractClipTitles. From fb4ad8b88529371734aa64f8fc426bd577ea4e91 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 10:41:33 -0500 Subject: [PATCH 63/83] ageTracker cleanup --- tests/behat/helper_classes/agetracker.php | 2 +- .../helper_classes/tests/agetrackerTest.php | 46 +++++-------------- 2 files changed, 13 insertions(+), 35 deletions(-) diff --git a/tests/behat/helper_classes/agetracker.php b/tests/behat/helper_classes/agetracker.php index c86bb55..811674b 100644 --- a/tests/behat/helper_classes/agetracker.php +++ b/tests/behat/helper_classes/agetracker.php @@ -5,7 +5,7 @@ namespace PantheonSystems\CDNBehatHelpers; use InvalidArgumentException; -final class agetracker +final class AgeTracker { diff --git a/tests/behat/helper_classes/tests/agetrackerTest.php b/tests/behat/helper_classes/tests/agetrackerTest.php index 72e7220..273e9dc 100644 --- a/tests/behat/helper_classes/tests/agetrackerTest.php +++ b/tests/behat/helper_classes/tests/agetrackerTest.php @@ -4,16 +4,15 @@ use PHPUnit\Framework\TestCase; -use PantheonSystems\CDNBehatHelpers\agetracker; +use PantheonSystems\CDNBehatHelpers\AgeTracker; /** - * @covers Email + * @covers AgeTracker */ -final class EmailTest extends TestCase +final class AgeTrackerTest extends TestCase { - /** - * Tests agetracker::getTrackedHeaders + * Tests AgeTracker::getTrackedHeaders * * @param string $path * The url being tracked @@ -24,11 +23,11 @@ final class EmailTest extends TestCase * @covers ::getTrackedHeaders */ public function testGetTrackedHeaders($path, array $headers_set) { - $agetracker = new agetracker(''); + $AgeTracker = new AgeTracker(''); foreach ($headers_set as $headers) { - $agetracker->trackHeaders($path, $headers); + $AgeTracker->trackHeaders($path, $headers); } - $actual_tracked_headers = $agetracker->getTrackedHeaders($path); + $actual_tracked_headers = $AgeTracker->getTrackedHeaders($path); $this->assertEquals($headers_set, $actual_tracked_headers); } /** @@ -68,11 +67,8 @@ public function providerExpectedCacheClears() { return $data; } - - - /** - * Tests agetracker::getTrackedHeaders + * Tests AgeTracker::getTrackedHeaders * * @param string $path * The url being tracked @@ -83,12 +79,12 @@ public function providerExpectedCacheClears() { * @covers ::wasCacheClearedBetweenLastTwoRequests */ public function testCheckCacheClear($path, array $headers_set, $expected_cache_clear) { - $agetracker = new agetracker(''); + $AgeTracker = new AgeTracker(''); foreach ($headers_set as $headers) { - $agetracker->trackHeaders($path, $headers); + $AgeTracker->trackHeaders($path, $headers); } - $this->assertEquals($expected_cache_clear, $agetracker->wasCacheClearedBetweenLastTwoRequests($path)); + $this->assertEquals($expected_cache_clear, $AgeTracker->wasCacheClearedBetweenLastTwoRequests($path)); } @@ -118,28 +114,10 @@ protected function cacheGotClearedHeaders(){ ], [ 'Cache-Control' => ['max-age=600, public'], - 'Age' => [4], + 'Age' => [0], 'X-Timer' => ['S1502402469.916272,VS0,VE1'] ], ]; } - - - - - - - public function trackHeaders($path, $headers) { - - - } - public function getTrackedHeaders($path) { - return []; - - - } - - - } \ No newline at end of file From edb6d25fe52fde8e3566476e9cbf3e56cbc36c76 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 10:44:14 -0500 Subject: [PATCH 64/83] renaming files --- tests/behat/features/bootstrap/FeatureContext.php | 1 + tests/behat/helper_classes/{agetracker.php => AgeTracker.php} | 2 -- .../tests/{agetrackerTest.php => AgeTrackerTest.php} | 0 3 files changed, 1 insertion(+), 2 deletions(-) rename tests/behat/helper_classes/{agetracker.php => AgeTracker.php} (99%) rename tests/behat/helper_classes/tests/{agetrackerTest.php => AgeTrackerTest.php} (100%) diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php index 8c9b859..97ec753 100644 --- a/tests/behat/features/bootstrap/FeatureContext.php +++ b/tests/behat/features/bootstrap/FeatureContext.php @@ -10,6 +10,7 @@ use Drupal\DrupalExtension\Context\RawDrupalContext; + /** * Define application features from the specific context. */ diff --git a/tests/behat/helper_classes/agetracker.php b/tests/behat/helper_classes/AgeTracker.php similarity index 99% rename from tests/behat/helper_classes/agetracker.php rename to tests/behat/helper_classes/AgeTracker.php index 811674b..17f22d9 100644 --- a/tests/behat/helper_classes/agetracker.php +++ b/tests/behat/helper_classes/AgeTracker.php @@ -8,8 +8,6 @@ final class AgeTracker { - - public function trackHeaders($path, $headers) { $this->headers[$path][] = $headers; } diff --git a/tests/behat/helper_classes/tests/agetrackerTest.php b/tests/behat/helper_classes/tests/AgeTrackerTest.php similarity index 100% rename from tests/behat/helper_classes/tests/agetrackerTest.php rename to tests/behat/helper_classes/tests/AgeTrackerTest.php From b985e0e263d429894bea736d6defd993949a3ab2 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 12:10:46 -0500 Subject: [PATCH 65/83] Behat tests running --- .../features/bootstrap/FeatureContext.php | 92 ++++++++++++++++--- .../features/views_custom_cache_tag.feature | 21 ++--- tests/behat/helper_classes/AgeTracker.php | 25 ++++- .../helper_classes/tests/AgeTrackerTest.php | 6 +- 4 files changed, 115 insertions(+), 29 deletions(-) diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php index 97ec753..4210574 100644 --- a/tests/behat/features/bootstrap/FeatureContext.php +++ b/tests/behat/features/bootstrap/FeatureContext.php @@ -7,7 +7,7 @@ use Behat\Gherkin\Node\PyStringNode; use Behat\Gherkin\Node\TableNode; use Behat\Behat\Hook\Scope\AfterStepScope; - +use PantheonSystems\CDNBehatHelpers\AgeTracker; use Drupal\DrupalExtension\Context\RawDrupalContext; @@ -28,6 +28,10 @@ public function __construct(array $parameters = []) { /** @var \Drupal\DrupalExtension\Context\MinkContext */ private $minkContext; + + + private $ageTracker; + /** @BeforeScenario */ public function gatherContexts(BeforeScenarioScope $scope) { @@ -121,7 +125,7 @@ public function pageIsCaching($page) { sleep(3); $age = $this->getAge($page); if (empty($age)) { - throw \Exception('not cached'); + throw new \Exception('not cached'); } else { return TRUE; } @@ -136,6 +140,12 @@ public function theListingPagesForPageAndArticleAreCached() { $this->pageIsCaching('custom-cache-tags/article'); $this->pageIsCaching('custom-cache-tags/page'); + + + + print_r($this->getAgeTracker()->getTrackedHeaders('custom-cache-tags/article')); + + } @@ -145,31 +155,91 @@ public function theListingPagesForPageAndArticleAreCached() */ public function theArticleNodeListingWasNotPurged() { + $path = 'custom-cache-tags/article'; + $this->assertPathAgeIncreased($path); + } + - $age = $this->getAge('custom-cache-tags/article'); - print_r($age); + protected function assertPathAgeIncreased($path) { + $age = $this->getAge($path); + if (!$this->pathAgeIncreased($path)) { - //throw new PendingException(); + + throw new \Exception('Cache age did not increase'); + } + print_r($this->getAgeTracker()); } + + + protected function assertPathHasNotBeenPurged($path) { + if ($this->pathHasBeenPurged($path)) { + + + throw new \Exception('Cache was cleared between requests'); + } + print_r($this->getAgeTracker()); + } + + protected function assertPathHasBeenPurged($path) { + if (!$this->pathHasBeenPurged($path)) { + throw new \Exception('Cache was not cleared between requests'); + } + } + + /** + * @Then I see that the cache for the page node listing has been purged + */ + public function iSeeThatTheCacheForThePageNodeListingHasBeenPurged() + { + $path = 'custom-cache-tags/page'; + $this->assertPathHasBeenPurged($path); + } + + protected function pathAgeIncreased($path) + { + $ageTracker = $this->getAgeTracker(); + return $ageTracker->AgeIncreasedBetweenLastTwoRequests($path); + } + + + protected function pathHasBeenPurged($path) + { + $age = $this->getAge($path); + $ageTracker = $this->getAgeTracker(); + return $ageTracker->wasCacheClearedBetweenLastTwoRequests($path); + } + + /** + * @Then the age increases again on subsequent requests to the page node listing + */ + public function theAgeIncreasesAgainOnSubsequentRequestsToThePageNodeListing() + { + sleep(2); + $path = 'custom-cache-tags/page'; + $this->assertPathAgeIncreased($path); + } + + protected function getAge($page) { -// if (!empty($page)) { - $this->minkContext->visit($page); - // } + $this->minkContext->visit($page); - var_export($this->minkContext->getSession()->getResponseHeaders()); + $this->getAgeTracker()->trackHeaders($page, $this->minkContext->getSession()->getResponseHeaders()); $age = $this->minkContext->getSession()->getResponseHeader('Age'); return $age; } protected function getAgeTracker() { + if (empty($this->ageTracker)) { + $this->ageTracker = new AgeTracker(); + } + return $this->ageTracker; - -} + } } diff --git a/tests/behat/features/views_custom_cache_tag.feature b/tests/behat/features/views_custom_cache_tag.feature index b220667..1c459ad 100644 --- a/tests/behat/features/views_custom_cache_tag.feature +++ b/tests/behat/features/views_custom_cache_tag.feature @@ -23,17 +23,14 @@ I want to use granular cache tags for Views that reflect the type of content dis # # And the listing pages for page and article are caching - And I break -# -# -## When I make nodes of type "page" -# And I run drush "generate-content 2 --types=page" -# And drush output should contain "Finished creating 2 nodes" -# And drush output should contain "Generate process complete." -# -## Then I see that the cache for the page node listing has been purged -## And the age increases again on subsequent requests to the page node listing -# And the article node listing was not purged. + # And I break - And the article node listing was not purged. \ No newline at end of file +## When I make nodes of type "page" + And I run drush "generate-content 2 --types=page" + And drush output should contain "Finished creating 2 nodes" + And drush output should contain "Generate process complete." +## + Then I see that the cache for the page node listing has been purged + And the age increases again on subsequent requests to the page node listing + And the article node listing was not purged. diff --git a/tests/behat/helper_classes/AgeTracker.php b/tests/behat/helper_classes/AgeTracker.php index 17f22d9..1b49272 100644 --- a/tests/behat/helper_classes/AgeTracker.php +++ b/tests/behat/helper_classes/AgeTracker.php @@ -9,7 +9,11 @@ final class AgeTracker { public function trackHeaders($path, $headers) { - $this->headers[$path][] = $headers; + $this->headers[$path][] = array_filter($headers, function($v, $k) { + return $k == 'Age'; +}, ARRAY_FILTER_USE_BOTH); + + } public function getTrackedHeaders($path) { return $this->headers[$path]; @@ -24,9 +28,26 @@ public function wasCacheClearedBetweenLastTwoRequests($path) { // If the Age header on the most recent request is smaller than the age header on the second most recent // Then the cache was cleared (@todo, or it expired) // @todo, account for max age. - return $most_recent['Age'][0] < $second_most_recent['Age'][0]; + + $return = (integer) $most_recent['Age'][0] < (integer) $second_most_recent['Age'][0]; + return $return; } + + + public function AgeIncreasedBetweenLastTwoRequests($path) { + + // Assign the headers to a new variable so that $this->headers is not modified by array_pop(). + $headers = $this->headers[$path]; + $most_recent = array_pop($headers); + $second_most_recent = array_pop($headers); + $return = (integer) $most_recent['Age'][0] > (integer) $second_most_recent['Age'][0]; + + + return $return; + } + + } \ No newline at end of file diff --git a/tests/behat/helper_classes/tests/AgeTrackerTest.php b/tests/behat/helper_classes/tests/AgeTrackerTest.php index 273e9dc..2ec3d39 100644 --- a/tests/behat/helper_classes/tests/AgeTrackerTest.php +++ b/tests/behat/helper_classes/tests/AgeTrackerTest.php @@ -2,8 +2,6 @@ declare(strict_types=1); use PHPUnit\Framework\TestCase; - - use PantheonSystems\CDNBehatHelpers\AgeTracker; /** @@ -23,7 +21,7 @@ final class AgeTrackerTest extends TestCase * @covers ::getTrackedHeaders */ public function testGetTrackedHeaders($path, array $headers_set) { - $AgeTracker = new AgeTracker(''); + $AgeTracker = new AgeTracker(); foreach ($headers_set as $headers) { $AgeTracker->trackHeaders($path, $headers); } @@ -79,7 +77,7 @@ public function providerExpectedCacheClears() { * @covers ::wasCacheClearedBetweenLastTwoRequests */ public function testCheckCacheClear($path, array $headers_set, $expected_cache_clear) { - $AgeTracker = new AgeTracker(''); + $AgeTracker = new AgeTracker(); foreach ($headers_set as $headers) { $AgeTracker->trackHeaders($path, $headers); From b5b12252da924de1eb3257e539a18ee481f46aed Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 13:23:54 -0500 Subject: [PATCH 66/83] Test cleanup --- .../features/bootstrap/FeatureContext.php | 68 ++++++------------- tests/behat/helper_classes/AgeTracker.php | 16 +---- 2 files changed, 22 insertions(+), 62 deletions(-) diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php index 4210574..3c4dbc1 100644 --- a/tests/behat/features/bootstrap/FeatureContext.php +++ b/tests/behat/features/bootstrap/FeatureContext.php @@ -99,7 +99,7 @@ public function afterStep(AfterStepScope $scope) $html = static::trimHead($html); print "::::::::::::::::::::::::::::::::::::::::::::::::\n"; -// print $html . "\n"; + print $html . "\n"; print "::::::::::::::::::::::::::::::::::::::::::::::::\n"; } @@ -122,7 +122,7 @@ public function pageIsCaching($page) { return TRUE; } else { - sleep(3); + sleep(2); $age = $this->getAge($page); if (empty($age)) { throw new \Exception('not cached'); @@ -140,16 +140,8 @@ public function theListingPagesForPageAndArticleAreCached() { $this->pageIsCaching('custom-cache-tags/article'); $this->pageIsCaching('custom-cache-tags/page'); - - - - print_r($this->getAgeTracker()->getTrackedHeaders('custom-cache-tags/article')); - - } - - /** * @Given the article node listing was not purged. */ @@ -159,45 +151,38 @@ public function theArticleNodeListingWasNotPurged() $this->assertPathAgeIncreased($path); } + /** + * @Then I see that the cache for the page node listing has been purged + */ + public function iSeeThatTheCacheForThePageNodeListingHasBeenPurged() + { + $path = 'custom-cache-tags/page'; + $this->assertPathHasBeenPurged($path); + } - + /** + * @Then the age increases again on subsequent requests to the page node listing + */ + public function theAgeIncreasesAgainOnSubsequentRequestsToThePageNodeListing() + { + sleep(1); + $path = 'custom-cache-tags/page'; + $this->assertPathAgeIncreased($path); + } protected function assertPathAgeIncreased($path) { $age = $this->getAge($path); if (!$this->pathAgeIncreased($path)) { - - throw new \Exception('Cache age did not increase'); } - print_r($this->getAgeTracker()); } - - - protected function assertPathHasNotBeenPurged($path) { - if ($this->pathHasBeenPurged($path)) { - - - throw new \Exception('Cache was cleared between requests'); - } - print_r($this->getAgeTracker()); - } - protected function assertPathHasBeenPurged($path) { if (!$this->pathHasBeenPurged($path)) { throw new \Exception('Cache was not cleared between requests'); } } - /** - * @Then I see that the cache for the page node listing has been purged - */ - public function iSeeThatTheCacheForThePageNodeListingHasBeenPurged() - { - $path = 'custom-cache-tags/page'; - $this->assertPathHasBeenPurged($path); - } - protected function pathAgeIncreased($path) { $ageTracker = $this->getAgeTracker(); @@ -212,22 +197,9 @@ protected function pathHasBeenPurged($path) return $ageTracker->wasCacheClearedBetweenLastTwoRequests($path); } - /** - * @Then the age increases again on subsequent requests to the page node listing - */ - public function theAgeIncreasesAgainOnSubsequentRequestsToThePageNodeListing() - { - sleep(2); - $path = 'custom-cache-tags/page'; - $this->assertPathAgeIncreased($path); - } - - protected function getAge($page) { $this->minkContext->visit($page); - - $this->getAgeTracker()->trackHeaders($page, $this->minkContext->getSession()->getResponseHeaders()); $age = $this->minkContext->getSession()->getResponseHeader('Age'); @@ -239,7 +211,5 @@ protected function getAgeTracker() { $this->ageTracker = new AgeTracker(); } return $this->ageTracker; - } - } diff --git a/tests/behat/helper_classes/AgeTracker.php b/tests/behat/helper_classes/AgeTracker.php index 1b49272..ea1ba4a 100644 --- a/tests/behat/helper_classes/AgeTracker.php +++ b/tests/behat/helper_classes/AgeTracker.php @@ -26,28 +26,18 @@ public function wasCacheClearedBetweenLastTwoRequests($path) { $most_recent = array_pop($headers); $second_most_recent = array_pop($headers); // If the Age header on the most recent request is smaller than the age header on the second most recent - // Then the cache was cleared (@todo, or it expired) - // @todo, account for max age. - - $return = (integer) $most_recent['Age'][0] < (integer) $second_most_recent['Age'][0]; - - + // Then the cache was cleared (@todo, or it expired (account for max age)) + $return = (integer) $most_recent['Age'][0] < (integer) $second_most_recent['Age'][0]; return $return; } - public function AgeIncreasedBetweenLastTwoRequests($path) { - // Assign the headers to a new variable so that $this->headers is not modified by array_pop(). $headers = $this->headers[$path]; $most_recent = array_pop($headers); $second_most_recent = array_pop($headers); - $return = (integer) $most_recent['Age'][0] > (integer) $second_most_recent['Age'][0]; - - + $return = (integer) $most_recent['Age'][0] > (integer) $second_most_recent['Age'][0]; return $return; } - - } \ No newline at end of file From ae06f296f201fb9da502ba5884f3d105065cbc2f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 13:50:07 -0500 Subject: [PATCH 67/83] Test cleanup --- .../features/bootstrap/FeatureContext.php | 71 ++++--------------- .../features/views_custom_cache_tag.feature | 42 +++++------ 2 files changed, 32 insertions(+), 81 deletions(-) diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php index 3c4dbc1..fc00f2f 100644 --- a/tests/behat/features/bootstrap/FeatureContext.php +++ b/tests/behat/features/bootstrap/FeatureContext.php @@ -114,7 +114,9 @@ protected static function trimHead($html) return $html; } - + /** + * @Given :page is caching + */ public function pageIsCaching($page) { $age = $this->getAge($page); @@ -129,79 +131,34 @@ public function pageIsCaching($page) { } else { return TRUE; } - } } /** - * @Given the listing pages for page and article are caching - */ - public function theListingPagesForPageAndArticleAreCached() - { - $this->pageIsCaching('custom-cache-tags/article'); - $this->pageIsCaching('custom-cache-tags/page'); - } - - /** - * @Given the article node listing was not purged. - */ - public function theArticleNodeListingWasNotPurged() - { - $path = 'custom-cache-tags/article'; - $this->assertPathAgeIncreased($path); - } - - /** - * @Then I see that the cache for the page node listing has been purged - */ - public function iSeeThatTheCacheForThePageNodeListingHasBeenPurged() - { - $path = 'custom-cache-tags/page'; - $this->assertPathHasBeenPurged($path); - } - - /** - * @Then the age increases again on subsequent requests to the page node listing + * @Then :path has not been purged */ - public function theAgeIncreasesAgainOnSubsequentRequestsToThePageNodeListing() - { - sleep(1); - $path = 'custom-cache-tags/page'; - $this->assertPathAgeIncreased($path); - } - - protected function assertPathAgeIncreased($path) { + public function assertPathAgeIncreased($path) { $age = $this->getAge($path); - if (!$this->pathAgeIncreased($path)) { + $ageTracker = $this->getAgeTracker(); + if (!$ageTracker->AgeIncreasedBetweenLastTwoRequests($path)) { throw new \Exception('Cache age did not increase'); } } - protected function assertPathHasBeenPurged($path) { - if (!$this->pathHasBeenPurged($path)) { - throw new \Exception('Cache was not cleared between requests'); - } - } - - protected function pathAgeIncreased($path) - { - $ageTracker = $this->getAgeTracker(); - return $ageTracker->AgeIncreasedBetweenLastTwoRequests($path); - } - - - protected function pathHasBeenPurged($path) - { + /** + * @Then :path has been purged + */ + public function assertPathHasBeenPurged($path) { $age = $this->getAge($path); $ageTracker = $this->getAgeTracker(); - return $ageTracker->wasCacheClearedBetweenLastTwoRequests($path); + if (!$ageTracker->wasCacheClearedBetweenLastTwoRequests($path)) { + throw new \Exception('Cache was not cleared between requests'); + } } protected function getAge($page) { - $this->minkContext->visit($page); $this->getAgeTracker()->trackHeaders($page, $this->minkContext->getSession()->getResponseHeaders()); - $age = $this->minkContext->getSession()->getResponseHeader('Age'); return $age; } diff --git a/tests/behat/features/views_custom_cache_tag.feature b/tests/behat/features/views_custom_cache_tag.feature index 1c459ad..5650a8b 100644 --- a/tests/behat/features/views_custom_cache_tag.feature +++ b/tests/behat/features/views_custom_cache_tag.feature @@ -3,34 +3,28 @@ In order to keep as many pages cached as possible when content is updated As an administrator I want to use granular cache tags for Views that reflect the type of content displayed by the View. - @api - Scenario: Normal expiration - - + Background: + When I run drush "pml --status=enabled --type=module" + Then drush output should contain "views_custom_cache_tag" + When I run drush "generate-content 20 --types=page,article" + Then drush output should contain "Finished creating 20 nodes" + And drush output should contain "Generate process complete." -# Given I am logged in as a user with the "administrator" role -# -# # Given that the views custom cache tag example module is enabled -# And I run drush "pml --status=enabled --type=module" -# And drush output should contain "views_custom_cache_tag" -# -# # And there are nodes of type page and article -# And I run drush "generate-content 20 --types=page,article" -# And drush output should contain "Finished creating 20 nodes" -# And drush output should contain "Generate process complete." -# -# - And the listing pages for page and article are caching - # And I break + @api + Scenario: Node type-based expiration + Given "custom-cache-tags/page" is caching + And "custom-cache-tags/article" is caching -## When I make nodes of type "page" - And I run drush "generate-content 2 --types=page" + # When I make a new page node + When I run drush "generate-content 1 --types=page" + # It might not be worthwhile to check the output of Drush. And drush output should contain "Finished creating 2 nodes" And drush output should contain "Generate process complete." -## - Then I see that the cache for the page node listing has been purged - And the age increases again on subsequent requests to the page node listing - And the article node listing was not purged. + + # Then the page listing is cleared the article is not + Then "custom-cache-tags/page" has been purged + And "custom-cache-tags/page" is caching + And "custom-cache-tags/article" has not been purged From 99c3977d5cb3e3cefab891b37a4ebbb33811f215 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 13:58:18 -0500 Subject: [PATCH 68/83] Forcing version lower --- composer.json | 3 + composer.lock | 157 +++++++++++++++++++++++++------------------------- 2 files changed, 82 insertions(+), 78 deletions(-) diff --git a/composer.json b/composer.json index 5d1519a..eb71d8f 100644 --- a/composer.json +++ b/composer.json @@ -21,5 +21,8 @@ "minimum-stability": "dev", "autoload": { "psr-4": { "PantheonSystems\\CDNBehatHelpers\\": "tests/behat/helper_classes/" } + }, + "require": { + "doctrine/instantiator": "1.0.5" } } diff --git a/composer.lock b/composer.lock index 8328500..649b825 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,63 @@ "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": "c66f287ee91fc6ddcf2a81d9ce3e9106", - "packages": [], + "content-hash": "7f08270344270fe06cd3ab726622246e", + "packages": [ + { + "name": "doctrine/instantiator", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "shasum": "" + }, + "require": { + "php": ">=5.3,<8.0-DEV" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2015-06-14T21:17:01+00:00" + } + ], "packages-dev": [ { "name": "behat/behat", @@ -625,60 +680,6 @@ "homepage": "https://github.com/container-interop/container-interop", "time": "2017-02-14T19:40:03+00:00" }, - { - "name": "doctrine/instantiator", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", - "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "athletic/athletic": "~0.1.8", - "ext-pdo": "*", - "ext-phar": "*", - "phpunit/phpunit": "^6.2.3", - "squizlabs/php_codesniffer": "^3.0.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "constructor", - "instantiate" - ], - "time": "2017-07-22T11:58:36+00:00" - }, { "name": "drupal/coder", "version": "8.2.12", @@ -1196,7 +1197,7 @@ "object", "object graph" ], - "time": "2017-04-12T18:52:22+00:00" + "time": "2017-04-12 18:52:22" }, { "name": "phar-io/manifest", @@ -1251,7 +1252,7 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2017-04-07T07:07:10+00:00" + "time": "2017-04-07 07:07:10" }, { "name": "phar-io/version", @@ -1352,7 +1353,7 @@ "reflection", "static analysis" ], - "time": "2017-04-30T11:58:12+00:00" + "time": "2017-04-30 11:58:12" }, { "name": "phpdocumentor/reflection-docblock", @@ -1507,7 +1508,7 @@ "spy", "stub" ], - "time": "2017-07-19T07:44:25+00:00" + "time": "2017-07-19 07:44:25" }, { "name": "phpunit/php-code-coverage", @@ -1571,7 +1572,7 @@ "testing", "xunit" ], - "time": "2017-08-03T14:42:12+00:00" + "time": "2017-08-03 14:42:12" }, { "name": "phpunit/php-file-iterator", @@ -1618,7 +1619,7 @@ "filesystem", "iterator" ], - "time": "2016-10-03T07:40:28+00:00" + "time": "2016-10-03 07:40:28" }, { "name": "phpunit/php-text-template", @@ -1708,7 +1709,7 @@ "keywords": [ "timer" ], - "time": "2017-03-07T15:42:04+00:00" + "time": "2017-03-07 15:42:04" }, { "name": "phpunit/php-token-stream", @@ -1757,7 +1758,7 @@ "keywords": [ "tokenizer" ], - "time": "2017-08-03T14:21:49+00:00" + "time": "2017-08-03 14:21:49" }, { "name": "phpunit/phpunit", @@ -1841,7 +1842,7 @@ "testing", "xunit" ], - "time": "2017-08-10T16:53:26+00:00" + "time": "2017-08-10 16:53:26" }, { "name": "phpunit/phpunit-mock-objects", @@ -1900,7 +1901,7 @@ "mock", "xunit" ], - "time": "2017-08-03T14:08:16+00:00" + "time": "2017-08-03 14:08:16" }, { "name": "psr/container", @@ -2091,7 +2092,7 @@ ], "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-04T10:23:55+00:00" + "time": "2017-03-04 10:23:55" }, { "name": "sebastian/comparator", @@ -2155,7 +2156,7 @@ "compare", "equality" ], - "time": "2017-08-03T07:14:59+00:00" + "time": "2017-08-03 07:14:59" }, { "name": "sebastian/diff", @@ -2207,7 +2208,7 @@ "keywords": [ "diff" ], - "time": "2017-08-03T08:09:46+00:00" + "time": "2017-08-03 08:09:46" }, { "name": "sebastian/environment", @@ -2257,7 +2258,7 @@ "environment", "hhvm" ], - "time": "2017-07-01T08:51:00+00:00" + "time": "2017-07-01 08:51:00" }, { "name": "sebastian/exporter", @@ -2324,7 +2325,7 @@ "export", "exporter" ], - "time": "2017-04-03T13:19:02+00:00" + "time": "2017-04-03 13:19:02" }, { "name": "sebastian/global-state", @@ -2375,7 +2376,7 @@ "keywords": [ "global state" ], - "time": "2017-04-27T15:39:26+00:00" + "time": "2017-04-27 15:39:26" }, { "name": "sebastian/object-enumerator", @@ -2422,7 +2423,7 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" + "time": "2017-08-03 12:35:26" }, { "name": "sebastian/object-reflector", @@ -2467,7 +2468,7 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" + "time": "2017-03-29 09:07:27" }, { "name": "sebastian/recursion-context", @@ -2520,7 +2521,7 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-07T15:09:59+00:00" + "time": "2017-03-07 15:09:59" }, { "name": "sebastian/resource-operations", @@ -2562,7 +2563,7 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2016-10-03T07:43:09+00:00" + "time": "2016-10-03 07:43:09" }, { "name": "sebastian/version", @@ -2605,7 +2606,7 @@ ], "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": "2016-10-03 07:35:21" }, { "name": "squizlabs/php_codesniffer", @@ -3595,7 +3596,7 @@ "check", "validate" ], - "time": "2016-11-23T20:04:41+00:00" + "time": "2016-11-23 20:04:41" } ], "aliases": [], From 537112269f6c472c57a718b781eae8411104705e Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 14:02:25 -0500 Subject: [PATCH 69/83] Changing site name --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c9431da..3e7ce5b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,7 +9,7 @@ jobs: environment: BASH_ENV: ~/.bashrc TZ: "/usr/share/zoneinfo/America/Los_Angeles" - TERMINUS_SITE: d8cdn + TERMINUS_SITE: d8papc steps: - checkout - restore_cache: From 45d3f4a426369d99e390144a3d2d2d1063fe9fdb Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 14:17:59 -0500 Subject: [PATCH 70/83] test cleanup --- .circleci/config.yml | 6 +++++- composer.json | 3 ++- tests/behat/helper_classes/AgeTracker.php | 15 ++++++++------- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3e7ce5b..6b3019b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -26,6 +26,9 @@ jobs: - run: name: PHP Code Sniff command: composer codesniff + - run: + name: Unit Tests for Behat helper + command: composer phpunit - run: name: login-pantheon command: | @@ -44,7 +47,8 @@ jobs: command: | terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 - terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- dl devel + terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- dl devel views_custom_cache_tag + terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- en -y devel_generate views_custom_cache_tag_demo - run: name: run behat command: ./tests/behat/run-behat.sh diff --git a/composer.json b/composer.json index eb71d8f..37994b0 100644 --- a/composer.json +++ b/composer.json @@ -10,7 +10,8 @@ "scripts": { - "codesniff": "phpcs --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal src" + "codesniff": "phpcs --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal src", + "phpunit": "phpunit tests --colors=always" }, "repositories": { "drupal": { diff --git a/tests/behat/helper_classes/AgeTracker.php b/tests/behat/helper_classes/AgeTracker.php index ea1ba4a..c4e3213 100644 --- a/tests/behat/helper_classes/AgeTracker.php +++ b/tests/behat/helper_classes/AgeTracker.php @@ -1,6 +1,4 @@ headers[$path][] = array_filter($headers, function($v, $k) { - return $k == 'Age'; -}, ARRAY_FILTER_USE_BOTH); - - + // Filter out headers that won't help with debugging. + $tracked_headers = [ + 'Age', + 'Cache-Control', + 'X-Timer' + ]; + return in_array($k, $tracked_headers); + }, ARRAY_FILTER_USE_BOTH); } public function getTrackedHeaders($path) { return $this->headers[$path]; @@ -31,7 +33,6 @@ public function wasCacheClearedBetweenLastTwoRequests($path) { return $return; } - public function AgeIncreasedBetweenLastTwoRequests($path) { // Assign the headers to a new variable so that $this->headers is not modified by array_pop(). $headers = $this->headers[$path]; From d353902e144fc7fb2045f565b933838cefc2c521 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 14:25:03 -0500 Subject: [PATCH 71/83] Behat test fixes --- tests/behat/features/views_custom_cache_tag.feature | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/behat/features/views_custom_cache_tag.feature b/tests/behat/features/views_custom_cache_tag.feature index 5650a8b..d646f37 100644 --- a/tests/behat/features/views_custom_cache_tag.feature +++ b/tests/behat/features/views_custom_cache_tag.feature @@ -5,8 +5,9 @@ I want to use granular cache tags for Views that reflect the type of content dis Background: - When I run drush "pml --status=enabled --type=module" - Then drush output should contain "views_custom_cache_tag" + When I run drush "en -y devel_generate views_custom_cache_tag_demo" + Then drush output should contain "devel_generate is already enabled." + Then drush output should contain "views_custom_cache_tag_demo is already enabled." When I run drush "generate-content 20 --types=page,article" Then drush output should contain "Finished creating 20 nodes" @@ -21,7 +22,7 @@ I want to use granular cache tags for Views that reflect the type of content dis # When I make a new page node When I run drush "generate-content 1 --types=page" # It might not be worthwhile to check the output of Drush. - And drush output should contain "Finished creating 2 nodes" + And drush output should contain "1 node created" And drush output should contain "Generate process complete." # Then the page listing is cleared the article is not From b4484ef121dff800f11820c3fbccc7b82aa1747a Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 14:42:07 -0500 Subject: [PATCH 72/83] enable the module before testing --- .circleci/config.yml | 2 +- tests/behat/features/views_custom_cache_tag.feature | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6b3019b..6445f0d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -48,7 +48,7 @@ jobs: terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- config repositories.papc vcs git@github.com:pantheon-systems/pantheon_advanced_page_cache.git terminus composer ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- require drupal/pantheon_advanced_page_cache:dev-8.x-1.x#$CIRCLE_SHA1 terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- dl devel views_custom_cache_tag - terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- en -y devel_generate views_custom_cache_tag_demo + terminus drush ${TERMINUS_SITE}.${CIRCLE_BUILD_NUM} -- en -y devel_generate views_custom_cache_tag_demo pantheon_advanced_page_cache - run: name: run behat command: ./tests/behat/run-behat.sh diff --git a/tests/behat/features/views_custom_cache_tag.feature b/tests/behat/features/views_custom_cache_tag.feature index d646f37..8ad4b24 100644 --- a/tests/behat/features/views_custom_cache_tag.feature +++ b/tests/behat/features/views_custom_cache_tag.feature @@ -5,9 +5,10 @@ I want to use granular cache tags for Views that reflect the type of content dis Background: - When I run drush "en -y devel_generate views_custom_cache_tag_demo" + When I run drush "en -y devel_generate views_custom_cache_tag_demo pantheon_advanced_page_cache" Then drush output should contain "devel_generate is already enabled." - Then drush output should contain "views_custom_cache_tag_demo is already enabled." + And drush output should contain "views_custom_cache_tag_demo is already enabled." + And drush output should contain "pantheon_advanced_page_cache is already enabled." When I run drush "generate-content 20 --types=page,article" Then drush output should contain "Finished creating 20 nodes" From 3898221f4ffcd4015e1d1d52f5d7d9e141db1624 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 15:58:07 -0500 Subject: [PATCH 73/83] Cleanup --- .../features/bootstrap/FeatureContext.php | 112 +++--------------- 1 file changed, 16 insertions(+), 96 deletions(-) diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php index fc00f2f..a303f07 100644 --- a/tests/behat/features/bootstrap/FeatureContext.php +++ b/tests/behat/features/bootstrap/FeatureContext.php @@ -1,117 +1,37 @@ getEnvironment(); - $this->minkContext = $environment->getContext('Drupal\DrupalExtension\Context\MinkContext'); - } - -// -// Place your definition and hook methods here: -// -// /** -// * @Given I have done something with :stuff -// */ -// public function iHaveDoneSomethingWith($stuff) { -// doSomethingWith($stuff); -// } -// - - - /** - * @Given I wait for the progress bar to finish - */ - public function iWaitForTheProgressBarToFinish() { - $this->iFollowMetaRefresh(); - } - - /** - * @Given I follow meta refresh - * - * https://www.drupal.org/node/2011390 - */ - public function iFollowMetaRefresh() { - while ($refresh = $this->getSession()->getPage()->find('css', 'meta[http-equiv="Refresh"]')) { - $content = $refresh->getAttribute('content'); - $url = str_replace('0; URL=', '', $content); - $this->getSession()->visit($url); - } - } - +class FeatureContext extends RawDrupalContext implements Context { /** - * @Given I wait :seconds seconds - */ - public function iWaitSeconds($seconds) - { - sleep($seconds); + * Initializes context. + * Every scenario gets its own context object. + * + * @param array $parameters + * Context parameters (set them in behat.yml) + */ + public function __construct(array $parameters = []) { + // Initialize your context here } + /** @var \Drupal\DrupalExtension\Context\MinkContext */ + private $minkContext; - /** - * @AfterStep - */ - public function afterStep(AfterStepScope $scope) - { - // Do nothing on steps that pass - $result = $scope->getTestResult(); - if ($result->isPassed()) { - return; - } - - // Otherwise, dump the page contents. - $session = $this->getSession(); - $page = $session->getPage(); - $html = $page->getContent(); - $html = static::trimHead($html); - print "::::::::::::::::::::::::::::::::::::::::::::::::\n"; - print $html . "\n"; - print "::::::::::::::::::::::::::::::::::::::::::::::::\n"; - } + private $ageTracker; - /** - * Remove everything in the '' element except the - * title, because it is long and uninteresting. - */ - protected static function trimHead($html) + /** @BeforeScenario */ + public function gatherContexts(BeforeScenarioScope $scope) { - $html = preg_replace('#\.*\#sU', '', $html); - $html = preg_replace('#\</title\>.*\</head\>#sU', '', $html); - return $html; + $environment = $scope->getEnvironment(); + $this->minkContext = $environment->getContext('Drupal\DrupalExtension\Context\MinkContext'); } /** From fe3c6a622592ee93b7bc7a8efd6d0f12920bc032 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 16:06:40 -0500 Subject: [PATCH 74/83] Composer clean --- composer.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index 37994b0..644153f 100644 --- a/composer.json +++ b/composer.json @@ -2,13 +2,9 @@ "name": "drupal/pantheon_advanced_page_cache", "type": "drupal-module", "require-dev": { - "drush-ops/behat-drush-endpoint": "*", - "drupal/drupal-extension": "dev-master", "drupal/coder": "^8.2", "phpunit/phpunit": "^6.3" }, - - "scripts": { "codesniff": "phpcs --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal src", "phpunit": "phpunit tests --colors=always" @@ -19,11 +15,11 @@ "url": "https://packages.drupal.org/8" } }, - "minimum-stability": "dev", + "minimum-stability": "stable", "autoload": { "psr-4": { "PantheonSystems\\CDNBehatHelpers\\": "tests/behat/helper_classes/" } }, "require": { - "doctrine/instantiator": "1.0.5" + "drupal/drupal-extension": "^3.3" } } From 6627d57cab645cb0f3e714340f827aaa63f9d7d4 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 16:06:45 -0500 Subject: [PATCH 75/83] Composer clean --- composer.lock | 2890 ++++++++++++++++++++++++------------------------- 1 file changed, 1428 insertions(+), 1462 deletions(-) diff --git a/composer.lock b/composer.lock index 649b825..f544688 100644 --- a/composer.lock +++ b/composer.lock @@ -4,64 +4,8 @@ "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": "7f08270344270fe06cd3ab726622246e", + "content-hash": "f7e7d0a37db8433cc4d23650fb65a88d", "packages": [ - { - "name": "doctrine/instantiator", - "version": "1.0.5", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", - "shasum": "" - }, - "require": { - "php": ">=5.3,<8.0-DEV" - }, - "require-dev": { - "athletic/athletic": "~0.1.8", - "ext-pdo": "*", - "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "constructor", - "instantiate" - ], - "time": "2015-06-14T21:17:01+00:00" - } - ], - "packages-dev": [ { "name": "behat/behat", "version": "v3.3.1", @@ -146,7 +90,7 @@ }, { "name": "behat/gherkin", - "version": "dev-master", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", @@ -201,20 +145,20 @@ "gherkin", "parser" ], - "time": "2016-10-30 11:50:56" + "time": "2016-10-30T11:50:56+00:00" }, { "name": "behat/mink", - "version": "dev-master", + "version": "v1.7.1", "source": { "type": "git", "url": "https://github.com/minkphp/Mink.git", - "reference": "9ea1cebe3dc529ba3861d87c818f045362c40484" + "reference": "e6930b9c74693dff7f4e58577e1b1743399f3ff9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/Mink/zipball/9ea1cebe3dc529ba3861d87c818f045362c40484", - "reference": "9ea1cebe3dc529ba3861d87c818f045362c40484", + "url": "https://api.github.com/repos/minkphp/Mink/zipball/e6930b9c74693dff7f4e58577e1b1743399f3ff9", + "reference": "e6930b9c74693dff7f4e58577e1b1743399f3ff9", "shasum": "" }, "require": { @@ -259,20 +203,20 @@ "testing", "web" ], - "time": "2017-02-06 09:59:54" + "time": "2016-03-05T08:26:18+00:00" }, { "name": "behat/mink-browserkit-driver", - "version": "dev-master", + "version": "v1.3.2", "source": { "type": "git", "url": "https://github.com/minkphp/MinkBrowserKitDriver.git", - "reference": "1c9c8ad8838af33448d10baa57658b4cb55f23d6" + "reference": "10e67fb4a295efcd62ea0bf16025a85ea19534fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/1c9c8ad8838af33448d10baa57658b4cb55f23d6", - "reference": "1c9c8ad8838af33448d10baa57658b4cb55f23d6", + "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/10e67fb4a295efcd62ea0bf16025a85ea19534fb", + "reference": "10e67fb4a295efcd62ea0bf16025a85ea19534fb", "shasum": "" }, "require": { @@ -282,8 +226,8 @@ "symfony/dom-crawler": "~2.3|~3.0" }, "require-dev": { - "mink/driver-testsuite": "dev-master", - "symfony/http-kernel": "~2.3|~3.0" + "silex/silex": "~1.2", + "symfony/phpunit-bridge": "~2.7|~3.0" }, "type": "mink-driver", "extra": { @@ -315,7 +259,7 @@ "browser", "testing" ], - "time": "2016-10-03 08:27:03" + "time": "2016-03-05T08:59:47+00:00" }, { "name": "behat/mink-extension", @@ -378,25 +322,26 @@ }, { "name": "behat/mink-goutte-driver", - "version": "dev-master", + "version": "v1.2.1", "source": { "type": "git", "url": "https://github.com/minkphp/MinkGoutteDriver.git", - "reference": "7a4b2d49511865e23d61463514fa2754d42ec658" + "reference": "8b9ad6d2d95bc70b840d15323365f52fcdaea6ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/7a4b2d49511865e23d61463514fa2754d42ec658", - "reference": "7a4b2d49511865e23d61463514fa2754d42ec658", + "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/8b9ad6d2d95bc70b840d15323365f52fcdaea6ca", + "reference": "8b9ad6d2d95bc70b840d15323365f52fcdaea6ca", "shasum": "" }, "require": { + "behat/mink": "~1.6@dev", "behat/mink-browserkit-driver": "~1.2@dev", "fabpot/goutte": "~1.0.4|~2.0|~3.1", "php": ">=5.3.1" }, "require-dev": { - "mink/driver-testsuite": "dev-master" + "symfony/phpunit-bridge": "~2.7|~3.0" }, "type": "mink-driver", "extra": { @@ -428,20 +373,20 @@ "headless", "testing" ], - "time": "2016-10-14 20:19:06" + "time": "2016-03-05T09:04:22+00:00" }, { "name": "behat/mink-selenium2-driver", - "version": "dev-master", + "version": "v1.3.1", "source": { "type": "git", "url": "https://github.com/minkphp/MinkSelenium2Driver.git", - "reference": "739b7570f0536bad9b07b511a62c885ee1ec029a" + "reference": "473a9f3ebe0c134ee1e623ce8a9c852832020288" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/739b7570f0536bad9b07b511a62c885ee1ec029a", - "reference": "739b7570f0536bad9b07b511a62c885ee1ec029a", + "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/473a9f3ebe0c134ee1e623ce8a9c852832020288", + "reference": "473a9f3ebe0c134ee1e623ce8a9c852832020288", "shasum": "" }, "require": { @@ -450,7 +395,7 @@ "php": ">=5.3.1" }, "require-dev": { - "mink/driver-testsuite": "dev-master" + "symfony/phpunit-bridge": "~2.7" }, "type": "mink-driver", "extra": { @@ -489,11 +434,11 @@ "testing", "webdriver" ], - "time": "2017-02-06 08:22:23" + "time": "2016-03-05T09:10:18+00:00" }, { "name": "behat/transliterator", - "version": "dev-master", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/Behat/Transliterator.git", @@ -533,121 +478,7 @@ "slug", "transliterator" ], - "time": "2017-04-04 11:38:05" - }, - { - "name": "composer/installers", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/composer/installers.git", - "reference": "79ad876c7498c0bbfe7eed065b8651c93bfd6045" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/installers/zipball/79ad876c7498c0bbfe7eed065b8651c93bfd6045", - "reference": "79ad876c7498c0bbfe7eed065b8651c93bfd6045", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0" - }, - "replace": { - "roundcube/plugin-installer": "*", - "shama/baton": "*" - }, - "require-dev": { - "composer/composer": "1.0.*@dev", - "phpunit/phpunit": "4.1.*" - }, - "type": "composer-plugin", - "extra": { - "class": "Composer\\Installers\\Plugin", - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Installers\\": "src/Composer/Installers" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kyle Robinson Young", - "email": "kyle@dontkry.com", - "homepage": "https://github.com/shama" - } - ], - "description": "A multi-framework Composer library installer", - "homepage": "https://composer.github.io/installers/", - "keywords": [ - "Craft", - "Dolibarr", - "Eliasis", - "Hurad", - "ImageCMS", - "Kanboard", - "MODX Evo", - "Mautic", - "Maya", - "OXID", - "Plentymarkets", - "Porto", - "RadPHP", - "SMF", - "Thelia", - "WolfCMS", - "agl", - "aimeos", - "annotatecms", - "attogram", - "bitrix", - "cakephp", - "chef", - "cockpit", - "codeigniter", - "concrete5", - "croogo", - "dokuwiki", - "drupal", - "elgg", - "expressionengine", - "fuelphp", - "grav", - "installer", - "itop", - "joomla", - "kohana", - "laravel", - "lavalite", - "lithium", - "magento", - "mako", - "mediawiki", - "modulework", - "moodle", - "phpbb", - "piwik", - "ppi", - "puppet", - "reindex", - "roundcube", - "shopware", - "silverstripe", - "sydes", - "symfony", - "typo3", - "wordpress", - "yawik", - "zend", - "zikula" - ], - "time": "2017-04-24T06:37:16+00:00" + "time": "2017-04-04T11:38:05+00:00" }, { "name": "container-interop/container-interop", @@ -680,55 +511,18 @@ "homepage": "https://github.com/container-interop/container-interop", "time": "2017-02-14T19:40:03+00:00" }, - { - "name": "drupal/coder", - "version": "8.2.12", - "source": { - "type": "git", - "url": "https://github.com/klausi/coder.git", - "reference": "984c54a7b1e8f27ff1c32348df69712afd86b17f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/klausi/coder/zipball/984c54a7b1e8f27ff1c32348df69712afd86b17f", - "reference": "984c54a7b1e8f27ff1c32348df69712afd86b17f", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=5.4.0", - "squizlabs/php_codesniffer": ">=2.8.1 <3.0", - "symfony/yaml": ">=2.0.0" - }, - "require-dev": { - "phpunit/phpunit": ">=3.7 <6" - }, - "type": "phpcodesniffer-standard", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0+" - ], - "description": "Coder is a library to review Drupal code.", - "homepage": "https://www.drupal.org/project/coder", - "keywords": [ - "code review", - "phpcs", - "standards" - ], - "time": "2017-03-18T10:28:49+00:00" - }, { "name": "drupal/drupal-driver", - "version": "dev-master", + "version": "v1.2.1", "source": { "type": "git", "url": "https://github.com/jhedstrom/DrupalDriver.git", - "reference": "74d4ef1377dd76c290f74b2f26f5c343e2ecbaf8" + "reference": "125d39918c97f7a08e3110d456a0a1db864dae46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jhedstrom/DrupalDriver/zipball/74d4ef1377dd76c290f74b2f26f5c343e2ecbaf8", - "reference": "74d4ef1377dd76c290f74b2f26f5c343e2ecbaf8", + "url": "https://api.github.com/repos/jhedstrom/DrupalDriver/zipball/125d39918c97f7a08e3110d456a0a1db864dae46", + "reference": "125d39918c97f7a08e3110d456a0a1db864dae46", "shasum": "" }, "require": { @@ -772,20 +566,20 @@ "test", "web" ], - "time": "2017-04-09 08:39:37" + "time": "2016-06-20T16:29:51+00:00" }, { "name": "drupal/drupal-extension", - "version": "dev-master", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/jhedstrom/drupalextension.git", - "reference": "8b9e54853698f02033d187b528693d5fac8d90ea" + "reference": "8610ab76130ae53b3e7522aff6e1ef61287612f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jhedstrom/drupalextension/zipball/8b9e54853698f02033d187b528693d5fac8d90ea", - "reference": "8b9e54853698f02033d187b528693d5fac8d90ea", + "url": "https://api.github.com/repos/jhedstrom/drupalextension/zipball/8610ab76130ae53b3e7522aff6e1ef61287612f2", + "reference": "8610ab76130ae53b3e7522aff6e1ef61287612f2", "shasum": "" }, "require": { @@ -794,7 +588,7 @@ "behat/mink-extension": "~2.0", "behat/mink-goutte-driver": "~1.0", "behat/mink-selenium2-driver": "~1.1", - "drupal/drupal-driver": "dev-master", + "drupal/drupal-driver": "~1.2", "symfony/dependency-injection": "~2.7|~3.0", "symfony/event-dispatcher": "~2.7|~3.0" }, @@ -806,7 +600,7 @@ "type": "behat-extension", "extra": { "branch-alias": { - "dev-master": "4.0.x-dev" + "dev-master": "3.2.x-dev" } }, "autoload": { @@ -833,44 +627,11 @@ "test", "web" ], - "time": "2017-07-06 17:24:52" - }, - { - "name": "drush-ops/behat-drush-endpoint", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/drush-ops/behat-drush-endpoint.git", - "reference": "3f2c96ed26fc4780ec3605e8bd9ef81b02d39dd2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drush-ops/behat-drush-endpoint/zipball/3f2c96ed26fc4780ec3605e8bd9ef81b02d39dd2", - "reference": "3f2c96ed26fc4780ec3605e8bd9ef81b02d39dd2", - "shasum": "" - }, - "require": { - "composer/installers": "~1.0", - "drupal/drupal-driver": "*", - "php": ">=5.3.0" - }, - "type": "drupal-drush", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPLv2" - ], - "description": "Drush commandfile for use with drupal/drupal-driver.", - "homepage": "https://github.com/drush-ops/behat-drush-endpoint", - "keywords": [ - "Behat", - "Drush", - "testing" - ], - "time": "2015-12-17 02:01:56" + "time": "2017-06-15T13:59:40+00:00" }, { "name": "fabpot/goutte", - "version": "dev-master", + "version": "v3.2.1", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/Goutte.git", @@ -915,7 +676,7 @@ "keywords": [ "scraper" ], - "time": "2017-01-03 13:21:43" + "time": "2017-01-03T13:21:43+00:00" }, { "name": "guzzlehttp/guzzle", @@ -984,16 +745,16 @@ }, { "name": "guzzlehttp/promises", - "version": "dev-master", + "version": "v1.3.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "09e549f5534380c68761260a71f847644d8f65aa" + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/09e549f5534380c68761260a71f847644d8f65aa", - "reference": "09e549f5534380c68761260a71f847644d8f65aa", + "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", "shasum": "" }, "require": { @@ -1031,20 +792,20 @@ "keywords": [ "promise" ], - "time": "2017-05-20 23:14:18" + "time": "2016-12-20T10:07:11+00:00" }, { "name": "guzzlehttp/psr7", - "version": "dev-master", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "526d8ef63e8701e02216b621e4a3a16085e2286f" + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/526d8ef63e8701e02216b621e4a3a16085e2286f", - "reference": "526d8ef63e8701e02216b621e4a3a16085e2286f", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", "shasum": "" }, "require": { @@ -1096,11 +857,11 @@ "uri", "url" ], - "time": "2017-06-19 13:30:27" + "time": "2017-03-20T17:10:46+00:00" }, { "name": "instaclick/php-webdriver", - "version": "dev-master", + "version": "1.4.5", "source": { "type": "git", "url": "https://github.com/instaclick/php-webdriver.git", @@ -1155,69 +916,73 @@ "webdriver", "webtest" ], - "time": "2017-06-30 04:02:48" + "time": "2017-06-30T04:02:48+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.x-dev", + "name": "psr/container", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102" + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8e6e04167378abf1ddb4d3522d8755c5fd90d102", - "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", "shasum": "" }, "require": { - "php": ">=5.4.0" - }, - "require-dev": { - "doctrine/collections": "1.*", - "phpunit/phpunit": "~4.1" + "php": ">=5.3.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, "autoload": { "psr-4": { - "DeepCopy\\": "src/DeepCopy/" + "Psr\\Container\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Create deep copies (clones) of your objects", - "homepage": "https://github.com/myclabs/DeepCopy", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" ], - "time": "2017-04-12 18:52:22" + "time": "2017-02-14T16:28:37+00:00" }, { - "name": "phar-io/manifest", - "version": "dev-master", + "name": "psr/http-message", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "014feadb268809af7c8e2f7ccd396b8494901f58" + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/014feadb268809af7c8e2f7ccd396b8494901f58", - "reference": "014feadb268809af7c8e2f7ccd396b8494901f58", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^1.0.1", - "php": "^5.6 || ^7.0" + "php": ">=5.3.0" }, "type": "library", "extra": { @@ -1226,113 +991,117 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2017-04-07 07:07:10" + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "time": "2016-08-06T14:39:51+00:00" }, { - "name": "phar-io/version", - "version": "1.0.1", + "name": "psr/log", + "version": "1.0.2", "source": { "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=5.3.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Library for handling version information and constraints", - "time": "2017-03-05T17:38:23+00:00" + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2016-10-10T12:19:37+00:00" }, { - "name": "phpdocumentor/reflection-common", - "version": "dev-master", + "name": "symfony/browser-kit", + "version": "v3.3.6", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "a046af61c36e9162372f205de091a1cab7340f1c" + "url": "https://github.com/symfony/browser-kit.git", + "reference": "8079a6b3668ef15cdbf73a4c7d31081abb8bb5f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/a046af61c36e9162372f205de091a1cab7340f1c", - "reference": "a046af61c36e9162372f205de091a1cab7340f1c", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/8079a6b3668ef15cdbf73a4c7d31081abb8bb5f0", + "reference": "8079a6b3668ef15cdbf73a4c7d31081abb8bb5f0", "shasum": "" }, "require": { - "php": ">=5.5" + "php": ">=5.5.9", + "symfony/dom-crawler": "~2.8|~3.0" }, "require-dev": { - "phpunit/phpunit": "^4.6" + "symfony/css-selector": "~2.8|~3.0", + "symfony/process": "~2.8|~3.0" + }, + "suggest": { + "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.3-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] - } + "Symfony\\Component\\BrowserKit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1340,52 +1109,55 @@ ], "authors": [ { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "time": "2017-04-30 11:58:12" + "description": "Symfony BrowserKit Component", + "homepage": "https://symfony.com", + "time": "2017-07-12T13:03:20+00:00" }, { - "name": "phpdocumentor/reflection-docblock", - "version": "3.2.2", + "name": "symfony/class-loader", + "version": "v3.3.6", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157" + "url": "https://github.com/symfony/class-loader.git", + "reference": "386a294d621576302e7cc36965d6ed53b8c73c4f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/4aada1f93c72c35e22fb1383b47fee43b8f1d157", - "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/386a294d621576302e7cc36965d6ed53b8c73c4f", + "reference": "386a294d621576302e7cc36965d6ed53b8c73c4f", "shasum": "" }, "require": { - "php": ">=5.5", - "phpdocumentor/reflection-common": "^1.0@dev", - "phpdocumentor/type-resolver": "^0.3.0", - "webmozart/assert": "^1.0" + "php": ">=5.5.9" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.4" + "symfony/finder": "~2.8|~3.0", + "symfony/polyfill-apcu": "~1.1" + }, + "suggest": { + "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } + "Symfony\\Component\\ClassLoader\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1393,47 +1165,61 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "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" + "description": "Symfony ClassLoader Component", + "homepage": "https://symfony.com", + "time": "2017-06-02T09:51:43+00:00" }, { - "name": "phpdocumentor/type-resolver", - "version": "0.3.0", + "name": "symfony/config", + "version": "v3.3.6", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773" + "url": "https://github.com/symfony/config.git", + "reference": "54ee12b0dd60f294132cabae6f5da9573d2e5297" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fb3933512008d8162b3cdf9e18dba9309b7c3773", - "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773", + "url": "https://api.github.com/repos/symfony/config/zipball/54ee12b0dd60f294132cabae6f5da9573d2e5297", + "reference": "54ee12b0dd60f294132cabae6f5da9573d2e5297", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" + "php": ">=5.5.9", + "symfony/filesystem": "~2.8|~3.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.3", + "symfony/finder": "<3.3" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "symfony/dependency-injection": "~3.3", + "symfony/finder": "~3.3", + "symfony/yaml": "~3.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.3-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1441,47 +1227,68 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "time": "2017-06-03T08:32:36+00:00" + "description": "Symfony Config Component", + "homepage": "https://symfony.com", + "time": "2017-07-19T07:37:29+00:00" }, { - "name": "phpspec/prophecy", - "version": "dev-master", + "name": "symfony/console", + "version": "v3.3.6", "source": { "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "420d44c5534bbf269e85e6213446e8284d53c6c7" + "url": "https://github.com/symfony/console.git", + "reference": "b0878233cb5c4391347e5495089c7af11b8e6201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/420d44c5534bbf269e85e6213446e8284d53c6c7", - "reference": "420d44c5534bbf269e85e6213446e8284d53c6c7", + "url": "https://api.github.com/repos/symfony/console/zipball/b0878233cb5c4391347e5495089c7af11b8e6201", + "reference": "b0878233cb5c4391347e5495089c7af11b8e6201", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", - "sebastian/comparator": "^1.1|^2.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "php": ">=5.5.9", + "symfony/debug": "~2.8|~3.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.3" }, "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8 || ^5.6.5" + "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" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/filesystem": "", + "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev" + "dev-master": "3.3-dev" } }, "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1489,447 +1296,454 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2017-07-19 07:44:25" + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2017-07-29T21:27:59+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "dev-master", + "name": "symfony/css-selector", + "version": "v3.3.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "c3a4de854cbd91af0993d4be36c3a4db8ef24f6b" + "url": "https://github.com/symfony/css-selector.git", + "reference": "4d882dced7b995d5274293039370148e291808f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c3a4de854cbd91af0993d4be36c3a4db8ef24f6b", - "reference": "c3a4de854cbd91af0993d4be36c3a4db8ef24f6b", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/4d882dced7b995d5274293039370148e291808f2", + "reference": "4d882dced7b995d5274293039370148e291808f2", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": "^7.0", - "phpunit/php-file-iterator": "^1.4.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^2.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.0", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" - }, - "require-dev": { - "ext-xdebug": "^2.5", - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-xdebug": "^2.5.5" + "php": ">=5.5.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.2.x-dev" + "dev-master": "3.3-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "time": "2017-08-03 14:42:12" + "description": "Symfony CssSelector Component", + "homepage": "https://symfony.com", + "time": "2017-05-01T15:01:29+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "dev-master", + "name": "symfony/debug", + "version": "v3.3.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5" + "url": "https://github.com/symfony/debug.git", + "reference": "7c13ae8ce1e2adbbd574fc39de7be498e1284e13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5", - "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5", + "url": "https://api.github.com/repos/symfony/debug/zipball/7c13ae8ce1e2adbbd574fc39de7be498e1284e13", + "reference": "7c13ae8ce1e2adbbd574fc39de7be498e1284e13", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.5.9", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + }, + "require-dev": { + "symfony/http-kernel": "~2.8|~3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "3.3-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "time": "2016-10-03 07:40:28" + "description": "Symfony Debug Component", + "homepage": "https://symfony.com", + "time": "2017-07-28T15:27:31+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "symfony/dependency-injection", + "version": "v3.3.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "8d70987f991481e809c63681ffe8ce3f3fde68a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8d70987f991481e809c63681ffe8ce3f3fde68a0", + "reference": "8d70987f991481e809c63681ffe8ce3f3fde68a0", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.5.9", + "psr/container": "^1.0" + }, + "conflict": { + "symfony/config": "<3.3.1", + "symfony/finder": "<3.3", + "symfony/yaml": "<3.3" + }, + "provide": { + "psr/container-implementation": "1.0" + }, + "require-dev": { + "symfony/config": "~3.3", + "symfony/expression-language": "~2.8|~3.0", + "symfony/yaml": "~3.3" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "time": "2015-06-21T13:50:34+00:00" + "description": "Symfony DependencyInjection Component", + "homepage": "https://symfony.com", + "time": "2017-07-28T15:27:31+00:00" }, { - "name": "phpunit/php-timer", - "version": "dev-master", + "name": "symfony/dom-crawler", + "version": "v3.3.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "d107f347d368dd8a384601398280c7c608390ab7" + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "fc2c588ce376e9fe04a7b8c79e3ec62fe32d95b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/d107f347d368dd8a384601398280c7c608390ab7", - "reference": "d107f347d368dd8a384601398280c7c608390ab7", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/fc2c588ce376e9fe04a7b8c79e3ec62fe32d95b1", + "reference": "fc2c588ce376e9fe04a7b8c79e3ec62fe32d95b1", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "symfony/css-selector": "~2.8|~3.0" + }, + "suggest": { + "symfony/css-selector": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "3.3-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "time": "2017-03-07 15:42:04" + "description": "Symfony DomCrawler Component", + "homepage": "https://symfony.com", + "time": "2017-05-25T23:10:31+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "dev-master", + "name": "symfony/event-dispatcher", + "version": "v3.3.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "8c0bca4db90bb0a0b400ad8e90fee3210081701d" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "67535f1e3fd662bdc68d7ba317c93eecd973617e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/8c0bca4db90bb0a0b400ad8e90fee3210081701d", - "reference": "8c0bca4db90bb0a0b400ad8e90fee3210081701d", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/67535f1e3fd662bdc68d7ba317c93eecd973617e", + "reference": "67535f1e3fd662bdc68d7ba317c93eecd973617e", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": "^7.0" + "php": ">=5.5.9" + }, + "conflict": { + "symfony/dependency-injection": "<3.3" }, "require-dev": { - "phpunit/phpunit": "^6.2.4" + "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" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "3.3-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "time": "2017-08-03 14:21:49" + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2017-06-09T14:53:08+00:00" }, { - "name": "phpunit/phpunit", - "version": "dev-master", + "name": "symfony/filesystem", + "version": "v3.3.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "169bb8351039018b315438d7661606ed5e8609f3" + "url": "https://github.com/symfony/filesystem.git", + "reference": "427987eb4eed764c3b6e38d52a0f87989e010676" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/169bb8351039018b315438d7661606ed5e8609f3", - "reference": "169bb8351039018b315438d7661606ed5e8609f3", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/427987eb4eed764c3b6e38d52a0f87989e010676", + "reference": "427987eb4eed764c3b6e38d52a0f87989e010676", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "^1.6.1", - "phar-io/manifest": "^1.0.1", - "phar-io/version": "^1.0", - "php": "^7.0", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^5.2.2", - "phpunit/php-file-iterator": "^1.4.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^1.0.9", - "phpunit/phpunit-mock-objects": "^4.0.3", - "sebastian/comparator": "^2.0.2", - "sebastian/diff": "^2.0", - "sebastian/environment": "^3.1", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^1.0", - "sebastian/version": "^2.0.1" - }, - "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2", - "phpunit/dbunit": "<3.0" - }, - "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-xdebug": "*", - "phpunit/php-invoker": "^1.1" + "php": ">=5.5.9" }, - "bin": [ - "phpunit" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "6.4.x-dev" + "dev-master": "3.3-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "time": "2017-08-10 16:53:26" + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2017-07-11T07:17:58+00:00" }, { - "name": "phpunit/phpunit-mock-objects", - "version": "dev-master", + "name": "symfony/polyfill-mbstring", + "version": "v1.4.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "2f789b59ab89669015ad984afa350c4ec577ade0" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "f29dca382a6485c3cbe6379f0c61230167681937" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/2f789b59ab89669015ad984afa350c4ec577ade0", - "reference": "2f789b59ab89669015ad984afa350c4ec577ade0", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f29dca382a6485c3cbe6379f0c61230167681937", + "reference": "f29dca382a6485c3cbe6379f0c61230167681937", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.5", - "php": "^7.0", - "phpunit/php-text-template": "^1.2.1", - "sebastian/exporter": "^3.0" - }, - "conflict": { - "phpunit/phpunit": "<6.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" + "php": ">=5.3.3" }, "suggest": { - "ext-soap": "*" + "ext-mbstring": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0.x-dev" + "dev-master": "1.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", "keywords": [ - "mock", - "xunit" + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" ], - "time": "2017-08-03 14:08:16" + "time": "2017-06-09T14:24:12+00:00" }, { - "name": "psr/container", - "version": "dev-master", + "name": "symfony/process", + "version": "v3.3.6", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "2cc4a01788191489dc7459446ba832fa79a216a7" + "url": "https://github.com/symfony/process.git", + "reference": "07432804942b9f6dd7b7377faf9920af5f95d70a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/2cc4a01788191489dc7459446ba832fa79a216a7", - "reference": "2cc4a01788191489dc7459446ba832fa79a216a7", + "url": "https://api.github.com/repos/symfony/process/zipball/07432804942b9f6dd7b7377faf9920af5f95d70a", + "reference": "07432804942b9f6dd7b7377faf9920af5f95d70a", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=5.5.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.3-dev" } }, "autoload": { "psr-4": { - "Psr\\Container\\": "src/" - } + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1937,48 +1751,64 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "time": "2017-06-28 15:35:32" + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2017-07-13T13:05:09+00:00" }, { - "name": "psr/http-message", - "version": "dev-master", + "name": "symfony/translation", + "version": "v3.3.6", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "url": "https://github.com/symfony/translation.git", + "reference": "35dd5fb003c90e8bd4d8cabdf94bf9c96d06fdc3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/symfony/translation/zipball/35dd5fb003c90e8bd4d8cabdf94bf9c96d06fdc3", + "reference": "35dd5fb003c90e8bd4d8cabdf94bf9c96d06fdc3", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/yaml": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0", + "symfony/intl": "^2.8.18|^3.2.5", + "symfony/yaml": "~3.3" + }, + "suggest": { + "psr/log": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.3-dev" } }, "autoload": { "psr-4": { - "Psr\\Http\\Message\\": "src/" - } + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1986,49 +1816,54 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "time": "2016-08-06 14:39:51" + "description": "Symfony Translation Component", + "homepage": "https://symfony.com", + "time": "2017-06-24T16:45:30+00:00" }, { - "name": "psr/log", - "version": "dev-master", + "name": "symfony/yaml", + "version": "v3.3.6", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + "url": "https://github.com/symfony/yaml.git", + "reference": "ddc23324e6cfe066f3dd34a37ff494fa80b617ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "url": "https://api.github.com/repos/symfony/yaml/zipball/ddc23324e6cfe066f3dd34a37ff494fa80b617ed", + "reference": "ddc23324e6cfe066f3dd34a37ff494fa80b617ed", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=5.5.9" + }, + "require-dev": { + "symfony/console": "~2.8|~3.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.3-dev" } }, "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2036,38 +1871,160 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2016-10-10 12:19:37" - }, + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2017-07-23T12:43:26+00:00" + } + ], + "packages-dev": [ { - "name": "sebastian/code-unit-reverse-lookup", - "version": "dev-master", + "name": "composer/installers", + "version": "v1.4.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "3488be0a7b346cd6e5361510ed07e88f9bea2e88" + "url": "https://github.com/composer/installers.git", + "reference": "9ce17fb70e9a38dd8acff0636a29f5cf4d575c1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/3488be0a7b346cd6e5361510ed07e88f9bea2e88", - "reference": "3488be0a7b346cd6e5361510ed07e88f9bea2e88", + "url": "https://api.github.com/repos/composer/installers/zipball/9ce17fb70e9a38dd8acff0636a29f5cf4d575c1b", + "reference": "9ce17fb70e9a38dd8acff0636a29f5cf4d575c1b", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "composer-plugin-api": "^1.0" }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "replace": { + "roundcube/plugin-installer": "*", + "shama/baton": "*" + }, + "require-dev": { + "composer/composer": "1.0.*@dev", + "phpunit/phpunit": "4.1.*" + }, + "type": "composer-plugin", + "extra": { + "class": "Composer\\Installers\\Plugin", + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Installers\\": "src/Composer/Installers" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kyle Robinson Young", + "email": "kyle@dontkry.com", + "homepage": "https://github.com/shama" + } + ], + "description": "A multi-framework Composer library installer", + "homepage": "https://composer.github.io/installers/", + "keywords": [ + "Craft", + "Dolibarr", + "Eliasis", + "Hurad", + "ImageCMS", + "Kanboard", + "Lan Management System", + "MODX Evo", + "Mautic", + "Maya", + "OXID", + "Plentymarkets", + "Porto", + "RadPHP", + "SMF", + "Thelia", + "WolfCMS", + "agl", + "aimeos", + "annotatecms", + "attogram", + "bitrix", + "cakephp", + "chef", + "cockpit", + "codeigniter", + "concrete5", + "croogo", + "dokuwiki", + "drupal", + "eZ Platform", + "elgg", + "expressionengine", + "fuelphp", + "grav", + "installer", + "itop", + "joomla", + "kohana", + "laravel", + "lavalite", + "lithium", + "magento", + "mako", + "mediawiki", + "modulework", + "moodle", + "osclass", + "phpbb", + "piwik", + "ppi", + "puppet", + "reindex", + "roundcube", + "shopware", + "silverstripe", + "sydes", + "symfony", + "typo3", + "wordpress", + "yawik", + "zend", + "zikula" + ], + "time": "2017-08-09T07:53:48+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "shasum": "" + }, + "require": { + "php": ">=5.3,<8.0-DEV" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~2.0" }, "type": "library", "extra": { @@ -2076,50 +2033,132 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" } ], - "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-04 10:23:55" + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2015-06-14T21:17:01+00:00" }, { - "name": "sebastian/comparator", - "version": "dev-master", + "name": "drupal/coder", + "version": "8.2.12", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "ae068fede81d06e7bb9bb46a367210a3d3e1fe6a" + "url": "https://github.com/klausi/coder.git", + "reference": "984c54a7b1e8f27ff1c32348df69712afd86b17f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/ae068fede81d06e7bb9bb46a367210a3d3e1fe6a", - "reference": "ae068fede81d06e7bb9bb46a367210a3d3e1fe6a", + "url": "https://api.github.com/repos/klausi/coder/zipball/984c54a7b1e8f27ff1c32348df69712afd86b17f", + "reference": "984c54a7b1e8f27ff1c32348df69712afd86b17f", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/diff": "^2.0", - "sebastian/exporter": "^3.0" + "ext-mbstring": "*", + "php": ">=5.4.0", + "squizlabs/php_codesniffer": ">=2.8.1 <3.0", + "symfony/yaml": ">=2.0.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": ">=3.7 <6" + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "description": "Coder is a library to review Drupal code.", + "homepage": "https://www.drupal.org/project/coder", + "keywords": [ + "code review", + "phpcs", + "standards" + ], + "time": "2017-03-18T10:28:49+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.6.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8e6e04167378abf1ddb4d3522d8755c5fd90d102", + "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "doctrine/collections": "1.*", + "phpunit/phpunit": "~4.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "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" + ], + "time": "2017-04-12T18:52:22+00:00" + }, + { + "name": "phar-io/manifest", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", + "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^1.0.1", + "php": "^5.6 || ^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -2133,57 +2172,42 @@ ], "authors": [ { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" }, { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" }, { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "http://www.github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "time": "2017-08-03 07:14:59" + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2017-03-05T18:14:27+00:00" }, { - "name": "sebastian/diff", - "version": "dev-master", + "name": "phar-io/version", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd" + "url": "https://github.com/phar-io/version.git", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", - "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", + "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", "shasum": "" }, "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.2" + "php": "^5.6 || ^7.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, "autoload": { "classmap": [ "src/" @@ -2195,260 +2219,270 @@ ], "authors": [ { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" }, { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff" + "email": "sebastian@phpunit.de", + "role": "Developer" + } ], - "time": "2017-08-03 08:09:46" + "description": "Library for handling version information and constraints", + "time": "2017-03-05T17:38:23+00:00" }, { - "name": "sebastian/environment", - "version": "dev-master", + "name": "phpdocumentor/reflection-common", + "version": "1.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c", + "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=5.5" }, "require-dev": { - "phpunit/phpunit": "^6.1" + "phpunit/phpunit": "^4.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" } ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", "keywords": [ - "Xdebug", - "environment", - "hhvm" + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" ], - "time": "2017-07-01 08:51:00" + "time": "2015-12-27T11:43:31+00:00" }, { - "name": "sebastian/exporter", - "version": "dev-master", + "name": "phpdocumentor/reflection-docblock", + "version": "3.2.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/4aada1f93c72c35e22fb1383b47fee43b8f1d157", + "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" + "php": ">=5.5", + "phpdocumentor/reflection-common": "^1.0@dev", + "phpdocumentor/type-resolver": "^0.3.0", + "webmozart/assert": "^1.0" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^4.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" } ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "time": "2017-04-03 13:19:02" + "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" }, { - "name": "sebastian/global-state", - "version": "dev-master", + "name": "phpdocumentor/type-resolver", + "version": "0.3.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fb3933512008d8162b3cdf9e18dba9309b7c3773", + "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773", "shasum": "" }, "require": { - "php": "^7.0" + "php": "^5.5 || ^7.0", + "phpdocumentor/reflection-common": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-uopz": "*" + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" } ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "time": "2017-04-27 15:39:26" + "time": "2017-06-03T08:32:36+00:00" }, { - "name": "sebastian/object-enumerator", - "version": "dev-master", + "name": "phpspec/prophecy", + "version": "v1.7.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "url": "https://github.com/phpspec/prophecy.git", + "reference": "93d39f1f7f9326d746203c7c056f300f7f126073" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/93d39f1f7f9326d746203c7c056f300f7f126073", + "reference": "93d39f1f7f9326d746203c7c056f300f7f126073", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", + "sebastian/comparator": "^1.1|^2.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8 || ^5.6.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "1.6.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-0": { + "Prophecy\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" } ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03 12:35:26" + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "time": "2017-03-02T20:05:34+00:00" }, { - "name": "sebastian/object-reflector", - "version": "dev-master", + "name": "phpunit/php-code-coverage", + "version": "5.2.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "8ed1902a57849e117b5651fc1a5c48110946c06b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/8ed1902a57849e117b5651fc1a5c48110946c06b", + "reference": "8ed1902a57849e117b5651fc1a5c48110946c06b", "shasum": "" }, "require": { - "php": "^7.0" + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.0", + "phpunit/php-file-iterator": "^1.4.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^1.4.11 || ^2.0", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^3.0", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" }, "require-dev": { + "ext-xdebug": "^2.5", "phpunit/phpunit": "^6.0" }, + "suggest": { + "ext-xdebug": "^2.5.5" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "5.2.x-dev" } }, "autoload": { @@ -2463,37 +2497,40 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sb@sebastian-bergmann.de", + "role": "lead" } ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29 09:07:27" + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "time": "2017-08-03T12:40:43+00:00" }, { - "name": "sebastian/recursion-context", - "version": "dev-master", + "name": "phpunit/php-file-iterator", + "version": "1.4.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "a0e54bc9bf04e2c5b302236984cebc277631f0f1" + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/a0e54bc9bf04e2c5b302236984cebc277631f0f1", - "reference": "a0e54bc9bf04e2c5b302236984cebc277631f0f1", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5", + "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5", "shasum": "" }, "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" + "php": ">=5.3.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "1.4.x-dev" } }, "autoload": { @@ -2506,46 +2543,38 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "email": "sb@sebastian-bergmann.de", + "role": "lead" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-07 15:09:59" + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2016-10-03T07:40:28+00:00" }, { - "name": "sebastian/resource-operations", - "version": "dev-master", + "name": "phpunit/php-text-template", + "version": "1.2.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "fadc83f7c41fb2924e542635fea47ae546816ece" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/fadc83f7c41fb2924e542635fea47ae546816ece", - "reference": "fadc83f7c41fb2924e542635fea47ae546816ece", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", "shasum": "" }, "require": { - "php": ">=5.6.0" + "php": ">=5.3.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { "classmap": [ "src/" @@ -2558,34 +2587,41 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2016-10-03 07:43:09" + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" }, { - "name": "sebastian/version", - "version": "dev-master", + "name": "phpunit/php-timer", + "version": "1.0.9", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", "shasum": "" }, "require": { - "php": ">=5.6" + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.0-dev" } }, "autoload": { @@ -2600,72 +2636,47 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", + "email": "sb@sebastian-bergmann.de", "role": "lead" } ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03 07:35:21" + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2017-02-26T11:10:40+00:00" }, { - "name": "squizlabs/php_codesniffer", - "version": "2.9.x-dev", + "name": "phpunit/php-token-stream", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62" + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "ecb0b2cdaa0add708fe6f329ef65ae0c5225130b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62", - "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/ecb0b2cdaa0add708fe6f329ef65ae0c5225130b", + "reference": "ecb0b2cdaa0add708fe6f329ef65ae0c5225130b", "shasum": "" }, "require": { - "ext-simplexml": "*", "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.1.2" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "^6.2.4" }, - "bin": [ - "scripts/phpcs", - "scripts/phpcbf" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { "classmap": [ - "CodeSniffer.php", - "CodeSniffer/CLI.php", - "CodeSniffer/Exception.php", - "CodeSniffer/File.php", - "CodeSniffer/Fixer.php", - "CodeSniffer/Report.php", - "CodeSniffer/Reporting.php", - "CodeSniffer/Sniff.php", - "CodeSniffer/Tokens.php", - "CodeSniffer/Reports/", - "CodeSniffer/Tokenizers/", - "CodeSniffer/DocGenerators/", - "CodeSniffer/Standards/AbstractPatternSniff.php", - "CodeSniffer/Standards/AbstractScopeSniff.php", - "CodeSniffer/Standards/AbstractVariableSniff.php", - "CodeSniffer/Standards/IncorrectPatternException.php", - "CodeSniffer/Standards/Generic/Sniffs/", - "CodeSniffer/Standards/MySource/Sniffs/", - "CodeSniffer/Standards/PEAR/Sniffs/", - "CodeSniffer/Standards/PSR1/Sniffs/", - "CodeSniffer/Standards/PSR2/Sniffs/", - "CodeSniffer/Standards/Squiz/Sniffs/", - "CodeSniffer/Standards/Zend/Sniffs/" + "src/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -2674,839 +2685,796 @@ ], "authors": [ { - "name": "Greg Sherwood", - "role": "lead" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "http://www.squizlabs.com/php-codesniffer", + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", "keywords": [ - "phpcs", - "standards" + "tokenizer" ], - "time": "2017-05-22 02:43:20" + "time": "2017-08-03T14:17:41+00:00" }, { - "name": "symfony/browser-kit", - "version": "3.4.x-dev", + "name": "phpunit/phpunit", + "version": "6.3.0", "source": { "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "e5420ccdba7671f057804f02bfe71861719b45a4" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "9501bab711403a1ab5b8378a8adb4ec3db3debdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/e5420ccdba7671f057804f02bfe71861719b45a4", - "reference": "e5420ccdba7671f057804f02bfe71861719b45a4", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9501bab711403a1ab5b8378a8adb4ec3db3debdb", + "reference": "9501bab711403a1ab5b8378a8adb4ec3db3debdb", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/dom-crawler": "~2.8|~3.0|~4.0" + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "myclabs/deep-copy": "^1.6.1", + "phar-io/manifest": "^1.0.1", + "phar-io/version": "^1.0", + "php": "^7.0", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^5.2.2", + "phpunit/php-file-iterator": "^1.4.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^1.0.9", + "phpunit/phpunit-mock-objects": "^4.0.3", + "sebastian/comparator": "^2.0.2", + "sebastian/diff": "^2.0", + "sebastian/environment": "^3.1", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^2.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^1.0", + "sebastian/version": "^2.0.1" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "3.0.2", + "phpunit/dbunit": "<3.0" }, "require-dev": { - "symfony/css-selector": "~2.8|~3.0|~4.0", - "symfony/process": "~2.8|~3.0|~4.0" + "ext-pdo": "*" }, "suggest": { - "symfony/process": "" + "ext-xdebug": "*", + "phpunit/php-invoker": "^1.1" }, + "bin": [ + "phpunit" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "6.3.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\BrowserKit\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Symfony BrowserKit Component", - "homepage": "https://symfony.com", - "time": "2017-07-06 07:45:45" + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2017-08-04T05:20:39+00:00" }, { - "name": "symfony/class-loader", - "version": "dev-master", + "name": "phpunit/phpunit-mock-objects", + "version": "4.0.4", "source": { "type": "git", - "url": "https://github.com/symfony/class-loader.git", - "reference": "379123b6b897a1e5eb2e3727be050148e5038438" + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "2f789b59ab89669015ad984afa350c4ec577ade0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/379123b6b897a1e5eb2e3727be050148e5038438", - "reference": "379123b6b897a1e5eb2e3727be050148e5038438", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/2f789b59ab89669015ad984afa350c4ec577ade0", + "reference": "2f789b59ab89669015ad984afa350c4ec577ade0", "shasum": "" }, "require": { - "php": ">=5.5.9" + "doctrine/instantiator": "^1.0.5", + "php": "^7.0", + "phpunit/php-text-template": "^1.2.1", + "sebastian/exporter": "^3.0" + }, + "conflict": { + "phpunit/phpunit": "<6.0" }, "require-dev": { - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/polyfill-apcu": "~1.1" + "phpunit/phpunit": "^6.0" }, "suggest": { - "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM" + "ext-soap": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.0.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\ClassLoader\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" } ], - "description": "Symfony ClassLoader Component", - "homepage": "https://symfony.com", - "time": "2017-06-02 09:54:06" + "description": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "time": "2017-08-03T14:08:16+00:00" }, { - "name": "symfony/config", - "version": "3.4.x-dev", + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "a34381a455c296a5a2cd97317933aa70c1336e5e" + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/a34381a455c296a5a2cd97317933aa70c1336e5e", - "reference": "a34381a455c296a5a2cd97317933aa70c1336e5e", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/filesystem": "~2.8|~3.0|~4.0" - }, - "conflict": { - "symfony/dependency-injection": "<3.3", - "symfony/finder": "<3.3" + "php": "^5.6 || ^7.0" }, "require-dev": { - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/finder": "~3.3|~4.0", - "symfony/yaml": "~3.0|~4.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" + "phpunit/phpunit": "^5.7 || ^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony Config Component", - "homepage": "https://symfony.com", - "time": "2017-06-24 09:47:31" + "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" }, { - "name": "symfony/console", - "version": "3.4.x-dev", + "name": "sebastian/comparator", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "10537916d60d2affc5d4a6d04906f431af454f63" + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "ae068fede81d06e7bb9bb46a367210a3d3e1fe6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/10537916d60d2affc5d4a6d04906f431af454f63", - "reference": "10537916d60d2affc5d4a6d04906f431af454f63", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/ae068fede81d06e7bb9bb46a367210a3d3e1fe6a", + "reference": "ae068fede81d06e7bb9bb46a367210a3d3e1fe6a", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/dependency-injection": "<3.3", - "symfony/process": "<3.3" + "php": "^7.0", + "sebastian/diff": "^2.0", + "sebastian/exporter": "^3.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~3.3|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/filesystem": "~2.8|~3.0|~4.0", - "symfony/http-kernel": "~2.8|~3.0|~4.0", - "symfony/process": "~3.3|~4.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/filesystem": "", - "symfony/process": "" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "time": "2017-07-03 13:31:36" + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "http://www.github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2017-08-03T07:14:59+00:00" }, { - "name": "symfony/css-selector", - "version": "3.4.x-dev", + "name": "sebastian/diff", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "9920f285889b075d249717509e073c3f4fbf9718" + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/9920f285889b075d249717509e073c3f4fbf9718", - "reference": "9920f285889b075d249717509e073c3f4fbf9718", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", + "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "2.0-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony CssSelector Component", - "homepage": "https://symfony.com", - "time": "2017-05-17 16:21:40" + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2017-08-03T08:09:46+00:00" }, { - "name": "symfony/debug", - "version": "3.4.x-dev", + "name": "sebastian/environment", + "version": "3.1.0", "source": { "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "296d63b9b2fbe8da9308713295543c08e93cc9cf" + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/296d63b9b2fbe8da9308713295543c08e93cc9cf", - "reference": "296d63b9b2fbe8da9308713295543c08e93cc9cf", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", "shasum": "" }, "require": { - "php": ">=5.5.9", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + "php": "^7.0" }, "require-dev": { - "symfony/http-kernel": "~2.8|~3.0|~4.0" + "phpunit/phpunit": "^6.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com", - "time": "2017-07-06 13:36:30" + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2017-07-01T08:51:00+00:00" }, { - "name": "symfony/dependency-injection", - "version": "3.4.x-dev", + "name": "sebastian/exporter", + "version": "3.1.0", "source": { "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "d71a629e0cdd6b519aa8e70a2cd4141ed356f1c6" + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d71a629e0cdd6b519aa8e70a2cd4141ed356f1c6", - "reference": "d71a629e0cdd6b519aa8e70a2cd4141ed356f1c6", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", "shasum": "" }, "require": { - "php": ">=5.5.9", - "psr/container": "^1.0" - }, - "conflict": { - "symfony/config": "<3.3.1", - "symfony/finder": "<3.3", - "symfony/yaml": "<3.3" - }, - "provide": { - "psr/container-implementation": "1.0" + "php": "^7.0", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "symfony/config": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/yaml": "~3.3|~4.0" - }, - "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "Symfony DependencyInjection Component", - "homepage": "https://symfony.com", - "time": "2017-07-06 10:23:40" + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2017-04-03T13:19:02+00:00" }, { - "name": "symfony/dom-crawler", - "version": "3.4.x-dev", + "name": "sebastian/global-state", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "efc337921960808c8cf681b212bfaf08b2acf97e" + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/efc337921960808c8cf681b212bfaf08b2acf97e", - "reference": "efc337921960808c8cf681b212bfaf08b2acf97e", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.0" + "php": "^7.0" }, "require-dev": { - "symfony/css-selector": "~2.8|~3.0|~4.0" + "phpunit/phpunit": "^6.0" }, "suggest": { - "symfony/css-selector": "" + "ext-uopz": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "2.0-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony DomCrawler Component", - "homepage": "https://symfony.com", - "time": "2017-05-25 23:27:00" + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2017-04-27T15:39:26+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "3.4.x-dev", + "name": "sebastian/object-enumerator", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "db08b1b2f9adb5d59a5e838d1577e73c418e05ed" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/db08b1b2f9adb5d59a5e838d1577e73c418e05ed", - "reference": "db08b1b2f9adb5d59a5e838d1577e73c418e05ed", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", "shasum": "" }, "require": { - "php": ">=5.5.9" - }, - "conflict": { - "symfony/dependency-injection": "<3.3" + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "time": "2017-06-12 16:03:21" + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-08-03T12:35:26+00:00" }, { - "name": "symfony/filesystem", - "version": "3.4.x-dev", + "name": "sebastian/object-reflector", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "b8f565808330129d4475d108d0129e897cde9f54" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/b8f565808330129d4475d108d0129e897cde9f54", - "reference": "b8f565808330129d4475d108d0129e897cde9f54", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "1.1-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com", - "time": "2017-06-24 09:47:31" + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2017-03-29T09:07:27+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "dev-master", + "name": "sebastian/recursion-context", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7c8fae0ac1d216eb54349e6a8baa57d515fe8803", - "reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.0" }, - "suggest": { - "ext-mbstring": "For best performance" + "require-dev": { + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.5-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "time": "2017-06-14 15:44:48" + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2017-03-03T06:23:57+00:00" }, { - "name": "symfony/process", - "version": "3.4.x-dev", + "name": "sebastian/resource-operations", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "23d5ac279cc7b71f733daecca49782a644ef6b9f" + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/23d5ac279cc7b71f733daecca49782a644ef6b9f", - "reference": "23d5ac279cc7b71f733daecca49782a644ef6b9f", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony Process Component", - "homepage": "https://symfony.com", - "time": "2017-07-03 08:12:16" + "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" }, { - "name": "symfony/translation", - "version": "3.4.x-dev", + "name": "sebastian/version", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "eca09e9af11fe317f313d2915e1573a01609fcb9" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/eca09e9af11fe317f313d2915e1573a01609fcb9", - "reference": "eca09e9af11fe317f313d2915e1573a01609fcb9", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.4", - "symfony/yaml": "<3.3" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/intl": "^2.8.18|^3.2.5|~4.0", - "symfony/yaml": "~3.3|~4.0" - }, - "suggest": { - "psr/log": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" + "php": ">=5.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Symfony Translation Component", - "homepage": "https://symfony.com", - "time": "2017-07-06 06:49:25" + "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" }, { - "name": "symfony/yaml", - "version": "3.4.x-dev", + "name": "squizlabs/php_codesniffer", + "version": "2.9.1", "source": { "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "519fb0872bb41e0f0c221ead8945eb12197bb034" + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/519fb0872bb41e0f0c221ead8945eb12197bb034", - "reference": "519fb0872bb41e0f0c221ead8945eb12197bb034", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62", + "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62", "shasum": "" }, "require": { - "php": ">=5.5.9" + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.1.2" }, "require-dev": { - "symfony/console": "~2.8|~3.0|~4.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" + "phpunit/phpunit": "~4.0" }, + "bin": [ + "scripts/phpcs", + "scripts/phpcbf" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "2.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "CodeSniffer.php", + "CodeSniffer/CLI.php", + "CodeSniffer/Exception.php", + "CodeSniffer/File.php", + "CodeSniffer/Fixer.php", + "CodeSniffer/Report.php", + "CodeSniffer/Reporting.php", + "CodeSniffer/Sniff.php", + "CodeSniffer/Tokens.php", + "CodeSniffer/Reports/", + "CodeSniffer/Tokenizers/", + "CodeSniffer/DocGenerators/", + "CodeSniffer/Standards/AbstractPatternSniff.php", + "CodeSniffer/Standards/AbstractScopeSniff.php", + "CodeSniffer/Standards/AbstractVariableSniff.php", + "CodeSniffer/Standards/IncorrectPatternException.php", + "CodeSniffer/Standards/Generic/Sniffs/", + "CodeSniffer/Standards/MySource/Sniffs/", + "CodeSniffer/Standards/PEAR/Sniffs/", + "CodeSniffer/Standards/PSR1/Sniffs/", + "CodeSniffer/Standards/PSR2/Sniffs/", + "CodeSniffer/Standards/Squiz/Sniffs/", + "CodeSniffer/Standards/Zend/Sniffs/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Greg Sherwood", + "role": "lead" } ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "time": "2017-07-03 10:20:17" + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "http://www.squizlabs.com/php-codesniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2017-05-22T02:43:20+00:00" }, { "name": "theseer/tokenizer", @@ -3550,16 +3518,16 @@ }, { "name": "webmozart/assert", - "version": "dev-master", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "4a8bf11547e139e77b651365113fc12850c43d9a" + "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/4a8bf11547e139e77b651365113fc12850c43d9a", - "reference": "4a8bf11547e139e77b651365113fc12850c43d9a", + "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f", + "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f", "shasum": "" }, "require": { @@ -3596,14 +3564,12 @@ "check", "validate" ], - "time": "2016-11-23 20:04:41" + "time": "2016-11-23T20:04:58+00:00" } ], "aliases": [], - "minimum-stability": "dev", - "stability-flags": { - "drupal/drupal-extension": 20 - }, + "minimum-stability": "stable", + "stability-flags": [], "prefer-stable": false, "prefer-lowest": false, "platform": [], From 613116347e7fb8b9794e96867e037bff1de7ea37 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 16:06:57 -0500 Subject: [PATCH 76/83] Whitespace --- tests/behat/features/views_custom_cache_tag.feature | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/behat/features/views_custom_cache_tag.feature b/tests/behat/features/views_custom_cache_tag.feature index 8ad4b24..f6408d8 100644 --- a/tests/behat/features/views_custom_cache_tag.feature +++ b/tests/behat/features/views_custom_cache_tag.feature @@ -3,7 +3,6 @@ In order to keep as many pages cached as possible when content is updated As an administrator I want to use granular cache tags for Views that reflect the type of content displayed by the View. - Background: When I run drush "en -y devel_generate views_custom_cache_tag_demo pantheon_advanced_page_cache" Then drush output should contain "devel_generate is already enabled." From 7b2db77dee6aacd2135c70c9b03e99739c721cba Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 16:12:47 -0500 Subject: [PATCH 77/83] PSR2 in tests --- .../features/bootstrap/FeatureContext.php | 32 ++++++++++------- tests/behat/helper_classes/AgeTracker.php | 33 ++++++++++-------- .../helper_classes/tests/AgeTrackerTest.php | 34 ++++++++++--------- 3 files changed, 56 insertions(+), 43 deletions(-) diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php index a303f07..d66e4d2 100644 --- a/tests/behat/features/bootstrap/FeatureContext.php +++ b/tests/behat/features/bootstrap/FeatureContext.php @@ -8,7 +8,8 @@ /** * Define application features from the specific context. */ -class FeatureContext extends RawDrupalContext implements Context { +class FeatureContext extends RawDrupalContext implements Context +{ /** * Initializes context. @@ -17,7 +18,8 @@ class FeatureContext extends RawDrupalContext implements Context { * @param array $parameters * Context parameters (set them in behat.yml) */ - public function __construct(array $parameters = []) { + public function __construct(array $parameters = []) + { // Initialize your context here } @@ -30,26 +32,26 @@ public function __construct(array $parameters = []) { /** @BeforeScenario */ public function gatherContexts(BeforeScenarioScope $scope) { - $environment = $scope->getEnvironment(); - $this->minkContext = $environment->getContext('Drupal\DrupalExtension\Context\MinkContext'); + $environment = $scope->getEnvironment(); + $this->minkContext = $environment->getContext('Drupal\DrupalExtension\Context\MinkContext'); } /** * @Given :page is caching */ - public function pageIsCaching($page) { + public function pageIsCaching($page) + { $age = $this->getAge($page); if (!empty($age)) { - return TRUE; - } - else { + return true; + } else { sleep(2); $age = $this->getAge($page); if (empty($age)) { throw new \Exception('not cached'); } else { - return TRUE; + return true; } } } @@ -57,7 +59,8 @@ public function pageIsCaching($page) { /** * @Then :path has not been purged */ - public function assertPathAgeIncreased($path) { + public function assertPathAgeIncreased($path) + { $age = $this->getAge($path); $ageTracker = $this->getAgeTracker(); if (!$ageTracker->AgeIncreasedBetweenLastTwoRequests($path)) { @@ -68,7 +71,8 @@ public function assertPathAgeIncreased($path) { /** * @Then :path has been purged */ - public function assertPathHasBeenPurged($path) { + public function assertPathHasBeenPurged($path) + { $age = $this->getAge($path); $ageTracker = $this->getAgeTracker(); if (!$ageTracker->wasCacheClearedBetweenLastTwoRequests($path)) { @@ -76,14 +80,16 @@ public function assertPathHasBeenPurged($path) { } } - protected function getAge($page) { + protected function getAge($page) + { $this->minkContext->visit($page); $this->getAgeTracker()->trackHeaders($page, $this->minkContext->getSession()->getResponseHeaders()); $age = $this->minkContext->getSession()->getResponseHeader('Age'); return $age; } - protected function getAgeTracker() { + protected function getAgeTracker() + { if (empty($this->ageTracker)) { $this->ageTracker = new AgeTracker(); } diff --git a/tests/behat/helper_classes/AgeTracker.php b/tests/behat/helper_classes/AgeTracker.php index c4e3213..380a806 100644 --- a/tests/behat/helper_classes/AgeTracker.php +++ b/tests/behat/helper_classes/AgeTracker.php @@ -1,27 +1,31 @@ headers[$path][] = array_filter($headers, function($v, $k) { - // Filter out headers that won't help with debugging. - $tracked_headers = [ + public function trackHeaders($path, $headers) + { + $this->headers[$path][] = array_filter($headers, function ($v, $k) { + // Filter out headers that won't help with debugging. + $tracked_headers = [ 'Age', 'Cache-Control', 'X-Timer' - ]; - return in_array($k, $tracked_headers); - }, ARRAY_FILTER_USE_BOTH); - } - public function getTrackedHeaders($path) { + ]; + return in_array($k, $tracked_headers); + }, ARRAY_FILTER_USE_BOTH); + } + public function getTrackedHeaders($path) + { return $this->headers[$path]; - } + } - public function wasCacheClearedBetweenLastTwoRequests($path) { + public function wasCacheClearedBetweenLastTwoRequests($path) + { // Assign the headers to a new variable so that $this->headers is not modified by array_pop(). $headers = $this->headers[$path]; @@ -31,9 +35,10 @@ public function wasCacheClearedBetweenLastTwoRequests($path) { // Then the cache was cleared (@todo, or it expired (account for max age)) $return = (integer) $most_recent['Age'][0] < (integer) $second_most_recent['Age'][0]; return $return; - } + } - public function AgeIncreasedBetweenLastTwoRequests($path) { + public function AgeIncreasedBetweenLastTwoRequests($path) + { // Assign the headers to a new variable so that $this->headers is not modified by array_pop(). $headers = $this->headers[$path]; $most_recent = array_pop($headers); @@ -41,4 +46,4 @@ public function AgeIncreasedBetweenLastTwoRequests($path) { $return = (integer) $most_recent['Age'][0] > (integer) $second_most_recent['Age'][0]; return $return; } -} \ No newline at end of file +} diff --git a/tests/behat/helper_classes/tests/AgeTrackerTest.php b/tests/behat/helper_classes/tests/AgeTrackerTest.php index 2ec3d39..924d965 100644 --- a/tests/behat/helper_classes/tests/AgeTrackerTest.php +++ b/tests/behat/helper_classes/tests/AgeTrackerTest.php @@ -20,7 +20,8 @@ final class AgeTrackerTest extends TestCase * @dataProvider providerPathsAndHeaders * @covers ::getTrackedHeaders */ - public function testGetTrackedHeaders($path, array $headers_set) { + public function testGetTrackedHeaders($path, array $headers_set) + { $AgeTracker = new AgeTracker(); foreach ($headers_set as $headers) { $AgeTracker->trackHeaders($path, $headers); @@ -34,7 +35,8 @@ public function testGetTrackedHeaders($path, array $headers_set) { * @return array * An array of test data. */ - public function providerPathsAndHeaders() { + public function providerPathsAndHeaders() + { $data = array(); $data[] = [ '/home', @@ -49,17 +51,18 @@ public function providerPathsAndHeaders() { } - public function providerExpectedCacheClears() { + public function providerExpectedCacheClears() + { $data = array(); $data[] = [ '/home', $this->cacheLifeIncreasing(), - FALSE, + false, ]; $data[] = [ '/cache-got-cleared', $this->cacheGotClearedHeaders(), - TRUE, + true, ]; return $data; @@ -76,7 +79,8 @@ public function providerExpectedCacheClears() { * @dataProvider providerExpectedCacheClears * @covers ::wasCacheClearedBetweenLastTwoRequests */ - public function testCheckCacheClear($path, array $headers_set, $expected_cache_clear) { + public function testCheckCacheClear($path, array $headers_set, $expected_cache_clear) + { $AgeTracker = new AgeTracker(); foreach ($headers_set as $headers) { @@ -85,10 +89,9 @@ public function testCheckCacheClear($path, array $headers_set, $expected_cache_c $this->assertEquals($expected_cache_clear, $AgeTracker->wasCacheClearedBetweenLastTwoRequests($path)); } - - - protected function cacheLifeIncreasing(){ - return [ + protected function cacheLifeIncreasing() + { + return [ [ 'Cache-Control' => ['max-age=600, public'], 'Age' => [3], @@ -99,12 +102,12 @@ protected function cacheLifeIncreasing(){ 'Age' => [10], 'X-Timer' => ['S1502402469.916272,VS0,VE1'] ], - ]; - + ]; } - protected function cacheGotClearedHeaders(){ - return [ + protected function cacheGotClearedHeaders() + { + return [ [ 'Cache-Control' => ['max-age=600, public'], 'Age' => [30], @@ -116,6 +119,5 @@ protected function cacheGotClearedHeaders(){ 'X-Timer' => ['S1502402469.916272,VS0,VE1'] ], ]; - } -} \ No newline at end of file +} From 807dc5250bc2956e8fd62a35f6c49baec17c087d Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 16:16:29 -0500 Subject: [PATCH 78/83] phpcs --- composer.json | 5 ++++- tests/behat/features/bootstrap/FeatureContext.php | 2 +- tests/behat/helper_classes/AgeTracker.php | 2 +- tests/behat/helper_classes/tests/AgeTrackerTest.php | 2 ++ 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 644153f..3b7a60b 100644 --- a/composer.json +++ b/composer.json @@ -6,7 +6,10 @@ "phpunit/phpunit": "^6.3" }, "scripts": { - "codesniff": "phpcs --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal src", + "codesniff": [ + "phpcs --report=full --extensions=php,module,inc,theme,info,install --standard=vendor/drupal/coder/coder_sniffer/Drupal src", + "phpcs tests --standard=PSR2" + ], "phpunit": "phpunit tests --colors=always" }, "repositories": { diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/features/bootstrap/FeatureContext.php index d66e4d2..b155fab 100644 --- a/tests/behat/features/bootstrap/FeatureContext.php +++ b/tests/behat/features/bootstrap/FeatureContext.php @@ -63,7 +63,7 @@ public function assertPathAgeIncreased($path) { $age = $this->getAge($path); $ageTracker = $this->getAgeTracker(); - if (!$ageTracker->AgeIncreasedBetweenLastTwoRequests($path)) { + if (!$ageTracker->ageIncreasedBetweenLastTwoRequests($path)) { throw new \Exception('Cache age did not increase'); } } diff --git a/tests/behat/helper_classes/AgeTracker.php b/tests/behat/helper_classes/AgeTracker.php index 380a806..594e779 100644 --- a/tests/behat/helper_classes/AgeTracker.php +++ b/tests/behat/helper_classes/AgeTracker.php @@ -37,7 +37,7 @@ public function wasCacheClearedBetweenLastTwoRequests($path) return $return; } - public function AgeIncreasedBetweenLastTwoRequests($path) + public function ageIncreasedBetweenLastTwoRequests($path) { // Assign the headers to a new variable so that $this->headers is not modified by array_pop(). $headers = $this->headers[$path]; diff --git a/tests/behat/helper_classes/tests/AgeTrackerTest.php b/tests/behat/helper_classes/tests/AgeTrackerTest.php index 924d965..a8a7499 100644 --- a/tests/behat/helper_classes/tests/AgeTrackerTest.php +++ b/tests/behat/helper_classes/tests/AgeTrackerTest.php @@ -1,6 +1,8 @@ Date: Fri, 11 Aug 2017 16:22:38 -0500 Subject: [PATCH 79/83] Moving classes around --- tests/behat/behat-pantheon.yml | 2 +- .../Contexts}/FeatureContext.php | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) rename tests/behat/{features/bootstrap => helper_classes/Contexts}/FeatureContext.php (91%) diff --git a/tests/behat/behat-pantheon.yml b/tests/behat/behat-pantheon.yml index 760cb80..cd5e21d 100644 --- a/tests/behat/behat-pantheon.yml +++ b/tests/behat/behat-pantheon.yml @@ -7,7 +7,7 @@ default: paths: - %paths.base%/features contexts: - - FeatureContext + - PantheonSystems\CDNBehatHelpers\Contexts\FeatureContext - Drupal\DrupalExtension\Context\DrupalContext - Drupal\DrupalExtension\Context\DrushContext - Drupal\DrupalExtension\Context\MinkContext diff --git a/tests/behat/features/bootstrap/FeatureContext.php b/tests/behat/helper_classes/Contexts/FeatureContext.php similarity index 91% rename from tests/behat/features/bootstrap/FeatureContext.php rename to tests/behat/helper_classes/Contexts/FeatureContext.php index b155fab..45a3182 100644 --- a/tests/behat/features/bootstrap/FeatureContext.php +++ b/tests/behat/helper_classes/Contexts/FeatureContext.php @@ -1,5 +1,7 @@ Date: Fri, 11 Aug 2017 16:43:31 -0500 Subject: [PATCH 80/83] Add unit test --- tests/behat/helper_classes/AgeTracker.php | 1 - tests/behat/helper_classes/Contexts/FeatureContext.php | 3 +-- tests/behat/helper_classes/tests/AgeTrackerTest.php | 6 ++++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/behat/helper_classes/AgeTracker.php b/tests/behat/helper_classes/AgeTracker.php index 594e779..6063e36 100644 --- a/tests/behat/helper_classes/AgeTracker.php +++ b/tests/behat/helper_classes/AgeTracker.php @@ -26,7 +26,6 @@ public function getTrackedHeaders($path) public function wasCacheClearedBetweenLastTwoRequests($path) { - // Assign the headers to a new variable so that $this->headers is not modified by array_pop(). $headers = $this->headers[$path]; $most_recent = array_pop($headers); diff --git a/tests/behat/helper_classes/Contexts/FeatureContext.php b/tests/behat/helper_classes/Contexts/FeatureContext.php index 45a3182..8d4e180 100644 --- a/tests/behat/helper_classes/Contexts/FeatureContext.php +++ b/tests/behat/helper_classes/Contexts/FeatureContext.php @@ -30,7 +30,7 @@ public function __construct(array $parameters = []) /** @var \Drupal\DrupalExtension\Context\MinkContext */ private $minkContext; - + /** @var \PantheonSystems\CDNBehatHelpers\AgeTracker; */ private $ageTracker; /** @BeforeScenario */ @@ -45,7 +45,6 @@ public function gatherContexts(BeforeScenarioScope $scope) */ public function pageIsCaching($page) { - $age = $this->getAge($page); if (!empty($age)) { return true; diff --git a/tests/behat/helper_classes/tests/AgeTrackerTest.php b/tests/behat/helper_classes/tests/AgeTrackerTest.php index a8a7499..06b6f57 100644 --- a/tests/behat/helper_classes/tests/AgeTrackerTest.php +++ b/tests/behat/helper_classes/tests/AgeTrackerTest.php @@ -31,8 +31,9 @@ public function testGetTrackedHeaders($path, array $headers_set) $actual_tracked_headers = $AgeTracker->getTrackedHeaders($path); $this->assertEquals($headers_set, $actual_tracked_headers); } + /** - * Data provider for testExtractClipTitles. + * Data provider for testGetTrackedHeaders. * * @return array * An array of test data. @@ -52,7 +53,6 @@ public function providerPathsAndHeaders() return $data; } - public function providerExpectedCacheClears() { $data = array(); @@ -80,6 +80,7 @@ public function providerExpectedCacheClears() * * @dataProvider providerExpectedCacheClears * @covers ::wasCacheClearedBetweenLastTwoRequests + * @covers ::ageIncreasedBetweenLastTwoRequests */ public function testCheckCacheClear($path, array $headers_set, $expected_cache_clear) { @@ -89,6 +90,7 @@ public function testCheckCacheClear($path, array $headers_set, $expected_cache_c $AgeTracker->trackHeaders($path, $headers); } $this->assertEquals($expected_cache_clear, $AgeTracker->wasCacheClearedBetweenLastTwoRequests($path)); + $this->assertEquals(!$expected_cache_clear, $AgeTracker->ageIncreasedBetweenLastTwoRequests($path)); } protected function cacheLifeIncreasing() From f1e4d048e48308fdb9cbe42c8d8551d22f01eb17 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 16:58:13 -0500 Subject: [PATCH 81/83] deleting node.feature --- tests/behat/features/node.feature | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 tests/behat/features/node.feature diff --git a/tests/behat/features/node.feature b/tests/behat/features/node.feature deleted file mode 100644 index c85f91c..0000000 --- a/tests/behat/features/node.feature +++ /dev/null @@ -1,19 +0,0 @@ -Feature: Node cache tags -In order to serve fresh content -As an administrator -I want caches for node pages to clear immediately after nodes are saved. - - @api - Scenario: Normal expiration - # Given a node - # When I clear all caches on the site - # That node's page cache age will be near zero - # And the age will increase until reach the max age for the page. - # And then the age will reset to near zero. - - Given I am logged in as a user with the "administrator" role - When I visit "node/add/article" - And I fill in "Title" with "Test article title" - And I press the "Save and publish" button - When I visit "admin/content" - Then I should see the text "Test article" From 73946f7f19c42ecc1add212f8b8993bf7b7b9506 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 17:00:52 -0500 Subject: [PATCH 82/83] cleanup --- tests/behat/helper_classes/AgeTracker.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/behat/helper_classes/AgeTracker.php b/tests/behat/helper_classes/AgeTracker.php index 6063e36..f756e16 100644 --- a/tests/behat/helper_classes/AgeTracker.php +++ b/tests/behat/helper_classes/AgeTracker.php @@ -2,8 +2,6 @@ namespace PantheonSystems\CDNBehatHelpers; -use InvalidArgumentException; - final class AgeTracker { @@ -19,6 +17,7 @@ public function trackHeaders($path, $headers) return in_array($k, $tracked_headers); }, ARRAY_FILTER_USE_BOTH); } + public function getTrackedHeaders($path) { return $this->headers[$path]; From 9ce389cf160c8169b08da3d9facb9ec65ef6fa54 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 11 Aug 2017 17:01:04 -0500 Subject: [PATCH 83/83] todo comments --- tests/behat/features/views_custom_cache_tag.feature | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/behat/features/views_custom_cache_tag.feature b/tests/behat/features/views_custom_cache_tag.feature index f6408d8..bd3bc82 100644 --- a/tests/behat/features/views_custom_cache_tag.feature +++ b/tests/behat/features/views_custom_cache_tag.feature @@ -29,3 +29,7 @@ I want to use granular cache tags for Views that reflect the type of content dis Then "custom-cache-tags/page" has been purged And "custom-cache-tags/page" is caching And "custom-cache-tags/article" has not been purged + + + # @todo, add scenario for demo module being turned off + # @todo, check actual surrogate key header. \ No newline at end of file