Index: pkg/intl/test/date_time_format_test_stub.dart |
diff --git a/pkg/intl/test/date_time_format_test_stub.dart b/pkg/intl/test/date_time_format_test_stub.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1aa15779008e5dc3dd048c7989485f6e8ceb26bd |
--- /dev/null |
+++ b/pkg/intl/test/date_time_format_test_stub.dart |
@@ -0,0 +1,70 @@ |
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+/** |
+ * Test date formatting and parsing using locale data which is available |
+ * directly in the program as a constant. |
+ */ |
+ |
+library date_time_format_test; |
+ |
+import 'dart:async'; |
+import 'package:unittest/unittest.dart'; |
+import 'package:intl/intl.dart'; |
+import 'date_time_format_test_core.dart'; |
+ |
+typedef List<String> TestListFunc(); |
+ |
+typedef Future InitializeDateFormattingFunc(String locale, String filePath); |
+ |
+/** |
+ * Return only the odd-numbered locales. A simple way to divide the list into |
+ * two roughly equal parts. |
+ */ |
+List<String> oddLocales() { |
+ int i = 1; |
+ return allLocales().where((x) => (i++).isOdd).toList(); |
+} |
+ |
+/** |
+ * Return a set of a few locales to run just the tests on a small sample. |
+ */ |
+List smallSetOfLocales() { |
+ return allLocales().sublist(0,10); |
+} |
+ |
+/** |
+ * Return only the even-numbered locales. A simple way to divide the list into |
+ * two roughly equal parts. |
+ */ |
+List<String> evenLocales() { |
+ int i = 1; |
+ return allLocales().where((x) => !((i++).isOdd)).toList(); |
+} |
+ |
+void runWith(TestListFunc getSubset, String dir, |
+ InitializeDateFormattingFunc initFunction) { |
+ // Initialize one locale just so we know what the list is. |
+ // Also, note that we take the list of locales as a function so that we don't |
+ // evaluate it until after we know that all the locales are available. |
+ |
+ bool initialized = false; |
+ |
+ setUp(() { |
+ if(initialized) { |
+ return; |
+ } |
+ return initFunction("en_US", dir) |
+ .then((_) { |
+ return Future.forEach(DateFormat.allLocalesWithSymbols(), (locale) { |
+ return initFunction(locale, dir); |
+ }); |
+ }) |
+ .then((_) { |
+ initialized = true; |
+ }); |
+ }); |
+ |
+ runDateTests(getSubset); |
+} |