You are here

public function DomainConfTestCase::testCrudUtilities in Domain Access 7.3

Base test assertions for the CRUD layer in Domain Conf.

File

domain_conf/tests/domain_conf.test, line 30
Simpletest for Domain Conf. Written by @ndobromirov.

Class

DomainConfTestCase
@file Simpletest for Domain Conf. Written by @ndobromirov.

Code

public function testCrudUtilities() {

  // Init...
  $domain = domain_default();
  $domain_id = $domain['domain_id'];
  $reset = TRUE;
  $settings = domain_conf_data_get($domain_id, $reset);
  $this
    ->assertFalse(isset($settings['value_1']), t('Setting `value_1` is not set yet.'));
  $this
    ->assertFalse(isset($settings['value_2']), t('Setting `value_2` is not set yet.'));

  // Test settings additions.
  $settings['value_1'] = 1;
  $settings['value_2'] = 2;
  domain_conf_data_set($domain_id, $settings);
  $this
    ->assertCacheState($domain_id, $settings);
  $settings = domain_conf_data_get($domain_id, $reset);
  $this
    ->assertTrue(isset($settings['value_1']), t('Setting `value_1` is set.'));
  $this
    ->assertTrue(isset($settings['value_2']), t('Setting `value_2` is set.'));

  // Test override: Change, remove and add settings.
  $settings['value_1'] = 11;
  unset($settings['value_2']);
  $settings['value_3'] = 3;
  domain_conf_data_set($domain_id, $settings, FALSE);
  $this
    ->assertCacheState($domain_id, $settings);
  $this
    ->assertTrue(domain_conf_data_get($domain_id, $reset) == $settings, t('Data extracted is the same as data passed in when overriding.'));

  // Test merge settings: add / update only.
  $new_settings = $settings;
  $new_settings['value_1'] = 111;
  unset($new_settings['value_3']);
  $new_settings['value_4'] = 4;
  domain_conf_data_set($domain_id, $new_settings, TRUE);
  $settings = array_merge($settings, $new_settings);
  $this
    ->assertTrue(domain_conf_data_get($domain_id, $reset) == $settings, t('No settings deleted, just updated and added new ones.'));
  $this
    ->assertCacheState($domain_id, $settings);

  // Test domain conf removal.
  domain_conf_data_delete($domain_id);
  $this
    ->assertNoCache($domain_id);

  // Assert the cache of empty/default configs (to spare the DB query).
  $settings = domain_conf_data_get($domain_id, $reset);
  $this
    ->assertIdentical($settings, array(), t('No default overrides for domain :domain.', array(
    ':domain' => $domain_id,
  )));
  $this
    ->assertCacheState($domain_id, array());
}