Version 1
[yaffs-website] / web / core / tests / Drupal / Tests / Core / Cache / Context / PathParentCacheContextTest.php
diff --git a/web/core/tests/Drupal/Tests/Core/Cache/Context/PathParentCacheContextTest.php b/web/core/tests/Drupal/Tests/Core/Cache/Context/PathParentCacheContextTest.php
new file mode 100644 (file)
index 0000000..69120e2
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+
+namespace Drupal\Tests\Core\Cache\Context;
+
+use Drupal\Core\Cache\Context\PathParentCacheContext;
+use Drupal\Tests\UnitTestCase;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\RequestStack;
+
+/**
+ * @coversDefaultClass \Drupal\Core\Cache\Context\PathParentCacheContext
+ * @group Cache
+ */
+class PathParentCacheContextTest extends UnitTestCase {
+
+  /**
+   * @covers ::getContext
+   *
+   * @dataProvider providerTestGetContext
+   */
+  public function testGetContext($original_path, $context) {
+    $request_stack = new RequestStack();
+    $request = Request::create($original_path);
+    $request_stack->push($request);
+    $cache_context = new PathParentCacheContext($request_stack);
+    $this->assertSame($cache_context->getContext(), $context);
+  }
+
+  /**
+   * Provides a list of paths and expected cache contexts.
+   */
+  public function providerTestGetContext() {
+    return [
+      ['/some/path', 'some'],
+      ['/some/other-path', 'some'],
+      ['/some/other/path', 'some/other'],
+      ['/some/other/path?q=foo&b=bar', 'some/other'],
+      ['/some', ''],
+      ['/', ''],
+    ];
+  }
+
+}