Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(609)

Side by Side Diff: tools/testing/dart/browser_test.dart

Issue 2955513002: Dynamically load packages for dartdevc tests in test.dart. (Closed)
Patch Set: Remove TODO that's TODONE. Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/dev_compiler/tool/test.sh ('k') | tools/testing/dart/compiler_configuration.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'utils.dart';
6
5 String getHtmlContents(String title, String scriptType, String scriptPath) { 7 String getHtmlContents(String title, String scriptType, String scriptPath) {
6 return """ 8 return """
7 <!DOCTYPE html> 9 <!DOCTYPE html>
8 <html> 10 <html>
9 <head> 11 <head>
10 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 12 <meta http-equiv="X-UA-Compatible" content="IE=edge">
11 <meta name="dart.unittest" content="full-stack-traces"> 13 <meta name="dart.unittest" content="full-stack-traces">
12 <title> Test $title </title> 14 <title> Test $title </title>
13 <style> 15 <style>
14 .unittest-table { font-family:monospace; border:1px; } 16 .unittest-table { font-family:monospace; border:1px; }
(...skipping 16 matching lines...) Expand all
31 </body> 33 </body>
32 </html>"""; 34 </html>""";
33 } 35 }
34 36
35 /// Generates the HTML template file needed to load and run a dartdevc test in 37 /// Generates the HTML template file needed to load and run a dartdevc test in
36 /// the browser. 38 /// the browser.
37 /// 39 ///
38 /// The [testName] is the short name of the test without any subdirectory path 40 /// The [testName] is the short name of the test without any subdirectory path
39 /// or extension, like "math_test". The [testJSDir] is the relative path to the 41 /// or extension, like "math_test". The [testJSDir] is the relative path to the
40 /// build directory where the dartdevc-generated JS file is stored. 42 /// build directory where the dartdevc-generated JS file is stored.
41 String dartdevcHtml(String testName, String testJSDir) => """ 43 String dartdevcHtml(String testName, String testJSDir, String buildDir) {
44 var packagePaths = testPackages
45 .map((package) => ' "$package": "/root_dart/$buildDir/gen/utils/'
46 'dartdevc/pkg/$package",')
47 .join("\n");
48
49 return """
42 <!DOCTYPE html> 50 <!DOCTYPE html>
43 <html> 51 <html>
44 <head> 52 <head>
45 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 53 <meta http-equiv="X-UA-Compatible" content="IE=edge">
46 <meta name="dart.unittest" content="full-stack-traces"> 54 <meta name="dart.unittest" content="full-stack-traces">
47 <title>Test $testName</title> 55 <title>Test $testName</title>
48 <style> 56 <style>
49 .unittest-table { font-family:monospace; border:1px; } 57 .unittest-table { font-family:monospace; border:1px; }
50 .unittest-pass { background: #6b3;} 58 .unittest-pass { background: #6b3;}
51 .unittest-fail { background: #d55;} 59 .unittest-fail { background: #d55;}
52 .unittest-error { background: #a11;} 60 .unittest-error { background: #a11;}
53 </style> 61 </style>
54 </head> 62 </head>
55 <body> 63 <body>
56 <h1>Running $testName</h1> 64 <h1>Running $testName</h1>
57 <script type="text/javascript" 65 <script type="text/javascript"
58 src="/root_dart/tools/testing/dart/test_controller.js"> 66 src="/root_dart/tools/testing/dart/test_controller.js">
59 </script> 67 </script>
60 <script> 68 <script>
61 var require = { 69 var require = {
62 baseUrl: "/root_dart/$testJSDir", 70 baseUrl: "/root_dart/$testJSDir",
63 // TODO(29923): Add paths to the packages that are used in tests once they
64 // are being built. Right now, they are compiled into the test module itself.
65 paths: { 71 paths: {
66 "dart_sdk": "/root_dart/pkg/dev_compiler/lib/js/amd/dart_sdk", 72 "dart_sdk": "/root_dart/pkg/dev_compiler/lib/js/amd/dart_sdk",
73 $packagePaths
67 } 74 }
68 }; 75 };
69 76
70 // Don't try to bring up the debugger on a runtime error. 77 // Don't try to bring up the debugger on a runtime error.
71 window.ddcSettings = { 78 window.ddcSettings = {
72 trapRuntimeErrors: false 79 trapRuntimeErrors: false
73 }; 80 };
74 </script> 81 </script>
75 <script type="text/javascript" 82 <script type="text/javascript"
76 src="/root_dart/third_party/requirejs/require.js"></script> 83 src="/root_dart/third_party/requirejs/require.js"></script>
77 <script type="text/javascript"> 84 <script type="text/javascript">
78 requirejs(["$testName", "dart_sdk"], 85 requirejs(["$testName", "dart_sdk", "async_helper"],
79 function($testName, dart_sdk) { 86 function($testName, dart_sdk, async_helper) {
87 function finish() {
88 // dev_compiler's test runner (language_test.js) uses this to notify the
89 // test results, but it isn't needed for test.dart.
90 }
91
92 // TODO(rnystrom): This uses DDC's forked version of async_helper. Unfork
93 // these packages when possible.
94 async_helper.async_helper.asyncTestInitialize(finish);
95
80 dart_sdk._isolate_helper.startRootIsolate(function() {}, []); 96 dart_sdk._isolate_helper.startRootIsolate(function() {}, []);
81 dartMainRunner($testName.$testName.main); 97 dartMainRunner($testName.$testName.main);
82 }); 98 });
83 </script> 99 </script>
84 </body> 100 </body>
85 </html> 101 </html>
86 """; 102 """;
103 }
87 104
88 String dartTestWrapper(String libraryPathComponent) { 105 String dartTestWrapper(String libraryPathComponent) {
89 return """ 106 return """
90 import '$libraryPathComponent' as test; 107 import '$libraryPathComponent' as test;
91 108
92 main() { 109 main() {
93 print("dart-calling-main"); 110 print("dart-calling-main");
94 test.main(); 111 test.main();
95 print("dart-main-done"); 112 print("dart-main-done");
96 } 113 }
97 """; 114 """;
98 } 115 }
OLDNEW
« no previous file with comments | « pkg/dev_compiler/tool/test.sh ('k') | tools/testing/dart/compiler_configuration.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698