You are here

public function EntityTranslationSettingsTest::providerSource in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/content_translation/tests/src/Kernel/Plugin/migrate/source/d7/EntityTranslationSettingsTest.php \Drupal\Tests\content_translation\Kernel\Plugin\migrate\source\d7\EntityTranslationSettingsTest::providerSource()

The data provider.

Return value

array Array of data sets to test, each of which is a numerically indexed array with the following elements:

  • An array of source data, which can be optionally processed and set up by subclasses.
  • An array of expected result rows.
  • (optional) The number of result rows the plugin under test is expected to return. If this is not a numeric value, the plugin will not be counted.
  • (optional) Array of configuration options for the plugin under test.

Overrides MigrateSourceTestBase::providerSource

See also

\Drupal\Tests\migrate\Kernel\MigrateSourceTestBase::testSource

File

core/modules/content_translation/tests/src/Kernel/Plugin/migrate/source/d7/EntityTranslationSettingsTest.php, line 28

Class

EntityTranslationSettingsTest
Tests entity translation settings source plugin.

Namespace

Drupal\Tests\content_translation\Kernel\Plugin\migrate\source\d7

Code

public function providerSource() {
  $tests = [];

  // Source data when there's no entity type that uses entity translation.
  $tests[0]['source_data']['variable'] = [
    [
      'name' => 'entity_translation_entity_types',
      'value' => 'a:4:{s:7:"comment";i:0;s:4:"node";i:0;s:13:"taxonomy_term";i:0;s:4:"user";i:0;}',
    ],
  ];

  // Source data when there's no bundle settings variables.
  $tests[1]['source_data']['variable'] = [
    [
      'name' => 'entity_translation_entity_types',
      'value' => 'a:4:{s:7:"comment";s:7:"comment";s:4:"node";s:4:"node";s:13:"taxonomy_term";s:13:"taxonomy_term";s:4:"user";s:4:"user";}',
    ],
    [
      'name' => 'entity_translation_taxonomy',
      'value' => 'a:3:{s:6:"forums";b:1;s:4:"tags";b:1;s:4:"test";b:0;}',
    ],
    [
      'name' => 'language_content_type_article',
      'value' => 's:1:"2";',
    ],
    [
      'name' => 'language_content_type_forum',
      'value' => 's:1:"4";',
    ],
    [
      'name' => 'language_content_type_page',
      'value' => 's:1:"4";',
    ],
  ];

  // Source data when there's bundle settings variables.
  $tests[2]['source_data']['variable'] = [
    [
      'name' => 'entity_translation_entity_types',
      'value' => 'a:4:{s:7:"comment";s:7:"comment";s:4:"node";s:4:"node";s:13:"taxonomy_term";s:13:"taxonomy_term";s:4:"user";s:4:"user";}',
    ],
    [
      'name' => 'entity_translation_settings_comment__comment_node_forum',
      'value' => 'a:5:{s:16:"default_language";s:12:"xx-et-author";s:22:"hide_language_selector";i:1;s:21:"exclude_language_none";i:0;s:13:"lock_language";i:0;s:27:"shared_fields_original_only";i:0;}',
    ],
    [
      'name' => 'entity_translation_settings_comment__comment_node_page',
      'value' => 'a:5:{s:16:"default_language";s:12:"xx-et-author";s:22:"hide_language_selector";i:0;s:21:"exclude_language_none";i:0;s:13:"lock_language";i:0;s:27:"shared_fields_original_only";i:1;}',
    ],
    [
      'name' => 'entity_translation_settings_node__forum',
      'value' => 'a:5:{s:16:"default_language";s:12:"xx-et-author";s:22:"hide_language_selector";i:0;s:21:"exclude_language_none";i:0;s:13:"lock_language";i:0;s:27:"shared_fields_original_only";i:0;}',
    ],
    [
      'name' => 'entity_translation_settings_node__page',
      'value' => 'a:5:{s:16:"default_language";s:13:"xx-et-default";s:22:"hide_language_selector";i:1;s:21:"exclude_language_none";i:0;s:13:"lock_language";i:0;s:27:"shared_fields_original_only";i:1;}',
    ],
    [
      'name' => 'entity_translation_settings_taxonomy_term__forums',
      'value' => 'a:5:{s:16:"default_language";s:13:"xx-et-current";s:22:"hide_language_selector";i:0;s:21:"exclude_language_none";i:0;s:13:"lock_language";i:0;s:27:"shared_fields_original_only";i:1;}',
    ],
    [
      'name' => 'entity_translation_settings_taxonomy_term__tags',
      'value' => 'a:5:{s:16:"default_language";s:13:"xx-et-current";s:22:"hide_language_selector";i:1;s:21:"exclude_language_none";i:0;s:13:"lock_language";i:0;s:27:"shared_fields_original_only";i:0;}',
    ],
    [
      'name' => 'entity_translation_settings_user__user',
      'value' => 'a:5:{s:16:"default_language";s:12:"xx-et-author";s:22:"hide_language_selector";i:1;s:21:"exclude_language_none";i:0;s:13:"lock_language";i:0;s:27:"shared_fields_original_only";i:1;}',
    ],
    [
      'name' => 'entity_translation_taxonomy',
      'value' => 'a:3:{s:6:"forums";b:1;s:4:"tags";b:1;s:4:"test";b:0;}',
    ],
    [
      'name' => 'language_content_type_article',
      'value' => 's:1:"2";',
    ],
    [
      'name' => 'language_content_type_forum',
      'value' => 's:1:"4";',
    ],
    [
      'name' => 'language_content_type_page',
      'value' => 's:1:"4";',
    ],
  ];

  // Source data when taxonomy terms are translatable but the
  // 'entity_translation_taxonomy' variable is not set.
  $tests[3]['source_data']['variable'] = [
    [
      'name' => 'entity_translation_entity_types',
      'value' => 'a:4:{s:7:"comment";i:0;s:4:"node";i:0;s:13:"taxonomy_term";i:1;s:4:"user";i:0;}',
    ],
  ];

  // Expected data when there's no entity type that uses entity translation.
  $tests[0]['expected_data'] = [];

  // Expected data when there's no bundle settings variables.
  $tests[1]['expected_data'] = [
    [
      'id' => 'node.forum',
      'target_entity_type_id' => 'node',
      'target_bundle' => 'forum',
      'default_langcode' => 'und',
      'language_alterable' => TRUE,
      'untranslatable_fields_hide' => FALSE,
    ],
    [
      'id' => 'node.page',
      'target_entity_type_id' => 'node',
      'target_bundle' => 'page',
      'default_langcode' => 'und',
      'language_alterable' => TRUE,
      'untranslatable_fields_hide' => FALSE,
    ],
    [
      'id' => 'comment.comment_forum',
      'target_entity_type_id' => 'comment',
      'target_bundle' => 'comment_forum',
      'default_langcode' => 'xx-et-current',
      'language_alterable' => FALSE,
      'untranslatable_fields_hide' => FALSE,
    ],
    [
      'id' => 'comment.comment_node_page',
      'target_entity_type_id' => 'comment',
      'target_bundle' => 'comment_node_page',
      'default_langcode' => 'xx-et-current',
      'language_alterable' => FALSE,
      'untranslatable_fields_hide' => FALSE,
    ],
    [
      'id' => 'taxonomy_term.forums',
      'target_entity_type_id' => 'taxonomy_term',
      'target_bundle' => 'forums',
      'default_langcode' => 'xx-et-default',
      'language_alterable' => FALSE,
      'untranslatable_fields_hide' => FALSE,
    ],
    [
      'id' => 'taxonomy_term.tags',
      'target_entity_type_id' => 'taxonomy_term',
      'target_bundle' => 'tags',
      'default_langcode' => 'xx-et-default',
      'language_alterable' => FALSE,
      'untranslatable_fields_hide' => FALSE,
    ],
    [
      'id' => 'user.user',
      'target_entity_type_id' => 'user',
      'target_bundle' => 'user',
      'default_langcode' => 'xx-et-default',
      'language_alterable' => FALSE,
      'untranslatable_fields_hide' => FALSE,
    ],
  ];

  // Expected data when there's bundle settings variables.
  $tests[2]['expected_data'] = [
    [
      'id' => 'node.forum',
      'target_entity_type_id' => 'node',
      'target_bundle' => 'forum',
      'default_langcode' => 'xx-et-author',
      'language_alterable' => TRUE,
      'untranslatable_fields_hide' => FALSE,
    ],
    [
      'id' => 'node.page',
      'target_entity_type_id' => 'node',
      'target_bundle' => 'page',
      'default_langcode' => 'xx-et-default',
      'language_alterable' => FALSE,
      'untranslatable_fields_hide' => TRUE,
    ],
    [
      'id' => 'comment.comment_forum',
      'target_entity_type_id' => 'comment',
      'target_bundle' => 'comment_forum',
      'default_langcode' => 'xx-et-author',
      'language_alterable' => FALSE,
      'untranslatable_fields_hide' => FALSE,
    ],
    [
      'id' => 'comment.comment_node_page',
      'target_entity_type_id' => 'comment',
      'target_bundle' => 'comment_node_page',
      'default_langcode' => 'xx-et-author',
      'language_alterable' => TRUE,
      'untranslatable_fields_hide' => TRUE,
    ],
    [
      'id' => 'taxonomy_term.forums',
      'target_entity_type_id' => 'taxonomy_term',
      'target_bundle' => 'forums',
      'default_langcode' => 'xx-et-current',
      'language_alterable' => TRUE,
      'untranslatable_fields_hide' => TRUE,
    ],
    [
      'id' => 'taxonomy_term.tags',
      'target_entity_type_id' => 'taxonomy_term',
      'target_bundle' => 'tags',
      'default_langcode' => 'xx-et-current',
      'language_alterable' => FALSE,
      'untranslatable_fields_hide' => FALSE,
    ],
    [
      'id' => 'user.user',
      'target_entity_type_id' => 'user',
      'target_bundle' => 'user',
      'default_langcode' => 'xx-et-author',
      'language_alterable' => FALSE,
      'untranslatable_fields_hide' => TRUE,
    ],
  ];

  // Expected data when taxonomy terms are translatable but the
  // 'entity_translation_taxonomy' variable is not set.
  $tests[3]['expected_data'] = [];
  return $tests;
}