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' => 'alt', @@ -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' => 'alt', + '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'));