Issue #2095115 by beejeebus: Delete ViewTestConfigInstaller and have ViewTestData create views, not 'import' them.

8.0.x
webchick 2013-09-23 17:11:18 +02:00
parent a4f9d8e33a
commit 6fd72a2c6e
25 changed files with 32 additions and 75 deletions

View File

@ -56,7 +56,7 @@ class IntegrationTest extends ViewUnitTestBase {
$this->installSchema('aggregator', array('aggregator_item', 'aggregator_feed', 'aggregator_category_feed', 'aggregator_category', 'aggregator_category_item'));
ViewTestData::importTestViews(get_class($this), array('aggregator_test_views'));
ViewTestData::createTestViews(get_class($this), array('aggregator_test_views'));
$this->itemStorageController = $this->container->get('entity.manager')->getStorageController('aggregator_item');
$this->feedStorageController = $this->container->get('entity.manager')->getStorageController('aggregator_feed');

View File

@ -43,7 +43,7 @@ class DisplayBlockTest extends ViewTestBase {
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('block_test_views'));
ViewTestData::createTestViews(get_class($this), array('block_test_views'));
$this->enableViewsTestModule();
}

View File

@ -32,7 +32,7 @@ abstract class CommentTestBase extends ViewTestBase {
function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('comment_test_views'));
ViewTestData::createTestViews(get_class($this), array('comment_test_views'));
// Add two users, create a node with the user1 as author and another node
// with user2 as author. For the second node add a comment from user1.

View File

@ -52,7 +52,7 @@ class ContactLinkTest extends ViewTestBase {
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('contact_test_views'));
ViewTestData::createTestViews(get_class($this), array('contact_test_views'));
$this->userData = $this->container->get('user.data');
}

View File

@ -51,7 +51,7 @@ class TranslationLinkTest extends ContentTranslationTestBase {
$user->langcode = 'en';
$user->save();
ViewTestData::importTestViews(get_class($this), array('content_translation_test_views'));
ViewTestData::createTestViews(get_class($this), array('content_translation_test_views'));
}
/**

View File

@ -48,7 +48,7 @@ class ViewsIntegrationTest extends ViewUnitTestBase {
$this->enableModules(array('system', 'dblog'));
$this->installSchema('dblog', array('watchdog'));
ViewTestData::importTestViews(get_class($this), array('dblog_test_views'));
ViewTestData::createTestViews(get_class($this), array('dblog_test_views'));
}
/**

View File

@ -51,7 +51,7 @@ abstract class FieldTestBase extends ViewTestBase {
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('field_test_views'));
ViewTestData::createTestViews(get_class($this), array('field_test_views'));
}
function setUpFields($amount = 3) {

View File

@ -40,7 +40,7 @@ class ExtensionViewsFieldTest extends ViewUnitTestBase {
*/
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('file_test_views'));
ViewTestData::createTestViews(get_class($this), array('file_test_views'));
}
/**

View File

@ -40,7 +40,7 @@ class ForumIntegrationTest extends ViewTestBase {
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('forum_test_views'));
ViewTestData::createTestViews(get_class($this), array('forum_test_views'));
}

View File

@ -25,7 +25,7 @@ abstract class NodeTestBase extends ViewTestBase {
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('node_test_views'));
ViewTestData::createTestViews(get_class($this), array('node_test_views'));
}
}

View File

@ -24,7 +24,7 @@ class RevisionRelationships extends ViewTestBase {
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('node_test_views'));
ViewTestData::createTestViews(get_class($this), array('node_test_views'));
}
/**

View File

@ -50,7 +50,7 @@ class StyleSerializerTest extends PluginTestBase {
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('rest_test_views'));
ViewTestData::createTestViews(get_class($this), array('rest_test_views'));
$this->adminUser = $this->drupalCreateUser(array('administer views', 'administer entity_test content', 'access user profiles', 'view test entity'));

View File

@ -57,7 +57,7 @@ class IntegrationTest extends ViewTestBase {
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('statistics_test_views'));
ViewTestData::createTestViews(get_class($this), array('statistics_test_views'));
// Create a new user for viewing nodes.
$this->webUser = $this->drupalCreateUser(array('access content'));

View File

@ -45,7 +45,7 @@ class TaxonomyIndexTidUiTest extends UITestBase {
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('taxonomy_test_views'));
ViewTestData::createTestViews(get_class($this), array('taxonomy_test_views'));
}
/**

View File

@ -48,7 +48,7 @@ abstract class TaxonomyTestBase extends ViewTestBase {
parent::setUp();
$this->mockStandardInstall();
ViewTestData::importTestViews(get_class($this), array('taxonomy_test_views'));
ViewTestData::createTestViews(get_class($this), array('taxonomy_test_views'));
$this->term1 = $this->createTerm();
$this->term2 = $this->createTerm();

View File

@ -26,7 +26,7 @@ abstract class TrackerTestBase extends ViewTestBase {
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('tracker_test_views'));
ViewTestData::createTestViews(get_class($this), array('tracker_test_views'));
$this->drupalCreateContentType(array('type' => 'page', 'name' => 'Basic page'));

View File

@ -65,7 +65,7 @@ class HandlerFilterUserNameTest extends ViewTestBase {
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('user_test_views'));
ViewTestData::createTestViews(get_class($this), array('user_test_views'));
$this->enableViewsTestModule();

View File

@ -39,7 +39,7 @@ abstract class UserTestBase extends ViewTestBase {
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('user_test_views'));
ViewTestData::createTestViews(get_class($this), array('user_test_views'));
$this->users[] = $this->drupalCreateUser();
$this->users[] = user_load(1);

View File

@ -46,7 +46,7 @@ abstract class UserUnitTestBase extends ViewUnitTestBase {
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('user_test_views'));
ViewTestData::createTestViews(get_class($this), array('user_test_views'));
$this->installSchema('user', array('users', 'users_roles'));
$this->installSchema('system', 'sequences');

View File

@ -37,7 +37,7 @@ class AccessTest extends PluginTestBase {
$this->enableViewsTestModule();
ViewTestData::importTestViews(get_class($this), array('views_test_data'));
ViewTestData::createTestViews(get_class($this), array('views_test_data'));
$this->admin_user = $this->drupalCreateUser(array('access all views'));
$this->web_user = $this->drupalCreateUser();

View File

@ -45,7 +45,7 @@ class ViewsBlockTest extends ViewUnitTestBase {
protected function setUp() {
parent::setUp();
ViewTestData::importTestViews(get_class($this), array('block_test_views'));
ViewTestData::createTestViews(get_class($this), array('block_test_views'));
}
/**

View File

@ -38,7 +38,7 @@ abstract class ViewTestBase extends WebTestBase {
foreach (ViewExecutable::getPluginTypes() as $plugin_type) {
$this->container->get("plugin.manager.views.$plugin_type")->clearCachedDefinitions();
}
ViewTestData::importTestViews(get_class($this), array('views_test_config'));
ViewTestData::createTestViews(get_class($this), array('views_test_config'));
}
/**

View File

@ -1,27 +0,0 @@
<?php
/**
* @file
* Contains \Drupal\views\Tests\ViewTestConfigInstaller.
*/
namespace Drupal\views\Tests;
use Drupal\Core\Config\ConfigImporter;
/**
* Defines a configuration installer.
*
* A config installer imports test views for views testing.
*
* @see \Drupal\Core\Config\ConfigImporter
* @see \Drupal\views\Tests\ViewTestData
*/
class ViewTestConfigInstaller extends ConfigImporter {
/**
* The name used to identify events and the lock.
*/
const ID = 'views.test.installer';
}

