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..aae5fd1 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,16 @@ 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');
+
+    // Place a block.
+    $this->drupalPlaceBlock('system_main_block');
+    $this->drupalGet('');
+    $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..0cf5fe3
--- /dev/null
+++ b/core/modules/system/tests/modules/theme_region_test/theme_region_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Theme region test'
+type: module
+description: 'Provides hook implementations for testing regions.'
+package: Testing
+version: VERSION
+core: 8.x
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..c69cbe2
--- /dev/null
+++ b/core/modules/system/tests/modules/theme_region_test/theme_region_test.module
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * @file
+ * Provides hook implementations for testing purposes.
+ */
+
+/**
+ * Implements hook_preprocess_HOOK() for region templates.
+ */
+function theme_region_test_preprocess_region(&$variables) {
+  $variables['attributes']['class'][] = 'new_class';
+}
