// 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. // The filters must be set by the caller that #sources this file. List includeFilters; // TODO(gram): dart2js is not handling 'part of' properly yet; when it // does uncomment this. //part of layout_test; List excludeFilters; class LayoutTestConfiguration extends unittest.Configuration { get autoStart => false; void onTestResult(unittest.TestCase testCase) { window.postMessage('done', '*'); // Unblock DRT } } filterTest(t) { var name = t.description.replaceAll("###", " "); if (includeFilters.length > 0) { for (var f in includeFilters) { if (name.indexOf(f) >= 0) return true; } return false; } else if (excludeFilters.length > 0) { for (var f in excludeFilters) { if (name.indexOf(f) >= 0) return false; } return true; } else { return true; } } runTests(testMain) { unittest.groupSep = '###'; unittest.configure(new LayoutTestConfiguration()); // Create the set of test cases. unittest.group('', testMain); // Do any user-specified test filtering. unittest.filterTests(filterTest); // Filter to the test number in the search query. var testNum = int.parse(window.location.search.substring(6)); if (testNum < 0 || testNum >= unittest.testCases.length) { print('#TEST NONEXISTENT'); window.postMessage('done', '*'); // Unblock DRT } else { var name = unittest.testCases[testNum].description; print('#TEST $name'); unittest.filterTests(name); // Run the test. print('Tests - ${unittest.testCases.length}'); unittest.runTests(); } }