Tests usage of the image field formatters.

File

modules/image/image.test, line 1966
Tests for image.module.

Class

ImageThemeFunctionWebTestCase
Tests image theme functions.

Code

function testImageFormatterTheme() {

  // Create an image.
  $files = $this
    ->drupalGetTestFiles('image');
  $file = reset($files);
  $original_uri = file_unmanaged_copy($file->uri, 'public://', FILE_EXISTS_RENAME);

  // Create a style.
  image_style_save(array(
    'name' => 'test',
    'label' => 'Test',
  ));
  $url = image_style_url('test', $original_uri);

  // Test using theme_image_formatter() without an image title, alt text, or
  // link options.
  $path = $this
    ->randomName();
  $element = array(
    '#theme' => 'image_formatter',
    '#image_style' => 'test',
    '#item' => array(
      'uri' => $original_uri,
    ),
    '#path' => array(
      'path' => $path,
    ),
  );
  $rendered_element = render($element);
  $expected_result = '<a href="' . url($path) . '"><img typeof="foaf:Image" src="' . check_plain($url) . '" alt="" /></a>';
  $this
    ->assertEqual($expected_result, $rendered_element, 'theme_image_formatter() correctly renders without title, alt, or path options.');

  // Link the image to a fragment on the page, and not a full URL.
  $fragment = $this
    ->randomName();
  $element['#path']['path'] = '';
  $element['#path']['options'] = array(
    'external' => TRUE,
    'fragment' => $fragment,
  );
  $rendered_element = render($element);
  $expected_result = '<a href="#' . $fragment . '"><img typeof="foaf:Image" src="' . check_plain($url) . '" alt="" /></a>';
  $this
    ->assertEqual($expected_result, $rendered_element, 'theme_image_formatter() correctly renders a link fragment.');
}