Beispiel #1
0
 public function testTagable()
 {
     if (!$this->_storage instanceof TaggableInterface) {
         $this->markTestSkipped("Storage doesn't implement TaggableInterface");
     }
     $this->assertSame(array(), $this->_storage->setItems(array('key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3')));
     $this->assertTrue($this->_storage->setTags('key1', array('tag1a', 'tag1b')));
     $this->assertTrue($this->_storage->setTags('key2', array('tag2a', 'tag2b')));
     $this->assertTrue($this->_storage->setTags('key3', array('tag3a', 'tag3b')));
     $this->assertFalse($this->_storage->setTags('missing', array('tag')));
     // return tags
     $tags = $this->_storage->getTags('key1');
     $this->assertInternalType('array', $tags);
     sort($tags);
     $this->assertSame(array('tag1a', 'tag1b'), $tags);
     // this should remove nothing
     $this->assertTrue($this->_storage->clearByTags(array('tag1a', 'tag2a')));
     $this->assertTrue($this->_storage->hasItem('key1'));
     $this->assertTrue($this->_storage->hasItem('key2'));
     $this->assertTrue($this->_storage->hasItem('key3'));
     // this should remove key1 and key2
     $this->assertTrue($this->_storage->clearByTags(array('tag1a', 'tag2b'), true));
     $this->assertFalse($this->_storage->hasItem('key1'));
     $this->assertFalse($this->_storage->hasItem('key2'));
     $this->assertTrue($this->_storage->hasItem('key3'));
     // this should remove key3
     $this->assertTrue($this->_storage->clearByTags(array('tag3a', 'tag3b'), true));
     $this->assertFalse($this->_storage->hasItem('key1'));
     $this->assertFalse($this->_storage->hasItem('key2'));
     $this->assertFalse($this->_storage->hasItem('key3'));
 }
 /**
  * @group 6878
  */
 public function testTaggableFunctionsOnEmptyStorage()
 {
     if (!$this->_storage instanceof TaggableInterface) {
         $this->markTestSkipped("Storage doesn't implement TaggableInterface");
     }
     $this->assertFalse($this->_storage->setTags('unknown', ['no']));
     $this->assertFalse($this->_storage->getTags('unknown'));
     $this->assertTrue($this->_storage->clearByTags(['unknown']));
 }
Beispiel #3
0
 /**
  * Returns the page item cache.
  *
  * @return array
  */
 public function getPageItemCache()
 {
     $data = array();
     if ($this->cacheEnabled()) {
         $prefixLength = strlen(self::CACHE_TAG_PREFIX);
         $cacheIterator = self::$cache->getIterator();
         $cacheIterator->setMode(CacheIterator::CURRENT_AS_VALUE);
         foreach ($cacheIterator as $key => $value) {
             $tags = self::$cache->getTags($key);
             if ($tags && in_array($this->_getCacheInternalId(), $tags)) {
                 if (substr($key, 0, $prefixLength) == self::CACHE_TAG_PREFIX) {
                     $data[(int) substr($key, $prefixLength)] = $value;
                 }
             }
         }
     }
     return $data;
 }