summaryrefslogtreecommitdiff
path: root/sites/all/modules/ds/tests/ds.exportables.test
diff options
context:
space:
mode:
Diffstat (limited to 'sites/all/modules/ds/tests/ds.exportables.test')
-rw-r--r--sites/all/modules/ds/tests/ds.exportables.test160
1 files changed, 160 insertions, 0 deletions
diff --git a/sites/all/modules/ds/tests/ds.exportables.test b/sites/all/modules/ds/tests/ds.exportables.test
new file mode 100644
index 000000000..95b95d6af
--- /dev/null
+++ b/sites/all/modules/ds/tests/ds.exportables.test
@@ -0,0 +1,160 @@
+<?php
+
+/**
+ * @file
+ * Base functions and tests for Display Suite.
+ */
+
+class dsExportablesTests extends dsBaseTest {
+
+ /**
+ * Implements getInfo().
+ */
+ public static function getInfo() {
+ return array(
+ 'name' => t('Exportables'),
+ 'description' => t('Tests for exportables in Display Suite.'),
+ 'group' => t('Display Suite'),
+ );
+ }
+
+ /**
+ * Enables the exportables module.
+ */
+ function dsExportablesSetup() {
+ module_enable(array('ds_exportables_test'));
+ drupal_flush_all_caches();
+ }
+
+ // Test view modes.
+ function testDSExportablesViewmodes() {
+ $this->dsExportablesSetup();
+
+ // Find a default view mode on admin screen.
+ $this->drupalGet('admin/structure/ds/view_modes');
+ $this->assertText('Test exportables', t('Exportables view mode found on admin screen.'));
+
+ // Find default view mode on layout screen.
+ $this->drupalGet('admin/structure/types/manage/article/display');
+ $this->assertText('Test exportables', t('Exportables view mode found on display screen.'));
+
+ // Override default view mode.
+ $edit = array(
+ 'name' => 'Testing 2',
+ );
+ $this->drupalPost('admin/structure/ds/view_modes/manage/test_exportables', $edit, t('Save'));
+ $this->assertText(t('The view mode Testing 2 has been saved'), t('Exportables label updated'));
+ $this->assertText(t('Revert'), t('Revert button found.'));
+
+ // Find default view mode on layout screen.
+ $this->drupalGet('admin/structure/types/manage/article/display');
+ $this->assertText('Testing 2', t('Updated exportables view mode found on display screen.'));
+
+ // Revert the view mode.
+ $this->drupalPost('admin/structure/ds/view_modes/revert/test_exportables', array(), t('Revert'));
+ $this->assertText(t('The view mode Testing 2 has been reverted'), t('Testing view mode reverted'));
+ $this->assertText('Test exportables', t('Exportables view mode found on admin screen.'));
+
+ // Assert the view mode is gone at the manage display screen.
+ $this->drupalGet('admin/structure/types/manage/article/display');
+ $this->assertNoText('Testing 2', t('Overrided exportables view mode not found on display screen.'));
+ $this->assertText('Test exportables', t('Default exportables view mode found on display screen.'));
+ }
+
+ // Test layout and field settings configuration.
+ function testDSExportablesLayoutFieldsettings() {
+ $this->dsExportablesSetup();
+
+ $this->drupalGet('admin/structure/types/manage/article/display');
+ $this->assertNoText(t('This layout is overridden. Click to revert to default settings.'));
+
+ $settings = array(
+ 'type' => 'article',
+ 'title' => 'Exportable'
+ );
+ $node = $this->drupalCreateNode($settings);
+ $this->drupalGet('node/' . $node->nid);
+ $this->assertRaw('group-left', 'Left region found');
+ $this->assertRaw('group-right', 'Right region found');
+ $this->assertNoRaw('group-header', 'No header region found');
+ $this->assertNoRaw('group-footer', 'No footer region found');
+ $this->assertRaw('<h3><a href="'. url('node/1') . '" class="active">Exportable</a></h3>', t('Default title with h3 found'));
+ $this->assertRaw('<a href="' . url('node/1') . '" class="active">Read more</a>', t('Default read more found'));
+
+ // Override default layout.
+ $layout = array(
+ 'additional_settings[layout]' => 'ds_2col_stacked',
+ );
+
+ $assert = array(
+ 'regions' => array(
+ 'header' => '<td colspan="8">' . t('Header') . '</td>',
+ 'left' => '<td colspan="8">' . t('Left') . '</td>',
+ 'right' => '<td colspan="8">' . t('Right') . '</td>',
+ 'footer' => '<td colspan="8">' . t('Footer') . '</td>',
+ ),
+ );
+
+ $fields = array(
+ 'fields[post_date][region]' => 'header',
+ 'fields[author][region]' => 'left',
+ 'fields[links][region]' => 'left',
+ 'fields[body][region]' => 'right',
+ 'fields[comments][region]' => 'footer',
+ );
+
+ $this->dsSelectLayout($layout, $assert);
+ $this->assertText(t('This layout is overridden. Click to revert to default settings.'));
+ $this->dsConfigureUI($fields);
+
+ $this->drupalGet('node/' . $node->nid);
+ $this->assertRaw('group-left', 'Left region found');
+ $this->assertRaw('group-right', 'Left region found');
+ $this->assertRaw('group-header', 'Left region found');
+ $this->assertRaw('group-footer', 'Left region found');
+
+ // Revert.
+ $edit = array();
+ $this->drupalPost('admin/structure/ds/revert-layout/node|article|default', $edit, t('Revert'), array('query' => array('destination' => 'admin/structure/types/manage/article/display')));
+ $this->drupalGet('node/' . $node->nid);
+ $this->assertRaw('group-left', 'Left region found');
+ $this->assertRaw('group-right', 'Left region found');
+ $this->assertNoRaw('group-header', 'Left region found');
+ $this->assertNoRaw('group-footer', 'Left region found');
+ $this->assertRaw('<h3><a href="'. url('node/1') . '" class="active">Exportable</a></h3>', t('Default title with h3 found'));
+ $this->assertRaw('<a href="' . url('node/1') . '" class="active">Read more</a>', t('Default read more found'));
+ }
+
+ // Test custom field exportables.
+ function testDSExportablesCustomFields() {
+ $this->dsExportablesSetup();
+
+ // Look for default custom field.
+ $this->drupalGet('admin/structure/ds/fields');
+ $this->assertText('Exportable field');
+ $this->drupalGet('admin/structure/types/manage/article/display');
+ $this->assertText('Exportable field');
+
+ // Override custom field.
+ // Update testing label
+ $edit = array(
+ 'name' => 'Overridden field',
+ );
+ $this->drupalPost('admin/structure/ds/fields/manage_custom/ds_exportable_field', $edit, t('Save'));
+ $this->assertText(t('The field Overridden field has been saved'), t('Default exportable field label updated'));
+ $this->assertText('Overridden field');
+ $this->assertNoText('Exportable field');
+ $this->drupalGet('admin/structure/types/manage/article/display');
+ $this->assertText('Overridden field');
+ $this->assertNoText('Exportable field');
+
+ // Revert.
+ $edit = array();
+ $this->drupalPost('admin/structure/ds/fields/revert/ds_exportable_field', $edit, t('Revert'));
+ $this->assertText('The field Overridden field has been reverted', t('Field reverted'));
+ $this->assertText('Exportable field');
+ $this->drupalGet('admin/structure/types/manage/article/display');
+ $this->assertNoText('Overridden field');
+ $this->assertText('Exportable field');
+ }
+}