OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | |
2 // for details. All rights reserved. Use of this source code is governed by a | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 /** | |
6 * Test date formatting and parsing using locale data which is available | |
7 * directly in the program as a constant. | |
8 */ | |
9 | |
10 library date_time_format_test; | |
11 | |
12 import 'dart:async'; | |
13 import 'package:unittest/unittest.dart'; | |
14 import 'package:intl/intl.dart'; | |
15 import 'date_time_format_test_core.dart'; | |
16 | |
17 typedef List<String> TestListFunc(); | |
18 | |
19 typedef Future InitializeDateFormattingFunc(String locale, String filePath); | |
20 | |
21 /** | |
22 * Return only the odd-numbered locales. A simple way to divide the list into | |
23 * two roughly equal parts. | |
24 */ | |
25 List<String> oddLocales() { | |
26 int i = 1; | |
27 return allLocales().where((x) => (i++).isOdd).toList(); | |
28 } | |
29 | |
30 /** | |
31 * Return a set of a few locales to run just the tests on a small sample. | |
32 */ | |
33 List smallSetOfLocales() { | |
34 return allLocales().sublist(0, 10); | |
35 } | |
36 | |
37 /** | |
38 * Return only the even-numbered locales. A simple way to divide the list into | |
39 * two roughly equal parts. | |
40 */ | |
41 List<String> evenLocales() { | |
42 int i = 1; | |
43 return allLocales().where((x) => !((i++).isOdd)).toList(); | |
44 } | |
45 | |
46 void runWith(TestListFunc getSubset, String dir, | |
47 InitializeDateFormattingFunc initFunction) { | |
48 // Initialize one locale just so we know what the list is. | |
49 // Also, note that we take the list of locales as a function so that we don't | |
50 // evaluate it until after we know that all the locales are available. | |
51 | |
52 bool initialized = false; | |
53 | |
54 setUp(() { | |
55 if (initialized) { | |
56 return null; | |
57 } | |
58 return initFunction("en_US", dir) | |
59 .then((_) { | |
60 return Future.forEach(DateFormat.allLocalesWithSymbols(), (locale) { | |
61 return initFunction(locale, dir); | |
62 }); | |
63 }) | |
64 .then((_) { | |
65 initialized = true; | |
66 }); | |
67 }); | |
68 | |
69 runDateTests(getSubset); | |
70 } | |
OLD | NEW |