You are here

public function JuiceboxFileEntityCase::testFileEntityText in Juicebox HTML5 Responsive Image Galleries 7.2

Test using File Entity fields for gallery titles and captions.

File

tests/JuiceboxFileEntityCase.test, line 38
Test case for integration with File Entity module.

Class

JuiceboxFileEntityCase
Class to define test case for integration with File Entity module.

Code

public function testFileEntityText() {

  // Setup a content type with image data. Use the "file" type and widget.
  $instance = $this
    ->initFieldInstance('article', strtolower($this
    ->randomName(10)), 'file', 'file_generic');
  $this
    ->activateJuiceboxFieldFormatter($instance);

  // Create a new node with an image attached.
  $test_image = current($this
    ->drupalGetTestFiles('image'));
  $node = $this
    ->createNodeWithImage($instance, $test_image);

  // Get raw file data expected in the node.
  $items = field_get_items('node', $node, $instance['field_name']);
  $item = reset($items);
  $fid = (int) $item['fid'];

  // Set the default file entity image alt field to allow formatting.
  $edit = array(
    'instance[settings][text_processing]' => TRUE,
  );
  $this
    ->drupalPost('admin/structure/file-types/manage/image/fields/field_file_image_alt_text', $edit, t('Save settings'));
  $this
    ->assertText(t('Saved Alt Text configuration.'));

  // Edit the uploaded file entity with title and caption text.
  $edit = array(
    'field_file_image_title_text[' . LANGUAGE_NONE . '][0][value]' => 'Some title text for alt field on file ' . $fid,
    'field_file_image_alt_text[' . LANGUAGE_NONE . '][0][value]' => 'Some alt text for alt field on file ' . $fid . ' <strong>with formatting</strong>',
  );
  $this
    ->drupalPost('file/' . $fid . '/edit', $edit, t('Save'));
  $this
    ->assertText(t('@type @title has been updated.', array(
    '@type' => 'Image',
    '@title' => entity_label('file', (object) $item),
  )), 'Custom file field alt and title text saved.');

  // Alter field formatter specific settings so that we use the file entity
  // title and alt fields for the image caption and title.
  $this
    ->drupalPostAJAX('admin/structure/types/manage/' . $instance['bundle'] . '/display', array(), $instance['field_name'] . '_formatter_settings_edit', NULL, array(), array(), 'field-ui-display-overview-form');
  $edit = array(
    'fields[' . $instance['field_name'] . '][settings_edit_form][settings][caption_source]' => 'field_file_image_alt_text',
    'fields[' . $instance['field_name'] . '][settings_edit_form][settings][title_source]' => 'field_file_image_title_text',
  );
  $this
    ->drupalPost(NULL, $edit, t('Save'));
  $this
    ->assertText(t('Your settings have been saved.'), 'Gallery configuration changes saved.');

  // Check for correct XML. Note that the formatting should be maintained in
  // the caption we enabled text formatting for the alt field provided by
  // the image file entity.
  $this
    ->drupalGet('juicebox/xml/field/node/' . $node->nid . '/' . $instance['field_name'] . '/full');
  $this
    ->assertRaw('<title><![CDATA[Some title text for alt field on file ' . $fid . ']]></title>', 'Image entity title text found in XML');
  $this
    ->assertRaw('<caption><![CDATA[Some alt text for alt field on file ' . $fid . ' <strong>with formatting</strong>]]></caption>', 'Image entity caption text found in XML');
}