diff --git a/core/lib/Drupal/Component/Annotation/PluginID.php b/core/lib/Drupal/Component/Annotation/PluginID.php index fe8e599c9ea733d5474c5a05941f298f1bb8e738..ab5e1938178650efeb28b82fbc0f91c35cd171f3 100644 --- a/core/lib/Drupal/Component/Annotation/PluginID.php +++ b/core/lib/Drupal/Component/Annotation/PluginID.php @@ -24,7 +24,7 @@ class PluginID extends AnnotationBase { public $value; /** - * Implements \Drupal\Core\Annotation\AnnotationInterface::get(). + * {@inheritdoc} */ public function get() { return array( diff --git a/core/lib/Drupal/Component/Plugin/Exception/InvalidDecoratedMethod.php b/core/lib/Drupal/Component/Plugin/Exception/InvalidDecoratedMethod.php index a810063bf1ff05f32265f9d29e0207afb8ff95d3..57fd8359e5f2d71b2cc30cc2592ed4e71bace2da 100644 --- a/core/lib/Drupal/Component/Plugin/Exception/InvalidDecoratedMethod.php +++ b/core/lib/Drupal/Component/Plugin/Exception/InvalidDecoratedMethod.php @@ -1,7 +1,7 @@ <?php /** * @file - * Definition of Drupal\Core\Plugin\Exception\InvalidDecoratedMethod. + * Contains \Drupal\Component\Plugin\Exception\InvalidDecoratedMethod. */ namespace Drupal\Component\Plugin\Exception; diff --git a/core/lib/Drupal/Component/Utility/SortArray.php b/core/lib/Drupal/Component/Utility/SortArray.php index 79688ec89699295d4eb6a8afa594ae4656534145..0ed5bbc8b7d7a6216e28f394d05898fe479bbede 100644 --- a/core/lib/Drupal/Component/Utility/SortArray.php +++ b/core/lib/Drupal/Component/Utility/SortArray.php @@ -20,7 +20,7 @@ class SortArray { * Note that the sorting is by the 'weight' array element, not by the render * element property '#weight'. * - * Callback for uasort() used in various functions. + * Callback for uasort(). * * @param array $a * First item for comparison. The compared items should be associative @@ -39,7 +39,7 @@ public static function sortByWeightElement(array $a, array $b) { /** * Sorts a structured array by '#weight' property. * - * Callback for uasort() within \Drupal\Core\Render\Element::children(). + * Callback for uasort(). * * @param array $a * First item for comparison. The compared items should be associative @@ -57,7 +57,7 @@ public static function sortByWeightProperty($a, $b) { /** * Sorts a structured array by 'title' key (no # prefix). * - * Callback for uasort() within system_admin_index(). + * Callback for uasort(). * * @param array $a * First item for comparison. The compared items should be associative arrays @@ -75,9 +75,7 @@ public static function sortByTitleElement($a, $b) { /** * Sorts a structured array by '#title' property. * - * Callback for uasort() within: - * - system_modules() - * - theme_simpletest_test_table() + * Callback for uasort(). * * @param array $a * First item for comparison. The compared items should be associative arrays diff --git a/core/lib/Drupal/Component/Utility/UrlHelper.php b/core/lib/Drupal/Component/Utility/UrlHelper.php index 45a80364bcd6a2d726d7a3eda6e4d42ab4b44f11..691413e80e6e3ec7c9d01017de1725daf79197c6 100644 --- a/core/lib/Drupal/Component/Utility/UrlHelper.php +++ b/core/lib/Drupal/Component/Utility/UrlHelper.php @@ -288,9 +288,8 @@ public static function setAllowedProtocols(array $protocols = array()) { * to being output to an HTML attribute value. It is often called as part of * check_url() or Drupal\Component\Utility\Xss::filter(), but those functions * return an HTML-encoded string, so this function can be called independently - * when the output needs to be a plain-text string for passing to t(), _l(), - * Drupal\Core\Template\Attribute, or another function that will call - * \Drupal\Component\Utility\String::checkPlain() separately. + * when the output needs to be a plain-text string for passing to functions + * that will call \Drupal\Component\Utility\String::checkPlain() separately. * * @param string $uri * A plain-text URI that might contain dangerous protocols. diff --git a/core/tests/Drupal/Tests/Component/DrupalComponentTest.php b/core/tests/Drupal/Tests/Component/DrupalComponentTest.php new file mode 100644 index 0000000000000000000000000000000000000000..29240749fe2a8fb288d9cd2633f06904c4cb0dd4 --- /dev/null +++ b/core/tests/Drupal/Tests/Component/DrupalComponentTest.php @@ -0,0 +1,78 @@ +<?php + +/** + * @file + * Contains \Drupal\Tests\Component\DrupalComponentTest. + */ + +namespace Drupal\Tests\Component; + +use Drupal\Tests\UnitTestCase; + +/** + * General tests for \Drupal\Component that can't go anywhere else. + * + * @group Component + */ +class DrupalComponentTest extends UnitTestCase { + + /** + * Tests that classes in Component do not use any Core class. + */ + public function testNoCoreInComponent() { + $component_path = dirname(substr(__DIR__, 0, -strlen(__NAMESPACE__))) . '/lib/Drupal/Component'; + foreach ($this->findPhpClasses($component_path) as $class) { + $this->assertNoCoreUsage($class); + } + } + + /** + * Tests that classes in Component Tests do not use any Core class. + */ + public function testNoCoreInComponentTests() { + $component_path = dirname(substr(__DIR__, 0, -strlen(__NAMESPACE__))) . '/tests/Drupal/Tests/Component'; + foreach ($this->findPhpClasses($component_path) as $class) { + $this->assertNoCoreUsage($class); + } + } + + /** + * Searches a directory recursively for PHP classes. + * + * @param string $dir + * The full path to the directory that should be checked. + * + * @return array + * An array of class paths. + */ + protected function findPhpClasses($dir) { + $classes = array(); + foreach (new \DirectoryIterator($dir) as $file) { + if ($file->isDir() && !$file->isDot()) { + $classes = array_merge($classes, $this->findPhpClasses($file->getPathname())); + } + elseif ($file->getExtension() == 'php') { + $classes[] = $file->getPathname(); + } + } + + return $classes; + } + + /** + * Asserts that the given class is not using any class from Core namespace. + * + * @param string $class_path + * The full path to the class that should be checked. + */ + protected function assertNoCoreUsage($class_path) { + foreach (new \SplFileObject($class_path) as $line_number => $line) { + // Allow linking to Core files with @see docs. Its harmless and boosts DX + // because even outside projects can treat those links as examples. + if ($line && (strpos($line, '@see ') === FALSE)) { + $this->assertSame(FALSE, strpos($line, 'Drupal\\Core'), "Illegal reference to 'Drupal\\Core' namespace in $class_path at line $line_number"); + } + } + } + +} diff --git a/core/tests/Drupal/Tests/Component/PhpStorage/PhpStorageTestBase.php b/core/tests/Drupal/Tests/Component/PhpStorage/PhpStorageTestBase.php index 2c179a81bd1c13943cdb26db9ab9385e4fd8cc6a..aa54598c4c1147211a71bce34639a652d26556b5 100644 --- a/core/tests/Drupal/Tests/Component/PhpStorage/PhpStorageTestBase.php +++ b/core/tests/Drupal/Tests/Component/PhpStorage/PhpStorageTestBase.php @@ -8,29 +8,12 @@ namespace Drupal\Tests\Component\PhpStorage; use Drupal\Tests\UnitTestCase; -use Drupal\Core\PhpStorage\PhpStorageFactory; /** * Base test for PHP storages. */ abstract class PhpStorageTestBase extends UnitTestCase { - /** - * The storage factory object. - * - * @var \Drupal\Component\PhpStorage\PhpStorageFactory - */ - protected $storageFactory; - - /** - * {@inheritdoc} - */ - protected function setUp() { - parent::setUp(); - - $this->storageFactory = new PhpStorageFactory(); - } - /** * Assert that a PHP storage's load/save/delete operations work. */ diff --git a/core/tests/Drupal/Tests/Component/Plugin/PluginBaseTest.php b/core/tests/Drupal/Tests/Component/Plugin/PluginBaseTest.php index 97e4275acf95ea08be60a7a6d777e32a21a9fe87..585bd37b5caada829a6648b3db2db3cbba20a806 100644 --- a/core/tests/Drupal/Tests/Component/Plugin/PluginBaseTest.php +++ b/core/tests/Drupal/Tests/Component/Plugin/PluginBaseTest.php @@ -7,7 +7,6 @@ namespace Drupal\Tests\Component\Plugin; -use Drupal\Core\PhpStorage\PhpStorageFactory; use Drupal\Tests\UnitTestCase; /** diff --git a/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php b/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php index 1f00819632830f1b4ae4f27203e9d2220579aeac..353c3520a82697032d4bd9635f2e6850bf96cde3 100644 --- a/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php +++ b/core/tests/Drupal/Tests/Component/Uuid/UuidTest.php @@ -12,7 +12,6 @@ use Drupal\Component\Uuid\Com; use Drupal\Component\Uuid\Pecl; use Drupal\Component\Uuid\Php; -use Drupal\Core\DependencyInjection\ContainerBuilder; use Drupal\Tests\UnitTestCase; /**