CRM_Core_BAO_CacheTest - Unit test for CRM_Core_BAO_Cache::cleanKey
authorTim Otten <totten@civicrm.org>
Thu, 21 Jun 2018 23:19:37 +0000 (16:19 -0700)
committerTim Otten <totten@civicrm.org>
Wed, 27 Jun 2018 18:13:56 +0000 (11:13 -0700)
tests/phpunit/CRM/Core/BAO/CacheTest.php

index ac181236cb75888a18a02f7da6cf67cf49eca759..900b96dc17e0c1da2cb1a8b34567f87cfbe55b04 100644 (file)
@@ -82,4 +82,24 @@ class CRM_Core_BAO_CacheTest extends CiviUnitTestCase {
     $this->assertEquals($originalValue, $return_2);
   }
 
+  public function getCleanKeyExamples() {
+    $es = [];
+    $es[] = ['hello_world and other.planets', 'hello_world and other.planets']; // allowed chars
+    $es[] = ['hello/world+-#@{}', 'hello-2fworld-2b-2d-23-40-7b-7d']; // escaped chars
+    $es[] = ['123456789 123456789 123456789 123456789 123456789 123456789 123', '123456789 123456789 123456789 123456789 123456789 123456789 123']; // long but allowed
+    $es[] = ['123456789 123456789 123456789 123456789 123456789 123456789 1234', '-2a008e182a4dcd1a78f405f30119e5f2']; // too long, md5 fallback
+    $es[] = ['123456789 /23456789 +23456789 -23456789 123456789 123456789', '-1b6baab5961431ed443ab321f5dfa0fb']; // too long, md5 fallback
+    return $es;
+  }
+
+  /**
+   * @param $inputKey
+   * @param $expectKey
+   * @dataProvider getCleanKeyExamples
+   */
+  public function testCleanKeys($inputKey, $expectKey) {
+    $actualKey = CRM_Core_BAO_Cache::cleanKey($inputKey);
+    $this->assertEquals($expectKey, $actualKey);
+  }
+
 }