diff --git a/web/composer.json b/web/composer.json
index 727e031df..e2b64e415 100644
--- a/web/composer.json
+++ b/web/composer.json
@@ -5,10 +5,11 @@
"license": "GPL-2.0+",
"require": {
"composer/installers": "^1.0.21",
- "wikimedia/composer-merge-plugin": "~1.3"
+ "wikimedia/composer-merge-plugin": "~1.3",
+ "drupal/core": "~8.2",
+ "drupal-composer/drupal-scaffold": "dev-master"
},
"replace": {
- "drupal/core": "~8.2"
},
"minimum-stability": "dev",
"prefer-stable": true,
@@ -28,6 +29,13 @@
"recurse": false,
"replace": false,
"merge-extra": false
+ },
+ "drupal-scaffold": {
+ "source": "http://cgit.drupalcode.org/drupal/plain/{path}?h={version}",
+ "excludes": [
+ ".htaccess",
+ "robots.txt"
+ ]
}
},
"autoload": {
@@ -40,5 +48,11 @@
"post-autoload-dump": "Drupal\\Core\\Composer\\Composer::ensureHtaccess",
"post-package-install": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup",
"post-package-update": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup"
+ },
+ "repositories": {
+ "drupal": {
+ "type": "composer",
+ "url": "https://packages.drupal.org/8"
+ }
}
}
diff --git a/web/composer.lock b/web/composer.lock
index 3dfa8906c..feadcf901 100644
--- a/web/composer.lock
+++ b/web/composer.lock
@@ -4,8 +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"
],
- "hash": "7d101b08e5ae002d827cd42ae9a4e344",
- "content-hash": "60f7057617c6d995bf9946d0b12f0b5d",
+ "content-hash": "b1bad605e3192b62c91672262c3b543b",
"packages": [
{
"name": "asm89/stack-cors",
@@ -48,7 +47,7 @@
"cors",
"stack"
],
- "time": "2016-08-01 12:05:04"
+ "time": "2016-08-01T12:05:04+00:00"
},
{
"name": "composer/installers",
@@ -143,7 +142,7 @@
"zend",
"zikula"
],
- "time": "2015-02-18 17:17:01"
+ "time": "2015-02-18T17:17:01+00:00"
},
{
"name": "composer/semver",
@@ -204,7 +203,7 @@
"validation",
"versioning"
],
- "time": "2015-09-21 09:42:36"
+ "time": "2015-09-21T09:42:36+00:00"
},
{
"name": "doctrine/annotations",
@@ -272,7 +271,7 @@
"docblock",
"parser"
],
- "time": "2015-08-31 12:32:49"
+ "time": "2015-08-31T12:32:49+00:00"
},
{
"name": "doctrine/cache",
@@ -342,7 +341,7 @@
"cache",
"caching"
],
- "time": "2015-08-31 12:36:41"
+ "time": "2015-08-31T12:36:41+00:00"
},
{
"name": "doctrine/collections",
@@ -408,7 +407,7 @@
"collections",
"iterator"
],
- "time": "2015-04-14 22:21:58"
+ "time": "2015-04-14T22:21:58+00:00"
},
{
"name": "doctrine/common",
@@ -481,7 +480,7 @@
"persistence",
"spl"
],
- "time": "2015-08-31 13:00:22"
+ "time": "2015-08-31T13:00:22+00:00"
},
{
"name": "doctrine/inflector",
@@ -548,7 +547,7 @@
"singularize",
"string"
],
- "time": "2014-12-20 21:24:13"
+ "time": "2014-12-20T21:24:13+00:00"
},
{
"name": "doctrine/lexer",
@@ -602,7 +601,225 @@
"lexer",
"parser"
],
- "time": "2014-09-09 13:34:57"
+ "time": "2014-09-09T13:34:57+00:00"
+ },
+ {
+ "name": "drupal-composer/drupal-scaffold",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/drupal-composer/drupal-scaffold.git",
+ "reference": "3ad465ac853c2e52e6a808f5529859917662c256"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/drupal-composer/drupal-scaffold/zipball/3ad465ac853c2e52e6a808f5529859917662c256",
+ "reference": "3ad465ac853c2e52e6a808f5529859917662c256",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0.0",
+ "php": ">=5.4.5"
+ },
+ "require-dev": {
+ "composer/composer": "dev-master",
+ "phpunit/phpunit": "^4.4.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "DrupalComposer\\DrupalScaffold\\Plugin",
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "DrupalComposer\\DrupalScaffold\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0+"
+ ],
+ "description": "Composer Plugin for updating the Drupal scaffold files when using drupal/core",
+ "time": "2016-11-05 10:46:44"
+ },
+ {
+ "name": "drupal/core",
+ "version": "8.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/drupal-composer/drupal-core.git",
+ "reference": "5d3fb8a93514f23198ac6848b2679ef1026d2326"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/drupal-composer/drupal-core/zipball/5d3fb8a93514f23198ac6848b2679ef1026d2326",
+ "reference": "5d3fb8a93514f23198ac6848b2679ef1026d2326",
+ "shasum": ""
+ },
+ "require": {
+ "asm89/stack-cors": "~1.0",
+ "composer/semver": "~1.0",
+ "doctrine/annotations": "1.2.*",
+ "doctrine/common": "2.5.*",
+ "easyrdf/easyrdf": "0.9.*",
+ "egulias/email-validator": "1.2.*",
+ "guzzlehttp/guzzle": "^6.2.1",
+ "masterminds/html5": "~2.1",
+ "paragonie/random_compat": "^1|^2",
+ "php": ">=5.5.9",
+ "stack/builder": "1.0.*",
+ "symfony-cmf/routing": "~1.4",
+ "symfony/class-loader": "~2.8",
+ "symfony/console": "~2.8",
+ "symfony/dependency-injection": "~2.8",
+ "symfony/event-dispatcher": "~2.8",
+ "symfony/http-foundation": "~2.8",
+ "symfony/http-kernel": "~2.8",
+ "symfony/polyfill-iconv": "~1.0",
+ "symfony/process": "~2.8",
+ "symfony/psr-http-message-bridge": "v0.2",
+ "symfony/routing": "~2.8",
+ "symfony/serializer": "~2.8",
+ "symfony/translation": "~2.8",
+ "symfony/validator": "~2.8",
+ "symfony/yaml": "~2.8",
+ "twig/twig": "^1.23.1",
+ "zendframework/zend-diactoros": "~1.1",
+ "zendframework/zend-feed": "~2.4"
+ },
+ "replace": {
+ "drupal/action": "self.version",
+ "drupal/aggregator": "self.version",
+ "drupal/automated_cron": "self.version",
+ "drupal/ban": "self.version",
+ "drupal/bartik": "self.version",
+ "drupal/basic_auth": "self.version",
+ "drupal/big_pipe": "self.version",
+ "drupal/block": "self.version",
+ "drupal/block_content": "self.version",
+ "drupal/block_place": "self.version",
+ "drupal/book": "self.version",
+ "drupal/breakpoint": "self.version",
+ "drupal/ckeditor": "self.version",
+ "drupal/classy": "self.version",
+ "drupal/color": "self.version",
+ "drupal/comment": "self.version",
+ "drupal/config": "self.version",
+ "drupal/config_translation": "self.version",
+ "drupal/contact": "self.version",
+ "drupal/content_moderation": "self.version",
+ "drupal/content_translation": "self.version",
+ "drupal/contextual": "self.version",
+ "drupal/core-annotation": "self.version",
+ "drupal/core-assertion": "self.version",
+ "drupal/core-bridge": "self.version",
+ "drupal/core-datetime": "self.version",
+ "drupal/core-dependency-injection": "self.version",
+ "drupal/core-diff": "self.version",
+ "drupal/core-discovery": "self.version",
+ "drupal/core-event-dispatcher": "self.version",
+ "drupal/core-file-cache": "self.version",
+ "drupal/core-filesystem": "self.version",
+ "drupal/core-gettext": "self.version",
+ "drupal/core-graph": "self.version",
+ "drupal/core-http-foundation": "self.version",
+ "drupal/core-php-storage": "self.version",
+ "drupal/core-plugin": "self.version",
+ "drupal/core-proxy-builder": "self.version",
+ "drupal/core-render": "self.version",
+ "drupal/core-serialization": "self.version",
+ "drupal/core-transliteration": "self.version",
+ "drupal/core-utility": "self.version",
+ "drupal/core-uuid": "self.version",
+ "drupal/datetime": "self.version",
+ "drupal/datetime_range": "self.version",
+ "drupal/dblog": "self.version",
+ "drupal/dynamic_page_cache": "self.version",
+ "drupal/editor": "self.version",
+ "drupal/entity_reference": "self.version",
+ "drupal/field": "self.version",
+ "drupal/field_ui": "self.version",
+ "drupal/file": "self.version",
+ "drupal/filter": "self.version",
+ "drupal/forum": "self.version",
+ "drupal/hal": "self.version",
+ "drupal/help": "self.version",
+ "drupal/history": "self.version",
+ "drupal/image": "self.version",
+ "drupal/inline_form_errors": "self.version",
+ "drupal/language": "self.version",
+ "drupal/link": "self.version",
+ "drupal/locale": "self.version",
+ "drupal/menu_link_content": "self.version",
+ "drupal/menu_ui": "self.version",
+ "drupal/migrate": "self.version",
+ "drupal/migrate_drupal": "self.version",
+ "drupal/migrate_drupal_ui": "self.version",
+ "drupal/minimal": "self.version",
+ "drupal/node": "self.version",
+ "drupal/options": "self.version",
+ "drupal/outside_in": "self.version",
+ "drupal/page_cache": "self.version",
+ "drupal/path": "self.version",
+ "drupal/quickedit": "self.version",
+ "drupal/rdf": "self.version",
+ "drupal/responsive_image": "self.version",
+ "drupal/rest": "self.version",
+ "drupal/search": "self.version",
+ "drupal/serialization": "self.version",
+ "drupal/seven": "self.version",
+ "drupal/shortcut": "self.version",
+ "drupal/simpletest": "self.version",
+ "drupal/standard": "self.version",
+ "drupal/stark": "self.version",
+ "drupal/statistics": "self.version",
+ "drupal/syslog": "self.version",
+ "drupal/system": "self.version",
+ "drupal/taxonomy": "self.version",
+ "drupal/telephone": "self.version",
+ "drupal/text": "self.version",
+ "drupal/toolbar": "self.version",
+ "drupal/tour": "self.version",
+ "drupal/tracker": "self.version",
+ "drupal/update": "self.version",
+ "drupal/user": "self.version",
+ "drupal/views": "self.version",
+ "drupal/views_ui": "self.version"
+ },
+ "require-dev": {
+ "behat/mink": "~1.7",
+ "behat/mink-goutte-driver": "~1.2",
+ "jcalderonzumba/gastonjs": "~1.0.2",
+ "jcalderonzumba/mink-phantomjs-driver": "~0.3.1",
+ "mikey179/vfsstream": "~1.2",
+ "phpunit/phpunit": ">=4.8.28 <5",
+ "symfony/css-selector": "~2.8"
+ },
+ "type": "drupal-core",
+ "autoload": {
+ "psr-4": {
+ "Drupal\\Core\\": "lib/Drupal/Core",
+ "Drupal\\Component\\": "lib/Drupal/Component",
+ "Drupal\\Driver\\": "../drivers/lib/Drupal/Driver"
+ },
+ "classmap": [
+ "lib/Drupal.php",
+ "lib/Drupal/Component/Utility/Timer.php",
+ "lib/Drupal/Component/Utility/Unicode.php",
+ "lib/Drupal/Core/Database/Database.php",
+ "lib/Drupal/Core/DrupalKernel.php",
+ "lib/Drupal/Core/DrupalKernelInterface.php",
+ "lib/Drupal/Core/Site/Settings.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0+"
+ ],
+ "description": "Drupal is an open source content management platform powering millions of websites and applications.",
+ "time": "2017-03-15T20:19:51+00:00"
},
{
"name": "easyrdf/easyrdf",
@@ -664,7 +881,7 @@
"rdfa",
"sparql"
],
- "time": "2015-02-27 09:45:49"
+ "time": "2015-02-27T09:45:49+00:00"
},
{
"name": "egulias/email-validator",
@@ -717,7 +934,7 @@
"validation",
"validator"
],
- "time": "2015-06-22 21:07:51"
+ "time": "2015-06-22T21:07:51+00:00"
},
{
"name": "guzzlehttp/guzzle",
@@ -779,7 +996,7 @@
"rest",
"web service"
],
- "time": "2016-07-15 17:22:37"
+ "time": "2016-07-15T17:22:37+00:00"
},
{
"name": "guzzlehttp/promises",
@@ -830,7 +1047,7 @@
"keywords": [
"promise"
],
- "time": "2016-05-18 16:56:05"
+ "time": "2016-05-18T16:56:05+00:00"
},
{
"name": "guzzlehttp/psr7",
@@ -888,7 +1105,7 @@
"stream",
"uri"
],
- "time": "2016-06-24 23:00:38"
+ "time": "2016-06-24T23:00:38+00:00"
},
{
"name": "ircmaxell/password-compat",
@@ -930,7 +1147,7 @@
"hashing",
"password"
],
- "time": "2014-11-20 16:49:30"
+ "time": "2014-11-20T16:49:30+00:00"
},
{
"name": "masterminds/html5",
@@ -995,7 +1212,7 @@
"serializer",
"xml"
],
- "time": "2016-05-10 14:11:45"
+ "time": "2016-05-10T14:11:45+00:00"
},
{
"name": "paragonie/random_compat",
@@ -1043,7 +1260,7 @@
"pseudorandom",
"random"
],
- "time": "2015-12-01 02:52:15"
+ "time": "2015-12-01T02:52:15+00:00"
},
{
"name": "psr/http-message",
@@ -1092,7 +1309,7 @@
"request",
"response"
],
- "time": "2015-05-04 20:22:00"
+ "time": "2015-05-04T20:22:00+00:00"
},
{
"name": "psr/log",
@@ -1130,7 +1347,7 @@
"psr",
"psr-3"
],
- "time": "2012-12-21 11:40:51"
+ "time": "2012-12-21T11:40:51+00:00"
},
{
"name": "stack/builder",
@@ -1179,7 +1396,7 @@
"keywords": [
"stack"
],
- "time": "2016-06-02 06:58:42"
+ "time": "2016-06-02T06:58:42+00:00"
},
{
"name": "symfony-cmf/routing",
@@ -1238,7 +1455,7 @@
"database",
"routing"
],
- "time": "2016-03-31 09:11:39"
+ "time": "2016-03-31T09:11:39+00:00"
},
{
"name": "symfony/class-loader",
@@ -1291,7 +1508,7 @@
],
"description": "Symfony ClassLoader Component",
"homepage": "https://symfony.com",
- "time": "2017-01-10 14:03:07"
+ "time": "2017-01-10T14:03:07+00:00"
},
{
"name": "symfony/console",
@@ -1352,7 +1569,7 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
- "time": "2017-01-08 20:43:03"
+ "time": "2017-01-08T20:43:03+00:00"
},
{
"name": "symfony/debug",
@@ -1409,7 +1626,7 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
- "time": "2017-01-02 20:30:24"
+ "time": "2017-01-02T20:30:24+00:00"
},
{
"name": "symfony/dependency-injection",
@@ -1472,7 +1689,7 @@
],
"description": "Symfony DependencyInjection Component",
"homepage": "https://symfony.com",
- "time": "2017-01-10 14:27:01"
+ "time": "2017-01-10T14:27:01+00:00"
},
{
"name": "symfony/event-dispatcher",
@@ -1532,7 +1749,7 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
- "time": "2017-01-02 20:30:24"
+ "time": "2017-01-02T20:30:24+00:00"
},
{
"name": "symfony/http-foundation",
@@ -1587,7 +1804,7 @@
],
"description": "Symfony HttpFoundation Component",
"homepage": "https://symfony.com",
- "time": "2017-01-08 20:43:03"
+ "time": "2017-01-08T20:43:03+00:00"
},
{
"name": "symfony/http-kernel",
@@ -1669,7 +1886,7 @@
],
"description": "Symfony HttpKernel Component",
"homepage": "https://symfony.com",
- "time": "2017-01-12 20:27:24"
+ "time": "2017-01-12T20:27:24+00:00"
},
{
"name": "symfony/polyfill-apcu",
@@ -1722,7 +1939,7 @@
"portable",
"shim"
],
- "time": "2016-11-14 01:06:16"
+ "time": "2016-11-14T01:06:16+00:00"
},
{
"name": "symfony/polyfill-iconv",
@@ -1781,7 +1998,7 @@
"portable",
"shim"
],
- "time": "2016-11-14 01:06:16"
+ "time": "2016-11-14T01:06:16+00:00"
},
{
"name": "symfony/polyfill-mbstring",
@@ -1840,7 +2057,7 @@
"portable",
"shim"
],
- "time": "2016-11-14 01:06:16"
+ "time": "2016-11-14T01:06:16+00:00"
},
{
"name": "symfony/polyfill-php54",
@@ -1898,7 +2115,7 @@
"portable",
"shim"
],
- "time": "2016-11-14 01:06:16"
+ "time": "2016-11-14T01:06:16+00:00"
},
{
"name": "symfony/polyfill-php55",
@@ -1954,7 +2171,7 @@
"portable",
"shim"
],
- "time": "2016-11-14 01:06:16"
+ "time": "2016-11-14T01:06:16+00:00"
},
{
"name": "symfony/process",
@@ -2003,7 +2220,7 @@
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
- "time": "2017-01-02 20:30:24"
+ "time": "2017-01-02T20:30:24+00:00"
},
{
"name": "symfony/psr-http-message-bridge",
@@ -2057,7 +2274,7 @@
"http-message",
"psr-7"
],
- "time": "2015-05-29 17:57:12"
+ "time": "2015-05-29T17:57:12+00:00"
},
{
"name": "symfony/routing",
@@ -2132,7 +2349,7 @@
"uri",
"url"
],
- "time": "2017-01-02 20:30:24"
+ "time": "2017-01-02T20:30:24+00:00"
},
{
"name": "symfony/serializer",
@@ -2196,7 +2413,7 @@
],
"description": "Symfony Serializer Component",
"homepage": "https://symfony.com",
- "time": "2017-01-02 20:30:24"
+ "time": "2017-01-02T20:30:24+00:00"
},
{
"name": "symfony/translation",
@@ -2260,7 +2477,7 @@
],
"description": "Symfony Translation Component",
"homepage": "https://symfony.com",
- "time": "2017-01-02 20:30:24"
+ "time": "2017-01-02T20:30:24+00:00"
},
{
"name": "symfony/validator",
@@ -2333,7 +2550,7 @@
],
"description": "Symfony Validator Component",
"homepage": "https://symfony.com",
- "time": "2017-01-12 19:24:25"
+ "time": "2017-01-12T19:24:25+00:00"
},
{
"name": "symfony/yaml",
@@ -2382,7 +2599,7 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
- "time": "2017-01-03 13:49:52"
+ "time": "2017-01-03T13:49:52+00:00"
},
{
"name": "twig/twig",
@@ -2443,7 +2660,7 @@
"keywords": [
"templating"
],
- "time": "2016-01-25 21:22:18"
+ "time": "2016-01-25T21:22:18+00:00"
},
{
"name": "wikimedia/composer-merge-plugin",
@@ -2492,7 +2709,7 @@
}
],
"description": "Composer plugin to merge multiple composer.json files",
- "time": "2016-03-08 17:11:37"
+ "time": "2016-03-08T17:11:37+00:00"
},
{
"name": "zendframework/zend-diactoros",
@@ -2542,7 +2759,7 @@
"psr",
"psr-7"
],
- "time": "2015-08-10 20:04:20"
+ "time": "2015-08-10T20:04:20+00:00"
},
{
"name": "zendframework/zend-escaper",
@@ -2586,7 +2803,7 @@
"escaper",
"zf2"
],
- "time": "2015-06-03 14:05:37"
+ "time": "2015-06-03T14:05:37+00:00"
},
{
"name": "zendframework/zend-feed",
@@ -2645,7 +2862,7 @@
"feed",
"zf2"
],
- "time": "2015-08-04 21:39:18"
+ "time": "2015-08-04T21:39:18+00:00"
},
{
"name": "zendframework/zend-hydrator",
@@ -2701,7 +2918,7 @@
"hydrator",
"zf2"
],
- "time": "2015-09-17 14:06:43"
+ "time": "2015-09-17T14:06:43+00:00"
},
{
"name": "zendframework/zend-stdlib",
@@ -2759,7 +2976,7 @@
"stdlib",
"zf2"
],
- "time": "2015-09-25 04:06:33"
+ "time": "2015-09-25T04:06:33+00:00"
}
],
"packages-dev": [
@@ -2819,7 +3036,7 @@
"testing",
"web"
],
- "time": "2016-03-05 08:26:18"
+ "time": "2016-03-05T08:26:18+00:00"
},
{
"name": "behat/mink-browserkit-driver",
@@ -2875,7 +3092,7 @@
"browser",
"testing"
],
- "time": "2016-03-05 08:59:47"
+ "time": "2016-03-05T08:59:47+00:00"
},
{
"name": "behat/mink-goutte-driver",
@@ -2930,7 +3147,7 @@
"headless",
"testing"
],
- "time": "2016-03-05 09:04:22"
+ "time": "2016-03-05T09:04:22+00:00"
},
{
"name": "doctrine/instantiator",
@@ -2984,7 +3201,7 @@
"constructor",
"instantiate"
],
- "time": "2015-06-14 21:17:01"
+ "time": "2015-06-14T21:17:01+00:00"
},
{
"name": "fabpot/goutte",
@@ -3033,7 +3250,7 @@
"keywords": [
"scraper"
],
- "time": "2015-11-05 12:58:44"
+ "time": "2015-11-05T12:58:44+00:00"
},
{
"name": "jcalderonzumba/gastonjs",
@@ -3090,7 +3307,7 @@
"headless",
"phantomjs"
],
- "time": "2016-01-18 09:21:03"
+ "time": "2016-01-18T09:21:03+00:00"
},
{
"name": "jcalderonzumba/mink-phantomjs-driver",
@@ -3151,7 +3368,7 @@
"phantomjs",
"testing"
],
- "time": "2015-12-04 13:55:02"
+ "time": "2015-12-04T13:55:02+00:00"
},
{
"name": "mikey179/vfsStream",
@@ -3197,7 +3414,7 @@
],
"description": "Virtual file system to mock the real file system in unit tests.",
"homepage": "http://vfs.bovigo.org/",
- "time": "2015-10-06 16:59:57"
+ "time": "2015-10-06T16:59:57+00:00"
},
{
"name": "phpdocumentor/reflection-docblock",
@@ -3246,7 +3463,7 @@
"email": "mike.vanriel@naenius.com"
}
],
- "time": "2015-02-03 12:10:50"
+ "time": "2015-02-03T12:10:50+00:00"
},
{
"name": "phpspec/prophecy",
@@ -3306,7 +3523,7 @@
"spy",
"stub"
],
- "time": "2015-08-13 10:07:40"
+ "time": "2015-08-13T10:07:40+00:00"
},
{
"name": "phpunit/php-code-coverage",
@@ -3368,7 +3585,7 @@
"testing",
"xunit"
],
- "time": "2015-10-06 15:47:00"
+ "time": "2015-10-06T15:47:00+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -3415,7 +3632,7 @@
"filesystem",
"iterator"
],
- "time": "2015-06-21 13:08:43"
+ "time": "2015-06-21T13:08:43+00:00"
},
{
"name": "phpunit/php-text-template",
@@ -3456,7 +3673,7 @@
"keywords": [
"template"
],
- "time": "2015-06-21 13:50:34"
+ "time": "2015-06-21T13:50:34+00:00"
},
{
"name": "phpunit/php-timer",
@@ -3497,7 +3714,7 @@
"keywords": [
"timer"
],
- "time": "2015-06-21 08:01:12"
+ "time": "2015-06-21T08:01:12+00:00"
},
{
"name": "phpunit/php-token-stream",
@@ -3546,20 +3763,20 @@
"keywords": [
"tokenizer"
],
- "time": "2015-09-15 10:49:45"
+ "time": "2015-09-15T10:49:45+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "4.8.27",
+ "version": "4.8.28",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90"
+ "reference": "558a3a0d28b4cb7e4a593a4fbd2220e787076225"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c062dddcb68e44b563f66ee319ddae2b5a322a90",
- "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/558a3a0d28b4cb7e4a593a4fbd2220e787076225",
+ "reference": "558a3a0d28b4cb7e4a593a4fbd2220e787076225",
"shasum": ""
},
"require": {
@@ -3618,7 +3835,7 @@
"testing",
"xunit"
],
- "time": "2016-07-21 06:48:14"
+ "time": "2016-11-14T06:25:28+00:00"
},
{
"name": "phpunit/phpunit-mock-objects",
@@ -3674,7 +3891,7 @@
"mock",
"xunit"
],
- "time": "2015-10-02 06:51:40"
+ "time": "2015-10-02T06:51:40+00:00"
},
{
"name": "sebastian/comparator",
@@ -3738,7 +3955,7 @@
"compare",
"equality"
],
- "time": "2015-07-26 15:48:44"
+ "time": "2015-07-26T15:48:44+00:00"
},
{
"name": "sebastian/diff",
@@ -3790,7 +4007,7 @@
"keywords": [
"diff"
],
- "time": "2015-02-22 15:13:53"
+ "time": "2015-02-22T15:13:53+00:00"
},
{
"name": "sebastian/environment",
@@ -3840,7 +4057,7 @@
"environment",
"hhvm"
],
- "time": "2015-08-03 06:14:51"
+ "time": "2015-08-03T06:14:51+00:00"
},
{
"name": "sebastian/exporter",
@@ -3906,7 +4123,7 @@
"export",
"exporter"
],
- "time": "2015-06-21 07:55:53"
+ "time": "2015-06-21T07:55:53+00:00"
},
{
"name": "sebastian/global-state",
@@ -3957,7 +4174,7 @@
"keywords": [
"global state"
],
- "time": "2014-10-06 09:23:50"
+ "time": "2014-10-06T09:23:50+00:00"
},
{
"name": "sebastian/recursion-context",
@@ -4010,7 +4227,7 @@
],
"description": "Provides functionality to recursively process PHP variables",
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
- "time": "2015-06-21 08:04:50"
+ "time": "2015-06-21T08:04:50+00:00"
},
{
"name": "sebastian/version",
@@ -4045,7 +4262,7 @@
],
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
"homepage": "https://github.com/sebastianbergmann/version",
- "time": "2015-06-21 13:59:46"
+ "time": "2015-06-21T13:59:46+00:00"
},
{
"name": "symfony/browser-kit",
@@ -4102,7 +4319,7 @@
],
"description": "Symfony BrowserKit Component",
"homepage": "https://symfony.com",
- "time": "2017-01-02 20:30:24"
+ "time": "2017-01-02T20:30:24+00:00"
},
{
"name": "symfony/css-selector",
@@ -4155,7 +4372,7 @@
],
"description": "Symfony CssSelector Component",
"homepage": "https://symfony.com",
- "time": "2017-01-02 20:30:24"
+ "time": "2017-01-02T20:30:24+00:00"
},
{
"name": "symfony/dom-crawler",
@@ -4211,12 +4428,14 @@
],
"description": "Symfony DomCrawler Component",
"homepage": "https://symfony.com",
- "time": "2017-01-02 20:30:24"
+ "time": "2017-01-02T20:30:24+00:00"
}
],
"aliases": [],
"minimum-stability": "dev",
- "stability-flags": [],
+ "stability-flags": {
+ "drupal-composer/drupal-scaffold": 20
+ },
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
diff --git a/web/core/CHANGELOG.txt b/web/core/CHANGELOG.txt
index 2b424d27c..853260ae9 100644
--- a/web/core/CHANGELOG.txt
+++ b/web/core/CHANGELOG.txt
@@ -1,3 +1,7 @@
+Drupal 8.2.7, 2017-03-15
+------------------------
+- Fixed security issues. See SA-CORE-2017-001.
+
Drupal 8.2.3, 2016-11-16
------------------------
- Fixed security issues. See SA-CORE-2016-005.
diff --git a/web/core/composer.json b/web/core/composer.json
index b9a3fad8b..6782469d6 100644
--- a/web/core/composer.json
+++ b/web/core/composer.json
@@ -40,7 +40,7 @@
"jcalderonzumba/gastonjs": "~1.0.2",
"jcalderonzumba/mink-phantomjs-driver": "~0.3.1",
"mikey179/vfsStream": "~1.2",
- "phpunit/phpunit": "~4.8",
+ "phpunit/phpunit": ">=4.8.28 <5",
"symfony/css-selector": "~2.8"
},
"replace": {
diff --git a/web/core/lib/Drupal.php b/web/core/lib/Drupal.php
index 5dec88bd1..03a952a88 100644
--- a/web/core/lib/Drupal.php
+++ b/web/core/lib/Drupal.php
@@ -81,7 +81,7 @@ class Drupal {
/**
* The current system version.
*/
- const VERSION = '8.2.6';
+ const VERSION = '8.2.7';
/**
* Core API compatibility.
diff --git a/web/core/modules/editor/editor.module b/web/core/modules/editor/editor.module
index 010177974..f48c51b80 100644
--- a/web/core/modules/editor/editor.module
+++ b/web/core/modules/editor/editor.module
@@ -519,8 +519,8 @@ function editor_file_download($uri) {
if ($file->isPermanent()) {
$referencing_entity_is_accessible = FALSE;
$references = empty($usage_list['editor']) ? [] : $usage_list['editor'];
- foreach ($references as $entity_type => $entity_ids) {
- $referencing_entities = entity_load_multiple($entity_type, $entity_ids);
+ foreach ($references as $entity_type => $entity_ids_usage_count) {
+ $referencing_entities = entity_load_multiple($entity_type, array_keys($entity_ids_usage_count));
/** @var \Drupal\Core\Entity\EntityInterface $referencing_entity */
foreach ($referencing_entities as $referencing_entity) {
if ($referencing_entity->access('view', NULL, TRUE)->isAllowed()) {
diff --git a/web/core/modules/editor/src/Tests/EditorPrivateFileReferenceFilterTest.php b/web/core/modules/editor/src/Tests/EditorPrivateFileReferenceFilterTest.php
index 5f689b3f0..354ceede0 100644
--- a/web/core/modules/editor/src/Tests/EditorPrivateFileReferenceFilterTest.php
+++ b/web/core/modules/editor/src/Tests/EditorPrivateFileReferenceFilterTest.php
@@ -68,9 +68,18 @@ class EditorPrivateFileReferenceFilterTest extends BrowserTestBase {
$file->setPermanent();
$file->save();
+ // Create some nodes to ensure file usage count does not match the ID's
+ // of the nodes we are going to check.
+ for ($i = 0; $i < 5; $i++) {
+ $this->drupalCreateNode([
+ 'type' => 'page',
+ 'uid' => $author->id(),
+ ]);
+ }
+
// Create a node with its body field properly pointing to the just-created
// file.
- $node = $this->drupalCreateNode([
+ $published_node = $this->drupalCreateNode([
'type' => 'page',
'body' => [
'value' => '',
@@ -79,19 +88,44 @@ class EditorPrivateFileReferenceFilterTest extends BrowserTestBase {
'uid' => $author->id(),
]);
+ // Create an unpublished node with its body field properly pointing to the
+ // just-created file.
+ $unpublished_node = $this->drupalCreateNode([
+ 'type' => 'page',
+ 'status' => NODE_NOT_PUBLISHED,
+ 'body' => [
+ 'value' => '',
+ 'format' => 'private_images',
+ ],
+ 'uid' => $author->id(),
+ ]);
+
// Do the actual test. The image should be visible for anonymous users,
- // because they can view the referencing entity.
- $this->drupalGet($node->toUrl());
+ // because they can view the published node. Even though they can't view
+ // the unpublished node.
+ $this->drupalGet($published_node->toUrl());
$this->assertSession()->statusCodeEquals(200);
+ $this->drupalGet($unpublished_node->toUrl());
+ $this->assertSession()->statusCodeEquals(403);
$this->drupalGet($src);
$this->assertSession()->statusCodeEquals(200);
+ // When the published node is also unpublished, the image should also
+ // become inaccessible to anonymous users.
+ $published_node->setPublished(FALSE)->save();
+
+ $this->drupalGet($published_node->toUrl());
+ $this->assertSession()->statusCodeEquals(403);
+ $this->drupalGet($src);
+ $this->assertSession()->statusCodeEquals(403);
+
// Disallow anonymous users to view the entity, which then should also
// disallow them to view the image.
+ $published_node->setPublished(TRUE)->save();
Role::load(RoleInterface::ANONYMOUS_ID)
->revokePermission('access content')
->save();
- $this->drupalGet($node->toUrl());
+ $this->drupalGet($published_node->toUrl());
$this->assertSession()->statusCodeEquals(403);
$this->drupalGet($src);
$this->assertSession()->statusCodeEquals(403);
diff --git a/web/core/modules/search/search.routing.yml b/web/core/modules/search/search.routing.yml
index ec273f166..98969a6e2 100644
--- a/web/core/modules/search/search.routing.yml
+++ b/web/core/modules/search/search.routing.yml
@@ -37,6 +37,7 @@ entity.search_page.enable:
op: 'enable'
requirements:
_entity_access: 'search_page.update'
+ _csrf_token: 'TRUE'
entity.search_page.disable:
path: '/admin/config/search/pages/manage/{search_page}/disable'
@@ -45,6 +46,7 @@ entity.search_page.disable:
op: 'disable'
requirements:
_entity_access: 'search_page.disable'
+ _csrf_token: 'TRUE'
entity.search_page.set_default:
path: '/admin/config/search/pages/manage/{search_page}/set-default'
@@ -52,6 +54,7 @@ entity.search_page.set_default:
_controller: '\Drupal\search\Controller\SearchController::setAsDefault'
requirements:
_entity_access: 'search_page.update'
+ _csrf_token: 'TRUE'
entity.search_page.delete_form:
path: '/admin/config/search/pages/manage/{search_page}/delete'
diff --git a/web/core/modules/search/src/Form/SearchBlockForm.php b/web/core/modules/search/src/Form/SearchBlockForm.php
index cd198fd79..0e623a877 100644
--- a/web/core/modules/search/src/Form/SearchBlockForm.php
+++ b/web/core/modules/search/src/Form/SearchBlockForm.php
@@ -75,6 +75,16 @@ class SearchBlockForm extends FormBase {
public function buildForm(array $form, FormStateInterface $form_state) {
// Set up the form to submit using GET to the correct search page.
$entity_id = $this->searchPageRepository->getDefaultSearchPage();
+
+ $form = [];
+
+ // SearchPageRepository::getDefaultSearchPage() depends on search.settings.
+ // The dependency needs to be added before the conditional return, otherwise
+ // the block would get cached without the necessary cacheablity metadata in
+ // case there is no default search page and would not be invalidated if that
+ // changes.
+ $this->renderer->addCacheableDependency($form, $this->configFactory->get('search.settings'));
+
if (!$entity_id) {
$form['message'] = array(
'#markup' => $this->t('Search is currently disabled'),
@@ -103,9 +113,6 @@ class SearchBlockForm extends FormBase {
'#name' => '',
);
- // SearchPageRepository::getDefaultSearchPage() depends on search.settings.
- $this->renderer->addCacheableDependency($form, $this->configFactory->get('search.settings'));
-
return $form;
}
diff --git a/web/core/modules/search/src/Tests/SearchConfigSettingsFormTest.php b/web/core/modules/search/src/Tests/SearchConfigSettingsFormTest.php
index 9ca87d619..fe93f9068 100644
--- a/web/core/modules/search/src/Tests/SearchConfigSettingsFormTest.php
+++ b/web/core/modules/search/src/Tests/SearchConfigSettingsFormTest.php
@@ -154,8 +154,7 @@ class SearchConfigSettingsFormTest extends SearchTestBase {
// Test each plugin if it's enabled as the only search plugin.
foreach ($entities as $entity_id => $entity) {
- // Set this as default.
- $this->drupalGet("admin/config/search/pages/manage/$entity_id/set-default");
+ $this->setDefaultThroughUi($entity_id);
// Run a search from the correct search URL.
$info = $plugin_info[$entity_id];
@@ -187,13 +186,16 @@ class SearchConfigSettingsFormTest extends SearchTestBase {
$entity->disable()->save();
}
+ // Set the node search as default.
+ $this->setDefaultThroughUi('node_search');
+
// Test with all search plugins enabled. When you go to the search
// page or run search, all plugins should be shown.
foreach ($entities as $entity) {
$entity->enable()->save();
}
- // Set the node search as default.
- $this->drupalGet('admin/config/search/pages/manage/node_search/set-default');
+
+ \Drupal::service('router.builder')->rebuild();
$paths = array(
array('path' => 'search/node', 'options' => array('query' => array('keys' => 'pizza'))),
@@ -316,6 +318,19 @@ class SearchConfigSettingsFormTest extends SearchTestBase {
$this->verifySearchPageOperations($first_id, FALSE, FALSE, FALSE, FALSE);
}
+ /**
+ * Tests that the enable/disable/default routes are protected from CSRF.
+ */
+ public function testRouteProtection() {
+ // Ensure that the enable and disable routes are protected.
+ $this->drupalGet('admin/config/search/pages/manage/node_search/enable');
+ $this->assertResponse(403);
+ $this->drupalGet('admin/config/search/pages/manage/node_search/disable');
+ $this->assertResponse(403);
+ $this->drupalGet('admin/config/search/pages/manage/node_search/set-default');
+ $this->assertResponse(403);
+ }
+
/**
* Checks that the search page operations match expectations.
*
@@ -373,4 +388,17 @@ class SearchConfigSettingsFormTest extends SearchTestBase {
$this->assertIdentical($search_page_repository->getDefaultSearchPage(), $expected, $message, $group);
}
+ /**
+ * Sets a search page as the default in the UI.
+ *
+ * @param string $entity_id
+ * The search page entity ID to enable.
+ */
+ protected function setDefaultThroughUi($entity_id) {
+ $this->drupalGet('admin/config/search/pages');
+ preg_match('|href="([^"]+' . $entity_id . '/set-default[^"]+)"|', $this->getRawContent(), $matches);
+
+ $this->drupalGet($this->getAbsoluteUrl($matches[1]));
+ }
+
}
diff --git a/web/core/modules/simpletest/src/WebTestBase.php b/web/core/modules/simpletest/src/WebTestBase.php
index f54dcf79e..547de13a4 100644
--- a/web/core/modules/simpletest/src/WebTestBase.php
+++ b/web/core/modules/simpletest/src/WebTestBase.php
@@ -1301,7 +1301,7 @@ abstract class WebTestBase extends TestBase {
}
if ($path instanceof Url) {
- $path = $path->toString();
+ $path = $path->setAbsolute()->toString(TRUE)->getGeneratedUrl();
}
$verbose = 'GET request to: ' . $path .
@@ -2588,7 +2588,7 @@ abstract class WebTestBase extends TestBase {
$url_options = $path->getOptions();
$options = $url_options + $options;
$path->setOptions($options);
- return $path->setAbsolute()->toString();
+ return $path->setAbsolute()->toString(TRUE)->getGeneratedUrl();
}
// The URL generator service is not necessarily available yet; e.g., in
// interactive installer tests.
diff --git a/web/vendor/composer/autoload_psr4.php b/web/vendor/composer/autoload_psr4.php
index df706e45d..414b44143 100644
--- a/web/vendor/composer/autoload_psr4.php
+++ b/web/vendor/composer/autoload_psr4.php
@@ -42,10 +42,11 @@ return array(
'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'),
'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
'Goutte\\' => array($vendorDir . '/fabpot/goutte/Goutte'),
- 'Drupal\\Driver\\' => array($baseDir . '/drivers/lib/Drupal/Driver'),
+ 'Drupal\\Driver\\' => array($baseDir . '/drivers/lib/Drupal/Driver', $baseDir . '/drivers/lib/Drupal/Driver'),
'Drupal\\Core\\Composer\\' => array($baseDir . '/core/lib/Drupal/Core/Composer'),
- 'Drupal\\Core\\' => array($baseDir . '/core/lib/Drupal/Core'),
- 'Drupal\\Component\\' => array($baseDir . '/core/lib/Drupal/Component'),
+ 'Drupal\\Core\\' => array($baseDir . '/core/lib/Drupal/Core', $baseDir . '/core/lib/Drupal/Core'),
+ 'Drupal\\Component\\' => array($baseDir . '/core/lib/Drupal/Component', $baseDir . '/core/lib/Drupal/Component'),
+ 'DrupalComposer\\DrupalScaffold\\' => array($vendorDir . '/drupal-composer/drupal-scaffold/src'),
'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
'Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'),
'Behat\\Mink\\Driver\\' => array($vendorDir . '/behat/mink-browserkit-driver/src', $vendorDir . '/behat/mink-goutte-driver/src'),
diff --git a/web/vendor/composer/autoload_static.php b/web/vendor/composer/autoload_static.php
index ca9526e7c..386576769 100644
--- a/web/vendor/composer/autoload_static.php
+++ b/web/vendor/composer/autoload_static.php
@@ -80,6 +80,7 @@ class ComposerStaticInitDrupal8
'Drupal\\Core\\Composer\\' => 21,
'Drupal\\Core\\' => 12,
'Drupal\\Component\\' => 17,
+ 'DrupalComposer\\DrupalScaffold\\' => 30,
'Doctrine\\Instantiator\\' => 22,
),
'C' =>
@@ -241,6 +242,7 @@ class ComposerStaticInitDrupal8
'Drupal\\Driver\\' =>
array (
0 => __DIR__ . '/../..' . '/drivers/lib/Drupal/Driver',
+ 1 => __DIR__ . '/../..' . '/drivers/lib/Drupal/Driver',
),
'Drupal\\Core\\Composer\\' =>
array (
@@ -249,10 +251,16 @@ class ComposerStaticInitDrupal8
'Drupal\\Core\\' =>
array (
0 => __DIR__ . '/../..' . '/core/lib/Drupal/Core',
+ 1 => __DIR__ . '/../..' . '/core/lib/Drupal/Core',
),
'Drupal\\Component\\' =>
array (
0 => __DIR__ . '/../..' . '/core/lib/Drupal/Component',
+ 1 => __DIR__ . '/../..' . '/core/lib/Drupal/Component',
+ ),
+ 'DrupalComposer\\DrupalScaffold\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/drupal-composer/drupal-scaffold/src',
),
'Doctrine\\Instantiator\\' =>
array (
diff --git a/web/vendor/composer/installed.json b/web/vendor/composer/installed.json
index 32c820eb1..9fb5e4cee 100644
--- a/web/vendor/composer/installed.json
+++ b/web/vendor/composer/installed.json
@@ -4278,18 +4278,240 @@
]
},
{
- "name": "phpunit/phpunit",
- "version": "4.8.27",
- "version_normalized": "4.8.27.0",
+ "name": "drupal-composer/drupal-scaffold",
+ "version": "dev-master",
+ "version_normalized": "9999999-dev",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90"
+ "url": "https://github.com/drupal-composer/drupal-scaffold.git",
+ "reference": "3ad465ac853c2e52e6a808f5529859917662c256"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c062dddcb68e44b563f66ee319ddae2b5a322a90",
- "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90",
+ "url": "https://api.github.com/repos/drupal-composer/drupal-scaffold/zipball/3ad465ac853c2e52e6a808f5529859917662c256",
+ "reference": "3ad465ac853c2e52e6a808f5529859917662c256",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0.0",
+ "php": ">=5.4.5"
+ },
+ "require-dev": {
+ "composer/composer": "dev-master",
+ "phpunit/phpunit": "^4.4.0"
+ },
+ "time": "2016-11-05T10:46:44+00:00",
+ "type": "composer-plugin",
+ "extra": {
+ "class": "DrupalComposer\\DrupalScaffold\\Plugin",
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "installation-source": "source",
+ "autoload": {
+ "psr-4": {
+ "DrupalComposer\\DrupalScaffold\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0+"
+ ],
+ "description": "Composer Plugin for updating the Drupal scaffold files when using drupal/core"
+ },
+ {
+ "name": "drupal/core",
+ "version": "8.2.7",
+ "version_normalized": "8.2.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/drupal-composer/drupal-core.git",
+ "reference": "5d3fb8a93514f23198ac6848b2679ef1026d2326"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/drupal-composer/drupal-core/zipball/5d3fb8a93514f23198ac6848b2679ef1026d2326",
+ "reference": "5d3fb8a93514f23198ac6848b2679ef1026d2326",
+ "shasum": ""
+ },
+ "require": {
+ "asm89/stack-cors": "~1.0",
+ "composer/semver": "~1.0",
+ "doctrine/annotations": "1.2.*",
+ "doctrine/common": "2.5.*",
+ "easyrdf/easyrdf": "0.9.*",
+ "egulias/email-validator": "1.2.*",
+ "guzzlehttp/guzzle": "^6.2.1",
+ "masterminds/html5": "~2.1",
+ "paragonie/random_compat": "^1|^2",
+ "php": ">=5.5.9",
+ "stack/builder": "1.0.*",
+ "symfony-cmf/routing": "~1.4",
+ "symfony/class-loader": "~2.8",
+ "symfony/console": "~2.8",
+ "symfony/dependency-injection": "~2.8",
+ "symfony/event-dispatcher": "~2.8",
+ "symfony/http-foundation": "~2.8",
+ "symfony/http-kernel": "~2.8",
+ "symfony/polyfill-iconv": "~1.0",
+ "symfony/process": "~2.8",
+ "symfony/psr-http-message-bridge": "v0.2",
+ "symfony/routing": "~2.8",
+ "symfony/serializer": "~2.8",
+ "symfony/translation": "~2.8",
+ "symfony/validator": "~2.8",
+ "symfony/yaml": "~2.8",
+ "twig/twig": "^1.23.1",
+ "zendframework/zend-diactoros": "~1.1",
+ "zendframework/zend-feed": "~2.4"
+ },
+ "replace": {
+ "drupal/action": "self.version",
+ "drupal/aggregator": "self.version",
+ "drupal/automated_cron": "self.version",
+ "drupal/ban": "self.version",
+ "drupal/bartik": "self.version",
+ "drupal/basic_auth": "self.version",
+ "drupal/big_pipe": "self.version",
+ "drupal/block": "self.version",
+ "drupal/block_content": "self.version",
+ "drupal/block_place": "self.version",
+ "drupal/book": "self.version",
+ "drupal/breakpoint": "self.version",
+ "drupal/ckeditor": "self.version",
+ "drupal/classy": "self.version",
+ "drupal/color": "self.version",
+ "drupal/comment": "self.version",
+ "drupal/config": "self.version",
+ "drupal/config_translation": "self.version",
+ "drupal/contact": "self.version",
+ "drupal/content_moderation": "self.version",
+ "drupal/content_translation": "self.version",
+ "drupal/contextual": "self.version",
+ "drupal/core-annotation": "self.version",
+ "drupal/core-assertion": "self.version",
+ "drupal/core-bridge": "self.version",
+ "drupal/core-datetime": "self.version",
+ "drupal/core-dependency-injection": "self.version",
+ "drupal/core-diff": "self.version",
+ "drupal/core-discovery": "self.version",
+ "drupal/core-event-dispatcher": "self.version",
+ "drupal/core-file-cache": "self.version",
+ "drupal/core-filesystem": "self.version",
+ "drupal/core-gettext": "self.version",
+ "drupal/core-graph": "self.version",
+ "drupal/core-http-foundation": "self.version",
+ "drupal/core-php-storage": "self.version",
+ "drupal/core-plugin": "self.version",
+ "drupal/core-proxy-builder": "self.version",
+ "drupal/core-render": "self.version",
+ "drupal/core-serialization": "self.version",
+ "drupal/core-transliteration": "self.version",
+ "drupal/core-utility": "self.version",
+ "drupal/core-uuid": "self.version",
+ "drupal/datetime": "self.version",
+ "drupal/datetime_range": "self.version",
+ "drupal/dblog": "self.version",
+ "drupal/dynamic_page_cache": "self.version",
+ "drupal/editor": "self.version",
+ "drupal/entity_reference": "self.version",
+ "drupal/field": "self.version",
+ "drupal/field_ui": "self.version",
+ "drupal/file": "self.version",
+ "drupal/filter": "self.version",
+ "drupal/forum": "self.version",
+ "drupal/hal": "self.version",
+ "drupal/help": "self.version",
+ "drupal/history": "self.version",
+ "drupal/image": "self.version",
+ "drupal/inline_form_errors": "self.version",
+ "drupal/language": "self.version",
+ "drupal/link": "self.version",
+ "drupal/locale": "self.version",
+ "drupal/menu_link_content": "self.version",
+ "drupal/menu_ui": "self.version",
+ "drupal/migrate": "self.version",
+ "drupal/migrate_drupal": "self.version",
+ "drupal/migrate_drupal_ui": "self.version",
+ "drupal/minimal": "self.version",
+ "drupal/node": "self.version",
+ "drupal/options": "self.version",
+ "drupal/outside_in": "self.version",
+ "drupal/page_cache": "self.version",
+ "drupal/path": "self.version",
+ "drupal/quickedit": "self.version",
+ "drupal/rdf": "self.version",
+ "drupal/responsive_image": "self.version",
+ "drupal/rest": "self.version",
+ "drupal/search": "self.version",
+ "drupal/serialization": "self.version",
+ "drupal/seven": "self.version",
+ "drupal/shortcut": "self.version",
+ "drupal/simpletest": "self.version",
+ "drupal/standard": "self.version",
+ "drupal/stark": "self.version",
+ "drupal/statistics": "self.version",
+ "drupal/syslog": "self.version",
+ "drupal/system": "self.version",
+ "drupal/taxonomy": "self.version",
+ "drupal/telephone": "self.version",
+ "drupal/text": "self.version",
+ "drupal/toolbar": "self.version",
+ "drupal/tour": "self.version",
+ "drupal/tracker": "self.version",
+ "drupal/update": "self.version",
+ "drupal/user": "self.version",
+ "drupal/views": "self.version",
+ "drupal/views_ui": "self.version"
+ },
+ "require-dev": {
+ "behat/mink": "~1.7",
+ "behat/mink-goutte-driver": "~1.2",
+ "jcalderonzumba/gastonjs": "~1.0.2",
+ "jcalderonzumba/mink-phantomjs-driver": "~0.3.1",
+ "mikey179/vfsstream": "~1.2",
+ "phpunit/phpunit": ">=4.8.28 <5",
+ "symfony/css-selector": "~2.8"
+ },
+ "time": "2017-03-15T20:19:51+00:00",
+ "type": "drupal-core",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Drupal\\Core\\": "lib/Drupal/Core",
+ "Drupal\\Component\\": "lib/Drupal/Component",
+ "Drupal\\Driver\\": "../drivers/lib/Drupal/Driver"
+ },
+ "classmap": [
+ "lib/Drupal.php",
+ "lib/Drupal/Component/Utility/Timer.php",
+ "lib/Drupal/Component/Utility/Unicode.php",
+ "lib/Drupal/Core/Database/Database.php",
+ "lib/Drupal/Core/DrupalKernel.php",
+ "lib/Drupal/Core/DrupalKernelInterface.php",
+ "lib/Drupal/Core/Site/Settings.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0+"
+ ],
+ "description": "Drupal is an open source content management platform powering millions of websites and applications."
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "4.8.28",
+ "version_normalized": "4.8.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "558a3a0d28b4cb7e4a593a4fbd2220e787076225"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/558a3a0d28b4cb7e4a593a4fbd2220e787076225",
+ "reference": "558a3a0d28b4cb7e4a593a4fbd2220e787076225",
"shasum": ""
},
"require": {
@@ -4316,7 +4538,7 @@
"suggest": {
"phpunit/php-invoker": "~1.1"
},
- "time": "2016-07-21T06:48:14+00:00",
+ "time": "2016-11-14T06:25:28+00:00",
"bin": [
"phpunit"
],
diff --git a/web/vendor/drupal-composer/drupal-scaffold b/web/vendor/drupal-composer/drupal-scaffold
new file mode 160000
index 000000000..3ad465ac8
--- /dev/null
+++ b/web/vendor/drupal-composer/drupal-scaffold
@@ -0,0 +1 @@
+Subproject commit 3ad465ac853c2e52e6a808f5529859917662c256
diff --git a/web/vendor/phpunit/phpunit/.gitattributes b/web/vendor/phpunit/phpunit/.gitattributes
index 300d63bdb..278ace47a 100644
--- a/web/vendor/phpunit/phpunit/.gitattributes
+++ b/web/vendor/phpunit/phpunit/.gitattributes
@@ -1,4 +1,4 @@
/build export-ignore
+
*.php diff=php
-composer.json merge=ours
-src/Runner/Version.php merge=ours
+
diff --git a/web/vendor/phpunit/phpunit/.travis.yml b/web/vendor/phpunit/phpunit/.travis.yml
index 42a96aa2a..ae548ddd2 100644
--- a/web/vendor/phpunit/phpunit/.travis.yml
+++ b/web/vendor/phpunit/phpunit/.travis.yml
@@ -1,20 +1,10 @@
language: php
php:
- - 5.3.3
- 5.3
- 5.4
- 5.5
- 5.6
- - 7.0
- - nightly
- - hhvm
-
-matrix:
- allow_failures:
- - php: 7.0
- - php: nightly
- - php: hhvm
sudo: false
@@ -34,10 +24,4 @@ script:
notifications:
email: false
- webhooks:
- urls:
- - https://webhooks.gitter.im/e/6668f52f3dd4e3f81960
- on_success: always
- on_failure: always
- on_start: false
diff --git a/web/vendor/phpunit/phpunit/ChangeLog-4.8.md b/web/vendor/phpunit/phpunit/ChangeLog-4.8.md
index b717a2a70..678c282ba 100644
--- a/web/vendor/phpunit/phpunit/ChangeLog-4.8.md
+++ b/web/vendor/phpunit/phpunit/ChangeLog-4.8.md
@@ -2,6 +2,12 @@
All notable changes of the PHPUnit 4.8 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
+## [4.8.28] - 2016-11-14
+
+### Fixed
+
+* Improved the fix for [#1955](https://github.com/sebastianbergmann/phpunit/issues/1955): Process isolation fails when running tests with `phpdbg -qrr`
+
## [4.8.27] - 2016-07-21
### Fixed
diff --git a/web/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php b/web/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php
index d19b574b7..db957438e 100644
--- a/web/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php
+++ b/web/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php
@@ -1703,7 +1703,7 @@ function assertTag($matcher, $actual, $message = '', $isHtml = true)
/**
* Evaluates a PHPUnit_Framework_Constraint matcher object.
*
- * @param mixed$value
+ * @param mixed $value
* @param PHPUnit_Framework_Constraint $constraint
* @param string $message
*
diff --git a/web/vendor/phpunit/phpunit/src/Runner/Version.php b/web/vendor/phpunit/phpunit/src/Runner/Version.php
index 19b515581..50150c973 100644
--- a/web/vendor/phpunit/phpunit/src/Runner/Version.php
+++ b/web/vendor/phpunit/phpunit/src/Runner/Version.php
@@ -30,7 +30,7 @@ class PHPUnit_Runner_Version
}
if (self::$version === null) {
- $version = new SebastianBergmann\Version('4.8.27', dirname(dirname(__DIR__)));
+ $version = new SebastianBergmann\Version('4.8.28', dirname(dirname(__DIR__)));
self::$version = $version->getVersion();
}
diff --git a/web/vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist b/web/vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist
index c1d14ddc0..b48f354cd 100644
--- a/web/vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist
+++ b/web/vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist
@@ -55,7 +55,7 @@ function __phpunit_run_isolated_test()
$output = $test->getActualOutput();
}
- rewind(STDOUT);
+ @rewind(STDOUT); /* @ as not every STDOUT target stream is rewindable */
if ($stdout = stream_get_contents(STDOUT)) {
$output = $stdout . $output;
}
diff --git a/web/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php b/web/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
index fe1b8bd38..3b3a6d03c 100644
--- a/web/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
+++ b/web/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
@@ -1,3 +1,3 @@
' . file_get_contents('php://input'));
+eval('?>' . file_get_contents('php://stdin'));