Version 1
[yaffs-website] / web / core / modules / system / tests / src / Kernel / Migrate / d7 / MigrateSystemConfigurationTest.php
diff --git a/web/core/modules/system/tests/src/Kernel/Migrate/d7/MigrateSystemConfigurationTest.php b/web/core/modules/system/tests/src/Kernel/Migrate/d7/MigrateSystemConfigurationTest.php
new file mode 100644 (file)
index 0000000..22e9ba7
--- /dev/null
@@ -0,0 +1,170 @@
+<?php
+
+namespace Drupal\Tests\system\Kernel\Migrate\d7;
+
+use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
+
+/**
+ * Migrates various configuration objects owned by the System module.
+ *
+ * @group migrate_drupal_7
+ */
+class MigrateSystemConfigurationTest extends MigrateDrupal7TestBase {
+
+  public static $modules = ['action', 'file', 'system'];
+
+  protected $expectedConfig = [
+    'system.authorize' => [
+      'filetransfer_default' => 'ftp',
+    ],
+    'system.cron' => [
+      'threshold' => [
+        // autorun is not handled by the migration.
+        // 'autorun' => 0,
+        'requirements_warning' => 172800,
+        'requirements_error' => 1209600,
+      ],
+      'logging' => 1,
+    ],
+    'system.date' => [
+      'country' => [
+        'default' => 'US',
+      ],
+      'first_day' => 1,
+      'timezone' => [
+        'default' => 'America/Chicago',
+        'user' => [
+          'configurable' => TRUE,
+          'warn' => TRUE,
+          // DRUPAL_USER_TIMEZONE_SELECT (D7 API)
+          'default' => 2,
+        ],
+      ],
+    ],
+    'system.file' => [
+      'allow_insecure_uploads' => TRUE,
+      // default_scheme is not handled by the migration.
+      'default_scheme' => 'public',
+      'path' => [
+        'temporary' => '/tmp',
+      ],
+      // temporary_maximum_age is not handled by the migration.
+      'temporary_maximum_age' => 21600,
+    ],
+    'system.image.gd' => [
+      'jpeg_quality' => 80,
+    ],
+    'system.image' => [
+      'toolkit' => 'gd',
+    ],
+    'system.logging' => [
+      'error_level' => 'some',
+    ],
+    'system.mail' => [
+      'interface' => [
+        'default' => 'php_mail',
+      ],
+    ],
+    'system.maintenance' => [
+      'message' => 'This is a custom maintenance mode message.',
+      // langcode is not handled by the migration.
+      'langcode' => 'en',
+    ],
+    'system.performance' => [
+      'cache' => [
+        'page' => [
+          'max_age' => 300,
+        ],
+      ],
+      'css' => [
+        'preprocess' => TRUE,
+        // gzip is not handled by the migration.
+        'gzip' => TRUE,
+      ],
+      // fast_404 is not handled by the migration.
+      'fast_404' => [
+        'enabled' => TRUE,
+        'paths' => '/\.(?:txt|png|gif|jpe?g|css|js|ico|swf|flv|cgi|bat|pl|dll|exe|asp)$/i',
+        'exclude_paths' => '/\/(?:styles|imagecache)\//',
+        'html' => '<!DOCTYPE html><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL "@path" was not found on this server.</p></body></html>',
+      ],
+      'js' => [
+        'preprocess' => FALSE,
+        // gzip is not handled by the migration.
+        'gzip' => TRUE,
+      ],
+      // stale_file_threshold is not handled by the migration.
+      'stale_file_threshold' => 2592000,
+      'response' => [
+        'gzip' => TRUE,
+      ],
+    ],
+    'system.rss' => [
+      'channel' => [
+        'description' => '',
+      ],
+      'items' => [
+        'limit' => 27,
+        'view_mode' => 'fulltext',
+      ],
+      'langcode' => 'en',
+    ],
+    'system.site' => [
+      // uuid is not handled by the migration.
+      'uuid' => '',
+      'name' => 'The Site Name',
+      'mail' => 'joseph@flattandsons.com',
+      'slogan' => 'The Slogan',
+      'page' => [
+        '403' => '/node',
+        '404' => '/node',
+        'front' => '/node',
+      ],
+      'admin_compact_mode' => TRUE,
+      'weight_select_max' => 40,
+      // langcode and default_langcode are not handled by the migration.
+      'langcode' => 'en',
+      'default_langcode' => 'en',
+    ],
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $migrations = [
+      'd7_system_authorize',
+      'd7_system_cron',
+      'd7_system_date',
+      'd7_system_file',
+      'system_image_gd',
+      'system_image',
+      'system_logging',
+      'd7_system_mail',
+      'system_maintenance',
+      'd7_system_performance',
+      'system_rss',
+      'system_site',
+    ];
+    $this->executeMigrations($migrations);
+  }
+
+  /**
+   * Tests that all expected configuration gets migrated.
+   */
+  public function testConfigurationMigration() {
+    foreach ($this->expectedConfig as $config_id => $values) {
+      if ($config_id == 'system.mail') {
+        $actual = \Drupal::config($config_id)->getRawData();
+      }
+      else {
+        $actual = \Drupal::config($config_id)->get();
+      }
+      unset($actual['_core']);
+      $this->assertSame($actual, $values, $config_id . ' matches expected values.');
+    }
+  }
+
+}