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(), 'rotate' => 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', * 'rotate', '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: 'get_info', 'load', 'save', * 'settings', 'resize', 'rotate', '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 toolkit's get_info operation. */ function image_test_get_info(stdClass $image) { _image_test_log_call('get_info', array($image)); 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 rotate operation. */ function image_test_rotate(stdClass $image, $degrees, $background = NULL) { _image_test_log_call('rotate', array($image, $degrees, $background)); return TRUE; } /** * Image tookit's desaturate operation. */ function image_test_desaturate(stdClass $image) { _image_test_log_call('desaturate', array($image)); return TRUE; }