View source
<?php
class QuicktabsAdminTestCase extends DrupalWebTestCase {
static function getInfo() {
return array(
'name' => t('Quicktabs tests'),
'description' => t('Add, edit and delete quicktabs.'),
'group' => t('Quicktabs'),
);
}
function setUp() {
parent::setUp('ctools', 'quicktabs');
$admin_user = $this
->drupalCreateUser(array(
'access administration pages',
'administer quicktabs',
'administer nodes',
));
$this
->drupalLogin($admin_user);
for ($i = 0; $i < 5; $i++) {
$node = new stdClass();
$node->type = 'page';
$node->title = 'This is node number ' . ($i + 1);
$node->body[LANGUAGE_NONE][0]['value'] = $this
->randomString(255);
node_object_prepare($node);
node_save($node);
}
}
function testQuicktabsAdmin() {
$edit = array(
'machine_name' => strtolower($this
->randomName()),
'title' => $this
->randomName(),
'ajax' => 0,
'hide_empty_tabs' => FALSE,
'renderer' => 'quicktabs',
);
$saved = $edit;
$tab_title_first = $this
->randomName();
$tab_title_second = $this
->randomName();
$edit += array(
'tabs[0][type]' => 'node',
'tabs[0][node][nid]' => 1,
'tabs[0][node][view_mode]' => 'full',
'tabs[0][title]' => $tab_title_first,
'tabs[0][weight]' => 0,
'tabs[1][type]' => 'node',
'tabs[1][node][nid]' => 2,
'tabs[1][node][view_mode]' => 'full',
'tabs[1][title]' => $tab_title_second,
'tabs[1][weight]' => 1,
);
$saved['tabs'] = array(
0 => array(
'type' => 'node',
'nid' => 1,
'view_mode' => 'full',
'title' => $tab_title_first,
'weight' => 0,
),
1 => array(
'type' => 'node',
'nid' => 2,
'view_mode' => 'full',
'title' => $tab_title_second,
'weight' => 1,
),
);
$this
->drupalPost('admin/structure/quicktabs/add', $edit, t('Save'));
$quicktabs = quicktabs_load($edit['machine_name']);
$this
->assertTrue($quicktabs != FALSE, t('Quicktabs instance found in database'));
foreach ($saved as $property => $value) {
if ($property == 'tabs') {
foreach ($value as &$val) {
$val += array(
'hide_title' => 1,
);
}
}
$this
->assertEqual($quicktabs->{$property}, $value, t('Quicktabs property %property properly saved.', array(
'%property' => $property,
)));
}
$edit = array(
'title' => $this
->randomName(),
'ajax' => 1,
'hide_empty_tabs' => TRUE,
'renderer' => 'ui_tabs',
'default_tab' => 1,
);
$saved = $edit;
$tab_title_first = $this
->randomName();
$tab_title_second = $this
->randomName();
$edit += array(
'tabs[0][title]' => $tab_title_first,
'tabs[0][weight]' => 1,
'tabs[0][node][nid]' => 3,
'tabs[0][node][view_mode]' => 'teaser',
'tabs[0][node][hide_title]' => FALSE,
'tabs[1][title]' => $tab_title_second,
'tabs[1][weight]' => 0,
'tabs[1][node][nid]' => 4,
'tabs[1][node][view_mode]' => 'teaser',
'tabs[1][node][hide_title]' => 1,
);
$saved['tabs'] = array(
0 => array(
'type' => 'node',
'nid' => 4,
'title' => $tab_title_second,
'weight' => 0,
'view_mode' => 'teaser',
'hide_title' => 1,
),
1 => array(
'type' => 'node',
'nid' => 3,
'title' => $tab_title_first,
'weight' => 1,
'view_mode' => 'teaser',
'hide_title' => 0,
),
);
$this
->drupalPost('admin/structure/quicktabs/manage/' . $quicktabs->machine_name . '/edit', $edit, t('Save'));
drupal_static_reset();
$edited_qt = quicktabs_load($quicktabs->machine_name);
$this
->assertTrue($edited_qt != FALSE, t('Quicktabs instance found in database'));
foreach ($saved as $property => $value) {
$this
->assertEqual($edited_qt->{$property}, $value, t('Quicktabs property %property properly saved.', array(
'%property' => $property,
)));
}
$this
->drupalPost('admin/structure/quicktabs/manage/' . $quicktabs->machine_name . '/delete', array(), t('Delete'));
drupal_static_reset();
$this
->assertNull(quicktabs_load($quicktabs->machine_name), t('Quicktabs instance not found in database'));
}
}