Update to drupal 8.0.0-rc1. For more information, see https://www.drupal.org/node/2582663
This commit is contained in:
parent
eb34d130a8
commit
f32e58e4b1
8476 changed files with 211648 additions and 170042 deletions
73
core/modules/field/tests/fixtures/update/drupal-8.views_entity_reference_plugins-2429191.php
vendored
Normal file
73
core/modules/field/tests/fixtures/update/drupal-8.views_entity_reference_plugins-2429191.php
vendored
Normal file
|
@ -0,0 +1,73 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Contains database additions to drupal-8.bare.standard.php.gz for testing the
|
||||
* upgrade path of https://www.drupal.org/node/2429191.
|
||||
*/
|
||||
|
||||
use Drupal\Core\Database\Database;
|
||||
use Drupal\Component\Serialization\Yaml;
|
||||
|
||||
$connection = Database::getConnection();
|
||||
|
||||
// Configuration for a View with an "entity_reference selection" display.
|
||||
$config = Yaml::decode(file_get_contents(__DIR__ . '/views.view.entity_reference_plugins_2429191.yml'));
|
||||
$connection->insert('config')
|
||||
->fields([
|
||||
'collection',
|
||||
'name',
|
||||
'data',
|
||||
])
|
||||
->values([
|
||||
'collection' => '',
|
||||
'name' => 'views.view.' . $config['id'],
|
||||
'data' => serialize($config),
|
||||
])
|
||||
->execute();
|
||||
|
||||
// Configuration for an entity_reference field storage.
|
||||
$config = Yaml::decode(file_get_contents(__DIR__ . '/field.storage.node.field_ref_views_select_2429191.yml'));
|
||||
$connection->insert('config')
|
||||
->fields([
|
||||
'collection',
|
||||
'name',
|
||||
'data',
|
||||
])
|
||||
->values([
|
||||
'collection' => '',
|
||||
'name' => 'field.storage.' . $config['id'],
|
||||
'data' => serialize($config),
|
||||
])
|
||||
->execute();
|
||||
// We need to Update the registry of "last installed" field definitions.
|
||||
$installed = $connection->select('key_value')
|
||||
->fields('key_value', ['value'])
|
||||
->condition('collection', 'entity.definitions.installed')
|
||||
->condition('name', 'node.field_storage_definitions')
|
||||
->execute()
|
||||
->fetchField();
|
||||
$installed = unserialize($installed);
|
||||
$installed['field_ref_views_select_2429191'] = new \Drupal\field\Entity\FieldStorageConfig($config);
|
||||
$connection->update('key_value')
|
||||
->condition('collection', 'entity.definitions.installed')
|
||||
->condition('name', 'node.field_storage_definitions')
|
||||
->fields([
|
||||
'value' => serialize($installed)
|
||||
])
|
||||
->execute();
|
||||
|
||||
// Configuration for an entity_reference field using the View for selection.
|
||||
$config = Yaml::decode(file_get_contents(__DIR__ . '/field.field.node.article.field_ref_views_select_2429191.yml'));
|
||||
$connection->insert('config')
|
||||
->fields([
|
||||
'collection',
|
||||
'name',
|
||||
'data',
|
||||
])
|
||||
->values([
|
||||
'collection' => '',
|
||||
'name' => 'field.field.' . $config['id'],
|
||||
'data' => serialize($config),
|
||||
])
|
||||
->execute();
|
|
@ -0,0 +1,27 @@
|
|||
uuid: ac77b88d-dfa0-4b07-b700-ba50cb51f72a
|
||||
langcode: en
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- field.storage.node.field_ref_views_select_2429191
|
||||
- node.type.article
|
||||
module:
|
||||
- entity_reference
|
||||
id: node.article.field_ref_views_select_2429191
|
||||
field_name: field_ref_views_select_2429191
|
||||
entity_type: node
|
||||
bundle: article
|
||||
label: reference_views_select
|
||||
description: ''
|
||||
required: false
|
||||
translatable: false
|
||||
default_value: { }
|
||||
default_value_callback: ''
|
||||
settings:
|
||||
handler: views
|
||||
handler_settings:
|
||||
view:
|
||||
view_name: entity_reference_plugins_2429191
|
||||
display_name: entity_reference_1
|
||||
arguments: { }
|
||||
field_type: entity_reference
|
19
core/modules/field/tests/fixtures/update/field.storage.node.field_ref_views_select_2429191.yml
vendored
Normal file
19
core/modules/field/tests/fixtures/update/field.storage.node.field_ref_views_select_2429191.yml
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
uuid: 7f5e9177-56b3-4b84-a936-54bfd4d4c078
|
||||
langcode: en
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
- entity_reference
|
||||
- node
|
||||
id: node.field_ref_views_select_2429191
|
||||
field_name: field_ref_views_select_2429191
|
||||
entity_type: node
|
||||
type: entity_reference
|
||||
settings:
|
||||
target_type: node
|
||||
module: entity_reference
|
||||
locked: false
|
||||
cardinality: 1
|
||||
translatable: true
|
||||
indexes: { }
|
||||
persist_with_no_fields: false
|
214
core/modules/field/tests/fixtures/update/views.view.entity_reference_plugins_2429191.yml
vendored
Normal file
214
core/modules/field/tests/fixtures/update/views.view.entity_reference_plugins_2429191.yml
vendored
Normal file
|
@ -0,0 +1,214 @@
|
|||
uuid: 8b3d9ae1-c8f9-4219-af35-53f687e6081b
|
||||
langcode: en
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
- entity_reference
|
||||
- node
|
||||
- user
|
||||
id: entity_reference_plugins_2429191
|
||||
label: test
|
||||
module: views
|
||||
description: ''
|
||||
tag: ''
|
||||
base_table: node_field_data
|
||||
base_field: nid
|
||||
core: 8.x
|
||||
display:
|
||||
default:
|
||||
display_plugin: default
|
||||
id: default
|
||||
display_title: Master
|
||||
position: 0
|
||||
display_options:
|
||||
access:
|
||||
type: perm
|
||||
options:
|
||||
perm: 'access content'
|
||||
cache:
|
||||
type: tag
|
||||
options: { }
|
||||
query:
|
||||
type: views_query
|
||||
options:
|
||||
disable_sql_rewrite: false
|
||||
distinct: false
|
||||
replica: false
|
||||
query_comment: ''
|
||||
query_tags: { }
|
||||
exposed_form:
|
||||
type: basic
|
||||
options:
|
||||
submit_button: Apply
|
||||
reset_button: false
|
||||
reset_button_label: Reset
|
||||
exposed_sorts_label: 'Sort by'
|
||||
expose_sort_order: true
|
||||
sort_asc_label: Asc
|
||||
sort_desc_label: Desc
|
||||
pager:
|
||||
type: full
|
||||
options:
|
||||
items_per_page: 10
|
||||
offset: 0
|
||||
id: 0
|
||||
total_pages: null
|
||||
expose:
|
||||
items_per_page: false
|
||||
items_per_page_label: 'Items per page'
|
||||
items_per_page_options: '5, 10, 25, 50'
|
||||
items_per_page_options_all: false
|
||||
items_per_page_options_all_label: '- All -'
|
||||
offset: false
|
||||
offset_label: Offset
|
||||
tags:
|
||||
previous: '‹ previous'
|
||||
next: 'next ›'
|
||||
first: '« first'
|
||||
last: 'last »'
|
||||
quantity: 9
|
||||
style:
|
||||
type: default
|
||||
options:
|
||||
grouping: { }
|
||||
row_class: ''
|
||||
default_row_class: true
|
||||
uses_fields: false
|
||||
row:
|
||||
type: fields
|
||||
options:
|
||||
inline: { }
|
||||
separator: ''
|
||||
hide_empty: false
|
||||
default_field_elements: true
|
||||
fields:
|
||||
title:
|
||||
id: title
|
||||
table: node_field_data
|
||||
field: title
|
||||
entity_type: node
|
||||
entity_field: title
|
||||
label: ''
|
||||
alter:
|
||||
alter_text: false
|
||||
make_link: false
|
||||
absolute: false
|
||||
trim: false
|
||||
word_boundary: false
|
||||
ellipsis: false
|
||||
strip_tags: false
|
||||
html: false
|
||||
hide_empty: false
|
||||
empty_zero: false
|
||||
settings:
|
||||
link_to_entity: true
|
||||
plugin_id: field
|
||||
relationship: none
|
||||
group_type: group
|
||||
admin_label: ''
|
||||
exclude: false
|
||||
element_type: ''
|
||||
element_class: ''
|
||||
element_label_type: ''
|
||||
element_label_class: ''
|
||||
element_label_colon: true
|
||||
element_wrapper_type: ''
|
||||
element_wrapper_class: ''
|
||||
element_default_classes: true
|
||||
empty: ''
|
||||
hide_alter_empty: true
|
||||
click_sort_column: value
|
||||
type: string
|
||||
group_column: value
|
||||
group_columns: { }
|
||||
group_rows: true
|
||||
delta_limit: 0
|
||||
delta_offset: 0
|
||||
delta_reversed: false
|
||||
delta_first_last: false
|
||||
multi_type: separator
|
||||
separator: ', '
|
||||
field_api_classes: false
|
||||
filters:
|
||||
status:
|
||||
value: true
|
||||
table: node_field_data
|
||||
field: status
|
||||
plugin_id: boolean
|
||||
entity_type: node
|
||||
entity_field: status
|
||||
id: status
|
||||
expose:
|
||||
operator: ''
|
||||
group: 1
|
||||
title:
|
||||
id: title
|
||||
table: node_field_data
|
||||
field: title
|
||||
relationship: none
|
||||
group_type: group
|
||||
admin_label: ''
|
||||
operator: contains
|
||||
value: foo
|
||||
group: 1
|
||||
exposed: false
|
||||
expose:
|
||||
operator_id: ''
|
||||
label: ''
|
||||
description: ''
|
||||
multiple: false
|
||||
remember: false
|
||||
entity_type: node
|
||||
entity_field: title
|
||||
plugin_id: string
|
||||
sorts:
|
||||
created:
|
||||
id: created
|
||||
table: node_field_data
|
||||
field: created
|
||||
order: DESC
|
||||
entity_type: node
|
||||
entity_field: created
|
||||
plugin_id: date
|
||||
relationship: none
|
||||
group_type: group
|
||||
admin_label: ''
|
||||
exposed: false
|
||||
expose:
|
||||
label: ''
|
||||
granularity: second
|
||||
header: { }
|
||||
footer: { }
|
||||
empty: { }
|
||||
relationships: { }
|
||||
arguments: { }
|
||||
display_extenders: { }
|
||||
cache_metadata:
|
||||
max-age: -1
|
||||
contexts:
|
||||
- 'languages:language_content'
|
||||
- 'languages:language_interface'
|
||||
- url.query_args
|
||||
- 'user.node_grants:view'
|
||||
- user.permissions
|
||||
tags: { }
|
||||
entity_reference_1:
|
||||
display_plugin: entity_reference
|
||||
id: entity_reference_1
|
||||
display_title: 'Entity Reference'
|
||||
position: 1
|
||||
display_options:
|
||||
display_extenders: { }
|
||||
style:
|
||||
type: entity_reference
|
||||
options:
|
||||
search_fields:
|
||||
title: title
|
||||
cache_metadata:
|
||||
max-age: -1
|
||||
contexts:
|
||||
- 'languages:language_content'
|
||||
- 'languages:language_interface'
|
||||
- 'user.node_grants:view'
|
||||
- user.permissions
|
||||
tags: { }
|
|
@ -40,6 +40,12 @@ field.widget.settings.test_field_widget:
|
|||
test_widget_setting:
|
||||
type: string
|
||||
label: 'Test setting'
|
||||
role:
|
||||
type: string
|
||||
label: 'A referenced role'
|
||||
role2:
|
||||
type: string
|
||||
label: 'A 2nd referenced role'
|
||||
|
||||
field.widget.settings.test_field_widget_multiple:
|
||||
type: mapping
|
||||
|
@ -49,6 +55,14 @@ field.widget.settings.test_field_widget_multiple:
|
|||
type: string
|
||||
label: 'Test setting'
|
||||
|
||||
field.widget.third_party.color:
|
||||
type: mapping
|
||||
label: 'Field test entity display color module third party settings'
|
||||
mapping:
|
||||
foo:
|
||||
type: string
|
||||
label: 'Foo setting'
|
||||
|
||||
field.storage_settings.test_field:
|
||||
type: mapping
|
||||
label: 'Test field storage settings'
|
||||
|
|
|
@ -38,7 +38,7 @@ class TestFieldApplicableFormatter extends FormatterBase {
|
|||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function viewElements(FieldItemListInterface $items) {
|
||||
public function viewElements(FieldItemListInterface $items, $langcode) {
|
||||
return array('#markup' => 'Nothing to see here');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,7 +62,7 @@ class TestFieldDefaultFormatter extends FormatterBase {
|
|||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function viewElements(FieldItemListInterface $items) {
|
||||
public function viewElements(FieldItemListInterface $items, $langcode) {
|
||||
$elements = array();
|
||||
|
||||
foreach ($items as $delta => $item) {
|
||||
|
|
|
@ -35,7 +35,7 @@ class TestFieldEmptyFormatter extends FormatterBase {
|
|||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function viewElements(FieldItemListInterface $items) {
|
||||
public function viewElements(FieldItemListInterface $items, $langcode) {
|
||||
$elements = array();
|
||||
|
||||
if ($items->isEmpty()) {
|
||||
|
|
|
@ -63,7 +63,7 @@ class TestFieldEmptySettingFormatter extends FormatterBase {
|
|||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function viewElements(FieldItemListInterface $items) {
|
||||
public function viewElements(FieldItemListInterface $items, $langcode) {
|
||||
$elements = array();
|
||||
|
||||
if (!empty($items)) {
|
||||
|
|
|
@ -63,7 +63,7 @@ class TestFieldMultipleFormatter extends FormatterBase {
|
|||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function viewElements(FieldItemListInterface $items) {
|
||||
public function viewElements(FieldItemListInterface $items, $langcode) {
|
||||
$elements = array();
|
||||
|
||||
if (!empty($items)) {
|
||||
|
|
|
@ -27,7 +27,7 @@ class TestFieldNoSettingsFormatter extends FormatterBase {
|
|||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function viewElements(FieldItemListInterface $items) {
|
||||
public function viewElements(FieldItemListInterface $items, $langcode) {
|
||||
$elements = array();
|
||||
|
||||
foreach ($items as $delta => $item) {
|
||||
|
|
|
@ -75,7 +75,7 @@ class TestFieldPrepareViewFormatter extends FormatterBase {
|
|||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function viewElements(FieldItemListInterface $items) {
|
||||
public function viewElements(FieldItemListInterface $items, $langcode) {
|
||||
$elements = array();
|
||||
|
||||
foreach ($items as $delta => $item) {
|
||||
|
|
|
@ -34,6 +34,8 @@ class TestFieldWidget extends WidgetBase {
|
|||
public static function defaultSettings() {
|
||||
return array(
|
||||
'test_widget_setting' => 'dummy test string',
|
||||
'role' => 'anonymous',
|
||||
'role2' => 'anonymous',
|
||||
) + parent::defaultSettings();
|
||||
}
|
||||
|
||||
|
@ -78,4 +80,42 @@ class TestFieldWidget extends WidgetBase {
|
|||
return $element['value'];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function calculateDependencies() {
|
||||
$dependencies = parent::calculateDependencies();
|
||||
|
||||
foreach (['role', 'role2'] as $setting) {
|
||||
if (!empty($role_id = $this->getSetting($setting))) {
|
||||
// Create a dependency on the role config entity referenced in settings.
|
||||
$dependencies['config'][] = "user.role.$role_id";
|
||||
}
|
||||
}
|
||||
|
||||
return $dependencies;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function onDependencyRemoval(array $dependencies) {
|
||||
$changed = parent::onDependencyRemoval($dependencies);
|
||||
|
||||
// Only the setting 'role' is resolved here. When the dependency related to
|
||||
// this setting is removed, is expected that the widget component will be
|
||||
// update accordingly in the display entity. The 'role2' setting is
|
||||
// deliberately left out from being updated. When the dependency
|
||||
// corresponding to this setting is removed, is expected that the widget
|
||||
// component will be disabled in the display entity.
|
||||
if (!empty($role_id = $this->getSetting('role'))) {
|
||||
if (!empty($dependencies['config']["user.role.$role_id"])) {
|
||||
$this->setSetting('role', 'anonymous');
|
||||
$changed = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return $changed;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -99,7 +99,7 @@ class TestFieldWidgetMultiple extends WidgetBase {
|
|||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
* Used in \Drupal\entity_reference\Tests\EntityReferenceAdminTest::testAvailableFormatters().
|
||||
* Used in \Drupal\field\Tests\EntityReference\EntityReferenceAdminTest::testAvailableFormatters().
|
||||
*/
|
||||
public static function isApplicable(FieldDefinitionInterface $field_definition) {
|
||||
// Returns FALSE if machine name of the field equals field_onewidgetfield.
|
||||
|
|
|
@ -17,3 +17,4 @@ dependencies:
|
|||
- entity_test
|
||||
- text
|
||||
persist_with_no_fields: false
|
||||
custom_storage: false
|
||||
|
|
|
@ -17,3 +17,4 @@ dependencies:
|
|||
- entity_test
|
||||
- text
|
||||
persist_with_no_fields: false
|
||||
custom_storage: false
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
id: entity_test.entity_test.field_test_import_staging
|
||||
id: entity_test.entity_test.field_test_import_sync
|
||||
uuid: ea711065-6940-47cd-813d-618f64095481
|
||||
langcode: en
|
||||
field_name: field_test_import_staging
|
||||
field_name: field_test_import_sync
|
||||
entity_type: entity_test
|
||||
bundle: entity_test
|
||||
label: 'Import from staging'
|
||||
label: 'Import from sync'
|
||||
description: ''
|
||||
required: '0'
|
||||
default_value: { }
|
||||
|
@ -13,4 +13,4 @@ settings: { }
|
|||
field_type: text
|
||||
dependencies:
|
||||
config:
|
||||
- field.storage.entity_test.field_test_import_staging
|
||||
- field.storage.entity_test.field_test_import_sync
|
|
@ -1,7 +1,7 @@
|
|||
id: entity_test.test_bundle.field_test_import_staging_2
|
||||
id: entity_test.test_bundle.field_test_import_sync_2
|
||||
uuid: f07794a2-d7cc-45b6-b40d-13cf021b5552
|
||||
langcode: en
|
||||
field_name: field_test_import_staging_2
|
||||
field_name: field_test_import_sync_2
|
||||
entity_type: entity_test
|
||||
bundle: test_bundle
|
||||
label: 'Test import field 2 on test bundle'
|
||||
|
@ -13,4 +13,4 @@ settings: { }
|
|||
field_type: text
|
||||
dependencies:
|
||||
config:
|
||||
- field.storage.entity_test.field_test_import_staging_2
|
||||
- field.storage.entity_test.field_test_import_sync_2
|
|
@ -1,7 +1,7 @@
|
|||
id: entity_test.test_bundle_2.field_test_import_staging_2
|
||||
id: entity_test.test_bundle_2.field_test_import_sync_2
|
||||
uuid: 49d6dd19-5097-443d-8f00-fc79525bebce
|
||||
langcode: en
|
||||
field_name: field_test_import_staging_2
|
||||
field_name: field_test_import_sync_2
|
||||
entity_type: entity_test
|
||||
bundle: test_bundle_2
|
||||
label: 'Test import field 2 on test bundle 2'
|
||||
|
@ -13,4 +13,4 @@ settings: { }
|
|||
field_type: text
|
||||
dependencies:
|
||||
config:
|
||||
- field.storage.entity_test.field_test_import_staging_2
|
||||
- field.storage.entity_test.field_test_import_sync_2
|
|
@ -1,7 +1,7 @@
|
|||
id: entity_test.field_test_import_staging
|
||||
id: entity_test.field_test_import_sync
|
||||
uuid: 0bf654cc-f14a-4881-b94c-76959e47466b
|
||||
langcode: en
|
||||
field_name: field_test_import_staging
|
||||
field_name: field_test_import_sync
|
||||
entity_type: entity_test
|
||||
type: text
|
||||
settings:
|
||||
|
@ -18,3 +18,4 @@ dependencies:
|
|||
- entity_test
|
||||
- text
|
||||
persist_with_no_fields: false
|
||||
custom_storage: false
|
|
@ -1,7 +1,7 @@
|
|||
id: entity_test.field_test_import_staging_2
|
||||
id: entity_test.field_test_import_sync_2
|
||||
uuid: 2165d9aa-9a0c-41a1-be02-2a49f3405c00
|
||||
langcode: en
|
||||
field_name: field_test_import_staging_2
|
||||
field_name: field_test_import_sync_2
|
||||
entity_type: entity_test
|
||||
type: text
|
||||
settings:
|
||||
|
@ -18,3 +18,4 @@ dependencies:
|
|||
- entity_test
|
||||
- text
|
||||
persist_with_no_fields: false
|
||||
custom_storage: false
|
|
@ -1,6 +1,6 @@
|
|||
name: 'User test views'
|
||||
name: 'Field test views'
|
||||
type: module
|
||||
description: 'Provides default views for views user tests.'
|
||||
description: 'Provides default views for views field tests.'
|
||||
package: Testing
|
||||
version: VERSION
|
||||
core: 8.x
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
langcode: en
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
- node
|
||||
- user
|
||||
config:
|
||||
- field.storage.node.field_test
|
||||
id: test_view_field_delete
|
||||
label: test_view_field_delete
|
||||
module: views
|
||||
description: ''
|
||||
tag: default
|
||||
base_table: node
|
||||
base_field: nid
|
||||
core: '8'
|
||||
display:
|
||||
default:
|
||||
display_options:
|
||||
access:
|
||||
type: perm
|
||||
fields:
|
||||
nid:
|
||||
field: nid
|
||||
id: nid
|
||||
table: node
|
||||
plugin_id: field
|
||||
entity_type: node
|
||||
entity_field: nid
|
||||
field_test:
|
||||
id: field_test
|
||||
table: node__field_test
|
||||
field: field_test
|
||||
plugin_id: field
|
||||
entity_type: node
|
||||
entity_field: field_test
|
||||
cache:
|
||||
type: tag
|
||||
exposed_form:
|
||||
type: basic
|
||||
pager:
|
||||
type: full
|
||||
query:
|
||||
type: views_query
|
||||
style:
|
||||
type: default
|
||||
row:
|
||||
type: fields
|
||||
display_plugin: default
|
||||
display_title: Master
|
||||
id: default
|
||||
position: 0
|
|
@ -153,7 +153,7 @@ class FieldConfigEntityUnitTest extends UnitTestCase {
|
|||
'bundle' => 'test_bundle',
|
||||
'field_type' => 'test_field',
|
||||
), $this->entityTypeId);
|
||||
$dependencies = $field->calculateDependencies();
|
||||
$dependencies = $field->calculateDependencies()->getDependencies();
|
||||
$this->assertContains('field.storage.test_entity_type.test_field', $dependencies['config']);
|
||||
$this->assertContains('test.test_entity_type.id', $dependencies['config']);
|
||||
$this->assertEquals(['test_module', 'test_module2', 'test_module3'], $dependencies['module']);
|
||||
|
|
|
@ -8,6 +8,9 @@
|
|||
namespace Drupal\Tests\field\Unit;
|
||||
|
||||
use Drupal\Core\DependencyInjection\ContainerBuilder;
|
||||
use Drupal\Core\Field\FieldItemBase;
|
||||
use Drupal\Core\Field\FieldStorageDefinitionInterface;
|
||||
use Drupal\Core\Field\FieldTypePluginManagerInterface;
|
||||
use Drupal\field\Entity\FieldStorageConfig;
|
||||
use Drupal\Tests\UnitTestCase;
|
||||
|
||||
|
@ -39,16 +42,25 @@ class FieldStorageConfigEntityUnitTest extends UnitTestCase {
|
|||
*/
|
||||
protected $uuid;
|
||||
|
||||
/**
|
||||
* The field type manager.
|
||||
*
|
||||
* @var \Drupal\Core\Field\FieldTypePluginManagerInterface|\PHPUnit_Framework_MockObject_MockObject
|
||||
*/
|
||||
protected $fieldTypeManager;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
$this->entityManager = $this->getMock('\Drupal\Core\Entity\EntityManagerInterface');
|
||||
$this->uuid = $this->getMock('\Drupal\Component\Uuid\UuidInterface');
|
||||
$this->fieldTypeManager = $this->getMock(FieldTypePluginManagerInterface::class);
|
||||
|
||||
$container = new ContainerBuilder();
|
||||
$container->set('entity.manager', $this->entityManager);
|
||||
$container->set('uuid', $this->uuid);
|
||||
$container->set('plugin.manager.field.field_type', $this->fieldTypeManager);
|
||||
\Drupal::setContainer($container);
|
||||
}
|
||||
|
||||
|
@ -73,29 +85,50 @@ class FieldStorageConfigEntityUnitTest extends UnitTestCase {
|
|||
// ConfigEntityBase::addDependency() to get the provider of the field config
|
||||
// entity type and once in FieldStorageConfig::calculateDependencies() to
|
||||
// get the provider of the entity type that field is attached to.
|
||||
$this->entityManager->expects($this->at(0))
|
||||
$this->entityManager->expects($this->any())
|
||||
->method('getDefinition')
|
||||
->with('field_storage_config')
|
||||
->will($this->returnValue($fieldStorageConfigentityType));
|
||||
$this->entityManager->expects($this->at(1))
|
||||
->method('getDefinition')
|
||||
->with($attached_entity_type_id)
|
||||
->will($this->returnValue($attached_entity_type));
|
||||
$this->entityManager->expects($this->at(2))
|
||||
->method('getDefinition')
|
||||
->with('field_storage_config')
|
||||
->will($this->returnValue($fieldStorageConfigentityType));
|
||||
->willReturnMap([
|
||||
['field_storage_config', TRUE, $fieldStorageConfigentityType],
|
||||
[$attached_entity_type_id, TRUE, $attached_entity_type],
|
||||
]);
|
||||
|
||||
$field_storage = new FieldStorageConfig(array(
|
||||
$this->fieldTypeManager->expects($this->atLeastOnce())
|
||||
->method('getDefinition')
|
||||
->with('test_field_type', FALSE)
|
||||
->willReturn([
|
||||
'class' => TestFieldType::class,
|
||||
]);
|
||||
|
||||
$field_storage = new FieldStorageConfig([
|
||||
'entity_type' => $attached_entity_type_id,
|
||||
'field_name' => 'test_field',
|
||||
'type' => 'test_field_type',
|
||||
'module' => 'test_module',
|
||||
));
|
||||
]);
|
||||
|
||||
$dependencies = $field_storage->calculateDependencies();
|
||||
$this->assertContains('test_module', $dependencies['module']);
|
||||
$this->assertContains('entity_provider_module', $dependencies['module']);
|
||||
$dependencies = $field_storage->calculateDependencies()->getDependencies();
|
||||
$this->assertEquals(['entity_provider_module', 'entity_test', 'test_module'], $dependencies['module']);
|
||||
$this->assertEquals(['stark'], $dependencies['theme']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* A test class to test field storage dependencies.
|
||||
*
|
||||
* @see \Drupal\Core\Field\FieldItemInterface::calculateStorageDependencies()
|
||||
*/
|
||||
class TestFieldType {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static function calculateStorageDependencies(FieldStorageDefinitionInterface $field_definition) {
|
||||
$dependencies = [];
|
||||
$dependencies['module'] = ['entity_test'];
|
||||
$dependencies['theme'] = ['stark'];
|
||||
|
||||
return $dependencies;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
namespace Drupal\Tests\field\Unit;
|
||||
|
||||
use Drupal\simpletest\AssertHelperTrait;
|
||||
use Drupal\Tests\UnitTestCase;
|
||||
|
||||
/**
|
||||
|
@ -15,6 +16,8 @@ use Drupal\Tests\UnitTestCase;
|
|||
*/
|
||||
class FieldUninstallValidatorTest extends UnitTestCase {
|
||||
|
||||
use AssertHelperTrait;
|
||||
|
||||
/**
|
||||
* @var \Drupal\field\FieldUninstallValidator|\PHPUnit_Framework_MockObject_MockObject
|
||||
*/
|
||||
|
@ -43,7 +46,7 @@ class FieldUninstallValidatorTest extends UnitTestCase {
|
|||
$module = $this->randomMachineName();
|
||||
$expected = [];
|
||||
$reasons = $this->fieldUninstallValidator->validate($module);
|
||||
$this->assertSame($expected, $reasons);
|
||||
$this->assertSame($expected, $this->castSafeStrings($reasons));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -63,7 +66,7 @@ class FieldUninstallValidatorTest extends UnitTestCase {
|
|||
$module = $this->randomMachineName();
|
||||
$expected = ['Fields pending deletion'];
|
||||
$reasons = $this->fieldUninstallValidator->validate($module);
|
||||
$this->assertSame($expected, $reasons);
|
||||
$this->assertSame($expected, $this->castSafeStrings($reasons));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -83,7 +86,7 @@ class FieldUninstallValidatorTest extends UnitTestCase {
|
|||
$module = $this->randomMachineName();
|
||||
$expected = ['Fields type(s) in use'];
|
||||
$reasons = $this->fieldUninstallValidator->validate($module);
|
||||
$this->assertSame($expected, $reasons);
|
||||
$this->assertSame($expected, $this->castSafeStrings($reasons));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Contains \Drupal\Tests\field\Unit\Plugin\migrate\source\d6\FieldInstancePerViewModeTest.
|
||||
*/
|
||||
|
||||
namespace Drupal\Tests\field\Unit\Plugin\migrate\source\d6;
|
||||
|
||||
use Drupal\field\Plugin\migrate\source\d6\FieldInstancePerFormDisplay;
|
||||
use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;
|
||||
|
||||
/**
|
||||
* Tests d6_field_instance_per_form_display source plugin.
|
||||
*
|
||||
* @group field
|
||||
*/
|
||||
class FieldInstancePerFormDisplayTest extends MigrateSqlSourceTestCase {
|
||||
|
||||
const PLUGIN_CLASS = FieldInstancePerFormDisplay::class;
|
||||
|
||||
protected $migrationConfiguration = array(
|
||||
'id' => 'view_mode_test',
|
||||
'source' => array(
|
||||
'plugin' => 'd6_field_instance_per_form_display',
|
||||
),
|
||||
);
|
||||
|
||||
protected $expectedResults = array(
|
||||
array(
|
||||
'display_settings' => array(),
|
||||
'widget_settings' => array(),
|
||||
'type_name' => 'story',
|
||||
'widget_active' => TRUE,
|
||||
'field_name' => 'field_test_filefield',
|
||||
'type' => 'filefield',
|
||||
'module' => 'filefield',
|
||||
'weight' => '8',
|
||||
'widget_type' => 'filefield_widget',
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
$empty_array = serialize([]);
|
||||
|
||||
$this->databaseContents['content_node_field'] = array(
|
||||
array(
|
||||
'field_name' => 'field_test_filefield',
|
||||
'type' => 'filefield',
|
||||
'global_settings' => $empty_array,
|
||||
'required' => '0',
|
||||
'multiple' => '0',
|
||||
'db_storage' => '1',
|
||||
'module' => 'filefield',
|
||||
'db_columns' => $empty_array,
|
||||
'active' => '1',
|
||||
'locked' => '0',
|
||||
)
|
||||
);
|
||||
$this->databaseContents['content_node_field_instance'] = array(
|
||||
array(
|
||||
'field_name' => 'field_test_filefield',
|
||||
'type_name' => 'story',
|
||||
'weight' => '8',
|
||||
'label' => 'File Field',
|
||||
'widget_type' => 'filefield_widget',
|
||||
'widget_settings' => $empty_array,
|
||||
'display_settings' => $empty_array,
|
||||
'description' => 'An example image field.',
|
||||
'widget_module' => 'filefield',
|
||||
'widget_active' => '1',
|
||||
),
|
||||
);
|
||||
parent::setUp();
|
||||
}
|
||||
|
||||
}
|
|
@ -16,13 +16,9 @@ use Drupal\Tests\migrate\Unit\MigrateSqlSourceTestCase;
|
|||
*/
|
||||
class FieldInstancePerViewModeTest extends MigrateSqlSourceTestCase {
|
||||
|
||||
// The plugin system is not working during unit testing so the source plugin
|
||||
// class needs to be manually specified.
|
||||
const PLUGIN_CLASS = 'Drupal\field\Plugin\migrate\source\d6\FieldInstancePerViewMode';
|
||||
|
||||
// The fake Migration configuration entity.
|
||||
protected $migrationConfiguration = array(
|
||||
// The ID of the entity, can be any string.
|
||||
'id' => 'view_mode_test',
|
||||
'source' => array(
|
||||
'plugin' => 'd6_field_instance_per_view_mode',
|
||||
|
@ -76,7 +72,6 @@ class FieldInstancePerViewModeTest extends MigrateSqlSourceTestCase {
|
|||
),
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -69,7 +69,6 @@ class FieldTest extends MigrateSqlSourceTestCase {
|
|||
$this->databaseContents['content_node_field'][0]['global_settings'] = serialize($this->databaseContents['content_node_field'][0]['global_settings']);
|
||||
$this->databaseContents['content_node_field'][0]['db_columns'] = serialize($this->databaseContents['content_node_field'][0]['db_columns']);
|
||||
|
||||
$this->databaseContents['content_node_field_instance'][0]['widget_settings'] = serialize(array());
|
||||
$this->databaseContents['content_node_field_instance'][0]['widget_type'] = 'text_textarea';
|
||||
$this->databaseContents['content_node_field_instance'][0]['field_name'] = 'field_body';
|
||||
parent::setUp();
|
||||
|
|
Reference in a new issue