You are here

function dsNodeTests::testDSFieldTemplate in Display Suite 7.2

Same name and namespace in other branches
  1. 7 tests/ds.entities.test \dsNodeTests::testDSFieldTemplate()

Tests on field templates.

File

tests/ds.entities.test, line 320
Entities tests

Class

dsNodeTests
@file Entities tests

Code

function testDSFieldTemplate() {

  // Get a node.
  $node = $this
    ->entitiesTestSetup('hidden');
  $body_field = $node->body[$node->language][0]['value'];

  // -------------------------
  // Default theming function.
  // -------------------------
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"field field-name-body field-type-text-with-summary field-label-hidden\"><div class=\"field-items\"><div class=\"field-item even\" property=\"content:encoded\"><p>" . $body_field . "</p>\n</div></div></div>");
  $this
    ->entitiesSetLabelClass('above');
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"field field-name-body field-type-text-with-summary field-label-above\"><div class=\"field-label\">Body:&nbsp;</div><div class=\"field-items\"><div class=\"field-item even\" property=\"content:encoded\"><p>" . $body_field . "</p>\n</div></div></div>");
  $this
    ->entitiesSetLabelClass('above', 'My body');
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"field field-name-body field-type-text-with-summary field-label-above\"><div class=\"field-label\">My body:&nbsp;</div><div class=\"field-items\"><div class=\"field-item even\" property=\"content:encoded\"><p>" . $body_field . "</p>\n</div></div></div>");
  $this
    ->entitiesSetLabelClass('hidden', '', 'test_field_class');
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"field field-name-body field-type-text-with-summary field-label-hidden test_field_class\"><div class=\"field-items\"><div class=\"field-item even\" property=\"content:encoded\"><p>" . $body_field . "</p>\n</div></div></div>");
  $this
    ->entitiesClearFieldSettings();

  // -----------------------
  // Reset theming function.
  // -----------------------
  $edit = array(
    'additional_settings[fs1][ft-default]' => 'theme_ds_field_reset',
  );
  $this
    ->drupalPost('admin/structure/ds/list/extras', $edit, t('Save configuration'));
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <p>" . $body_field . "</p>");
  $this
    ->entitiesSetLabelClass('above');
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"label-above\">Body:&nbsp;</div><p>" . $body_field . "</p>");
  $this
    ->entitiesSetLabelClass('inline');
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"label-inline\">Body:&nbsp;</div><p>" . $body_field . "</p>");
  $this
    ->entitiesSetLabelClass('above', 'My body');
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"label-above\">My body:&nbsp;</div><p>" . $body_field . "</p>");
  $this
    ->entitiesSetLabelClass('inline', 'My body');
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"label-inline\">My body:&nbsp;</div><p>" . $body_field . "</p>");
  variable_set('ft-kill-colon', TRUE);
  $this
    ->refreshVariables();
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"label-inline\">My body</div><p>" . $body_field . "</p>");
  $this
    ->entitiesSetLabelClass('hidden');
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <p>" . $body_field . "</p>");
  $this
    ->entitiesClearFieldSettings();

  // ----------------------
  // Custom field function.
  // ----------------------
  // With outer wrapper.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][func]' => 'theme_ds_field_expert',
    'fields[body][settings_edit_form][settings][ft][ow]' => '1',
    'fields[body][settings_edit_form][settings][ft][ow-el]' => 'div',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div><p>" . $body_field . "</p>\n</div>  </div>");

  // With outer div wrapper and class.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][ow]' => '1',
    'fields[body][settings_edit_form][settings][ft][ow-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][ow-cl]' => 'ow-class',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"ow-class\"><p>" . $body_field . "</p>\n</div>  </div>");

  // With outer span wrapper and class.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][ow]' => '1',
    'fields[body][settings_edit_form][settings][ft][ow-el]' => 'span',
    'fields[body][settings_edit_form][settings][ft][ow-cl]' => 'ow-class-2',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <span class=\"ow-class-2\"><p>" . $body_field . "</p>\n</span>  </div>");

  // Clear field settings.
  $this
    ->entitiesClearFieldSettings();

  // With outer wrapper and field items wrapper.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][func]' => 'theme_ds_field_expert',
    'fields[body][settings_edit_form][settings][ft][ow]' => '1',
    'fields[body][settings_edit_form][settings][ft][ow-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][fis]' => '1',
    'fields[body][settings_edit_form][settings][ft][fis-el]' => 'div',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div><div><p>" . $body_field . "</p>\n</div></div>  </div>");

  // With outer wrapper and field items div wrapper with class.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][ow]' => '1',
    'fields[body][settings_edit_form][settings][ft][ow-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][ow-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][fis]' => '1',
    'fields[body][settings_edit_form][settings][ft][fis-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][fis-cl]' => 'fi-class',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div><div class=\"fi-class\"><p>" . $body_field . "</p>\n</div></div>  </div>");

  // With outer wrapper and field items span wrapper and class.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][ow]' => '1',
    'fields[body][settings_edit_form][settings][ft][ow-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][fis]' => '1',
    'fields[body][settings_edit_form][settings][ft][fis-el]' => 'span',
    'fields[body][settings_edit_form][settings][ft][fis-cl]' => 'fi-class',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div><span class=\"fi-class\"><p>" . $body_field . "</p>\n</span></div>  </div>");

  // With outer wrapper class and field items span wrapper and class.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][ow]' => '1',
    'fields[body][settings_edit_form][settings][ft][ow-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][ow-cl]' => 'ow-class',
    'fields[body][settings_edit_form][settings][ft][fis]' => '1',
    'fields[body][settings_edit_form][settings][ft][fis-el]' => 'span',
    'fields[body][settings_edit_form][settings][ft][fis-cl]' => 'fi-class',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"ow-class\"><span class=\"fi-class\"><p>" . $body_field . "</p>\n</span></div>  </div>");

  // With outer wrapper span class and field items span wrapper and class.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][ow]' => '1',
    'fields[body][settings_edit_form][settings][ft][ow-el]' => 'span',
    'fields[body][settings_edit_form][settings][ft][ow-cl]' => 'ow-class',
    'fields[body][settings_edit_form][settings][ft][fis]' => '1',
    'fields[body][settings_edit_form][settings][ft][fis-el]' => 'span',
    'fields[body][settings_edit_form][settings][ft][fis-cl]' => 'fi-class-2',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <span class=\"ow-class\"><span class=\"fi-class-2\"><p>" . $body_field . "</p>\n</span></span>  </div>");

  // Clear field settings.
  $this
    ->entitiesClearFieldSettings();

  // With field item div wrapper.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][func]' => 'theme_ds_field_expert',
    'fields[body][settings_edit_form][settings][ft][fi]' => '1',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div><p>" . $body_field . "</p>\n</div>  </div>");

  // With field item span wrapper.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][fi]' => '1',
    'fields[body][settings_edit_form][settings][ft][fi-el]' => 'span',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <span><p>" . $body_field . "</p>\n</span>  </div>");

  // With field item span wrapper and class and odd even.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][fi]' => '1',
    'fields[body][settings_edit_form][settings][ft][fi-el]' => 'span',
    'fields[body][settings_edit_form][settings][ft][fi-cl]' => 'fi-class',
    'fields[body][settings_edit_form][settings][ft][fi-odd-even]' => '1',
    'fields[body][settings_edit_form][settings][ft][fi-first-last]' => '1',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <span class=\"odd fi-class first last\"><p>" . $body_field . "</p>\n</span>  </div>");

  // With fis and fi.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][fis]' => '1',
    'fields[body][settings_edit_form][settings][ft][fis-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][fis-cl]' => 'fi-class-2',
    'fields[body][settings_edit_form][settings][ft][fi]' => '1',
    'fields[body][settings_edit_form][settings][ft][fi-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][fi-cl]' => 'fi-class',
    'fields[body][settings_edit_form][settings][ft][fi-odd-even]' => '1',
    'fields[body][settings_edit_form][settings][ft][fi-first-last]' => '1',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"fi-class-2\"><div class=\"odd fi-class first last\"><p>" . $body_field . "</p>\n</div></div>  </div>");

  // With all wrappers.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][ow]' => '1',
    'fields[body][settings_edit_form][settings][ft][ow-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][ow-cl]' => 'ow-class',
    'fields[body][settings_edit_form][settings][ft][fis]' => '1',
    'fields[body][settings_edit_form][settings][ft][fis-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][fis-cl]' => 'fi-class-2',
    'fields[body][settings_edit_form][settings][ft][fi]' => '1',
    'fields[body][settings_edit_form][settings][ft][fi-el]' => 'span',
    'fields[body][settings_edit_form][settings][ft][fi-cl]' => 'fi-class',
    'fields[body][settings_edit_form][settings][ft][fi-odd-even]' => '1',
    'fields[body][settings_edit_form][settings][ft][fi-first-last]' => '1',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"ow-class\"><div class=\"fi-class-2\"><span class=\"odd fi-class first last\"><p>" . $body_field . "</p>\n</span></div></div>  </div>");

  // With all wrappers and attributes.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][ow]' => '1',
    'fields[body][settings_edit_form][settings][ft][ow-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][ow-cl]' => 'ow-class',
    'fields[body][settings_edit_form][settings][ft][ow-at]' => 'name="ow-att"',
    'fields[body][settings_edit_form][settings][ft][fis]' => '1',
    'fields[body][settings_edit_form][settings][ft][fis-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][fis-cl]' => 'fi-class-2',
    'fields[body][settings_edit_form][settings][ft][fis-at]' => 'name="fis-att"',
    'fields[body][settings_edit_form][settings][ft][fi]' => '1',
    'fields[body][settings_edit_form][settings][ft][fi-el]' => 'span',
    'fields[body][settings_edit_form][settings][ft][fi-cl]' => 'fi-class',
    'fields[body][settings_edit_form][settings][ft][fi-at]' => 'name="fi-at"',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"ow-class\" name=\"ow-att\"><div class=\"fi-class-2\" name=\"fis-att\"><span class=\"odd fi-class first last\" name=\"fi-at\"><p>" . $body_field . "</p>\n</span></div></div>  </div>");

  // Remove attributes.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][ow]' => '1',
    'fields[body][settings_edit_form][settings][ft][ow-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][ow-cl]' => 'ow-class',
    'fields[body][settings_edit_form][settings][ft][ow-at]' => '',
    'fields[body][settings_edit_form][settings][ft][fis]' => '1',
    'fields[body][settings_edit_form][settings][ft][fis-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][fis-cl]' => 'fi-class-2',
    'fields[body][settings_edit_form][settings][ft][fis-at]' => '',
    'fields[body][settings_edit_form][settings][ft][fi]' => '1',
    'fields[body][settings_edit_form][settings][ft][fi-el]' => 'span',
    'fields[body][settings_edit_form][settings][ft][fi-cl]' => 'fi-class',
    'fields[body][settings_edit_form][settings][ft][fi-at]' => '',
  );
  $this
    ->dsEditFormatterSettings($edit);

  // Label tests with custom function.
  $this
    ->entitiesSetLabelClass('above');
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"ow-class\"><div class=\"label-above\">Body:&nbsp;</div><div class=\"fi-class-2\"><span class=\"odd fi-class first last\"><p>" . $body_field . "</p>\n</span></div></div>  </div>");
  $this
    ->entitiesSetLabelClass('inline');
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"ow-class\"><div class=\"label-inline\">Body:&nbsp;</div><div class=\"fi-class-2\"><span class=\"odd fi-class first last\"><p>" . $body_field . "</p>\n</span></div></div>  </div>");
  $this
    ->entitiesSetLabelClass('above', 'My body');
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"ow-class\"><div class=\"label-above\">My body:&nbsp;</div><div class=\"fi-class-2\"><span class=\"odd fi-class first last\"><p>" . $body_field . "</p>\n</span></div></div>  </div>");
  $this
    ->entitiesSetLabelClass('inline', 'My body');
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"ow-class\"><div class=\"label-inline\">My body:&nbsp;</div><div class=\"fi-class-2\"><span class=\"odd fi-class first last\"><p>" . $body_field . "</p>\n</span></div></div>  </div>");
  $this
    ->entitiesSetLabelClass('inline', 'My body', '', TRUE);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"ow-class\"><div class=\"label-inline\">My body</div><div class=\"fi-class-2\"><span class=\"odd fi-class first last\"><p>" . $body_field . "</p>\n</span></div></div>  </div>");
  $this
    ->entitiesSetLabelClass('hidden');
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"ow-class\"><div class=\"fi-class-2\"><span class=\"odd fi-class first last\"><p>" . $body_field . "</p>\n</span></div></div>  </div>");

  // Test default classes on outer wrapper.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][ow]' => '1',
    'fields[body][settings_edit_form][settings][ft][ow-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][ow-cl]' => 'ow-class',
    'fields[body][settings_edit_form][settings][ft][ow-def-cl]' => '1',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"ow-class field field-name-body field-type-text-with-summary field-label-hidden\"><div class=\"fi-class-2\"><span class=\"odd fi-class first last\"><p>" . $body_field . "</p>\n</span></div></div>  </div>");

  // Test default attributes on field item.
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][ow]' => '1',
    'fields[body][settings_edit_form][settings][ft][ow-el]' => 'div',
    'fields[body][settings_edit_form][settings][ft][ow-cl]' => 'ow-class',
    'fields[body][settings_edit_form][settings][ft][ow-def-cl]' => '1',
    'fields[body][settings_edit_form][settings][ft][fi-def-at]' => '1',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    <div class=\"ow-class field field-name-body field-type-text-with-summary field-label-hidden\"><div class=\"fi-class-2\"><span class=\"odd fi-class first last\"  property=\"content:encoded\"><p>" . $body_field . "</p>\n</span></div></div>  </div>");

  // Use the test field theming function to test that this function is
  // registered in the theme registry through ds_extras_theme().
  $edit = array(
    'fields[body][settings_edit_form][settings][ft][func]' => 'ds_test_theming_function',
  );
  $this
    ->dsEditFormatterSettings($edit);
  $this
    ->drupalGet('node/' . $node->nid);
  $this
    ->assertRaw("<div class=\"group-right\">\n    Testing field output through custom function  </div>");
}