Projet

Général

Profil

Paste
Télécharger (7,96 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / ctools / tests / ctools_export_test / ctools_export.test @ 1e39edcb

1
<?php
2

    
3
/**
4
 * @file
5
 * Tests for the CTools export system.
6
 */
7

    
8
/**
9
 * Tests export CRUD.
10
 */
11
class CtoolsExportCrudTestCase extends DrupalWebTestCase {
12

    
13
  public static function getInfo() {
14
    return array(
15
      'name' => 'CTools export CRUD tests',
16
      'description' => 'Test the CRUD functionality for the ctools export system.',
17
      'group' => 'ctools',
18
    );
19
  }
20

    
21
  protected function setUp() {
22
    parent::setUp('ctools_export_test');
23
    $this->resetAll();
24
  }
25

    
26
  /**
27
   * Tests CRUD operation: Load.
28
   */
29
  function testCrudExportLoad() {
30
    $loaded_export = ctools_export_crud_load('ctools_export_test', 'database_test');
31

    
32
    $expected_export = new stdClass();
33
    $expected_export->machine = 'database_test';
34
    $expected_export->title = 'Database test';
35
    $expected_export->number = 0;
36
    $expected_export->data = array(
37
      'test_1' => 'Test 1',
38
      'test_2' => 'Test 2',
39
    );
40
    $expected_export->table = 'ctools_export_test';
41
    $expected_export->export_type = EXPORT_IN_DATABASE;
42
    $expected_export->type = 'Normal';
43

    
44
    $this->assertEqual($expected_export, $loaded_export, 'An exportable object has been loaded correctly from the database.');
45
  }
46

    
47
  /**
48
   * Tests CRUD operation: Load multiple.
49
   */
50
  function testCrudExportLoadMultiple() {
51
    $exportable_names = array('database_test', 'overridden_test', 'default_test');
52
    $loaded_exports = ctools_export_crud_load_multiple('ctools_export_test', $exportable_names);
53

    
54
    $this->assertEqual(count($loaded_exports), 3, 'All exportables have been loaded.');
55
  }
56

    
57
  /**
58
   * Tests CRUD operation: Load all.
59
   */
60
  function testCrudExportLoadAll() {
61
    $loaded_exports = ctools_export_crud_load_all('ctools_export_test');
62

    
63
    $this->assertEqual(count($loaded_exports), 3, 'All exportables have been loaded.');
64
  }
65

    
66
  /**
67
   * Tests CRUD operation: Save.
68
   */
69
  function testCrudExportSave() {
70
    $default_export = ctools_export_crud_load('ctools_export_test', 'default_test');
71

    
72
    $this->assertTrue($default_export->in_code_only,'The loaded exportable is in code only.');
73

    
74
    ctools_export_crud_save('ctools_export_test', $default_export);
75

    
76
    // Clear the static cache.
77
    ctools_export_load_object_reset('ctools_export_test');
78

    
79
    $overridden_export = ctools_export_crud_load('ctools_export_test', 'default_test');
80

    
81
    $this->assertTrue($overridden_export->export_type === 3, 'The loaded exportable is overridden in the database.');
82
  }
83

    
84
  /**
85
   * Tests CRUD operation: New.
86
   */
87
  function testCrudExportNew() {
88
    // Default exportable with defualt values.
89
    $new_export = ctools_export_crud_new('ctools_export_test');
90

    
91
    $expected_export = new stdClass();
92
    $expected_export->machine = '';
93
    $expected_export->title = '';
94
    $expected_export->number = 0;
95
    $expected_export->data = NULL;
96
    $expected_export->export_type = NULL;
97
    $expected_export->type = 'Local';
98

    
99
    $this->assertEqual($expected_export, $new_export, 'An exportable with default values is created.');
100

    
101
    // Default exportable without default values.
102
    $new_export = ctools_export_crud_new('ctools_export_test', FALSE);
103

    
104
    $expected_export = new stdClass();
105
    $expected_export->machine = '';
106
    $expected_export->title = '';
107
    $expected_export->number = NULL;
108
    $expected_export->data = NULL;
109

    
110
    $this->assertEqual($expected_export, $new_export, 'An exportable without default values has been created.');
111
  }
112

    
113
  /**
114
   * Tests CRUD operation: Revert.
115
   */
116
  function testCrudExportRevert() {
117
    // Load exportable, will come from database.
118
    $original_export = ctools_export_crud_load('ctools_export_test', 'overridden_test');
119

    
120
    $this->assertTrue($original_export->export_type === 3, 'Loaded export is overridden.');
121

    
122
    $machine = $original_export->machine;
123
    ctools_export_crud_delete('ctools_export_test', $original_export);
124

    
125
    $result = db_query("SELECT machine FROM {ctools_export_test} WHERE machine = :machine", array(':machine' => $machine))->fetchField();
126

    
127
    $this->assertFalse($result, 'The exportable object has been removed from the database.');
128

    
129
    // Clear the static cache.
130
    ctools_export_load_object_reset('ctools_export_test');
131

    
132
    // Reload the same object.
133
    $default_export = ctools_export_crud_load('ctools_export_test', 'overridden_test');
134

    
135
    // Check the exportable is now in_code_only.
136
    $this->assertTrue($default_export->in_code_only, 'The loaded exportable is in the database only.');
137

    
138
    // Make sure the default object loaded matches the same overridden one in the database.
139
    $this->assertEqual($original_export->machine, $default_export->machine, 'The default exportable has been loaded and matches the overridden exportable.');
140
  }
141

    
142
  /**
143
   * Tests CRUD operation: Delete.
144
   */
145
  function testCrudExportDelete() {
146
    // Create a stub entry save it and delete it from the database.
147
    $new_export = ctools_export_crud_new('ctools_export_test');
148
    ctools_export_crud_save('ctools_export_test', $new_export);
149

    
150
    $machine = $new_export->machine;
151
    ctools_export_crud_delete('ctools_export_test', $new_export);
152
    $result = ctools_export_crud_load('ctools_export_test', $machine);
153

    
154
    $this->assertFalse($result, 'The new exportable has been removed from the database.');
155

    
156
    // Load the database only exportable.
157
    $database_export = ctools_export_crud_load('ctools_export_test', 'database_test');
158

    
159
    $machine = $database_export->machine;
160
    ctools_export_crud_delete('ctools_export_test', $database_export);
161
    // Clear the exportable caches as it's been loaded above.
162
    ctools_export_load_object_reset('ctools_export_test');
163
    $result = ctools_export_crud_load('ctools_export_test', $machine);
164

    
165
    $this->assertFalse($result, 'The database exportable has been removed from the database.');
166
  }
167

    
168
  /**
169
   * Tests CRUD operation: Set status.
170
   */
171
  function testCrudExportSetStatus() {
172
    // Database only object.
173
    $database_export = ctools_export_crud_load('ctools_export_test', 'database_test');
174
    ctools_export_crud_disable('ctools_export_test', $database_export);
175
    ctools_export_load_object_reset('ctools_export_test');
176
    $disabled_export = ctools_export_crud_load('ctools_export_test', 'database_test');
177

    
178
    $this->assertTrue($disabled_export->disabled, 'The database only exportable has been disabled.');
179

    
180
    ctools_export_crud_enable('ctools_export_test', $disabled_export);
181
    ctools_export_load_object_reset('ctools_export_test');
182
    $enabled_export = ctools_export_crud_load('ctools_export_test', 'database_test');
183

    
184
    $this->assertTrue(empty($enabled_export->disabled), 'The database only exportable has been enabled.');
185

    
186
    // Overridden object.
187
    $overridden_export = ctools_export_crud_load('ctools_export_test', 'overridden_test');
188
    ctools_export_crud_disable('ctools_export_test', $overridden_export);
189
    ctools_export_load_object_reset('ctools_export_test');
190
    $disabled_export = ctools_export_crud_load('ctools_export_test', 'overridden_test');
191

    
192
    $this->assertTrue($disabled_export->disabled, 'The overridden exportable has been disabled.');
193

    
194
    ctools_export_crud_enable('ctools_export_test', $disabled_export);
195
    ctools_export_load_object_reset('ctools_export_test');
196
    $enabled_export = ctools_export_crud_load('ctools_export_test', 'overridden_test');
197

    
198
    $this->assertTrue(empty($enabled_export->disabled), 'The overridden exportable has been enabled.');
199

    
200
    // Default object.
201
    $default_export = ctools_export_crud_load('ctools_export_test', 'default_test');
202
    ctools_export_crud_disable('ctools_export_test', $default_export);
203
    ctools_export_load_object_reset('ctools_export_test');
204
    $disabled_export = ctools_export_crud_load('ctools_export_test', 'default_test');
205

    
206
    $this->assertTrue($disabled_export->disabled, 'The default exportable has been disabled.');
207

    
208
    ctools_export_crud_enable('ctools_export_test', $disabled_export);
209
    ctools_export_load_object_reset('ctools_export_test');
210
    $enabled_export = ctools_export_crud_load('ctools_export_test', 'default_test');
211

    
212
    $this->assertTrue(empty($enabled_export->disabled), 'The default exportable has been enabled.');
213
  }
214

    
215
}