Test DrupalDatabaseCache::isValidBin().

File

modules/simpletest/tests/cache.test, line 346

Class

CacheClearCase
Test cache clearing methods.

Code

function testIsValidBin() {

  // Retrieve existing cache bins.
  $valid_bins = array(
    'cache',
    'cache_filter',
    'cache_page',
    'cache_boostrap',
    'cache_path',
  );
  $valid_bins = array_merge(module_invoke_all('flush_caches'), $valid_bins);
  foreach ($valid_bins as $id => $bin) {
    $cache = _cache_get_object($bin);
    if ($cache instanceof DrupalDatabaseCache) {
      $this
        ->assertTrue($cache
        ->isValidBin(), format_string('Cache bin @bin is valid.', array(
        '@bin' => $bin,
      )));
    }
  }

  // Check for non-cache tables and invalid bins.
  $invalid_bins = array(
    'block',
    'filter',
    'missing_table',
    $this
      ->randomName(),
  );
  foreach ($invalid_bins as $id => $bin) {
    $cache = _cache_get_object($bin);
    if ($cache instanceof DrupalDatabaseCache) {
      $this
        ->assertFalse($cache
        ->isValidBin(), format_string('Cache bin @bin is not valid.', array(
        '@bin' => $bin,
      )));
    }
  }
}