t('Node display'), 'description' => t('Tests for display of nodes and fields.'), 'group' => t('Display Suite'), ); } /** * Utility function to setup for all kinds of tests. * * @param $label * How the body label must be set. */ function entitiesTestSetup($label = 'above') { // Create a node. $settings = array('type' => 'article', 'promote' => 1); $node = $this->drupalCreateNode($settings); // Create field CSS classes. $edit = array('ds_classes_fields' => "test_field_class\ntest_field_class_2|Field class 2"); $this->drupalPost('admin/structure/ds/classes', $edit, t('Save configuration')); // Create a token and php field. $token_field = array( 'name' => 'Token field', 'field' => 'token_field', 'entities[node]' => '1', 'code[value]' => '
[node:title]', 'use_token' => '1', ); $php_field = array( 'name' => 'PHP field', 'field' => 'php_field', 'entities[node]' => '1', 'code[value]' => "", 'use_token' => '0', ); $this->dsCreateCodeField($token_field); $this->dsCreateCodeField($php_field); // Select layout. $this->dsSelectLayout(); // Configure fields. $fields = array( 'fields[token_field][region]' => 'header', 'fields[php_field][region]' => 'left', 'fields[body][region]' => 'right', 'fields[node_link][region]' => 'footer', 'fields[body][label]' => $label, 'fields[submitted_by][region]' => 'header', ); $this->dsConfigureUI($fields); return $node; } /** * Utility function to clear field settings. */ function entitiesClearFieldSettings() { db_query('TRUNCATE {ds_field_settings}'); cache_clear_all('ds_fields:', 'cache', TRUE); cache_clear_all('ds_field_settings', 'cache'); } /** * Set the label. */ function entitiesSetLabelClass($label, $text = '', $class = '', $hide_colon = FALSE) { $edit = array( 'fields[body][label]' => $label, ); if (!empty($text)) { $edit['fields[body][settings_edit_form][settings][ft][lb]'] = $text; } if (!empty($class)) { $edit['fields[body][settings_edit_form][settings][ft][classes][]'] = $class; } if ($hide_colon) { $edit['fields[body][settings_edit_form][settings][ft][lb-col]'] = '1'; } $this->dsEditFormatterSettings($edit); } /** * Test basic node display fields. */ function testDSNodeEntity() { $node = $this->entitiesTestSetup(); $node_author = user_load($node->uid); // Test theme_hook_suggestions in ds_entity_variables(). $this->drupalGet('node/' . $node->nid, array('query' => array('store' => 1))); $cache = cache_get('ds_test'); $this->assertTrue(!empty($cache)); $hook_suggestions = $cache->data['theme_hook_suggestions']; $expected_hook_suggestions = array( 'node__article', 'node__1', 'ds_2col_stacked', 'ds_2col_stacked__node', 'ds_2col_stacked__node_full', 'ds_2col_stacked__node_article', 'ds_2col_stacked__node_article_full', 'ds_2col_stacked__node__1' ); $this->assertEqual($hook_suggestions, $expected_hook_suggestions); // Look at node and verify token and block field. $this->drupalGet('node/' . $node->nid); $this->assertRaw('view-mode-full', 'Template file found (in full view mode)'); $this->assertRaw('
' . $node->title . '', t('Token field found')); $this->assertRaw('I am a PHP field', t('PHP field found')); $this->assertRaw('group-header', 'Template found (region header)'); $this->assertRaw('group-footer', 'Template found (region footer)'); $this->assertRaw('group-left', 'Template found (region left)'); $this->assertRaw('group-right', 'Template found (region right)'); $this->assertPattern('/]*>Submitted[^<]*]+href="' . preg_quote(base_path(), '/') . 'user\/' . $node_author->uid . '"[^>]*>' . check_plain($node_author->name) . '<\/a>.<\/div>/', t('Submitted by line found')); // Configure teaser layout. $teaser = array( 'additional_settings[layout]' => 'ds_2col', ); $teaser_assert = array( 'regions' => array( 'left' => '' . t('Left') . '', 'right' => '' . t('Right') . '', ), ); $this->dsSelectLayout($teaser, $teaser_assert, 'admin/structure/types/manage/article/display/teaser'); $fields = array( 'fields[token_field][region]' => 'left', 'fields[php_field][region]' => 'left', 'fields[body][region]' => 'right', 'fields[links][region]' => 'right', ); $this->dsConfigureUI($fields, 'admin/structure/types/manage/article/display/teaser'); // Switch view mode on full node page. $edit = array('ds_switch' => 'teaser'); $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save')); $this->assertRaw('view-mode-teaser', 'Switched to teaser mode'); $this->assertRaw('group-left', 'Template found (region left)'); $this->assertRaw('group-right', 'Template found (region right)'); $this->assertNoRaw('group-header', 'Template found (no region header)'); $this->assertNoRaw('group-footer', 'Template found (no region footer)'); $edit = array('ds_switch' => ''); $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save')); $this->assertRaw('view-mode-full', 'Switched to full mode again'); // Test all options of a block field. $block = array( 'name' => 'Test block field', 'field' => 'test_block_field', 'entities[node]' => '1', 'block' => 'node|recent', 'block_render' => DS_BLOCK_TEMPLATE, ); $this->dsCreateBlockField($block); $fields = array( 'fields[test_block_field][region]' => 'left', 'fields[token_field][region]' => 'hidden', 'fields[php_field][region]' => 'hidden', 'fields[body][region]' => 'hidden', 'fields[links][region]' => 'hidden', ); $this->dsConfigureUI($fields); $this->drupalGet('node/' . $node->nid); $this->assertRaw('

