Index: mojo/public/dart/third_party/unittest/lib/html_individual_config.dart |
diff --git a/mojo/public/dart/third_party/unittest/lib/html_individual_config.dart b/mojo/public/dart/third_party/unittest/lib/html_individual_config.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b9ec4e6d25151e34fffcbda6121cd50e8befd013 |
--- /dev/null |
+++ b/mojo/public/dart/third_party/unittest/lib/html_individual_config.dart |
@@ -0,0 +1,48 @@ |
+// Copyright (c) 2013, 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. |
+ |
+/// A unit test library for running groups of tests in a browser, instead of the |
+/// entire test file. This is especially used for large tests files that have |
+/// many subtests, so we can mark groups as failing at a finer granularity than |
+/// the entire test file. |
+/// |
+/// To use, import this file, and call [useHtmlIndividualConfiguration] at the |
+/// start of your set sequence. Important constraint: your group descriptions |
+/// MUST NOT contain spaces. |
+library unittest.html_individual_config; |
+ |
+import 'dart:html'; |
+import 'unittest.dart' as unittest; |
+import 'html_config.dart' as htmlconfig; |
+ |
+class HtmlIndividualConfiguration extends htmlconfig.HtmlConfiguration { |
+ HtmlIndividualConfiguration(bool isLayoutTest) : super(isLayoutTest); |
+ |
+ void onStart() { |
+ var uri = Uri.parse(window.location.href); |
+ |
+ var groups = 'group='.allMatches(uri.query).toList(); |
+ |
+ if (groups.length > 1) { |
+ throw new ArgumentError('More than one "group" parameter provided.'); |
+ } |
+ |
+ var testGroupName = uri.queryParameters['group']; |
+ |
+ if (testGroupName != null) { |
+ var startsWith = "$testGroupName${unittest.groupSep}"; |
+ unittest.filterTests( |
+ (unittest.TestCase tc) => tc.description.startsWith(startsWith)); |
+ } |
+ super.onStart(); |
+ } |
+} |
+ |
+void useHtmlIndividualConfiguration([bool isLayoutTest = false]) { |
+ unittest.unittestConfiguration = |
+ isLayoutTest ? _singletonLayout : _singletonNotLayout; |
+} |
+ |
+final _singletonLayout = new HtmlIndividualConfiguration(true); |
+final _singletonNotLayout = new HtmlIndividualConfiguration(false); |