View source
<?php
class CtoolsExportCrudTestCase extends DrupalWebTestCase {
public static function getInfo() {
return array(
'name' => 'Export CRUD',
'description' => 'Test the CRUD functionality for the ctools export system.',
'group' => 'ctools',
);
}
public function setUp(array $modules = array()) {
$modules[] = 'ctools';
$modules[] = 'ctools_export_test';
parent::setUp($modules);
}
public function testCrudExportLoad() {
$loaded_export = ctools_export_crud_load('ctools_export_test', 'database_test');
$expected_export = new stdClass();
$expected_export->machine = 'database_test';
$expected_export->title = 'Database test';
$expected_export->number = 0;
$expected_export->data = array(
'test_1' => 'Test 1',
'test_2' => 'Test 2',
);
$expected_export->table = 'ctools_export_test';
$expected_export->export_type = EXPORT_IN_DATABASE;
$expected_export->type = 'Normal';
$this
->assertEqual($expected_export, $loaded_export, 'An exportable object has been loaded correctly from the database.');
}
public function testCrudExportLoadMultiple() {
$exportable_names = array(
'database_test',
'overridden_test',
'default_test',
);
$loaded_exports = ctools_export_crud_load_multiple('ctools_export_test', $exportable_names);
$this
->assertEqual(count($loaded_exports), 3, 'All exportables have been loaded.');
}
public function testCrudExportLoadAll() {
$loaded_exports = ctools_export_crud_load_all('ctools_export_test');
$this
->assertEqual(count($loaded_exports), 3, 'All exportables have been loaded.');
}
public function testCrudExportSave() {
$default_export = ctools_export_crud_load('ctools_export_test', 'default_test');
$this
->assertTrue($default_export->in_code_only, 'The loaded exportable is in code only.');
ctools_export_crud_save('ctools_export_test', $default_export);
ctools_export_load_object_reset('ctools_export_test');
$overridden_export = ctools_export_crud_load('ctools_export_test', 'default_test');
$this
->assertTrue($overridden_export->export_type === 3, 'The loaded exportable is overridden in the database.');
}
public function testCrudExportNew() {
$new_export = ctools_export_crud_new('ctools_export_test');
$expected_export = new stdClass();
$expected_export->machine = '';
$expected_export->title = '';
$expected_export->number = 0;
$expected_export->data = NULL;
$expected_export->export_type = NULL;
$expected_export->type = 'Local';
$this
->assertEqual($expected_export, $new_export, 'An exportable with default values is created.');
$new_export = ctools_export_crud_new('ctools_export_test', FALSE);
$expected_export = new stdClass();
$expected_export->machine = '';
$expected_export->title = '';
$expected_export->number = NULL;
$expected_export->data = NULL;
$this
->assertEqual($expected_export, $new_export, 'An exportable without default values has been created.');
}
public function testCrudExportRevert() {
$original_export = ctools_export_crud_load('ctools_export_test', 'overridden_test');
$this
->assertTrue($original_export->export_type === 3, 'Loaded export is overridden.');
$machine = $original_export->machine;
ctools_export_crud_delete('ctools_export_test', $original_export);
$result = db_query("SELECT machine FROM {ctools_export_test} WHERE machine = :machine", array(
':machine' => $machine,
))
->fetchField();
$this
->assertFalse($result, 'The exportable object has been removed from the database.');
ctools_export_load_object_reset('ctools_export_test');
$default_export = ctools_export_crud_load('ctools_export_test', 'overridden_test');
$this
->assertTrue($default_export->in_code_only, 'The loaded exportable is in the database only.');
$this
->assertEqual($original_export->machine, $default_export->machine, 'The default exportable has been loaded and matches the overridden exportable.');
}
public function testCrudExportDelete() {
$new_export = ctools_export_crud_new('ctools_export_test');
ctools_export_crud_save('ctools_export_test', $new_export);
$machine = $new_export->machine;
ctools_export_crud_delete('ctools_export_test', $new_export);
$result = ctools_export_crud_load('ctools_export_test', $machine);
$this
->assertFalse($result, 'The new exportable has been removed from the database.');
$database_export = ctools_export_crud_load('ctools_export_test', 'database_test');
$machine = $database_export->machine;
ctools_export_crud_delete('ctools_export_test', $database_export);
ctools_export_load_object_reset('ctools_export_test');
$result = ctools_export_crud_load('ctools_export_test', $machine);
$this
->assertFalse($result, 'The database exportable has been removed from the database.');
}
public function testCrudExportSetStatus() {
$database_export = ctools_export_crud_load('ctools_export_test', 'database_test');
ctools_export_crud_disable('ctools_export_test', $database_export);
ctools_export_load_object_reset('ctools_export_test');
$disabled_export = ctools_export_crud_load('ctools_export_test', 'database_test');
$this
->assertTrue($disabled_export->disabled, 'The database only exportable has been disabled.');
ctools_export_crud_enable('ctools_export_test', $disabled_export);
ctools_export_load_object_reset('ctools_export_test');
$enabled_export = ctools_export_crud_load('ctools_export_test', 'database_test');
$this
->assertTrue(empty($enabled_export->disabled), 'The database only exportable has been enabled.');
$overridden_export = ctools_export_crud_load('ctools_export_test', 'overridden_test');
ctools_export_crud_disable('ctools_export_test', $overridden_export);
ctools_export_load_object_reset('ctools_export_test');
$disabled_export = ctools_export_crud_load('ctools_export_test', 'overridden_test');
$this
->assertTrue($disabled_export->disabled, 'The overridden exportable has been disabled.');
ctools_export_crud_enable('ctools_export_test', $disabled_export);
ctools_export_load_object_reset('ctools_export_test');
$enabled_export = ctools_export_crud_load('ctools_export_test', 'overridden_test');
$this
->assertTrue(empty($enabled_export->disabled), 'The overridden exportable has been enabled.');
$default_export = ctools_export_crud_load('ctools_export_test', 'default_test');
ctools_export_crud_disable('ctools_export_test', $default_export);
ctools_export_load_object_reset('ctools_export_test');
$disabled_export = ctools_export_crud_load('ctools_export_test', 'default_test');
$this
->assertTrue($disabled_export->disabled, 'The default exportable has been disabled.');
ctools_export_crud_enable('ctools_export_test', $disabled_export);
ctools_export_load_object_reset('ctools_export_test');
$enabled_export = ctools_export_crud_load('ctools_export_test', 'default_test');
$this
->assertTrue(empty($enabled_export->disabled), 'The default exportable has been enabled.');
}
}