View File

@ -8,7 +8,6 @@
namespace Drupal\views\Tests;
use Drupal\Core\Config\FileStorage;
use Drupal\Core\Config\StorageComparer;
/**
* Provides tests view data and the base test schema with sample data records.
@ -21,17 +20,14 @@ use Drupal\Core\Config\StorageComparer;
class ViewTestData {
/**
* Imports test views from config.
* Create test views from config.
*
* @param string $class
* The name of the test class.
* @param array $modules
* (optional) The module directories to look in for test views.
* Defaults to an empty array.
*
* @see config_install_default_config()
* The module directories to look in for test views.
*/
public static function importTestViews($class, $modules = array()) {
public static function createTestViews($class, array $modules) {
$views = array();
while ($class) {
if (property_exists($class, 'testViews')) {
@ -40,6 +36,7 @@ class ViewTestData {
$class = get_parent_class($class);
}
if (!empty($views)) {
$storage_controller = \Drupal::entityManager()->getStorageController('view');
$module_handler = \Drupal::moduleHandler();
foreach ($modules as $module) {
$config_dir = drupal_get_path('module', $module) . '/test_views';
@ -47,28 +44,15 @@ class ViewTestData {
continue;
}
$source_storage = new FileStorage($config_dir);
// Only import views used by test.
$views_to_import = array();
foreach ($source_storage->listAll('views.view.') as $config_name) {
$file_storage = new FileStorage($config_dir);
foreach ($file_storage->listAll('views.view.') as $config_name) {
$id = str_replace('views.view.', '', $config_name);
if (in_array($id, $views)) {
$views_to_import[] = $config_name;
$storage_controller
->create($file_storage->read($config_name))
->save();
}
}
$storage_comparer = new StorageComparer(
$source_storage,
\Drupal::service('config.storage')
);
$storage_comparer->addChangelist('create', $views_to_import);
$installer = new ViewTestConfigInstaller(
$storage_comparer,
\Drupal::service('event_dispatcher'),
\Drupal::service('config.factory'),
\Drupal::entityManager(),
\Drupal::lock()
);
$installer->import();
}
}
}

View File

@ -66,7 +66,7 @@ abstract class ViewUnitTestBase extends DrupalUnitTestBase {
// Tests implementing ViewUnitTestBase depend on the theme system being
// properly configured.
$this->installConfig(array('system'));
ViewTestData::importTestViews(get_class($this), array('views_test_config'));
ViewTestData::createTestViews(get_class($this), array('views_test_config'));
}
/**