Code Duplication    Length = 29-29 lines in 2 locations

tests/php/Forms/DatetimeFieldTest.php 2 locations

@@ 214-242 (lines=29) @@
211
        $this->assertFalse($dateField->validate(new RequiredFields()), 'Date below min datetime');
212
    }
213
214
    public function testValidateMinDateWithSubmittedValueAndTimezone()
215
    {
216
        // Berlin and Auckland have 12h time difference in northern hemisphere winter
217
        date_default_timezone_set('Europe/Berlin');
218
219
        $dateField = new DatetimeField('Datetime');
220
        $dateField->setTimezone('Pacific/Auckland');
221
        $dateField->setMinDatetime('2009-01-30 23:00:00'); // server timezone (Berlin)
222
        $dateField->setSubmittedValue('2009-01-31T11:00:01'); // frontend timezone (Auckland)
223
        $this->assertTrue($dateField->validate(new RequiredFields()), 'Time above min datetime');
224
225
        $dateField = new DatetimeField('Datetime');
226
        $dateField->setTimezone('Pacific/Auckland');
227
        $dateField->setMinDatetime('2009-01-30 23:00:00');
228
        $dateField->setSubmittedValue('2009-01-31T10:00:00');
229
        $this->assertFalse($dateField->validate(new RequiredFields()), 'Time below min datetime');
230
231
        $dateField = new DatetimeField('Datetime');
232
        $dateField->setTimezone('Pacific/Auckland');
233
        $dateField->setMinDatetime('2009-01-30 23:00:00');
234
        $dateField->setSubmittedValue('2009-01-31T11:00:00');
235
        $this->assertTrue($dateField->validate(new RequiredFields()), 'Date and time matching min datetime');
236
237
        $dateField = new DatetimeField('Datetime');
238
        $dateField->setTimezone('Pacific/Auckland');
239
        $dateField->setMinDatetime('2009-01-30 23:00:00');
240
        $dateField->setSubmittedValue('2008-01-31T11:00:00');
241
        $this->assertFalse($dateField->validate(new RequiredFields()), 'Date below min datetime');
242
    }
243
244
    public function testValidateMinDateStrtotime()
245
    {
@@ 293-321 (lines=29) @@
290
        $this->assertFalse($f->validate(new RequiredFields()), 'Date above max datetime');
291
    }
292
293
    public function testValidateMaxDateWithSubmittedValueAndTimezone()
294
    {
295
        // Berlin and Auckland have 12h time difference in northern hemisphere winter
296
        date_default_timezone_set('Europe/Berlin');
297
298
        $f = new DatetimeField('Datetime');
299
        $f->setTimezone('Pacific/Auckland');
300
        $f->setMaxDatetime('2009-01-31 23:00:00'); // server timezone (Berlin)
301
        $f->setSubmittedValue('2009-01-31T10:00:00'); // frontend timezone (Auckland)
302
        $this->assertTrue($f->validate(new RequiredFields()), 'Time below max datetime');
303
304
        $f = new DatetimeField('Datetime');
305
        $f->setTimezone('Pacific/Auckland');
306
        $f->setMaxDatetime('2009-01-31 23:00:00');
307
        $f->setSubmittedValue('2010-01-31T11:00:01');
308
        $this->assertFalse($f->validate(new RequiredFields()), 'Time above max datetime');
309
310
        $f = new DatetimeField('Datetime');
311
        $f->setTimezone('Pacific/Auckland');
312
        $f->setMaxDatetime('2009-01-31 23:00:00');
313
        $f->setSubmittedValue('2009-01-31T11:00:00');
314
        $this->assertTrue($f->validate(new RequiredFields()), 'Date and time matching max datetime');
315
316
        $f = new DatetimeField('Datetime');
317
        $f->setTimezone('Pacific/Auckland');
318
        $f->setMaxDatetime('2009-01-31 23:00:00');
319
        $f->setSubmittedValue('2010-01-31T11:00:00');
320
        $this->assertFalse($f->validate(new RequiredFields()), 'Date above max datetime');
321
    }
322
323
    public function testTimezoneSetValueLocalised()
324
    {