installEntitySchema('node'); $this->installConfig(['field', 'node']); $comment_type = CommentType::create([ 'id' => 'comment', 'label' => 'Comment settings', 'description' => 'Comment settings', 'target_entity_type_id' => 'node', ]); $comment_type->save(); $content_type = NodeType::create([ 'type' => $this->randomMachineName(), 'name' => $this->randomString(), ]); $content_type->save(); $field_storage = FieldStorageConfig::create([ 'field_name' => mb_strtolower($this->randomMachineName()), 'entity_type' => 'node', 'type' => 'comment', ]); $field_storage->save(); FieldConfig::create([ 'field_storage' => $field_storage, 'bundle' => $content_type->id(), 'label' => $this->randomMachineName() . '_label', 'description' => $this->randomMachineName() . '_description', 'settings' => [ 'comment_type' => $comment_type->id(), ], ])->save(); FieldConfig::create([ 'field_storage' => FieldStorageConfig::loadByName('node', 'body'), 'bundle' => $content_type->id(), 'label' => $this->randomMachineName() . '_body', 'settings' => ['display_summary' => TRUE], ])->save(); ViewTestData::createTestViews(get_class($this), ['views_test_config']); } /** * Tests the getDependencies method. */ public function testGetDependencies() { $expected = []; $expected['test_field_get_entity'] = [ 'module' => [ 'comment', 'node', 'user', ], ]; // Tests dependencies of relationships. $expected['test_relationship_dependency'] = [ 'module' => [ 'comment', 'node', 'user', ], ]; $expected['test_plugin_dependencies'] = [ 'module' => [ 'comment', 'views_test_data', ], 'content' => [ 'RowTest', 'StaticTest', 'StyleTest', ], ]; $expected['test_argument_dependency'] = [ 'config' => [ 'core.entity_view_mode.node.teaser', 'field.storage.node.body', ], 'content' => [ 'ArgumentDefaultTest', 'ArgumentValidatorTest', ], 'module' => [ 'node', // The argument handler is provided by the search module. 'search', 'text', 'user', ], ]; foreach ($this::$testViews as $view_id) { $view = Views::getView($view_id); $dependencies = $view->getDependencies(); $this->assertEqual($expected[$view_id], $dependencies); $config = $this->config('views.view.' . $view_id); \Drupal::service('config.storage.sync')->write($view_id, $config->get()); } // Ensure that dependencies are calculated on the display level. $expected_display['default'] = [ 'config' => [ 'core.entity_view_mode.node.teaser', ], 'content' => [ 'ArgumentDefaultTest', 'ArgumentValidatorTest', ], 'module' => [ 'core', 'node', 'search', 'user', 'views', ], ]; $expected_display['page'] = [ 'config' => [ 'field.storage.node.body', ], 'module' => [ 'core', 'node', 'text', 'views', ], ]; $view = Views::getView('test_argument_dependency'); $view->initDisplay(); foreach ($view->displayHandlers as $display) { // Calculate the dependencies each display has. $this->assertEqual($expected_display[$display->getPluginId()], $display->calculateDependencies()); } } }