cms/drupal/modules/simpletest/tests/image_test.module
changeset 541 e756a8c72c3d
equal deleted inserted replaced
540:07239de796bb 541:e756a8c72c3d
       
     1 <?php
       
     2 
       
     3 /**
       
     4  * @file
       
     5  * Helper module for the image tests.
       
     6  */
       
     7 
       
     8 /**
       
     9  * Implements hook_image_toolkits().
       
    10  */
       
    11 function image_test_image_toolkits() {
       
    12   return array(
       
    13     'test' => array(
       
    14       'title' => t('A dummy toolkit that works'),
       
    15       'available' => TRUE,
       
    16     ),
       
    17     'broken' => array(
       
    18       'title' => t('A dummy toolkit that is "broken"'),
       
    19       'available' => FALSE,
       
    20     ),
       
    21   );
       
    22 }
       
    23 
       
    24 /**
       
    25  * Reset/initialize the history of calls to the toolkit functions.
       
    26  *
       
    27  * @see image_test_get_all_calls()
       
    28  */
       
    29 function image_test_reset() {
       
    30   // Keep track of calls to these operations
       
    31   $results = array(
       
    32     'load' => array(),
       
    33     'save' => array(),
       
    34     'settings' => array(),
       
    35     'resize' => array(),
       
    36     'rotate' => array(),
       
    37     'crop' => array(),
       
    38     'desaturate' => array(),
       
    39   );
       
    40   variable_set('image_test_results', $results);
       
    41 }
       
    42 
       
    43 /**
       
    44  * Get an array with the all the calls to the toolkits since image_test_reset()
       
    45  * was called.
       
    46  *
       
    47  * @return
       
    48  *   An array keyed by operation name ('load', 'save', 'settings', 'resize',
       
    49  *   'rotate', 'crop', 'desaturate') with values being arrays of parameters
       
    50  *   passed to each call.
       
    51  */
       
    52 function image_test_get_all_calls() {
       
    53   return variable_get('image_test_results', array());
       
    54 }
       
    55 
       
    56 /**
       
    57  * Store the values passed to a toolkit call.
       
    58  *
       
    59  * @param $op
       
    60  *   One of the image toolkit operations: 'get_info', 'load', 'save',
       
    61  *   'settings', 'resize', 'rotate', 'crop', 'desaturate'.
       
    62  * @param $args
       
    63  *   Values passed to hook.
       
    64  *
       
    65  * @see image_test_get_all_calls()
       
    66  * @see image_test_reset()
       
    67  */
       
    68 function _image_test_log_call($op, $args) {
       
    69   $results = variable_get('image_test_results', array());
       
    70   $results[$op][] = $args;
       
    71   variable_set('image_test_results', $results);
       
    72 }
       
    73 
       
    74 /**
       
    75  * Image tookit's settings operation.
       
    76  */
       
    77 function image_test_settings() {
       
    78   _image_test_log_call('settings', array());
       
    79   return array();
       
    80 }
       
    81 
       
    82 /**
       
    83  * Image toolkit's get_info operation.
       
    84  */
       
    85 function image_test_get_info(stdClass $image) {
       
    86   _image_test_log_call('get_info', array($image));
       
    87   return array();
       
    88 }
       
    89 
       
    90 /**
       
    91  * Image tookit's load operation.
       
    92  */
       
    93 function image_test_load(stdClass $image) {
       
    94   _image_test_log_call('load', array($image));
       
    95   return $image;
       
    96 }
       
    97 
       
    98 /**
       
    99  * Image tookit's save operation.
       
   100  */
       
   101 function image_test_save(stdClass $image, $destination) {
       
   102   _image_test_log_call('save', array($image, $destination));
       
   103   // Return false so that image_save() doesn't try to chmod the destination
       
   104   // file that we didn't bother to create.
       
   105   return FALSE;
       
   106 }
       
   107 
       
   108 /**
       
   109  * Image tookit's crop operation.
       
   110  */
       
   111 function image_test_crop(stdClass $image, $x, $y, $width, $height) {
       
   112   _image_test_log_call('crop', array($image, $x, $y, $width, $height));
       
   113   return TRUE;
       
   114 }
       
   115 
       
   116 /**
       
   117  * Image tookit's resize operation.
       
   118  */
       
   119 function image_test_resize(stdClass $image, $width, $height) {
       
   120   _image_test_log_call('resize', array($image, $width, $height));
       
   121   return TRUE;
       
   122 }
       
   123 
       
   124 /**
       
   125  * Image tookit's rotate operation.
       
   126  */
       
   127 function image_test_rotate(stdClass $image, $degrees, $background = NULL) {
       
   128   _image_test_log_call('rotate', array($image, $degrees, $background));
       
   129   return TRUE;
       
   130 }
       
   131 
       
   132 /**
       
   133  * Image tookit's desaturate operation.
       
   134  */
       
   135 function image_test_desaturate(stdClass $image) {
       
   136   _image_test_log_call('desaturate', array($image));
       
   137   return TRUE;
       
   138 }