24
24
import java .text .SimpleDateFormat ;
25
25
import java .util .Calendar ;
26
26
import java .util .Locale ;
27
+ import java .util .TimeZone ;
28
+
27
29
import org .junit .Test ;
28
30
import org .junit .runner .RunWith ;
29
31
import org .robolectric .RobolectricTestRunner ;
35
37
@ DoNotInstrument
36
38
public class DateStringsTest {
37
39
38
- private static final int CURRENT_YEAR = Calendar .getInstance ().get (Calendar .YEAR );
40
+ private static final TimeZone UTC = TimeZone .getTimeZone ("UTC" );
41
+ private static final int CURRENT_YEAR = Calendar .getInstance (UTC ).get (Calendar .YEAR );
39
42
40
43
private Calendar startDate ;
41
44
private Calendar endDate ;
42
45
43
46
private static Calendar setupLocalizedCalendar (Locale locale , int year , int month , int day ) {
44
- Locale .setDefault (locale );
45
- Calendar calendar = Calendar .getInstance ();
47
+ Calendar calendar = Calendar .getInstance (UTC , locale );
46
48
calendar .clear ();
47
49
calendar .set (Calendar .YEAR , year );
48
50
calendar .set (Calendar .MONTH , month );
49
51
calendar .set (Calendar .DAY_OF_MONTH , day );
50
52
return calendar ;
51
53
}
52
54
55
+ private static SimpleDateFormat setupUtcDateFormat (String pattern , Locale locale ) {
56
+ SimpleDateFormat dateFormat = new SimpleDateFormat (pattern , locale );
57
+ dateFormat .setTimeZone (UTC );
58
+ return dateFormat ;
59
+ }
60
+
53
61
@ Test
54
62
public void frYearMonthDayString () {
55
63
Locale locale = Locale .FRANCE ;
@@ -217,10 +225,12 @@ public void getDateStringCurrentYear() {
217
225
218
226
@ Test
219
227
public void getDateStringCurrentYearWithUserDefinedDateFormat () {
220
- startDate = setupLocalizedCalendar (Locale .US , CURRENT_YEAR , 10 , 30 );
221
- String dateString =
222
- DateStrings .getDateString (
223
- startDate .getTimeInMillis (), new SimpleDateFormat ("MMMM dd, yyyy" , Locale .US ));
228
+ Locale locale = Locale .US ;
229
+ SimpleDateFormat dateFormat = setupUtcDateFormat ("MMMM dd, yyyy" , locale );
230
+
231
+ startDate = setupLocalizedCalendar (locale , CURRENT_YEAR , 10 , 30 );
232
+
233
+ String dateString = DateStrings .getDateString (startDate .getTimeInMillis (), dateFormat );
224
234
assertThat (dateString , is ("November 30, " + CURRENT_YEAR ));
225
235
}
226
236
@@ -233,10 +243,12 @@ public void getDateStringNextYear() {
233
243
234
244
@ Test
235
245
public void getDateStringNextYearWithUserDefinedDateFormat () {
236
- startDate = setupLocalizedCalendar (Locale .US , CURRENT_YEAR + 1 , 10 , 3 );
237
- String dateString =
238
- DateStrings .getDateString (
239
- startDate .getTimeInMillis (), new SimpleDateFormat ("MMMM dd" , Locale .US ));
246
+ Locale locale = Locale .US ;
247
+ SimpleDateFormat dateFormat = setupUtcDateFormat ("MMMM dd" , locale );
248
+
249
+ startDate = setupLocalizedCalendar (locale , CURRENT_YEAR + 1 , 10 , 3 );
250
+
251
+ String dateString = DateStrings .getDateString (startDate .getTimeInMillis (), dateFormat );
240
252
assertThat (dateString , is ("November 03" ));
241
253
}
242
254
@@ -275,33 +287,44 @@ public void getDateRangeStringMultipleYears() {
275
287
276
288
@ Test
277
289
public void getDateRangeStringCurrentYearWithUserDefinedDateFormat () {
278
- startDate = setupLocalizedCalendar (Locale .US , CURRENT_YEAR , 4 , 30 );
279
- endDate = setupLocalizedCalendar (Locale .US , CURRENT_YEAR , 11 , 5 );
290
+ Locale locale = Locale .US ;
291
+ SimpleDateFormat dateFormat = setupUtcDateFormat ("MMM dd, yyyy" , locale );
292
+
293
+ startDate = setupLocalizedCalendar (locale , CURRENT_YEAR , 4 , 30 );
294
+ endDate = setupLocalizedCalendar (locale , CURRENT_YEAR , 11 , 5 );
295
+
280
296
Pair <String , String > dateRangeString =
281
297
DateStrings .getDateRangeString (
282
298
startDate .getTimeInMillis (),
283
299
endDate .getTimeInMillis (),
284
- new SimpleDateFormat ( "MMM dd, yyyy" , Locale . US ) );
300
+ dateFormat );
285
301
assertThat (dateRangeString .first , is ("May 30, " + CURRENT_YEAR ));
286
302
assertThat (dateRangeString .second , is ("Dec 05, " + CURRENT_YEAR ));
287
303
}
288
304
289
305
@ Test
290
306
public void getDateRangeStringMultipleYearsWithUserDefinedDateFormat () {
291
- startDate = setupLocalizedCalendar (Locale .US , CURRENT_YEAR , 4 , 30 );
292
- endDate = setupLocalizedCalendar (Locale .US , CURRENT_YEAR + 1 , 11 , 5 );
307
+ Locale locale = Locale .US ;
308
+ SimpleDateFormat dateFormat = setupUtcDateFormat ("MMM dd" , locale );
309
+
310
+ startDate = setupLocalizedCalendar (locale , CURRENT_YEAR , 4 , 30 );
311
+ endDate = setupLocalizedCalendar (locale , CURRENT_YEAR + 1 , 11 , 5 );
312
+
293
313
Pair <String , String > dateRangeString =
294
314
DateStrings .getDateRangeString (
295
315
startDate .getTimeInMillis (),
296
316
endDate .getTimeInMillis (),
297
- new SimpleDateFormat ( "MMM dd" , Locale . US ) );
317
+ dateFormat );
298
318
assertThat (dateRangeString .first , is ("May 30" ));
299
319
assertThat (dateRangeString .second , is ("Dec 05" ));
300
320
}
301
321
302
322
@ Test
303
323
public void getDayContentDescription_notToday () {
304
- startDate = setupLocalizedCalendar (Locale .US , 2020 , 10 , 30 );
324
+ Locale locale = Locale .US ;
325
+ Locale .setDefault (locale );
326
+
327
+ startDate = setupLocalizedCalendar (locale , 2020 , 10 , 30 );
305
328
String contentDescription =
306
329
DateStrings .getDayContentDescription (
307
330
ApplicationProvider .getApplicationContext (),
@@ -315,7 +338,10 @@ public void getDayContentDescription_notToday() {
315
338
316
339
@ Test
317
340
public void getDayContentDescription_notToday_startOfRange () {
318
- startDate = setupLocalizedCalendar (Locale .US , 2020 , 10 , 30 );
341
+ Locale locale = Locale .US ;
342
+ Locale .setDefault (locale );
343
+
344
+ startDate = setupLocalizedCalendar (locale , 2020 , 10 , 30 );
319
345
String contentDescription =
320
346
DateStrings .getDayContentDescription (
321
347
ApplicationProvider .getApplicationContext (),
@@ -329,7 +355,10 @@ public void getDayContentDescription_notToday_startOfRange() {
329
355
330
356
@ Test
331
357
public void getDayContentDescription_notToday_endOfRange () {
332
- startDate = setupLocalizedCalendar (Locale .US , 2020 , 10 , 30 );
358
+ Locale locale = Locale .US ;
359
+ Locale .setDefault (locale );
360
+
361
+ startDate = setupLocalizedCalendar (locale , 2020 , 10 , 30 );
333
362
String contentDescription =
334
363
DateStrings .getDayContentDescription (
335
364
ApplicationProvider .getApplicationContext (),
@@ -343,7 +372,10 @@ public void getDayContentDescription_notToday_endOfRange() {
343
372
344
373
@ Test
345
374
public void getDayContentDescription_notToday_startAndEndOfRange () {
346
- startDate = setupLocalizedCalendar (Locale .US , 2020 , 10 , 30 );
375
+ Locale locale = Locale .US ;
376
+ Locale .setDefault (locale );
377
+
378
+ startDate = setupLocalizedCalendar (locale , 2020 , 10 , 30 );
347
379
String contentDescription =
348
380
DateStrings .getDayContentDescription (
349
381
ApplicationProvider .getApplicationContext (),
@@ -357,7 +389,10 @@ public void getDayContentDescription_notToday_startAndEndOfRange() {
357
389
358
390
@ Test
359
391
public void getDayContentDescription_today () {
360
- startDate = setupLocalizedCalendar (Locale .US , 2020 , 10 , 30 );
392
+ Locale locale = Locale .US ;
393
+ Locale .setDefault (locale );
394
+
395
+ startDate = setupLocalizedCalendar (locale , 2020 , 10 , 30 );
361
396
String contentDescription =
362
397
DateStrings .getDayContentDescription (
363
398
ApplicationProvider .getApplicationContext (),
@@ -371,7 +406,10 @@ public void getDayContentDescription_today() {
371
406
372
407
@ Test
373
408
public void getDayContentDescription_today_startOfRange () {
374
- startDate = setupLocalizedCalendar (Locale .US , 2020 , 10 , 30 );
409
+ Locale locale = Locale .US ;
410
+ Locale .setDefault (locale );
411
+
412
+ startDate = setupLocalizedCalendar (locale , 2020 , 10 , 30 );
375
413
String contentDescription =
376
414
DateStrings .getDayContentDescription (
377
415
ApplicationProvider .getApplicationContext (),
@@ -385,7 +423,10 @@ public void getDayContentDescription_today_startOfRange() {
385
423
386
424
@ Test
387
425
public void getDayContentDescription_today_endOfRange () {
388
- startDate = setupLocalizedCalendar (Locale .US , 2020 , 10 , 30 );
426
+ Locale locale = Locale .US ;
427
+ Locale .setDefault (locale );
428
+
429
+ startDate = setupLocalizedCalendar (locale , 2020 , 10 , 30 );
389
430
String contentDescription =
390
431
DateStrings .getDayContentDescription (
391
432
ApplicationProvider .getApplicationContext (),
@@ -399,7 +440,10 @@ public void getDayContentDescription_today_endOfRange() {
399
440
400
441
@ Test
401
442
public void getDayContentDescription_today_startAndEndOfRange () {
402
- startDate = setupLocalizedCalendar (Locale .US , 2020 , 10 , 30 );
443
+ Locale locale = Locale .US ;
444
+ Locale .setDefault (locale );
445
+
446
+ startDate = setupLocalizedCalendar (locale , 2020 , 10 , 30 );
403
447
String contentDescription =
404
448
DateStrings .getDayContentDescription (
405
449
ApplicationProvider .getApplicationContext (),
@@ -413,7 +457,10 @@ public void getDayContentDescription_today_startAndEndOfRange() {
413
457
414
458
@ Test
415
459
public void getLocalizedDayContentDescription_german () {
416
- startDate = setupLocalizedCalendar (Locale .GERMAN , 2020 , 10 , 30 );
460
+ Locale locale = Locale .GERMAN ;
461
+ Locale .setDefault (locale );
462
+
463
+ startDate = setupLocalizedCalendar (locale , 2020 , 10 , 30 );
417
464
String contentDescription =
418
465
DateStrings .getDayContentDescription (
419
466
ApplicationProvider .getApplicationContext (),
@@ -428,7 +475,8 @@ public void getLocalizedDayContentDescription_german() {
428
475
@ Test
429
476
public void getYearContentDescription_notCurrent () {
430
477
String contentDescription =
431
- DateStrings .getYearContentDescription (ApplicationProvider .getApplicationContext (), 2020 );
478
+ DateStrings .getYearContentDescription (
479
+ ApplicationProvider .getApplicationContext (), 2020 );
432
480
433
481
assertThat (contentDescription , is ("Navigate to year 2020" ));
434
482
}
0 commit comments