Version 1
[yaffs-website] / web / core / modules / language / tests / src / Unit / process / LanguageDomainsTest.php
diff --git a/web/core/modules/language/tests/src/Unit/process/LanguageDomainsTest.php b/web/core/modules/language/tests/src/Unit/process/LanguageDomainsTest.php
new file mode 100644 (file)
index 0000000..022fc4e
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+
+namespace Drupal\Tests\language\Unit\process;
+
+use Drupal\language\Plugin\migrate\process\LanguageDomains;
+use Drupal\Tests\migrate\Unit\process\MigrateProcessTestCase;
+
+/**
+ * @coversDefaultClass \Drupal\language\Plugin\migrate\process\LanguageDomains
+ * @group language
+ */
+class LanguageDomainsTest extends MigrateProcessTestCase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected $backupGlobalsBlacklist = ['base_url'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    $configuration = [
+      'key' => 'language',
+      'value' => 'domain',
+    ];
+    $this->plugin = new LanguageDomains($configuration, 'map', []);
+    parent::setUp();
+
+    // The language_domains plugin calls getSourceProperty() to check if domain
+    // negotiation is used. If it is the values will be processed so we need it
+    // to return TRUE to be able to test the process.
+    $this->row->expects($this->once())
+      ->method('getSourceProperty')
+      ->will($this->returnValue(TRUE));
+
+    // The language_domains plugin use $base_url to fill empty domains.
+    global $base_url;
+    $base_url = 'http://example.com';
+  }
+
+  /**
+   * @covers ::transform
+   */
+  public function testTransform() {
+    $source = [
+      ['language' => 'en', 'domain' => ''],
+      ['language' => 'fr', 'domain' => 'fr.example.com'],
+      ['language' => 'es', 'domain' => 'http://es.example.com'],
+      ['language' => 'hu', 'domain' => 'https://hu.example.com'],
+    ];
+    $expected = [
+      'en' => 'example.com',
+      'fr' => 'fr.example.com',
+      'es' => 'es.example.com',
+      'hu' => 'hu.example.com',
+    ];
+    $value = $this->plugin->transform($source, $this->migrateExecutable, $this->row, 'destinationproperty');
+    $this->assertSame($value, $expected);
+  }
+
+}