Unverified Commit 62afe776 authored by larowlan's avatar larowlan
Browse files

Issue #3097892 by mondrake, longwave, Berdir: Remove all @deprecated code in test base classes

parent 75df2611
......@@ -3,7 +3,6 @@
namespace Drupal\Tests\file\Functional;
use Drupal\Component\Render\FormattableMarkup;
use Drupal\TestTools\PhpUnitCompatibility\RunnerVersion;
use Drupal\field\Entity\FieldStorageConfig;
use Drupal\field\Entity\FieldConfig;
use Drupal\file\FileInterface;
......@@ -11,13 +10,6 @@
use Drupal\file\Entity\File;
use Drupal\Tests\TestFileCreationTrait;
// In order to manage different method signatures between PHPUnit versions, we
// dynamically load a compatibility trait dependent on the PHPUnit runner
// version.
if (!trait_exists(PhpunitVersionDependentFileFieldTestBaseTrait::class, FALSE)) {
class_alias("Drupal\TestTools\PhpUnitCompatibility\PhpUnit" . RunnerVersion::getMajor() . "\FileFieldTestBaseTrait", PhpunitVersionDependentFileFieldTestBaseTrait::class);
}
/**
* Provides methods specifically for testing File module's field handling.
*/
......@@ -27,7 +19,6 @@ abstract class FileFieldTestBase extends BrowserTestBase {
use TestFileCreationTrait {
getTestFiles as drupalGetTestFiles;
}
use PhpunitVersionDependentFileFieldTestBaseTrait;
/**
* {@inheritdoc}
......
......@@ -107,7 +107,7 @@ protected function setUp() {
$this->installSchema('user', 'users_data');
$this->installSchema('file', 'file_usage');
$this->installSchema('node', ['node_access']);
$this->installConfig($this->modules);
$this->installConfig(static::$modules);
ConfigurableLanguage::createFromLangcode('fr')->save();
......
......@@ -124,7 +124,7 @@ public function testMakeRevisionable() {
// Check that the correct initial value was provided for the
// 'revision_translation_affected' field.
$this->assertTrue($revision->revision_translation_affected->value);
$this->assertTrue((bool) $revision->revision_translation_affected->value);
$translation = $revision->getTranslation('ro');
......
......@@ -55,15 +55,15 @@ public function testWorkspaceAssociationRemoval() {
// Check that the 'workspace' field has been installed for an entity type
// that was workspace-supported before Drupal 8.7.0.
$this->assertTrue($entity_definition_update_manager->getFieldStorageDefinition('workspace', 'node'));
$this->assertNotEmpty($entity_definition_update_manager->getFieldStorageDefinition('workspace', 'node'));
// Check that the 'workspace' field has been installed for an entity type
// which became workspace-supported as part of an entity schema update.
$this->assertTrue($entity_definition_update_manager->getFieldStorageDefinition('workspace', 'taxonomy_term'));
$this->assertNotEmpty($entity_definition_update_manager->getFieldStorageDefinition('workspace', 'taxonomy_term'));
// Check that the 'workspace' field has been installed for an entity type
// that has been added in an update function.
$this->assertTrue($entity_definition_update_manager->getFieldStorageDefinition('workspace', 'path_alias'));
$this->assertNotEmpty($entity_definition_update_manager->getFieldStorageDefinition('workspace', 'path_alias'));
// Check that the 'workspace' revision metadata field has been created only
// in the revision table.
......
......@@ -113,38 +113,6 @@ protected function getMinkDriverArgs() {
return parent::getMinkDriverArgs();
}
/**
* Asserts that the element with the given CSS selector is visible.
*
* @param string $css_selector
* The CSS selector identifying the element to check.
* @param string $message
* Optional message to show alongside the assertion.
*
* @deprecated in drupal:8.1.0 and is removed from drupal:9.0.0. Use
* \Behat\Mink\Element\NodeElement::isVisible() instead.
*/
protected function assertElementVisible($css_selector, $message = '') {
$this->assertTrue($this->getSession()->getDriver()->isVisible($this->cssSelectToXpath($css_selector)), $message);
@trigger_error('The ' . __METHOD__ . ' method is deprecated since version 8.1.0 and will be removed in 9.0.0. Use \Behat\Mink\Element\NodeElement::isVisible() instead.', E_USER_DEPRECATED);
}
/**
* Asserts that the element with the given CSS selector is not visible.
*
* @param string $css_selector
* The CSS selector identifying the element to check.
* @param string $message
* Optional message to show alongside the assertion.
*
* @deprecated in drupal:8.1.0 and is removed from drupal:9.0.0. Use
* \Behat\Mink\Element\NodeElement::isVisible() instead.
*/
protected function assertElementNotVisible($css_selector, $message = '') {
$this->assertFalse($this->getSession()->getDriver()->isVisible($this->cssSelectToXpath($css_selector)), $message);
@trigger_error('The ' . __METHOD__ . ' method is deprecated since version 8.1.0 and will be removed in 9.0.0. Use \Behat\Mink\Element\NodeElement::isVisible() instead.', E_USER_DEPRECATED);
}
/**
* Waits for the given time or until the given JS condition becomes TRUE.
*
......
<?php
namespace Drupal\FunctionalTests;
use Drupal\Tests\BrowserTestBase;
/**
* Tests BrowserTestBase legacy functionality.
*
* @group browsertestbase
* @group legacy
*/
class BrowserTestBaseLegacyTest extends BrowserTestBase {
/**
* Test ::drupalGetHeaders().
*
* @expectedDeprecation Drupal\Tests\BrowserTestBase::drupalGetHeaders() is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. Use $this->getSession()->getResponseHeaders() instead. See https://www.drupal.org/node/3067207
*/
public function testDrupalGetHeaders() {
$this->assertSame(
$this->getSession()->getResponseHeaders(),
$this->drupalGetHeaders()
);
}
}
......@@ -19,7 +19,6 @@
use Drupal\Core\Test\TestDatabase;
use Drupal\Tests\AssertHelperTrait;
use Drupal\Tests\ConfigTestTrait;
use Drupal\Tests\PhpunitCompatibilityTrait;
use Drupal\Tests\RandomGeneratorTrait;
use Drupal\Tests\TestRequirementsTrait;
use Drupal\TestTools\Comparator\MarkupInterfaceComparator;
......@@ -81,7 +80,6 @@ abstract class KernelTestBase extends TestCase implements ServiceProviderInterfa
use RandomGeneratorTrait;
use ConfigTestTrait;
use TestRequirementsTrait;
use PhpunitCompatibilityTrait;
/**
* {@inheritdoc}
......@@ -709,11 +707,6 @@ protected function installSchema($module, $tables) {
foreach ($tables as $table) {
$schema = drupal_get_module_schema($module, $table);
if (empty($schema)) {
// BC layer to avoid some contrib tests to fail.
if ($module == 'system') {
@trigger_error('Special handling of system module schemas in \Drupal\KernelTests\KernelTestBase::installSchema has been deprecated in Drupal 8.7.x, remove any calls to this method that use invalid schema names. See https://www.drupal.org/node/3003360.', E_USER_DEPRECATED);
continue;
}
throw new \LogicException("$module module does not define a schema for table '$table'.");
}
$this->container->get('database')->schema()->createTable($table, $schema);
......@@ -781,12 +774,6 @@ protected function installEntitySchema($entity_type_id) {
* If a module is not enabled after enabling it.
*/
protected function enableModules(array $modules) {
$trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
if ($trace[1]['function'] === 'setUp') {
trigger_error('KernelTestBase::enableModules() should not be called from setUp(). Use the $modules property instead.', E_USER_DEPRECATED);
}
unset($trace);
// Perform an ExtensionDiscovery scan as this function may receive a
// profile that is not the current profile, and we don't yet have a cached
// way to receive inactive profile information.
......@@ -913,10 +900,6 @@ protected function render(array &$elements) {
* \Drupal\Core\Site\Settings::get() to perform custom merges.
*/
protected function setSetting($name, $value) {
if ($name === 'install_profile') {
@trigger_error('Use \Drupal\KernelTests\KernelTestBase::setInstallProfile() to set the install profile in kernel tests. See https://www.drupal.org/node/2538996', E_USER_DEPRECATED);
$this->setInstallProfile($value);
}
$settings = Settings::getInstance() ? Settings::getAll() : [];
$settings[$name] = $value;
new Settings($settings);
......@@ -1001,80 +984,6 @@ protected function prepareTemplate(\Text_Template $template) {
]);
}
/**
* Returns whether the current test method is running in a separate process.
*
* Note that KernelTestBase will run in a separate process by default.
*
* @return bool
*
* @see \Drupal\KernelTests\KernelTestBase::$runTestInSeparateProcess
* @see https://github.com/sebastianbergmann/phpunit/pull/1350
*
* @deprecated in drupal:8.4.0 and is removed from drupal:9.0.0.
* KernelTestBase tests are always run in isolated processes.
*/
protected function isTestInIsolation() {
@trigger_error(__CLASS__ . '::' . __FUNCTION__ . '() is deprecated in Drupal 8.4.x, for removal before the Drupal 9.0.0 release. KernelTestBase tests are always run in isolated processes.', E_USER_DEPRECATED);
return function_exists('__phpunit_run_isolated_test');
}
/**
* BC: Automatically resolve former KernelTestBase class properties.
*
* Test authors should follow the provided instructions and adjust their tests
* accordingly.
*
* @deprecated in drupal:8.0.0 and is removed from drupal:9.0.0.
*/
public function __get($name) {
if (in_array($name, [
'public_files_directory',
'private_files_directory',
'temp_files_directory',
'translation_files_directory',
])) {
// @comment it in again.
trigger_error(sprintf("KernelTestBase::\$%s no longer exists. Use the regular API method to retrieve it instead (e.g., Settings).", $name), E_USER_DEPRECATED);
switch ($name) {
case 'public_files_directory':
return Settings::get('file_public_path', \Drupal::service('site.path') . '/files');
case 'private_files_directory':
return Settings::get('file_private_path');
case 'temp_files_directory':
return \Drupal::service('file_system')->getTempDirectory();
case 'translation_files_directory':
return Settings::get('file_public_path', \Drupal::service('site.path') . '/translations');
}
}
$denied = [
// @see \Drupal\simpletest\TestBase
'testId',
'timeLimit',
'results',
'assertions',
'skipClasses',
'verbose',
'verboseId',
'verboseClassName',
'verboseDirectory',
'verboseDirectoryUrl',
'dieOnFail',
'kernel',
// @see \Drupal\simpletest\TestBase::prepareEnvironment()
'generatedTestFiles',
// Properties from the old KernelTestBase class that has been removed.
'keyValueFactory',
];
if (in_array($name, $denied) || strpos($name, 'original') === 0) {
throw new \RuntimeException(sprintf('TestBase::$%s property no longer exists', $name));
}
}
/**
* Prevents serializing any properties.
*
......
<?php
namespace Drupal\TestTools\PhpUnitCompatibility\PhpUnit6;
use Drupal\Component\Render\FormattableMarkup;
use Drupal\file\FileInterface;
/**
* Makes Drupal's test API forward compatible with multiple versions of PHPUnit.
*/
trait FileFieldTestBaseTrait {
/**
* Asserts that a file exists physically on disk.
*
* Overrides PHPUnit\Framework\Assert::assertFileExists() to also work with
* file entities.
*
* @param \Drupal\File\FileInterface|string $file
* Either the file entity or the file URI.
* @param string $message
* (optional) A message to display with the assertion.
*
* @see https://www.drupal.org/node/3057326
*/
public static function assertFileExists($file, $message = NULL) {
if ($file instanceof FileInterface) {
@trigger_error('Passing a File entity as $file argument to FileFieldTestBase::assertFileExists is deprecated in drupal:8.8.0. It will be removed from drupal:9.0.0. Instead, pass the File entity URI via File::getFileUri(). See https://www.drupal.org/node/3057326', E_USER_DEPRECATED);
$file = $file->getFileUri();
}
$message = isset($message) ? $message : new FormattableMarkup('File %file exists on the disk.', ['%file' => $file]);
parent::assertFileExists($file, $message);
}
/**
* Asserts that a file does not exist on disk.
*
* Overrides PHPUnit\Framework\Assert::assertFileNotExists() to also work
* with file entities.
*
* @param \Drupal\File\FileInterface|string $file
* Either the file entity or the file URI.
* @param string $message
* (optional) A message to display with the assertion.
*
* @see https://www.drupal.org/node/3057326
*/
public static function assertFileNotExists($file, $message = NULL) {
if ($file instanceof FileInterface) {
@trigger_error('Passing a File entity as $file argument to FileFieldTestBase::assertFileNotExists is deprecated in drupal:8.8.0. It will be removed from drupal:9.0.0. Instead, pass the File entity URI via File::getFileUri(). See https://www.drupal.org/node/3057326', E_USER_DEPRECATED);
$file = $file->getFileUri();
}
$message = isset($message) ? $message : new FormattableMarkup('File %file exists on the disk.', ['%file' => $file]);
parent::assertFileNotExists($file, $message);
}
}
<?php
namespace Drupal\TestTools\PhpUnitCompatibility\PhpUnit6;
/**
* Makes Drupal's test API forward compatible with multiple versions of PHPUnit.
*/
trait TestCompatibilityTrait {
/**
* @todo deprecate this method override in
* https://www.drupal.org/project/drupal/issues/2742585
*
* @see \Drupal\simpletest\TestBase::assertTrue()
*/
public static function assertTrue($actual, $message = '') {
if (is_bool($actual)) {
parent::assertTrue($actual, $message);
}
else {
@trigger_error('Support for asserting against non-boolean values in ::assertTrue is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. Use a different assert method, for example, ::assertNotEmpty(). See https://www.drupal.org/node/3082086', E_USER_DEPRECATED);
parent::assertNotEmpty($actual, $message);
}
}
/**
* @todo deprecate this method override in
* https://www.drupal.org/project/drupal/issues/2742585
*
* @see \Drupal\simpletest\TestBase::assertFalse()
*/
public static function assertFalse($actual, $message = '') {
if (is_bool($actual)) {
parent::assertFalse($actual, $message);
}
else {
@trigger_error('Support for asserting against non-boolean values in ::assertFalse is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. Use a different assert method, for example, ::assertEmpty(). See https://www.drupal.org/node/3082086', E_USER_DEPRECATED);
parent::assertEmpty($actual, $message);
}
}
}
<?php
namespace Drupal\TestTools\PhpUnitCompatibility\PhpUnit7;
/**
* Makes Drupal's test API forward compatible with multiple versions of PHPUnit.
*/
trait FileFieldTestBaseTrait {
// @todo remove in Drupal 9.
}
<?php
namespace Drupal\TestTools\PhpUnitCompatibility\PhpUnit7;
/**
* Makes Drupal's test API forward compatible with multiple versions of PHPUnit.
*/
trait TestCompatibilityTrait {
/**
* @todo deprecate this method override in
* https://www.drupal.org/project/drupal/issues/2742585
*
* @see \Drupal\simpletest\TestBase::assertTrue()
*/
public static function assertTrue($actual, string $message = ''): void {
if (is_bool($actual)) {
parent::assertTrue($actual, $message);
}
else {
@trigger_error('Support for asserting against non-boolean values in ::assertTrue is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. Use a different assert method, for example, ::assertNotEmpty(). See https://www.drupal.org/node/3082086', E_USER_DEPRECATED);
parent::assertNotEmpty($actual, $message);
}
}
/**
* @todo deprecate this method override in
* https://www.drupal.org/project/drupal/issues/2742585
*
* @see \Drupal\simpletest\TestBase::assertFalse()
*/
public static function assertFalse($actual, string $message = ''): void {
if (is_bool($actual)) {
parent::assertFalse($actual, $message);
}
else {
@trigger_error('Support for asserting against non-boolean values in ::assertFalse is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. Use a different assert method, for example, ::assertEmpty(). See https://www.drupal.org/node/3082086', E_USER_DEPRECATED);
parent::assertEmpty($actual, $message);
}
}
}
......@@ -63,7 +63,6 @@ abstract class BrowserTestBase extends TestCase {
createUser as drupalCreateUser;
}
use XdebugRequestTrait;
use PhpunitCompatibilityTrait;
/**
* The database prefix of this test run.
......@@ -645,22 +644,6 @@ protected function config($name) {
return $this->container->get('config.factory')->getEditable($name);
}
/**
* Returns all response headers.
*
* @return array
* The HTTP headers values.
*
* @deprecated in drupal:8.8.0 and is removed from drupal:9.0.0.
* Use $this->getSession()->getResponseHeaders() instead.
*
* @see https://www.drupal.org/node/3067207
*/
protected function drupalGetHeaders() {
@trigger_error('Drupal\Tests\BrowserTestBase::drupalGetHeaders() is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. Use $this->getSession()->getResponseHeaders() instead. See https://www.drupal.org/node/3067207', E_USER_DEPRECATED);
return $this->getSession()->getResponseHeaders();
}
/**
* Gets the value of an HTTP response header.
*
......
<?php
namespace Drupal\Tests\Core\Assert;
use Drupal\KernelTests\AssertLegacyTrait;
use Drupal\Tests\UnitTestCase;
/**
* @coversDefaultClass \Drupal\KernelTests\AssertLegacyTrait
* @group Assert
* @group legacy
*/
class KernelAssertLegacyTraitTest extends UnitTestCase {
use AssertLegacyTrait;
/**
* @expectedDeprecation Support for asserting against non-boolean values in ::assertTrue is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. Use a different assert method, for example, ::assertNotEmpty(). See https://www.drupal.org/node/3082086
*/
public function testAssertTrue() {
$this->assertTrue(1);
}
/**
* @expectedDeprecation Support for asserting against non-boolean values in ::assertFalse is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. Use a different assert method, for example, ::assertEmpty(). See https://www.drupal.org/node/3082086
*/
public function testAssertFalse() {
$this->assertFalse(0);
}
}
<?php
namespace Drupal\Tests\Core\Test;
use Drupal\Tests\UnitTestCase;
use Drupal\KernelTests\KernelTestBase;
/**
* @group Test
* @group legacy
*
* @coversDefaultClass \Drupal\KernelTests\KernelTestBase
*/
class KernelTestBaseTest extends UnitTestCase {
/**
* @expectedDeprecation Drupal\KernelTests\KernelTestBase::isTestInIsolation() is deprecated in Drupal 8.4.x, for removal before the Drupal 9.0.0 release. KernelTestBase tests are always run in isolated processes.
*
* @covers ::isTestInIsolation
*/
public function testDeprecatedIsTestInIsolation() {
$kernel_test = $this->getMockBuilder(KernelTestBase::class)
->disableOriginalConstructor()
->getMockForAbstractClass();
$is_isolated = new \ReflectionMethod($kernel_test, 'isTestInIsolation');
$is_isolated->setAccessible(TRUE);
// Assert that the return value is a bool, because this unit test might or
// might not be running in process isolation.
$this->assertInternalType('bool', $is_isolated->invoke($kernel_test));
}
}
<?php
namespace Drupal\Tests;
use Drupal\TestTools\PhpUnitCompatibility\RunnerVersion;
// In order to manage different method signatures between PHPUnit versions, we
// dynamically load a compatibility trait dependent on the PHPUnit runner
// version.
if (!trait_exists(PhpunitVersionDependentTestCompatibilityTrait::class, FALSE)) {
class_alias("Drupal\TestTools\PhpUnitCompatibility\PhpUnit" . RunnerVersion::getMajor() . "\TestCompatibilityTrait", PhpunitVersionDependentTestCompatibilityTrait::class);
}
/**
* Makes Drupal's test API forward compatible with multiple versions of PHPUnit.
*/
trait PhpunitCompatibilityTrait {
use PhpunitVersionDependentTestCompatibilityTrait;
/**
* Returns a mock object for the specified class using the available method.
*
* The getMock method does not exist in PHPUnit 6. To provide backward
* compatibility this trait provides the getMock method and uses createMock if
* this method is available on the parent class.
*
* @param string $originalClassName
* Name of the class to mock.
* @param array|null $methods
* When provided, only methods whose names are in the array are replaced
* with a configurable test double. The behavior of the other methods is not
* changed. Providing null means that no methods will be replaced.
* @param array $arguments
* Parameters to pass to the original class' constructor.
* @param string $mockClassName
* Class name for the generated test double class.
* @param bool $callOriginalConstructor
* Can be used to disable the call to the original class' constructor.
* @param bool $callOriginalClone
* Can be used to disable the call to the original class' clone constructor.
* @param bool $callAutoload
* Can be used to disable __autoload() during the generation of the test
* double class.
* @param bool $cloneArguments
* Enables the cloning of arguments passed to mocked methods.
* @param bool $callOriginalMethods
* Enables the invocation of the original methods.
* @param object $proxyTarget
* Sets the proxy target.
*
* @see https://github.com/sebastianbergmann/phpunit/wiki/Release-Announcement-for-PHPUnit-5.4.0
*
* @return \PHPUnit\Framework\MockObject\MockObject
*
* @deprecated in drupal:8.5.0 and is removed from drupal:9.0.0.
* Use \Drupal\Tests\PhpunitCompatibilityTrait::createMock() instead.
*
* @see https://www.drupal.org/node/2907725
*/
public function getMock($originalClassName, $methods = [], array $arguments = [], $mockClassName = '', $callOriginalConstructor = TRUE, $callOriginalClone = TRUE, $callAutoload = TRUE, $cloneArguments = FALSE, $callOriginalMethods = FALSE, $proxyTarget = NULL) {
@trigger_error('\Drupal\Tests\PhpunitCompatibilityTrait::getMock() is deprecated in drupal:8.5.0 and is removed from drupal:9.0.0. Use \Drupal\Tests\PhpunitCompatibilityTrait::createMock() instead. See https://www.drupal.org/node/2907725', E_USER_DEPRECATED);