function ImageThemeFunctionWebTestCase::testImageFormatterTheme

Tests usage of the image field formatters.

File

modules/image/image.test, line 1916

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.');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.