diff --git a/core/modules/block/lib/Drupal/block/Tests/Views/DisplayBlockTest.php b/core/modules/block/lib/Drupal/block/Tests/Views/DisplayBlockTest.php
index fd9d254717f52390e31efbe0c0fe7aba4b932e06..1cee4b806a375d4481ab01cf38736577d6e3d13a 100644
--- a/core/modules/block/lib/Drupal/block/Tests/Views/DisplayBlockTest.php
+++ b/core/modules/block/lib/Drupal/block/Tests/Views/DisplayBlockTest.php
@@ -174,6 +174,19 @@ protected function testDeleteBlockDisplay() {
     $this->assertBlockAppears($block_4);
   }
 
+  /**
+   * Tests views block plugin definitions.
+   */
+  public function testViewsBlockPlugins() {
+    // Ensures that the cache setting gets to the block settings.
+    $instance = $this->container->get('plugin.manager.block')->createInstance('views_block:test_view_block2-block_2');
+    $configuration = $instance->getConfiguration();
+    $this->assertEqual($configuration['cache'], DRUPAL_NO_CACHE);
+    $instance = $this->container->get('plugin.manager.block')->createInstance('views_block:test_view_block2-block_3');
+    $configuration = $instance->getConfiguration();
+    $this->assertEqual($configuration['cache'], DRUPAL_CACHE_PER_USER);
+  }
+
   /**
    * Test the block form for a Views block.
    */
diff --git a/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block2.yml b/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block2.yml
index e693732ba5b98ed208abd9d3e4f3bc15abcf28d2..9b71048c49278b651b2b43b982ee773b6f50ad14 100644
--- a/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block2.yml
+++ b/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block2.yml
@@ -51,6 +51,16 @@ display:
       field:
         title:
           link_to_node: '1'
+  block_3:
+    display_plugin: block
+    id: block_3
+    display_title: Block
+    position: ''
+    display_options:
+      block_caching: '2'
+      field:
+        title:
+          link_to_node: '1'
 label: test_view_block2
 module: views
 id: test_view_block2
diff --git a/core/modules/views/lib/Drupal/views/Plugin/Block/ViewsBlock.php b/core/modules/views/lib/Drupal/views/Plugin/Block/ViewsBlock.php
index 4d521a9c9b3ad6d5227e100e7ca79d737466b221..0804b55b50b7395b62081b3d45683e7315330671 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/Block/ViewsBlock.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/Block/ViewsBlock.php
@@ -56,6 +56,11 @@ public function defaultConfiguration() {
       $settings += $this->view->display_handler->blockSettings($settings);
     }
 
+    // Set custom cache settings.
+    if (isset($this->pluginDefinition['cache'])) {
+      $settings['cache'] = $this->pluginDefinition['cache'];
+    }
+
     return $settings;
   }