Newer
Older
Karen Stevenson
committed
<?php
Karen Stevenson
committed
class DateToolsTestCase extends DrupalWebTestCase {
protected $privileged_user;
public static function getInfo() {
return array(
'name' => 'Date Tools',
'description' => 'Test Date Wizard and other Date Tools.',
'group' => 'Date',
);
}
public function setUp() {
// Load the date_api module.
parent::setUp('field', 'field_ui', 'date_api', 'date', 'date_popup', 'date_tools');
// Create and log in our privileged user.
$this->privileged_user = $this->drupalCreateUser(array(
'administer content types', 'administer nodes', 'bypass node access', 'administer date tools'
));
$this->drupalLogin($this->privileged_user);
Karen Stevenson
committed
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
variable_set('date_format_long', 'D, m/d/Y - H:i');
}
public function testTools() {
// Create a date field using the Date Wizard.
$form_values = array('label' => 'Test', 'field_type' => 'datetime', 'widget_type' => 'date_select', 'todate' => '');
$this->createDateWizard($form_values);
$this->dateForm($options = 'select');
$this->assertText('Thu, 10/07/2010 - 10:30', 'Found the correct date for the Date Wizard datetime field using the date_select widget.');
$this->deleteDateField();
}
function dateForm($options) {
// Tests that date field functions properly.
$edit = array();
$edit['title'] = $this->randomName(8);
$edit['body[und][0][value]'] = $this->randomName(16);
if ($options == 'select') {
$edit['field_test[und][0][value][year]'] = '2010';
$edit['field_test[und][0][value][month]'] = '10';
$edit['field_test[und][0][value][day]'] = '7';
$edit['field_test[und][0][value][hour]'] = '10';
$edit['field_test[und][0][value][minute]'] = '30';
}
elseif ($options == 'text') {
$edit['field_test[und][0][value][date]'] = '10/07/2010 - 10:30';
}
elseif ($options == 'popup') {
$edit['field_test[und][0][value][date]'] = '10/07/2010';
$edit['field_test[und][0][value][time]'] = '10:30';
}
$this->drupalPost('node/add/story', $edit, t('Save'));
$this->assertText($edit['body[und][0][value]'], 'Test node has been created');
}
function deleteDateField() {
$this->drupalGet('admin/structure/types/manage/story/fields');
$this->clickLink('delete');
$this->drupalPost(NULL, NULL, t('Delete'));
$this->assertText('The field Test has been deleted from the Story content type.', 'Removed date field.');
}
// Create a date field using the Date Wizard,
function createDateWizard($edit) {
$edit += array(
'bundle' => 'story',
'name' => 'Story',
'type_description' => 'A test content type.',
'field_name' => 'test',
'label' => 'Test',
Karen Stevenson
committed
'widget_type' => 'date_select',
'todate' => 'optional',
'field_type' => 'date',
'granularity[]' => array('year', 'month', 'day', 'hour', 'minute'),
Karen Stevenson
committed
'tz_handling' => 'site',
'year_range' => '2010:+2',
Karen Stevenson
committed
);
$this->drupalPost('admin/structure/date/date_wizard', $edit, t('Save'));
$this->assertText('Your date field Test has been created.', 'Create a date field using the Date Wizard.');
}