From e63e65fa3745c257f470f97de7373f5444e5787c Mon Sep 17 00:00:00 2001 From: Nathaniel Catchpole <catch@35733.no-reply.drupal.org> Date: Wed, 3 May 2017 12:33:31 +0100 Subject: [PATCH] Issue #2488860 by alexpott, dawehner, catch, Mile23, jgeryk, claudiu.cristea, daffie, jibran: Bring phpunit bridge into drupal and use it for unit tests and simpletest to handle Deprecation --- composer.lock | 62 +++++++++++++++++++ core/composer.json | 3 +- .../Component/Serialization/YamlSymfony.php | 4 +- .../src/Unit/process/DedupeEntityTest.php | 4 +- .../tests/src/Unit/process/MigrationTest.php | 7 +-- .../src/Tests/UiPhpUnitOutputTest.php | 4 +- .../tests/src/Unit/Migrate/TextFieldTest.php | 1 + .../config/schema/views.display.schema.yml | 3 - .../config/schema/views.filter.schema.yml | 8 --- .../test_views/views.view.test_tag_cache.yml | 1 - core/phpunit.xml.dist | 2 + .../Dumper/OptimizedPhpArrayDumperTest.php | 6 ++ .../Component/Serialization/YamlTest.php | 1 + .../Core/Assert/AssertLegacyTraitTest.php | 1 + .../Controller/ControllerResolverTest.php | 6 ++ .../Tests/Core/Template/AttributeTest.php | 2 + .../Tests/Core/Template/TwigExtensionTest.php | 9 +++ .../Tests/Core/Template/TwigSandboxTest.php | 1 + 18 files changed, 99 insertions(+), 26 deletions(-) diff --git a/composer.lock b/composer.lock index 426038886173..9d589c89b8c8 100644 --- a/composer.lock +++ b/composer.lock @@ -4173,6 +4173,68 @@ "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", "time": "2017-02-21T09:12:04+00:00" + }, + { + "name": "symfony/phpunit-bridge", + "version": "v3.2.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/phpunit-bridge.git", + "reference": "00916603c524b8048906de460b7ea0dfa1651281" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/00916603c524b8048906de460b7ea0dfa1651281", + "reference": "00916603c524b8048906de460b7ea0dfa1651281", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "conflict": { + "phpunit/phpunit": ">=6.0" + }, + "suggest": { + "ext-zip": "Zip support is required when using bin/simple-phpunit", + "symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" + }, + "bin": [ + "bin/simple-phpunit" + ], + "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Bridge\\PhpUnit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony PHPUnit Bridge", + "homepage": "https://symfony.com", + "time": "2017-04-12T14:13:17+00:00" } ], "aliases": [], diff --git a/core/composer.json b/core/composer.json index 4f328ce1afb6..0be4b81510e5 100644 --- a/core/composer.json +++ b/core/composer.json @@ -45,7 +45,8 @@ "jcalderonzumba/mink-phantomjs-driver": "~0.3.1", "mikey179/vfsStream": "~1.2", "phpunit/phpunit": ">=4.8.35 <5", - "symfony/css-selector": "3.2.6" + "symfony/css-selector": "3.2.6", + "symfony/phpunit-bridge": "^3.2" }, "replace": { "drupal/action": "self.version", diff --git a/core/lib/Drupal/Component/Serialization/YamlSymfony.php b/core/lib/Drupal/Component/Serialization/YamlSymfony.php index 390178f3f642..d35e09cd4821 100644 --- a/core/lib/Drupal/Component/Serialization/YamlSymfony.php +++ b/core/lib/Drupal/Component/Serialization/YamlSymfony.php @@ -17,8 +17,8 @@ class YamlSymfony implements SerializationInterface { */ public static function encode($data) { try { - $yaml = new Dumper(); - $yaml->setIndentation(2); + // Set the indentation to 2 to match Drupal's coding standards. + $yaml = new Dumper(2); return $yaml->dump($data, PHP_INT_MAX, 0, SymfonyYaml::DUMP_EXCEPTION_ON_INVALID_TYPE); } catch (\Exception $e) { diff --git a/core/modules/migrate/tests/src/Unit/process/DedupeEntityTest.php b/core/modules/migrate/tests/src/Unit/process/DedupeEntityTest.php index a5daa7203207..377533465ffe 100644 --- a/core/modules/migrate/tests/src/Unit/process/DedupeEntityTest.php +++ b/core/modules/migrate/tests/src/Unit/process/DedupeEntityTest.php @@ -2,9 +2,6 @@ namespace Drupal\Tests\migrate\Unit\process; -@trigger_error('The ' . __NAMESPACE__ . '\DedupeEntityTest is deprecated in -Drupal 8.4.0 and will be removed before Drupal 9.0.0. Instead, use ' . __NAMESPACE__ . '\MakeUniqueEntityFieldTest', E_USER_DEPRECATED); - use Drupal\Core\Entity\EntityStorageInterface; use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Entity\Query\QueryInterface; @@ -14,6 +11,7 @@ /** * @coversDefaultClass \Drupal\migrate\Plugin\migrate\process\DedupeEntity * @group migrate + * @group legacy */ class DedupeEntityTest extends MigrateProcessTestCase { diff --git a/core/modules/migrate/tests/src/Unit/process/MigrationTest.php b/core/modules/migrate/tests/src/Unit/process/MigrationTest.php index 843d1e558b5d..cade905a4d4d 100644 --- a/core/modules/migrate/tests/src/Unit/process/MigrationTest.php +++ b/core/modules/migrate/tests/src/Unit/process/MigrationTest.php @@ -2,9 +2,6 @@ namespace Drupal\Tests\migrate\Unit\process; -@trigger_error('The ' . __NAMESPACE__ . '\MigrationTest is deprecated in -Drupal 8.4.0 and will be removed before Drupal 9.0.0. Instead, use ' . __NAMESPACE__ . '\MigrationLookupTest', E_USER_DEPRECATED); - use Drupal\Core\Entity\EntityStorageInterface; use Drupal\migrate\MigrateSkipProcessException; use Drupal\migrate\Plugin\MigrationInterface; @@ -17,11 +14,9 @@ use Prophecy\Argument; /** - * @deprecated in Drupal 8.4.x, to be removed before Drupal 9.0.x. Use - * \Drupal\Tests\migrate\Unit\process\MigrationLookupTest instead. - * * @coversDefaultClass \Drupal\migrate\Plugin\migrate\process\Migration * @group migrate + * @group legacy */ class MigrationTest extends MigrateProcessTestCase { diff --git a/core/modules/simpletest/src/Tests/UiPhpUnitOutputTest.php b/core/modules/simpletest/src/Tests/UiPhpUnitOutputTest.php index 324bf1d570b4..e032cef9418b 100644 --- a/core/modules/simpletest/src/Tests/UiPhpUnitOutputTest.php +++ b/core/modules/simpletest/src/Tests/UiPhpUnitOutputTest.php @@ -35,9 +35,9 @@ public function testOutput() { // Check that there are <br> tags for the HTML output by // SimpletestUiPrinter. - $this->assertEqual($output[18], 'HTML output was generated<br />'); + $this->assertEqual($output[19], 'HTML output was generated<br />'); // Check that URLs are printed as HTML links. - $this->assertIdentical(strpos($output[19], '<a href="http'), 0); + $this->assertIdentical(strpos($output[20], '<a href="http'), 0); } } diff --git a/core/modules/text/tests/src/Unit/Migrate/TextFieldTest.php b/core/modules/text/tests/src/Unit/Migrate/TextFieldTest.php index 6d433eaf2d9a..7f703b799b3b 100644 --- a/core/modules/text/tests/src/Unit/Migrate/TextFieldTest.php +++ b/core/modules/text/tests/src/Unit/Migrate/TextFieldTest.php @@ -11,6 +11,7 @@ /** * @coversDefaultClass \Drupal\text\Plugin\migrate\cckfield\TextField * @group text + * @group legacy */ class TextFieldTest extends UnitTestCase { diff --git a/core/modules/views/config/schema/views.display.schema.yml b/core/modules/views/config/schema/views.display.schema.yml index d17c48cf52e1..3e696143f1a0 100644 --- a/core/modules/views/config/schema/views.display.schema.yml +++ b/core/modules/views/config/schema/views.display.schema.yml @@ -49,9 +49,6 @@ views.display.page: context: type: string label: 'Context' - expanded: - type: boolean - label: 'Expanded' tab_options: type: mapping label: 'Tab options' diff --git a/core/modules/views/config/schema/views.filter.schema.yml b/core/modules/views/config/schema/views.filter.schema.yml index 0dc8d35a4743..00eb11a97632 100644 --- a/core/modules/views/config/schema/views.filter.schema.yml +++ b/core/modules/views/config/schema/views.filter.schema.yml @@ -31,14 +31,6 @@ views.filter.combine: type: string label: 'Field' -views.filter_value.date: - type: views.filter_value.numeric - label: 'Date' - mapping: - type: - type: string - label: 'Type' - views.filter_value.groupby_numeric: type: views.filter_value.numeric label: 'Group by numeric' diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tag_cache.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tag_cache.yml index dc893efdd035..08e2d3a06aa1 100644 --- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tag_cache.yml +++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tag_cache.yml @@ -59,7 +59,6 @@ display: type: string settings: link_to_entity: true - plugin_id: field filters: type: id: type diff --git a/core/phpunit.xml.dist b/core/phpunit.xml.dist index ef1ae3b6fad0..c85258d77f49 100644 --- a/core/phpunit.xml.dist +++ b/core/phpunit.xml.dist @@ -45,6 +45,8 @@ </testsuite> </testsuites> <listeners> + <listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener"> + </listener> <listener class="\Drupal\Tests\Listeners\DrupalStandardsListener"> </listener> </listeners> diff --git a/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php b/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php index 41ed9649ef02..038e018ea07d 100644 --- a/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php +++ b/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php @@ -212,6 +212,8 @@ public function getParametersDataProvider() { * @covers ::getParameterCall * * @dataProvider getDefinitionsDataProvider + * + * @group legacy */ public function testGetServiceDefinitions($services, $definition_services) { $this->containerDefinition['services'] = $definition_services; @@ -477,6 +479,8 @@ protected function getServiceCall($id, $invalid_behavior = ContainerInterface::E * @covers ::getReferenceCall * * @dataProvider publicPrivateDataProvider + * + * @group legacy */ public function testGetServiceDefinitionWithReferenceToAlias($public) { $bar_definition = new Definition('\stdClass'); @@ -532,6 +536,8 @@ public function publicPrivateDataProvider() { * getDecoratedService(). * * @covers ::getServiceDefinition + * + * @group legacy */ public function testGetServiceDefinitionForDecoratedService() { $bar_definition = new Definition('\stdClass'); diff --git a/core/tests/Drupal/Tests/Component/Serialization/YamlTest.php b/core/tests/Drupal/Tests/Component/Serialization/YamlTest.php index 7f992bdef458..841ac05ff487 100644 --- a/core/tests/Drupal/Tests/Component/Serialization/YamlTest.php +++ b/core/tests/Drupal/Tests/Component/Serialization/YamlTest.php @@ -66,6 +66,7 @@ public function testGetFileExtension() { * @dataProvider providerYamlFilesInCore */ public function testYamlFiles($file) { + file_put_contents('/tmp/dup.txt', $file . "\n", FILE_APPEND); $data = file_get_contents($file); try { $this->assertEquals(YamlSymfony::decode($data), YamlPecl::decode($data), $file); diff --git a/core/tests/Drupal/Tests/Core/Assert/AssertLegacyTraitTest.php b/core/tests/Drupal/Tests/Core/Assert/AssertLegacyTraitTest.php index d2d7b855b5da..edd7b13de12b 100644 --- a/core/tests/Drupal/Tests/Core/Assert/AssertLegacyTraitTest.php +++ b/core/tests/Drupal/Tests/Core/Assert/AssertLegacyTraitTest.php @@ -14,6 +14,7 @@ /** * @coversDefaultClass \Drupal\FunctionalTests\AssertLegacyTrait * @group Assert + * @group legacy */ class AssertLegacyTraitTest extends UnitTestCase { diff --git a/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php b/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php index 28040a603f68..0b7aa25146a3 100644 --- a/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php +++ b/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php @@ -70,6 +70,8 @@ protected function setUp() { * * @see \Drupal\Core\Controller\ControllerResolver::getArguments() * @see \Drupal\Core\Controller\ControllerResolver::doGetArguments() + * + * @group legacy */ public function testGetArguments() { $controller = function(EntityInterface $entity, $user, RouteMatchInterface $route_match, ServerRequestInterface $psr_7) { @@ -220,6 +222,8 @@ protected function assertCallableController($controller, $class, $output) { * * @covers ::getArguments * @covers ::doGetArguments + * + * @group legacy */ public function testGetArgumentsWithRouteMatchAndRequest() { $request = Request::create('/test'); @@ -233,6 +237,8 @@ public function testGetArgumentsWithRouteMatchAndRequest() { * * @covers ::getArguments * @covers ::doGetArguments + * + * @group legacy */ public function testGetArgumentsWithRouteMatchAndPsr7Request() { $request = Request::create('/test'); diff --git a/core/tests/Drupal/Tests/Core/Template/AttributeTest.php b/core/tests/Drupal/Tests/Core/Template/AttributeTest.php index b9dc671faa69..c9bccceec9ce 100644 --- a/core/tests/Drupal/Tests/Core/Template/AttributeTest.php +++ b/core/tests/Drupal/Tests/Core/Template/AttributeTest.php @@ -261,6 +261,8 @@ public function testChainAddRemoveClasses() { * * @covers ::removeClass * @covers ::addClass + * + * @group legacy */ public function testTwigAddRemoveClasses($template, $expected, $seed_attributes = []) { $loader = new \Twig_Loader_String(); diff --git a/core/tests/Drupal/Tests/Core/Template/TwigExtensionTest.php b/core/tests/Drupal/Tests/Core/Template/TwigExtensionTest.php index c4805bc38218..a872e305d417 100644 --- a/core/tests/Drupal/Tests/Core/Template/TwigExtensionTest.php +++ b/core/tests/Drupal/Tests/Core/Template/TwigExtensionTest.php @@ -15,6 +15,7 @@ * Tests the twig extension. * * @group Template + * @group legacy * * @coversDefaultClass \Drupal\Core\Template\TwigExtension */ @@ -73,6 +74,8 @@ public function setUp() { * Tests the escaping * * @dataProvider providerTestEscaping + * + * @group legacy */ public function testEscaping($template, $expected) { $twig = new \Twig_Environment(NULL, [ @@ -123,6 +126,8 @@ public function providerTestEscaping() { /** * Tests the active_theme function. + * + * @group legacy */ public function testActiveTheme() { $active_theme = $this->getMockBuilder('\Drupal\Core\Theme\ActiveTheme') @@ -183,6 +188,8 @@ public function testActiveThemePath() { * Tests the escaping of objects implementing MarkupInterface. * * @covers ::escapeFilter + * + * @group legacy */ public function testSafeStringEscaping() { $twig = new \Twig_Environment(NULL, [ @@ -267,6 +274,8 @@ public function providerTestRenderVar() { /** * @covers ::escapeFilter * @covers ::bubbleArgMetadata + * + * @group legacy */ public function testEscapeWithGeneratedLink() { $twig = new \Twig_Environment(NULL, [ diff --git a/core/tests/Drupal/Tests/Core/Template/TwigSandboxTest.php b/core/tests/Drupal/Tests/Core/Template/TwigSandboxTest.php index e599463485a8..1bbb9f4dd18a 100644 --- a/core/tests/Drupal/Tests/Core/Template/TwigSandboxTest.php +++ b/core/tests/Drupal/Tests/Core/Template/TwigSandboxTest.php @@ -16,6 +16,7 @@ * Tests the twig sandbox policy. * * @group Template + * @group legacy * * @coversDefaultClass \Drupal\Core\Template\TwigSandboxPolicy */ -- GitLab