summaryrefslogtreecommitdiff
path: root/sites/all/modules/ctools/tests/object_cache.test
blob: 8791d7e706fe276a95e46dd0f302b9342e5e4783 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
/**
 * @file
 * Tests for different parts of the ctools object caching system.
 */

/**
 * Test object cache storage.
 */
class CtoolsObjectCache extends DrupalWebTestCase {
  public static function getInfo() {
    return array(
      'name' => 'Ctools object cache storage',
      'description' => 'Verify that objects are written, readable and lockable.',
      'group' => 'Chaos Tools Suite',
    );
  }

  public function setUp() {
    // Additionally enable ctools module.
    parent::setUp('ctools');
  }

  public function testObjectStorage() {
    $account1 = $this->drupalCreateUser(array());
    $this->drupalLogin($account1);

    $data = array(
      'test1' => 'foobar',
    );

    ctools_include('object-cache');
    ctools_object_cache_set('testdata', 'one', $data);
    $this->assertEqual($data, ctools_object_cache_get('testdata', 'one'), 'Object cache data successfully stored');

    // TODO Test object locking somehow.
    // Object locking/testing works on session_id but simpletest uses
    // $this->session_id so can't be tested ATM.

    ctools_object_cache_clear('testdata', 'one');
    $this->assertFalse(ctools_object_cache_get('testdata', 'one'), 'Object cache data successfully cleared');

    // TODO Test ctools_object_cache_clear_all somehow...
    // ctools_object_cache_clear_all requires session_id funtionality as well.
  }
}