diff --git a/core/modules/page_cache/src/Tests/PageCacheResponsePolicyTest.php b/core/modules/page_cache/src/Tests/PageCacheResponsePolicyTest.php
new file mode 100644
index 0000000..12984f9
--- /dev/null
+++ b/core/modules/page_cache/src/Tests/PageCacheResponsePolicyTest.php
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\page_cache\Tests\PageCacheTagsIntegrationTest.
+ */
+
+namespace Drupal\page_cache\Tests;
+
+use Drupal\Core\Language\LanguageInterface;
+use Drupal\simpletest\WebTestBase;
+use Drupal\system\Tests\Cache\AssertPageCacheContextsAndTagsTrait;
+
+/**
+ * Tests response policy related caching.
+ *
+ * @group Cache
+ */
+class PageCacheResponsePolicyTest extends WebTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('page_cache_response_policy_test');
+
+  /**
+   * Assert that PageCache middle ware doesn't cache pages denied by Response policy.
+   */
+  function testCacheVary() {
+    $this->drupalGet('page_cache_response_policy_test_vary');
+    $this->assertFalse($this->drupalGetHeader('X-Drupal-Cache'));
+    $this->drupalGet('page_cache_response_policy_test_vary');
+    $this->assertFalse($this->drupalGetHeader('X-Drupal-Cache'));
+  }
+}
diff --git a/core/modules/page_cache/tests/modules/page_cache_response_policy_test/page_cache_response_policy_test.info.yml b/core/modules/page_cache/tests/modules/page_cache_response_policy_test/page_cache_response_policy_test.info.yml
new file mode 100644
index 0000000..ba0224d
--- /dev/null
+++ b/core/modules/page_cache/tests/modules/page_cache_response_policy_test/page_cache_response_policy_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Page Cache Response Policy Test'
+type: module
+description: 'Test varied response policy results.'
+core: 8.x
+package: Testing
+version: VERSION
diff --git a/core/modules/page_cache/tests/modules/page_cache_response_policy_test/page_cache_response_policy_test.module b/core/modules/page_cache/tests/modules/page_cache_response_policy_test/page_cache_response_policy_test.module
new file mode 100644
index 0000000..4c2b8bb
--- /dev/null
+++ b/core/modules/page_cache/tests/modules/page_cache_response_policy_test/page_cache_response_policy_test.module
@@ -0,0 +1,7 @@
+<?php
+
+/**
+ * @file
+ * Provides functionality for testing request policy caching.
+ */
+
diff --git a/core/modules/page_cache/tests/modules/page_cache_response_policy_test/page_cache_response_policy_test.routing.yml b/core/modules/page_cache/tests/modules/page_cache_response_policy_test/page_cache_response_policy_test.routing.yml
new file mode 100644
index 0000000..a133cf5
--- /dev/null
+++ b/core/modules/page_cache/tests/modules/page_cache_response_policy_test/page_cache_response_policy_test.routing.yml
@@ -0,0 +1,6 @@
+page_cache_response_policy_test.test_accept_vary:
+  path: '/page_cache_response_policy_test_vary'
+  defaults:
+    _controller: '\Drupal\page_cache_response_policy_test\Controller\Vary::handle'
+  requirements:
+    _access: 'TRUE'
diff --git a/core/modules/page_cache/tests/modules/page_cache_response_policy_test/page_cache_response_policy_test.services.yml b/core/modules/page_cache/tests/modules/page_cache_response_policy_test/page_cache_response_policy_test.services.yml
new file mode 100644
index 0000000..861c641
--- /dev/null
+++ b/core/modules/page_cache/tests/modules/page_cache_response_policy_test/page_cache_response_policy_test.services.yml
@@ -0,0 +1,5 @@
+services:
+  page_cache_response_policy_vary:
+    class: Drupal\page_cache_response_policy_test\ResponsePolicy\VaryResponse
+    tags:
+      - { name: page_cache_response_policy }
diff --git a/core/modules/page_cache/tests/modules/page_cache_response_policy_test/src/Controller/Vary.php b/core/modules/page_cache/tests/modules/page_cache_response_policy_test/src/Controller/Vary.php
new file mode 100644
index 0000000..afa83fc
--- /dev/null
+++ b/core/modules/page_cache/tests/modules/page_cache_response_policy_test/src/Controller/Vary.php
@@ -0,0 +1,12 @@
+<?php
+
+namespace Drupal\page_cache_response_policy_test\Controller;
+
+use Symfony\Component\HttpFoundation\Response;
+
+class Vary {
+
+  public static function handle() {
+    return new Response('content', 200, array('Vary' => 'Accept'));
+  }
+}
diff --git a/core/modules/page_cache/tests/modules/page_cache_response_policy_test/src/ResponsePolicy/VaryResponse.php b/core/modules/page_cache/tests/modules/page_cache_response_policy_test/src/ResponsePolicy/VaryResponse.php
new file mode 100644
index 0000000..0a40703
--- /dev/null
+++ b/core/modules/page_cache/tests/modules/page_cache_response_policy_test/src/ResponsePolicy/VaryResponse.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\page_cache_response_policy_test\ResponsePolicy\VaryResponse.
+ */
+
+namespace Drupal\page_cache_response_policy_test\ResponsePolicy;
+
+use Drupal\Core\PageCache\ResponsePolicyInterface;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+
+/**
+ * Response subscriber to handle testing varied policy responses.
+ */
+class VaryResponse implements ResponsePolicyInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function check(Response $response, Request $request) {
+    if (in_array('Accept', $response->getVary())) {
+      return static::DENY;
+    }
+  }
+}