Recent content

'); $block = array( 'block_render' => DS_BLOCK_TITLE_CONTENT, ); $this->dsCreateBlockField($block, 'admin/structure/ds/fields/manage_block/test_block_field', FALSE); $this->drupalGet('node/' . $node->nid); $this->assertNoRaw('

Recent content

'); $this->assertRaw('Recent content'); $block = array( 'block_render' => DS_BLOCK_CONTENT, ); $this->dsCreateBlockField($block, 'admin/structure/ds/fields/manage_block/test_block_field', FALSE); $this->drupalGet('node/' . $node->nid); $this->assertNoRaw('

Recent content

'); $this->assertNoRaw('Recent content'); // Remove the page title (we'll use the switch view mode functionality too for this). $edit = array('additional_settings[ds_page_title][ds_page_title_options][page_option_type]' => '1'); $this->dsConfigureUI($edit, 'admin/structure/types/manage/article/display/teaser'); $this->drupalGet('node/' . $node->nid); $this->assertRaw('

'. $node->title . '

'); $edit = array('ds_switch' => 'teaser'); $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save')); $this->drupalGet('node/' . $node->nid); $this->assertNoRaw('

'. $node->title . '

'); // Use page title substitutions. $edit = array('additional_settings[ds_page_title][ds_page_title_options][page_option_type]' => '2', 'additional_settings[ds_page_title][ds_page_title_options][page_option_title]' => 'Change title: %node:type'); $this->dsConfigureUI($edit, 'admin/structure/types/manage/article/display/teaser'); $this->drupalGet('node/' . $node->nid); $this->assertRaw('

Change title: '. $node->type . '

'); $edit = array('additional_settings[ds_page_title][ds_page_title_options][page_option_type]' => '0'); $this->dsConfigureUI($edit, 'admin/structure/types/manage/article/display/teaser'); // Go to home page, page title shouldn't bleed here // see http://drupal.org/node/1446554. $edit = array('ds_switch' => ''); $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save')); $edit = array('additional_settings[ds_page_title][ds_page_title_options][page_option_type]' => '2', 'additional_settings[ds_page_title][ds_page_title_options][page_option_title]' => 'Bleed title: %node:type'); $this->dsConfigureUI($edit, 'admin/structure/types/manage/article/display'); $this->drupalGet('node/' . $node->nid); $this->assertRaw('

Bleed title: article

'); $this->drupalGet('node'); $this->assertNoText('Bleed title'); // Test revisions. Enable the revision view mode $edit = array('additional_settings[modes][view_modes_custom][revision]' => '1'); $this->drupalPost('admin/structure/types/manage/article/display', $edit, t('Save')); // Select layout and configure fields. $edit = array( 'additional_settings[layout]' => 'ds_2col', ); $assert = array( 'regions' => array( 'left' => '' . t('Left') . '', 'right' => '' . t('Right') . '', ), ); $this->dsSelectLayout($edit, $assert, 'admin/structure/types/manage/article/display/revision'); $edit = array( 'fields[body][region]' => 'left', 'fields[links][region]' => 'right', 'fields[author][region]' => 'right', ); $this->dsConfigureUI($edit, 'admin/structure/types/manage/article/display/revision'); // Create revision of the node. $edit = array( 'revision' => TRUE, 'log' => 'Test revision', ); $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save')); $this->assertText('Revisions'); // Assert revision is using 2 col template. $this->drupalGet('node/' . $node->nid . '/revisions/1/view'); $this->assertText('Body:', 'Body label'); // Change title of revision. $edit = array('additional_settings[ds_page_title][ds_page_title_options][page_option_type]' => '2', 'additional_settings[ds_page_title][ds_page_title_options][page_option_title]' => 'Custom revision title'); $this->dsConfigureUI($edit, 'admin/structure/types/manage/article/display/revision'); $this->drupalGet('node/' . $node->nid . '/revisions/1/view'); $this->assertText('Custom revision title', 'Custom title on revision view mode'); // Assert full view is using stacked template. $this->drupalGet('node/' . $node->nid); $this->assertNoText('Body:', 'Body label'); // Test formatter limit on article with tags. $edit = array( 'ds_switch' => '', 'field_tags[und]' => 'Tag 1, Tag 2' ); $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save')); $edit = array( 'fields[field_tags][region]' => 'right', ); $this->dsConfigureUI($edit, 'admin/structure/types/manage/article/display'); $this->drupalGet('node/' . $node->nid); $this->assertText('Tag 1'); $this->assertText('Tag 2'); $edit = array( 'fields[field_tags][format][limit]' => '1', ); $this->dsConfigureUI($edit, 'admin/structure/types/manage/article/display'); $this->drupalGet('node/' . $node->nid); $this->assertText('Tag 1'); $this->assertNoText('Tag 2'); // Test check_plain() on ds_render_field() with the title field. $edit = array( 'fields[title][region]' => 'right', ); $this->dsConfigureUI($edit, 'admin/structure/types/manage/article/display'); $edit = array( 'title' => 'Hi, I am an article ', ); $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save')); $this->drupalGet('node/' . $node->nid); $this->assertRaw('

