function dsNodeTests::testDSFieldTemplate in Display Suite 7.2
Same name and namespace in other branches
- 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: </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: </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: </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: </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: </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: </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: </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: </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: </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: </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>");
}