Issue #2795045 by legovaer, kmoll: Make SchemaCheckTestTrait available outside of the config module

8.3.x
Nathaniel Catchpole 2016-11-21 13:15:27 +00:00
parent 4f4904db9b
commit 235bfca5ae
39 changed files with 99 additions and 85 deletions

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\action\Kernel\Migrate\d6; namespace Drupal\Tests\action\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\action\Kernel\Migrate\d7; namespace Drupal\Tests\action\Kernel\Migrate\d7;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase; use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\aggregator\Kernel\Migrate\d6; namespace Drupal\Tests\aggregator\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\ban\Kernel\Migrate\d7; namespace Drupal\Tests\ban\Kernel\Migrate\d7;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase; use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
/** /**

View File

@ -3,7 +3,7 @@
namespace Drupal\Tests\block\Kernel; namespace Drupal\Tests\block\Kernel;
use Drupal\block\Entity\Block; use Drupal\block\Entity\Block;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\KernelTests\KernelTestBase; use Drupal\KernelTests\KernelTestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\book\Kernel\Migrate\d6; namespace Drupal\Tests\book\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,58 +2,13 @@
namespace Drupal\config\Tests; namespace Drupal\config\Tests;
use Drupal\Core\Config\TypedConfigManagerInterface;
use Drupal\Core\Config\Schema\SchemaCheckTrait;
use Drupal\Component\Utility\SafeMarkup;
/** /**
* Provides a class for checking configuration schema. * Provides a class for checking configuration schema.
*
* @deprecated as of 8.3.x, will be removed in before Drupal 9.0.0.
*/ */
trait SchemaCheckTestTrait { trait SchemaCheckTestTrait {
use SchemaCheckTrait; use \Drupal\Tests\SchemaCheckTestTrait;
/**
* Asserts the TypedConfigManager has a valid schema for the configuration.
*
* @param \Drupal\Core\Config\TypedConfigManagerInterface $typed_config
* The TypedConfigManager.
* @param string $config_name
* The configuration name.
* @param array $config_data
* The configuration data.
*/
public function assertConfigSchema(TypedConfigManagerInterface $typed_config, $config_name, $config_data) {
$errors = $this->checkConfigSchema($typed_config, $config_name, $config_data);
if ($errors === FALSE) {
// @todo Since the use of this trait is under TestBase, it works.
// Can be fixed as part of https://www.drupal.org/node/2260053.
$this->fail(SafeMarkup::format('No schema for @config_name', array('@config_name' => $config_name)));
return;
}
elseif ($errors === TRUE) {
// @todo Since the use of this trait is under TestBase, it works.
// Can be fixed as part of https://www.drupal.org/node/2260053.
$this->pass(SafeMarkup::format('Schema found for @config_name and values comply with schema.', array('@config_name' => $config_name)));
}
else {
foreach ($errors as $key => $error) {
// @todo Since the use of this trait is under TestBase, it works.
// Can be fixed as part of https://www.drupal.org/node/2260053.
$this->fail(SafeMarkup::format('Schema key @key failed with: @error', array('@key' => $key, '@error' => $error)));
}
}
}
/**
* Asserts configuration, specified by name, has a valid schema.
*
* @param string $config_name
* The configuration name.
*/
public function assertConfigSchemaByName($config_name) {
$config = $this->config($config_name);
$this->assertConfigSchema(\Drupal::service('config.typed'), $config->getName(), $config->get());
}
} }

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\config_translation\Kernel\Migrate\d6; namespace Drupal\Tests\config_translation\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\contact\Kernel\Migrate\d6; namespace Drupal\Tests\contact\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -3,7 +3,7 @@
namespace Drupal\Tests\content_moderation\Kernel; namespace Drupal\Tests\content_moderation\Kernel;
use Drupal\block_content\Entity\BlockContentType; use Drupal\block_content\Entity\BlockContentType;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\KernelTests\KernelTestBase; use Drupal\KernelTests\KernelTestBase;
use Drupal\node\Entity\NodeType; use Drupal\node\Entity\NodeType;
use Drupal\content_moderation\Entity\ModerationState; use Drupal\content_moderation\Entity\ModerationState;

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\dblog\Kernel\Migrate\d6; namespace Drupal\Tests\dblog\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -3,7 +3,7 @@
namespace Drupal\field\Tests\EntityReference; namespace Drupal\field\Tests\EntityReference;
use Drupal\Component\Utility\Unicode; use Drupal\Component\Utility\Unicode;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig; use Drupal\field\Entity\FieldStorageConfig;
use Drupal\node\Entity\Node; use Drupal\node\Entity\Node;

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\file\Kernel\Migrate\d6; namespace Drupal\Tests\file\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\file\Kernel\Migrate\d7; namespace Drupal\Tests\file\Kernel\Migrate\d7;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase; use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\forum\Kernel\Migrate\d6; namespace Drupal\Tests\forum\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\language\Tests; namespace Drupal\language\Tests;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\simpletest\WebTestBase; use Drupal\simpletest\WebTestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\locale\Kernel\Migrate; namespace Drupal\Tests\locale\Kernel\Migrate;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\node\Kernel\Migrate\d6; namespace Drupal\Tests\node\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\node\Kernel\Migrate\d7; namespace Drupal\Tests\node\Kernel\Migrate\d7;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase; use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\search\Kernel\Migrate\d6; namespace Drupal\Tests\search\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\simpletest\Kernel\Migrate\d6; namespace Drupal\Tests\simpletest\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\statistics\Kernel\Migrate\d6; namespace Drupal\Tests\statistics\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\statistics\Kernel\Migrate\d7; namespace Drupal\Tests\statistics\Kernel\Migrate\d7;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase; use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\syslog\Kernel\Migrate\d6; namespace Drupal\Tests\syslog\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\syslog\Kernel\Migrate\d7; namespace Drupal\Tests\syslog\Kernel\Migrate\d7;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase; use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
/** /**

View File

@ -3,7 +3,7 @@
namespace Drupal\system\Tests\Update; namespace Drupal\system\Tests\Update;
use Drupal\Component\Utility\Crypt; use Drupal\Component\Utility\Crypt;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Core\Database\Database; use Drupal\Core\Database\Database;
use Drupal\Core\DependencyInjection\ContainerBuilder; use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\Core\Language\Language; use Drupal\Core\Language\Language;

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\system\Kernel\Migrate\d6; namespace Drupal\Tests\system\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\taxonomy\Kernel\Migrate; namespace Drupal\Tests\taxonomy\Kernel\Migrate;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\text\Kernel\Migrate; namespace Drupal\Tests\text\Kernel\Migrate;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\update\Kernel\Migrate\d6; namespace Drupal\Tests\update\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/** /**

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\user\Kernel\Migrate\d6; namespace Drupal\Tests\user\Kernel\Migrate\d6;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase; use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
use Drupal\user\AccountSettingsForm; use Drupal\user\AccountSettingsForm;
use Drupal\Core\Database\Database; use Drupal\Core\Database\Database;

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\user\Kernel; namespace Drupal\Tests\user\Kernel;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\KernelTests\KernelTestBase; use Drupal\KernelTests\KernelTestBase;
use Drupal\user\Entity\Role; use Drupal\user\Entity\Role;

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\views\FunctionalJavascript\Plugin\views\Handler; namespace Drupal\Tests\views\FunctionalJavascript\Plugin\views\Handler;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldConfig;
use Drupal\FunctionalJavascriptTests\JavascriptTestBase; use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
use Drupal\node\Entity\NodeType; use Drupal\node\Entity\NodeType;

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\views\Kernel; namespace Drupal\Tests\views\Kernel;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\config_test\TestInstallStorage; use Drupal\config_test\TestInstallStorage;
use Drupal\Core\Config\InstallStorage; use Drupal\Core\Config\InstallStorage;
use Drupal\Core\Config\TypedConfigManager; use Drupal\Core\Config\TypedConfigManager;

View File

@ -2,7 +2,7 @@
namespace Drupal\views_ui\Tests; namespace Drupal\views_ui\Tests;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
/** /**
* Tests the numeric filter UI. * Tests the numeric filter UI.

View File

@ -2,7 +2,7 @@
namespace Drupal\Tests\standard\Functional; namespace Drupal\Tests\standard\Functional;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\contact\Entity\ContactForm; use Drupal\contact\Entity\ContactForm;
use Drupal\Core\Url; use Drupal\Core\Url;
use Drupal\dynamic_page_cache\EventSubscriber\DynamicPageCacheSubscriber; use Drupal\dynamic_page_cache\EventSubscriber\DynamicPageCacheSubscriber;

View File

@ -2,7 +2,7 @@
namespace Drupal\KernelTests\Core\Config; namespace Drupal\KernelTests\Core\Config;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\config_test\TestInstallStorage; use Drupal\config_test\TestInstallStorage;
use Drupal\Core\Config\InstallStorage; use Drupal\Core\Config\InstallStorage;
use Drupal\Core\DependencyInjection\ContainerBuilder; use Drupal\Core\DependencyInjection\ContainerBuilder;

View File

@ -2,7 +2,7 @@
namespace Drupal\KernelTests\Core\Entity; namespace Drupal\KernelTests\Core\Entity;
use Drupal\config\Tests\SchemaCheckTestTrait; use Drupal\Tests\SchemaCheckTestTrait;
use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Entity\EntityStorageException; use Drupal\Core\Entity\EntityStorageException;
use Drupal\Core\Field\BaseFieldDefinition; use Drupal\Core\Field\BaseFieldDefinition;

View File

@ -0,0 +1,59 @@
<?php
namespace Drupal\Tests;
use Drupal\Core\Config\TypedConfigManagerInterface;
use Drupal\Core\Config\Schema\SchemaCheckTrait;
use Drupal\Component\Utility\SafeMarkup;
/**
* Provides a class for checking configuration schema.
*/
trait SchemaCheckTestTrait {
use SchemaCheckTrait;
/**
* Asserts the TypedConfigManager has a valid schema for the configuration.
*
* @param \Drupal\Core\Config\TypedConfigManagerInterface $typed_config
* The TypedConfigManager.
* @param string $config_name
* The configuration name.
* @param array $config_data
* The configuration data.
*/
public function assertConfigSchema(TypedConfigManagerInterface $typed_config, $config_name, $config_data) {
$errors = $this->checkConfigSchema($typed_config, $config_name, $config_data);
if ($errors === FALSE) {
// @todo Since the use of this trait is under TestBase, it works.
// Can be fixed as part of https://www.drupal.org/node/2260053.
$this->fail(SafeMarkup::format('No schema for @config_name', array('@config_name' => $config_name)));
return;
}
elseif ($errors === TRUE) {
// @todo Since the use of this trait is under TestBase, it works.
// Can be fixed as part of https://www.drupal.org/node/2260053.
$this->pass(SafeMarkup::format('Schema found for @config_name and values comply with schema.', array('@config_name' => $config_name)));
}
else {
foreach ($errors as $key => $error) {
// @todo Since the use of this trait is under TestBase, it works.
// Can be fixed as part of https://www.drupal.org/node/2260053.
$this->fail(SafeMarkup::format('Schema key @key failed with: @error', array('@key' => $key, '@error' => $error)));
}
}
}
/**
* Asserts configuration, specified by name, has a valid schema.
*
* @param string $config_name
* The configuration name.
*/
public function assertConfigSchemaByName($config_name) {
$config = $this->config($config_name);
$this->assertConfigSchema(\Drupal::service('config.typed'), $config->getName(), $config->get());
}
}