Version 1
[yaffs-website] / web / core / modules / system / tests / src / Functional / Cache / CacheTestBase.php
diff --git a/web/core/modules/system/tests/src/Functional/Cache/CacheTestBase.php b/web/core/modules/system/tests/src/Functional/Cache/CacheTestBase.php
new file mode 100644 (file)
index 0000000..f1439ea
--- /dev/null
@@ -0,0 +1,86 @@
+<?php
+
+namespace Drupal\Tests\system\Functional\Cache;
+
+use Drupal\Tests\BrowserTestBase;
+
+/**
+ * Provides helper methods for cache tests.
+ */
+abstract class CacheTestBase extends BrowserTestBase {
+
+  protected $defaultBin = 'render';
+  protected $defaultCid = 'test_temporary';
+  protected $defaultValue = 'CacheTest';
+
+  /**
+   * Checks whether or not a cache entry exists.
+   *
+   * @param $cid
+   *   The cache id.
+   * @param $var
+   *   The variable the cache should contain.
+   * @param $bin
+   *   The bin the cache item was stored in.
+   * @return
+   *   TRUE on pass, FALSE on fail.
+   */
+  protected function checkCacheExists($cid, $var, $bin = NULL) {
+    if ($bin == NULL) {
+      $bin = $this->defaultBin;
+    }
+
+    $cached = \Drupal::cache($bin)->get($cid);
+
+    return isset($cached->data) && $cached->data == $var;
+  }
+
+  /**
+   * Asserts that a cache entry exists.
+   *
+   * @param $message
+   *   Message to display.
+   * @param $var
+   *   The variable the cache should contain.
+   * @param $cid
+   *   The cache id.
+   * @param $bin
+   *   The bin the cache item was stored in.
+   */
+  protected function assertCacheExists($message, $var = NULL, $cid = NULL, $bin = NULL) {
+    if ($bin == NULL) {
+      $bin = $this->defaultBin;
+    }
+    if ($cid == NULL) {
+      $cid = $this->defaultCid;
+    }
+    if ($var == NULL) {
+      $var = $this->defaultValue;
+    }
+
+    $this->assertTrue($this->checkCacheExists($cid, $var, $bin), $message);
+  }
+
+  /**
+   * Asserts that a cache entry has been removed.
+   *
+   * @param $message
+   *   Message to display.
+   * @param $cid
+   *   The cache id.
+   * @param $bin
+   *   The bin the cache item was stored in.
+   */
+  public function assertCacheRemoved($message, $cid = NULL, $bin = NULL) {
+    if ($bin == NULL) {
+      $bin = $this->defaultBin;
+    }
+    if ($cid == NULL) {
+      $cid = $this->defaultCid;
+    }
+
+    $cached = \Drupal::cache($bin)->get($cid);
+    $this->assertFalse($cached, $message);
+  }
+
+}