Hi, I am an article <script>alert('with a javascript tag in the title');</script>

'); } /** * Tests on field templates. */ 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("

" . $body_field . "

"); $this->entitiesSetLabelClass('above'); $this->drupalGet('node/' . $node->nid); $this->assertRaw("
Body: 

" . $body_field . "

"); $this->entitiesSetLabelClass('above', 'My body'); $this->drupalGet('node/' . $node->nid); $this->assertRaw("
My body: 

" . $body_field . "

"); $this->entitiesSetLabelClass('hidden', '', 'test_field_class'); $this->drupalGet('node/' . $node->nid); $this->assertRaw("

" . $body_field . "

"); $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("

" . $body_field . "

"); $this->entitiesSetLabelClass('above'); $this->drupalGet('node/' . $node->nid); $this->assertRaw("
Body: 

" . $body_field . "

"); $this->entitiesSetLabelClass('inline'); $this->drupalGet('node/' . $node->nid); $this->assertRaw("
Body: 

" . $body_field . "

"); $this->entitiesSetLabelClass('above', 'My body'); $this->drupalGet('node/' . $node->nid); $this->assertRaw("
My body: 

" . $body_field . "

"); $this->entitiesSetLabelClass('inline', 'My body'); $this->drupalGet('node/' . $node->nid); $this->assertRaw("
My body: 

" . $body_field . "

"); variable_set('ft-kill-colon', TRUE); $this->refreshVariables(); $this->drupalGet('node/' . $node->nid); $this->assertRaw("
My body

" . $body_field . "

"); $this->entitiesSetLabelClass('hidden'); $this->drupalGet('node/' . $node->nid); $this->assertRaw("

" . $body_field . "

"); $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("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("
Body: 

" . $body_field . "

"); $this->entitiesSetLabelClass('inline'); $this->drupalGet('node/' . $node->nid); $this->assertRaw("
Body: 

" . $body_field . "

"); $this->entitiesSetLabelClass('above', 'My body'); $this->drupalGet('node/' . $node->nid); $this->assertRaw("
My body: 

" . $body_field . "

"); $this->entitiesSetLabelClass('inline', 'My body'); $this->drupalGet('node/' . $node->nid); $this->assertRaw("
My body: 

" . $body_field . "

"); $this->entitiesSetLabelClass('inline', 'My body', '', TRUE); $this->drupalGet('node/' . $node->nid); $this->assertRaw("
My body

" . $body_field . "

"); $this->entitiesSetLabelClass('hidden'); $this->drupalGet('node/' . $node->nid); $this->assertRaw("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("

" . $body_field . "

"); // 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("
Testing field output through custom function
"); } }