Projet

Général

Profil

Paste
Télécharger (22 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / date / date_repeat / tests / date_repeat_form.test @ 74f6bef0

1
<?php
2

    
3
/**
4
 * @file
5
 * Test Date Repeat form.
6
 */
7

    
8
class DateRepeatFormTestCase extends DrupalWebTestCase {
9
  protected $privileged_user;
10

    
11
  public static function getInfo() {
12
    return array(
13
      'name' => t('Date Repeat Form'),
14
      'description' => t('Test Date Repeat form.') ,
15
      'group' => t('Date'),
16
    );
17
  }
18

    
19
  /**
20
   * Implements setUp().
21
   */
22
  public function setUp() {
23
    // Load the date_repeat module.
24
    parent::setUp('field', 'field_ui', 'date_api', 'date_repeat', 'date', 'date_popup', 'date_repeat_field');
25

    
26
    // Create and log in our privileged user.
27
    $this->privileged_user = $this->drupalCreateUser(array(
28
      'administer content types', 'administer nodes', 'bypass node access', 'view date repeats'
29
    ));
30
    $this->drupalLogin($this->privileged_user);
31

    
32
    variable_set('date_format_short', 'Y-m-d H:i');
33
  }
34

    
35
  public function testDateRepeatForm() {
36
    $edit = array();
37
    $edit['name'] = 'Date';
38
    $edit['type'] = 'date';
39
    $this->drupalPost('admin/structure/types/add', $edit, t('Save content type'));
40
    $this->assertText('The content type Date has been added.', 'Content type added.');
41
    $display_all_day = FALSE;
42

    
43
    // Testing options.
44
    $widget_options = array(
45
      'date_select' => 'select',
46
      'date_text' => 'text',
47
      'date_popup' => 'popup');
48

    
49
    foreach ($widget_options as $widget => $options) {
50
      // Daily tests
51
      // Creates date field stored as a datetime.
52
      $this->createDateField($type = 'datetime', $widget, $display_all_day);
53

    
54
      $form_edit = $this->dateForm($options, 'daily_1');
55
      $this->verifyDateForm($form_edit);
56

    
57
      $form_edit = $this->dateForm($options, 'daily_2');
58
      $this->verifyDateForm($form_edit);
59

    
60
      $form_edit = $this->dateForm($options, 'daily_3');
61
      $this->verifyDateForm($form_edit);
62

    
63
      $form_edit = $this->dateForm($options, 'daily_4');
64
      $this->verifyDateForm($form_edit);
65

    
66
      $form_edit = $this->dateForm($options, 'daily_1', TRUE);
67
      $this->verifyDateForm($form_edit);
68

    
69
      $form_edit = $this->dateForm($options, 'daily_2', TRUE);
70
      $this->verifyDateForm($form_edit);
71

    
72
      $form_edit = $this->dateForm($options, 'daily_3', TRUE);
73
      $this->verifyDateForm($form_edit);
74

    
75
      $form_edit = $this->dateForm($options, 'daily_4', TRUE);
76
      $this->verifyDateForm($form_edit);
77

    
78
      $form_edit = $this->dateForm($options, 'daily_1', FALSE, 'exclude');
79
      $this->verifyDateForm($form_edit);
80

    
81
      $form_edit = $this->dateForm($options, 'daily_1', FALSE, 'include');
82
      $this->verifyDateForm($form_edit);
83

    
84
      $form_edit = $this->dateForm($options, 'daily_1', FALSE, 'exclude_include');
85
      $this->verifyDateForm($form_edit);
86

    
87
      // Weekly tests
88

    
89
      $form_edit = $this->dateForm($options, 'weekly_1');
90
      $this->verifyDateForm($form_edit);
91

    
92
      $form_edit = $this->dateForm($options, 'weekly_2');
93
      $this->verifyDateForm($form_edit);
94

    
95
      $form_edit = $this->dateForm($options, 'weekly_3');
96
      $this->verifyDateForm($form_edit);
97

    
98
      $form_edit = $this->dateForm($options, 'weekly_4');
99
      $this->verifyDateForm($form_edit);
100

    
101
      $form_edit = $this->dateForm($options, 'weekly_1', TRUE);
102
      $this->verifyDateForm($form_edit);
103

    
104
      $form_edit = $this->dateForm($options, 'weekly_2', TRUE);
105
      $this->verifyDateForm($form_edit);
106

    
107
      $form_edit = $this->dateForm($options, 'weekly_3', TRUE);
108
      $this->verifyDateForm($form_edit);
109

    
110
      $form_edit = $this->dateForm($options, 'weekly_4', TRUE);
111
      $this->verifyDateForm($form_edit);
112

    
113
      // Monthly tests
114

    
115
      $form_edit = $this->dateForm($options, 'monthly_1');
116
      $this->verifyDateForm($form_edit);
117

    
118
      $form_edit = $this->dateForm($options, 'monthly_2');
119
      $this->verifyDateForm($form_edit);
120

    
121
      $form_edit = $this->dateForm($options, 'monthly_3');
122
      $this->verifyDateForm($form_edit);
123

    
124
      $form_edit = $this->dateForm($options, 'monthly_4');
125
      $this->verifyDateForm($form_edit);
126

    
127
      $form_edit = $this->dateForm($options, 'monthly_5');
128
      $this->verifyDateForm($form_edit);
129

    
130
      $form_edit = $this->dateForm($options, 'monthly_6');
131
      $this->verifyDateForm($form_edit);
132

    
133
      $form_edit = $this->dateForm($options, 'monthly_1', TRUE);
134
      $this->verifyDateForm($form_edit);
135

    
136
      $form_edit = $this->dateForm($options, 'monthly_2', TRUE);
137
      $this->verifyDateForm($form_edit);
138

    
139
      $form_edit = $this->dateForm($options, 'monthly_3', TRUE);
140
      $this->verifyDateForm($form_edit);
141

    
142
      $form_edit = $this->dateForm($options, 'monthly_4', TRUE);
143
      $this->verifyDateForm($form_edit);
144

    
145
      $form_edit = $this->dateForm($options, 'monthly_5', TRUE);
146
      $this->verifyDateForm($form_edit);
147

    
148
      $form_edit = $this->dateForm($options, 'monthly_6', TRUE);
149
      $this->verifyDateForm($form_edit);
150

    
151
      // Yearly tests
152

    
153
      $form_edit = $this->dateForm($options, 'yearly_1');
154
      $this->verifyDateForm($form_edit);
155

    
156
      $form_edit = $this->dateForm($options, 'yearly_2');
157
      $this->verifyDateForm($form_edit);
158

    
159
      $form_edit = $this->dateForm($options, 'yearly_3');
160
      $this->verifyDateForm($form_edit);
161

    
162
      $form_edit = $this->dateForm($options, 'yearly_4');
163
      $this->verifyDateForm($form_edit);
164

    
165
      $form_edit = $this->dateForm($options, 'yearly_5');
166
      $this->verifyDateForm($form_edit);
167

    
168
      $form_edit = $this->dateForm($options, 'yearly_6');
169
      $this->verifyDateForm($form_edit);
170

    
171
      $form_edit = $this->dateForm($options, 'yearly_1', TRUE);
172
      $this->verifyDateForm($form_edit);
173

    
174
      $form_edit = $this->dateForm($options, 'yearly_2', TRUE);
175
      $this->verifyDateForm($form_edit);
176

    
177
      $form_edit = $this->dateForm($options, 'yearly_3', TRUE);
178
      $this->verifyDateForm($form_edit);
179

    
180
      $form_edit = $this->dateForm($options, 'yearly_4', TRUE);
181
      $this->verifyDateForm($form_edit);
182

    
183
      $form_edit = $this->dateForm($options, 'yearly_5', TRUE);
184
      $this->verifyDateForm($form_edit);
185

    
186
      $form_edit = $this->dateForm($options, 'yearly_6', TRUE);
187
      $this->verifyDateForm($form_edit);
188

    
189
      $this->deleteDateField();
190
    }
191
  }
192

    
193
  function dateForm($options, $test_id = NULL, $is_count = FALSE, $exclude_include = NULL) {
194
    // Tests that date field functions properly.
195
    $edit = array();
196
    $edit['title'] = $this->randomName(8);
197
    $edit['body[und][0][value]'] = $this->randomName(16);
198

    
199
    switch ($options) {
200
      case 'select':
201
        $edit['field_test[und][0][value][year]'] = '2010';
202
        $edit['field_test[und][0][value][month]'] = '10';
203
        $edit['field_test[und][0][value][day]'] = '7';
204
        $edit['field_test[und][0][value][hour]'] = '10';
205
        $edit['field_test[und][0][value][minute]'] = '30';
206
        break;
207
      case 'text':
208
        $edit['field_test[und][0][value][date]'] = '2010-10-07 10:30';
209
        break;
210
      case 'popup':
211
        $edit['field_test[und][0][value][date]'] = '2010-10-07';
212
        $edit['field_test[und][0][value][time]'] = '10:30';
213
        break;
214
    }
215

    
216
    // Tests that Date repeat settings function properly
217
    if ($test_id !== NULL) {
218
      $edit['field_test[und][0][show_repeat_settings]'] = TRUE;
219
      $count = 5;
220

    
221
      switch ($test_id) {
222
        // Daily test cases
223
        case 'daily_1':
224
          $edit['field_test[und][0][rrule][FREQ]'] = 'DAILY';
225
          $edit['field_test[und][0][rrule][daily][byday_radios]'] = 'INTERVAL';
226
          $edit['field_test[und][0][rrule][daily][INTERVAL_child]'] = 2;
227
          break;
228
        case 'daily_2':
229
          $edit['field_test[und][0][rrule][FREQ]'] = 'DAILY';
230
          $edit['field_test[und][0][rrule][daily][byday_radios]'] = 'every_weekday';
231
          break;
232
        case 'daily_3':
233
          $edit['field_test[und][0][rrule][FREQ]'] = 'DAILY';
234
          $edit['field_test[und][0][rrule][daily][byday_radios]'] = 'every_mo_we_fr';
235
          break;
236
        case 'daily_4':
237
          $edit['field_test[und][0][rrule][FREQ]'] = 'DAILY';
238
          $edit['field_test[und][0][rrule][daily][byday_radios]'] = 'every_tu_th';
239
          break;
240

    
241
        // Weekly test cases
242
        case 'weekly_1':
243
          $edit['field_test[und][0][rrule][FREQ]'] = 'WEEKLY';
244
          $edit['field_test[und][0][rrule][weekly][BYDAY][MO]'] = TRUE;
245
          $edit['field_test[und][0][rrule][weekly][BYDAY][WE]'] = TRUE;
246
          $edit['field_test[und][0][rrule][weekly][BYDAY][TH]'] = TRUE;
247
          break;
248
        case 'weekly_2':
249
          $edit['field_test[und][0][rrule][FREQ]'] = 'WEEKLY';
250
          $edit['field_test[und][0][rrule][weekly][INTERVAL]'] = 1;
251
          $edit['field_test[und][0][rrule][weekly][BYDAY][MO]'] = TRUE;
252
          $edit['field_test[und][0][rrule][weekly][BYDAY][FR]'] = TRUE;
253
          break;
254
        case 'weekly_3':
255
          $edit['field_test[und][0][rrule][FREQ]'] = 'WEEKLY';
256
          $edit['field_test[und][0][rrule][weekly][INTERVAL]'] = 2;
257
          $edit['field_test[und][0][rrule][weekly][BYDAY][TU]'] = TRUE;
258
          $edit['field_test[und][0][rrule][weekly][BYDAY][TH]'] = TRUE;
259
          break;
260
        case 'weekly_4':
261
          $edit['field_test[und][0][rrule][FREQ]'] = 'WEEKLY';
262
          $edit['field_test[und][0][rrule][weekly][INTERVAL]'] = 10;
263
          $edit['field_test[und][0][rrule][weekly][BYDAY][MO]'] = TRUE;
264
          $edit['field_test[und][0][rrule][weekly][BYDAY][TU]'] = TRUE;
265
          $edit['field_test[und][0][rrule][weekly][BYDAY][WE]'] = TRUE;
266
          $edit['field_test[und][0][rrule][weekly][BYDAY][TH]'] = TRUE;
267
          $edit['field_test[und][0][rrule][weekly][BYDAY][FR]'] = TRUE;
268
          break;
269

    
270
        // Monthly test cases
271
        case 'monthly_1':
272
          $edit['field_test[und][0][rrule][FREQ]'] = 'MONTHLY';
273
          $edit['field_test[und][0][rrule][monthly][day_month]'] = 'BYDAY_BYMONTH';
274
          $edit['field_test[und][0][rrule][monthly][BYDAY_BYMONTH_child][BYDAY_COUNT]'] = '+1';
275
          $edit['field_test[und][0][rrule][monthly][BYDAY_BYMONTH_child][BYDAY_DAY]'] = 'FR';
276
          break;
277
        case 'monthly_2':
278
          $edit['field_test[und][0][rrule][FREQ]'] = 'MONTHLY';
279
          $edit['field_test[und][0][rrule][monthly][day_month]'] = 'BYDAY_BYMONTH';
280
          $edit['field_test[und][0][rrule][monthly][BYDAY_BYMONTH_child][BYDAY_COUNT]'] = '+1';
281
          $edit['field_test[und][0][rrule][monthly][BYDAY_BYMONTH_child][BYDAY_DAY]'] = 'SU';
282
          $edit['field_test[und][0][rrule][monthly][BYDAY_BYMONTH_child][BYMONTH][1]'] = TRUE;
283
          $edit['field_test[und][0][rrule][monthly][BYDAY_BYMONTH_child][BYMONTH][3]'] = TRUE;
284
          $edit['field_test[und][0][rrule][monthly][BYDAY_BYMONTH_child][BYMONTH][5]'] = TRUE;
285
          $edit['field_test[und][0][rrule][monthly][BYDAY_BYMONTH_child][BYMONTH][7]'] = TRUE;
286
          $edit['field_test[und][0][rrule][monthly][BYDAY_BYMONTH_child][BYMONTH][9]'] = TRUE;
287
          $edit['field_test[und][0][rrule][monthly][BYDAY_BYMONTH_child][BYMONTH][11]'] = TRUE;
288
          break;
289
        case 'monthly_3':
290
          $edit['field_test[und][0][rrule][FREQ]'] = 'MONTHLY';
291
          $edit['field_test[und][0][rrule][monthly][day_month]'] = 'BYDAY_BYMONTH';
292
          $edit['field_test[und][0][rrule][monthly][BYDAY_BYMONTH_child][BYDAY_COUNT]'] = '-2';
293
          $edit['field_test[und][0][rrule][monthly][BYDAY_BYMONTH_child][BYDAY_DAY]'] = 'MO';
294
          $edit['field_test[und][0][rrule][monthly][BYDAY_BYMONTH_child][BYMONTH][6]'] = TRUE;
295
          $edit['field_test[und][0][rrule][monthly][BYDAY_BYMONTH_child][BYMONTH][12]'] = TRUE;
296
          break;
297
        case 'monthly_4':
298
          $edit['field_test[und][0][rrule][FREQ]'] = 'MONTHLY';
299
          $edit['field_test[und][0][rrule][monthly][day_month]'] = 'BYMONTHDAY_BYMONTH';
300
          $edit['field_test[und][0][rrule][monthly][BYMONTHDAY_BYMONTH_child][BYMONTHDAY]'] = '10';
301
          break;
302
        case 'monthly_5':
303
          $edit['field_test[und][0][rrule][FREQ]'] = 'MONTHLY';
304
          $edit['field_test[und][0][rrule][monthly][day_month]'] = 'BYMONTHDAY_BYMONTH';
305
          $edit['field_test[und][0][rrule][monthly][BYMONTHDAY_BYMONTH_child][BYMONTHDAY]'] = '10';
306
          $edit['field_test[und][0][rrule][monthly][BYMONTHDAY_BYMONTH_child][BYMONTH][1]'] = TRUE;
307
          $edit['field_test[und][0][rrule][monthly][BYMONTHDAY_BYMONTH_child][BYMONTH][2]'] = TRUE;
308
          $edit['field_test[und][0][rrule][monthly][BYMONTHDAY_BYMONTH_child][BYMONTH][3]'] = TRUE;
309
          break;
310
        case 'monthly_6':
311
          $edit['field_test[und][0][rrule][FREQ]'] = 'MONTHLY';
312
          $edit['field_test[und][0][rrule][monthly][day_month]'] = 'BYMONTHDAY_BYMONTH';
313
          $edit['field_test[und][0][rrule][monthly][BYMONTHDAY_BYMONTH_child][BYMONTHDAY]'] = '-5';
314
          $edit['field_test[und][0][rrule][monthly][BYMONTHDAY_BYMONTH_child][BYMONTH][2]'] = TRUE;
315
          $edit['field_test[und][0][rrule][monthly][BYMONTHDAY_BYMONTH_child][BYMONTH][4]'] = TRUE;
316
          $edit['field_test[und][0][rrule][monthly][BYMONTHDAY_BYMONTH_child][BYMONTH][6]'] = TRUE;
317
          break;
318

    
319
        // Yearly test cases
320
        case 'yearly_1':
321
          $edit['field_test[und][0][rrule][FREQ]'] = 'YEARLY';
322
          $edit['field_test[und][0][rrule][yearly][day_month]'] = 'BYDAY_BYMONTH';
323
          $edit['field_test[und][0][rrule][yearly][BYDAY_BYMONTH_child][BYDAY_COUNT]'] = '+1';
324
          $edit['field_test[und][0][rrule][yearly][BYDAY_BYMONTH_child][BYDAY_DAY]'] = 'FR';
325
          break;
326
        case 'yearly_2':
327
          $edit['field_test[und][0][rrule][FREQ]'] = 'YEARLY';
328
          $edit['field_test[und][0][rrule][yearly][INTERVAL]'] = 2;
329
          $edit['field_test[und][0][rrule][yearly][day_month]'] = 'BYDAY_BYMONTH';
330
          $edit['field_test[und][0][rrule][yearly][BYDAY_BYMONTH_child][BYDAY_COUNT]'] = '+1';
331
          $edit['field_test[und][0][rrule][yearly][BYDAY_BYMONTH_child][BYDAY_DAY]'] = 'SU';
332
          $edit['field_test[und][0][rrule][yearly][BYDAY_BYMONTH_child][BYMONTH][1]'] = TRUE;
333
          $edit['field_test[und][0][rrule][yearly][BYDAY_BYMONTH_child][BYMONTH][3]'] = TRUE;
334
          $edit['field_test[und][0][rrule][yearly][BYDAY_BYMONTH_child][BYMONTH][5]'] = TRUE;
335
          $edit['field_test[und][0][rrule][yearly][BYDAY_BYMONTH_child][BYMONTH][7]'] = TRUE;
336
          $edit['field_test[und][0][rrule][yearly][BYDAY_BYMONTH_child][BYMONTH][9]'] = TRUE;
337
          $edit['field_test[und][0][rrule][yearly][BYDAY_BYMONTH_child][BYMONTH][11]'] = TRUE;
338
          break;
339
        case 'yearly_3':
340
          $edit['field_test[und][0][rrule][FREQ]'] = 'YEARLY';
341
          $edit['field_test[und][0][rrule][yearly][INTERVAL]'] = 3;
342
          $edit['field_test[und][0][rrule][yearly][day_month]'] = 'BYDAY_BYMONTH';
343
          $edit['field_test[und][0][rrule][yearly][BYDAY_BYMONTH_child][BYDAY_COUNT]'] = '-2';
344
          $edit['field_test[und][0][rrule][yearly][BYDAY_BYMONTH_child][BYDAY_DAY]'] = 'MO';
345
          $edit['field_test[und][0][rrule][yearly][BYDAY_BYMONTH_child][BYMONTH][6]'] = TRUE;
346
          $edit['field_test[und][0][rrule][yearly][BYDAY_BYMONTH_child][BYMONTH][12]'] = TRUE;
347
          break;
348
        case 'yearly_4':
349
          $edit['field_test[und][0][rrule][FREQ]'] = 'YEARLY';
350
          $edit['field_test[und][0][rrule][yearly][day_month]'] = 'BYMONTHDAY_BYMONTH';
351
          $edit['field_test[und][0][rrule][yearly][BYMONTHDAY_BYMONTH_child][BYMONTHDAY]'] = '10';
352
          break;
353
        case 'yearly_5':
354
          $edit['field_test[und][0][rrule][FREQ]'] = 'YEARLY';
355
          $edit['field_test[und][0][rrule][yearly][INTERVAL]'] = 2;
356
          $edit['field_test[und][0][rrule][yearly][day_month]'] = 'BYMONTHDAY_BYMONTH';
357
          $edit['field_test[und][0][rrule][yearly][BYMONTHDAY_BYMONTH_child][BYMONTHDAY]'] = '10';
358
          $edit['field_test[und][0][rrule][yearly][BYMONTHDAY_BYMONTH_child][BYMONTH][1]'] = TRUE;
359
          $edit['field_test[und][0][rrule][yearly][BYMONTHDAY_BYMONTH_child][BYMONTH][2]'] = TRUE;
360
          $edit['field_test[und][0][rrule][yearly][BYMONTHDAY_BYMONTH_child][BYMONTH][3]'] = TRUE;
361
          break;
362
        case 'yearly_6':
363
          $edit['field_test[und][0][rrule][FREQ]'] = 'YEARLY';
364
          $edit['field_test[und][0][rrule][yearly][INTERVAL]'] = 3;
365
          $edit['field_test[und][0][rrule][yearly][day_month]'] = 'BYMONTHDAY_BYMONTH';
366
          $edit['field_test[und][0][rrule][yearly][BYMONTHDAY_BYMONTH_child][BYMONTHDAY]'] = '-5';
367
          $edit['field_test[und][0][rrule][yearly][BYMONTHDAY_BYMONTH_child][BYMONTH][2]'] = TRUE;
368
          $edit['field_test[und][0][rrule][yearly][BYMONTHDAY_BYMONTH_child][BYMONTH][4]'] = TRUE;
369
          $edit['field_test[und][0][rrule][yearly][BYMONTHDAY_BYMONTH_child][BYMONTH][6]'] = TRUE;
370
          break;
371
      }
372

    
373
      // Test COUNT or UNTIL (default)
374
      if ($is_count) {
375
        $edit['field_test[und][0][rrule][range_of_repeat]'] = 'COUNT';
376
        $edit['field_test[und][0][rrule][count_child]'] = $count;
377
      }
378
      else {
379
        $edit['field_test[und][0][rrule][range_of_repeat]'] = 'UNTIL';
380
        $date = array(
381
          'year' => '2011',
382
          'month' => '10',
383
          'day' => '07'
384
        );
385
        $edit += $this->formatDateForRRULEInputs('field_test[und][0][rrule][until_child]', $options, $date);
386
      }
387

    
388
      // Test date exceptions and/or additions
389
      if ($exclude_include !== NULL) {
390
        $exclude_include_edit = array();
391
        switch ($exclude_include) {
392
          case 'exclude':
393
            $exclude_include_edit['field_test[und][0][rrule][show_exceptions]'] = TRUE;
394
            $date = array(
395
              'year' => '2010',
396
              'month' => '10',
397
              'day' => '07'
398
            );
399
            $exclude_include_edit += $this->formatDateForRRULEInputs('field_test[und][0][rrule][exceptions][EXDATE][0]', $options, $date);
400
            break;
401
          case 'include':
402
            $exclude_include_edit['field_test[und][0][rrule][show_additions]'] = TRUE;
403
            $date = array(
404
              'year' => '2013',
405
              'month' => '10',
406
              'day' => '07'
407
            );
408
            $exclude_include_edit += $this->formatDateForRRULEInputs('field_test[und][0][rrule][additions][RDATE][0]', $options, $date);
409
            break;
410
          case 'exclude_include':
411
            $exclude_include_edit['field_test[und][0][rrule][show_exceptions]'] = TRUE;
412
            $date = array(
413
              'year' => '2010',
414
              'month' => '10',
415
              'day' => '07'
416
            );
417
            $exclude_include_edit += $this->formatDateForRRULEInputs('field_test[und][0][rrule][exceptions][EXDATE][0]', $options, $date);
418

    
419
            $exclude_include_edit['field_test[und][0][rrule][show_additions]'] = TRUE;
420
            $date = array(
421
              'year' => '2013',
422
              'month' => '10',
423
              'day' => '07'
424
            );
425
            $exclude_include_edit += $this->formatDateForRRULEInputs('field_test[und][0][rrule][additions][RDATE][0]', $options, $date);
426
            break;
427
        }
428
        $edit += $exclude_include_edit;
429
      }
430
    }
431

    
432
    $this->drupalPost('node/add/date', $edit, t('Save'));
433
    $this->assertText($edit['body[und][0][value]'], 'Test node has been created');
434

    
435
    // Return the settings for later use in verification
436
    return $edit;
437
  }
438

    
439
  function verifyDateForm($edit) {
440
    $title = $edit['title'];
441
    $node = $this->drupalGetNodeByTitle($title);
442

    
443
    $this->drupalGet("node/{$node->nid}/edit");
444

    
445
    foreach ($edit as $field => $value) {
446
      $this->assertFieldByName($field, $value);
447
    }
448

    
449
    $this->drupalPost("node/{$node->nid}/delete", NULL, t('Delete'));
450
    $this->assertRaw(t('Date %title has been deleted.', array('%title' => $title)), t('Deleted Date content.'));
451
  }
452

    
453
  function createDateField($type, $widget, $display_all_day = FALSE) {
454
    $edit = array();
455
    $edit['fields[_add_new_field][label]'] = 'Test';
456
    $edit['fields[_add_new_field][field_name]'] = 'test';
457
    $edit['fields[_add_new_field][weight]'] = '-4';
458
    $edit['fields[_add_new_field][type]'] = $type;
459
    $edit['fields[_add_new_field][widget_type]'] = $widget;
460

    
461
    $label = $edit['fields[_add_new_field][label]'];
462

    
463
    $field_edit = array();
464
    $field_edit['field[settings][repeat]'] = 1;
465

    
466
    $instance_edit = array();
467
    switch ($widget) {
468
      case 'select':
469
      case 'popup':
470
      $instance_edit['instance[widget][settings][year_range][years_back]'] = '-5';
471
      $instance_edit['instance[widget][settings][year_range][years_forward]'] = '+5';
472
      break;
473
    }
474

    
475
    if ($display_all_day) {
476
      $instance_edit['instance[widget][settings][display_all_day]'] = TRUE;
477
    }
478

    
479
    // First step : 'Add new field' on the 'Manage fields' page.
480
    $this->drupalPost('admin/structure/types/manage/date/fields', $edit, t('Save'));
481
    $this->assertRaw(t('These settings apply to the %label field everywhere it is used.', array('%label' => $label)), t('Field settings page was displayed.'));
482

    
483
    // Second step : 'Field settings' form.
484
    $this->drupalPost(NULL, $field_edit, t('Save field settings'));
485
    $this->assertRaw(t('Updated field %label field settings.', array('%label' => $label)), t('Redirected to instance and widget settings page.'));
486

    
487
    // Third step : 'Instance settings' form.
488
    $this->drupalPost(NULL, $instance_edit, t('Save settings'));
489
    $this->assertRaw(t('Saved %label configuration.', array('%label' => $label)), t('Redirected to "Manage fields" page.'));
490

    
491
    // Check that the field appears in the overview form.
492
    $this->assertFieldByXPath('//table[@id="field-overview"]//td[1]', $label, t('Field was created and appears in the overview page.'));
493
  }
494

    
495
  function deleteDateField() {
496
    $this->drupalGet('admin/structure/types/manage/date/fields');
497
    $this->clickLink('delete');
498
    $this->drupalPost(NULL, NULL, t('Delete'));
499
    $this->assertText(t('The field Test has been deleted from the Date content type.'), t('Removed date field.'));
500
  }
501

    
502
  function formatDateForRRULEInputs($form_field_name, $date_widget_type, $date) {
503
    $return = array();
504

    
505
    switch ($date_widget_type) {
506
      case 'select':
507
        $return["{$form_field_name}[datetime][year]"] = $date['year'];
508
        $return["{$form_field_name}[datetime][month]"] = $date['month'];
509
        $return["{$form_field_name}[datetime][day]"] = ltrim($date['day'], '0');
510
        break;
511
      case 'text':
512
      case 'popup':
513
        //$return["{$field_name}[datetime][date]"] = '2011-10-07';
514
        $return["{$form_field_name}[datetime][date]"] = "{$date['year']}-{$date['month']}-{$date['day']}";
515
        break;
516
    }
517

    
518
    return $return;
519
  }
520
}