supercache-2.0.x-dev/src/Tests/Generic/Cache/BackendClearTests.php

src/Tests/Generic/Cache/BackendClearTests.php
<?php

namespace Drupal\supercache\Tests\Generic\Cache;

use Drupal\Core\Cache\CacheBackendInterface;

use Drupal\Component\Utility\Unicode;
use Drupal\KernelTests\KernelTestBase;
use Drupal\Component\Render\FormattableMarkup;
use Drupal\Core\Database\Database;

use Drupal\Core\Site\Settings;

/**
 * Testea funciones basicas.
 *
 * @group Cache
 */
abstract class BackendClearTests extends BackendGeneralTestCase {

  /**
   * Test clearing using a cid.
   */
  public function testClearCid() {
    $this->backend->set('test_cid_clear', $this->defaultvalue, CacheBackendInterface::CACHE_PERMANENT);
    $this->assertExists('Cache was set for clearing cid.', $this->defaultvalue, 'test_cid_clear');

    $this->backend->delete('test_cid_clear');
    $this->assertRemoved('Item was removed after clearing cid.', 'test_cid_clear');

    $this->backend->set('test_cid_clear1', $this->defaultvalue, CacheBackendInterface::CACHE_PERMANENT);
    $this->backend->set('test_cid_clear2', $this->defaultvalue, CacheBackendInterface::CACHE_PERMANENT);
    $this->assertTrue($this->checkExists('test_cid_clear1', $this->defaultvalue)
                      && $this->checkExists('test_cid_clear2', $this->defaultvalue),
                      'Two caches were created for checking cid "*" with wildcard false.');
  }

  /**
   * Test clearing using an array.
   */
  public function testClearArray() {
    // Create three cache entries.
    $this->backend->set('test_cid_clear1', $this->defaultvalue);
    $this->backend->set('test_cid_clear2', $this->defaultvalue);
    $this->backend->set('test_cid_clear3', $this->defaultvalue);

    $this->assertTrue($this->checkExists('test_cid_clear1', $this->defaultvalue)
                      && $this->checkExists('test_cid_clear2', $this->defaultvalue)
                      && $this->checkExists('test_cid_clear3', $this->defaultvalue),
                      'Three cache entries were created.');

    // Clear two entries using an array.
    $this->backend->deleteMultiple(array('test_cid_clear1', 'test_cid_clear2'));
    $this->assertFalse($this->checkExists('test_cid_clear1', $this->defaultvalue)
                       || $this->checkExists('test_cid_clear2', $this->defaultvalue),
                       'Two cache entries removed after clearing with an array.');

    $this->assertTrue($this->checkExists('test_cid_clear3', $this->defaultvalue),
                      'Entry was not cleared from the cache');

    $this->backend->set('test_cid_clear1', $this->defaultvalue);
    $this->backend->set('test_cid_clear2', $this->defaultvalue);
    $this->assertTrue($this->checkExists('test_cid_clear1', $this->defaultvalue)
                      && $this->checkExists('test_cid_clear2', $this->defaultvalue),
                      'Two cache entries were created.');

    $this->backend->deleteMultiple(
      array('test_cid_clear1', 'test_cid_clear2', 'test_cid_clear3')
    );

    $this->assertFalse($this->checkExists('test_cid_clear1', $this->defaultvalue)
                       || $this->checkExists('test_cid_clear2', $this->defaultvalue)
                       || $this->checkExists('test_cid_clear3', $this->defaultvalue),
                       'All cache entries removed when the array exceeded the cache clear threshold.');
  }

  /**
   * Test clears and that there is no leakage
   * between binaries.
   */
  public function testClearAll() {

    $this->backend->set('item1', $this->defaultvalue);
    $this->backend->set('item2', $this->defaultvalue);

    $this->assertExists('ItemExists', $this->defaultvalue, 'item1');
    $this->assertExists('ItemExists', $this->defaultvalue, 'item2');

    $this->assertRemoved('Does not exist', 'item1', $this->backend2);
    $this->assertRemoved('Does not exist', 'item2', $this->backend2);

    $this->backend2->set('item1', $this->defaultvalue);
    $this->backend2->set('item2', $this->defaultvalue);

    $this->assertExists('ItemExists', $this->defaultvalue, 'item1', $this->backend2);
    $this->assertExists('ItemExists', $this->defaultvalue, 'item2', $this->backend2);

    $this->backend->removeBin();

    $this->assertRemoved('Does not exist', 'item1', $this->backend);
    $this->assertRemoved('Does not exist', 'item2', $this->backend);

    $this->assertExists('ItemExists', $this->defaultvalue, 'item1', $this->backend2);
    $this->assertExists('ItemExists', $this->defaultvalue, 'item2', $this->backend2);

    $this->backend2->removeBin();

    $this->assertRemoved('Does not exist', 'item1', $this->backend2);
    $this->assertRemoved('Does not exist', 'item2', $this->backend2);

    $this->backend2->set('item1', $this->defaultvalue);
    $this->backend2->set('item2', $this->defaultvalue);

    $this->assertExists('ItemExists', $this->defaultvalue, 'item1', $this->backend2);
    $this->assertExists('ItemExists', $this->defaultvalue, 'item2', $this->backend2);

    $this->backend2->deleteAll();

    $this->assertRemoved('Does not exist', 'item1', $this->backend2);
    $this->assertRemoved('Does not exist', 'item2', $this->backend2);
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc