diff --git a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTest.php b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTest.php
index 7d5e16e..41760ee 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTest.php
@@ -282,4 +282,21 @@ function testPreprocessHtml() {
     $this->assertText('theme test page bottom markup', 'Modules are able to set the page bottom region.');
   }
 
+  /**
+   * Tests that region attributes can be manipulated via preprocess functions.
+   */
+  function testRegionClass() {
+    \Drupal::moduleHandler()->install(array('system', 'block', 'theme_region_test'));
+    $this->drupalPlaceBlock('system_powered_by_block');
+
+    // Explicitly set the default and admin themes.
+    $theme = 'test_theme';
+    theme_enable(array($theme));
+    \Drupal::config('system.theme')->set('default', $theme)->save();
+    // Place a block.
+    $block = $this->drupalPlaceBlock('system_main_block');
+    \Drupal::service('router.builder')->rebuild();
+    $this->drupalGet('node/1');
+    $this->assertRaw('new_class', 'New class found.');
+  }
 }
diff --git a/core/modules/system/tests/modules/theme_region_test/theme_region_test.info.yml b/core/modules/system/tests/modules/theme_region_test/theme_region_test.info.yml
new file mode 100644
index 0000000..cc1a557
--- /dev/null
+++ b/core/modules/system/tests/modules/theme_region_test/theme_region_test.info.yml
@@ -0,0 +1,7 @@
+name: 'Theme region test'
+type: module
+description: 'Provides hook implementations for testing regions.'
+package: Testing
+version: VERSION
+core: 8.x
+hidden: true
diff --git a/core/modules/system/tests/modules/theme_region_test/theme_region_test.module b/core/modules/system/tests/modules/theme_region_test/theme_region_test.module
new file mode 100644
index 0000000..509c9e4
--- /dev/null
+++ b/core/modules/system/tests/modules/theme_region_test/theme_region_test.module
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * @file
+ * Provides System module hook implementations for testing purposes.
+ */
+
+/**
+ * Implements hook_preprocess_HOOK() for region templates.
+ */
+function theme_test_preprocess_region(&$variables) {
+  $variables['attributes']['class'][] = 'new_class';
+}
