diff options
Diffstat (limited to 'modules/simpletest/tests/image_test.module')
-rw-r--r-- | modules/simpletest/tests/image_test.module | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/modules/simpletest/tests/image_test.module b/modules/simpletest/tests/image_test.module new file mode 100644 index 000000000..07f59461d --- /dev/null +++ b/modules/simpletest/tests/image_test.module @@ -0,0 +1,121 @@ +<?php +// $Id$ + +/** + * @file + * Helper module for the image tests. + */ + +/** + * Implementation of hook_image_toolkits(). + */ +function image_test_image_toolkits() { + return array( + 'test' => array( + 'title' => t('A dummy toolkit that works'), + 'available' => TRUE, + ), + 'broken' => array( + 'title' => t('A dummy toolkit that is "broken"'), + 'available' => FALSE, + ), + ); +} + +/** + * Reset/initialize the history of calls to the toolkit functions. + * + * @see image_test_get_all_calls(). + */ +function image_test_reset() { + // Keep track of calls to these operations + $results = array( + 'load' => array(), + 'save' => array(), + 'settings' => array(), + 'resize' => array(), + 'crop' => array(), + 'desaturate' => array(), + ); + variable_set('image_test_results', $results); +} + +/** + * Get an array with the all the calls to the toolkits since image_test_reset() + * was called. + * + * @return + * An array keyed by operation name ('load', 'save', 'settings', 'resize', + * 'crop', 'desaturate') with values being arrays of parameters passed to + * each call. + */ +function image_test_get_all_calls() { + return variable_get('image_test_results', array()); +} + +/** + * Store the values passed to a toolkit call. + * + * @param $op + * One of the image toolkit operations: 'load', 'save', 'settings', 'resize', + * 'crop', 'desaturate'. + * @param $args + * Values passed to hook. + * @see image_test_get_all_calls() + * @see image_test_reset() + */ +function _image_test_log_call($op, $args) { + $results = variable_get('image_test_results', array()); + $results[$op][] = $args; + variable_set('image_test_results', $results); +} + +/** + * Image tookit's settings operation. + */ +function image_test_settings() { + _image_test_log_call('settings', array()); + return array(); +} + +/** + * Image tookit's load operation. + */ +function image_test_load(stdClass $image) { + _image_test_log_call('load', array($image)); + return $image; +} + +/** + * Image tookit's save operation. + */ +function image_test_save(stdClass $image, $destination) { + _image_test_log_call('save', array($image, $destination)); + // Return false so that image_save() doesn't try to chmod the destination + // file that we didn't bother to create. + return FALSE; +} + +/** + * Image tookit's crop operation. + */ +function image_test_crop(stdClass $image, $x, $y, $width, $height) { + _image_test_log_call('crop', array($image, $x, $y, $width, $height)); + return TRUE; +} + +/** + * Image tookit's resize operation. + */ +function image_test_resize(stdClass $image, $width, $height) { + _image_test_log_call('resize', array($image, $width, $height)); + return TRUE; +} + +/** + * Image tookit's desaturate operation. + */ +function image_test_desaturate(stdClass $image) { + _image_test_log_call('desaturate', array($image)); + return TRUE; +} |