| OLD | NEW |
| 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 #!/usr/bin/env python | 5 #!/usr/bin/env python |
| 6 # | 6 # |
| 7 | 7 |
| 8 """A test for htmlconverter.py | 8 """A test for htmlconverter.py |
| 9 """ | 9 """ |
| 10 | 10 |
| 11 from os.path import abspath, basename, dirname, exists, join, split | 11 from os.path import abspath, basename, dirname, exists, join, split |
| 12 import optparse | 12 import optparse |
| 13 import os | 13 import os |
| 14 import sys | 14 import sys |
| 15 import subprocess | 15 import subprocess |
| 16 | 16 |
| 17 # The inputs to our test | 17 # The inputs to our test |
| 18 TEST1_HTML = """ | 18 TEST1_HTML = """ |
| 19 <html> | 19 <html> |
| 20 <head></head> | 20 <head></head> |
| 21 <body> | 21 <body> |
| 22 <script type="application/javascript"> | 22 <script type="application/javascript"> |
| 23 if (window.layoutTestController) { | 23 if (window.layoutTestController) { |
| 24 window.layoutTestController.dumpAsText(); | 24 window.layoutTestController.dumpAsText(); |
| 25 } | 25 } |
| 26 </script> | 26 </script> |
| 27 | 27 |
| 28 <!-- embed source code --> | 28 <!-- embed source code --> |
| 29 <script type="application/dart"> | 29 <script type="application/dart"> |
| 30 #import('dart:dom'); |
| 30 main() { | 31 main() { |
| 31 window.alert('hi'); | 32 window.alert('hi'); |
| 32 } | 33 } |
| 33 </script> | 34 </script> |
| 34 </body> | 35 </body> |
| 35 </html> | 36 </html> |
| 36 """ | 37 """ |
| 37 | 38 |
| 38 TEST1_OUTPUT = """ | 39 TEST1_OUTPUT = """ |
| 39 ALERT: hi | 40 ALERT: hi |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 } | 127 } |
| 127 </script> | 128 </script> |
| 128 | 129 |
| 129 <script type="application/dart" src="test_4.dart"></script> | 130 <script type="application/dart" src="test_4.dart"></script> |
| 130 </body> | 131 </body> |
| 131 </html> | 132 </html> |
| 132 """ | 133 """ |
| 133 | 134 |
| 134 TEST4_DART = """ | 135 TEST4_DART = """ |
| 135 #import('dart:dom'); | 136 #import('dart:dom'); |
| 136 #import('observable/observable.dart'); | 137 #import('../samples/ui_lib/observable/observable.dart'); |
| 137 | 138 |
| 138 main() { | 139 main() { |
| 139 // use imported code | 140 // use imported code |
| 140 var arr = new ObservableList(); | 141 var arr = new ObservableList(); |
| 141 arr.addChangeListener((EventSummary events) { | 142 arr.addChangeListener((EventSummary events) { |
| 142 var t = ['update', 'add ', | 143 var t = ['update', 'add ', |
| 143 'remove', 'global'][events.events[0].type]; | 144 'remove', 'global'][events.events[0].type]; |
| 144 var o = events.events[0].oldValue; | 145 var o = events.events[0].oldValue; |
| 145 o = (o != null ? o : '_'); | 146 o = (o != null ? o : '_'); |
| 146 var n = events.events[0].newValue; | 147 var n = events.events[0].newValue; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 176 <head></head> | 177 <head></head> |
| 177 <body> | 178 <body> |
| 178 <script type="application/javascript"> | 179 <script type="application/javascript"> |
| 179 if (window.layoutTestController) { | 180 if (window.layoutTestController) { |
| 180 window.layoutTestController.dumpAsText(); | 181 window.layoutTestController.dumpAsText(); |
| 181 } | 182 } |
| 182 </script> | 183 </script> |
| 183 | 184 |
| 184 <!-- embed source code --> | 185 <!-- embed source code --> |
| 185 <script type="application/dart"> | 186 <script type="application/dart"> |
| 187 #import('dart:dom'); |
| 186 main() { | 188 main() { |
| 187 var element = document.getElementById("test5div"); | 189 var element = document.getElementById("test5div"); |
| 188 if (element == null) { | 190 if (element == null) { |
| 189 window.alert("this script shoulnd't be run synchronously"); | 191 window.alert("this script shoulnd't be run synchronously"); |
| 190 } else { | 192 } else { |
| 191 window.alert(element.innerHTML); | 193 window.alert(element.innerHTML); |
| 192 } | 194 } |
| 193 } | 195 } |
| 194 </script> | 196 </script> |
| 195 <div id="test5div">this is visible on DOMContentLoaded</div> | 197 <div id="test5div">this is visible on DOMContentLoaded</div> |
| 196 </body> | 198 </body> |
| 197 </html> | 199 </html> |
| 198 """ | 200 """ |
| 199 | 201 |
| 200 TEST5_OUTPUT = """ | 202 TEST5_OUTPUT = """ |
| 201 ALERT: this is visible on DOMContentLoaded | 203 ALERT: this is visible on DOMContentLoaded |
| 202 Content-Type: text/plain | 204 Content-Type: text/plain |
| 203 this is visible on DOMContentLoaded | 205 this is visible on DOMContentLoaded |
| 204 #EOF | 206 #EOF |
| 205 """ | 207 """ |
| 206 | 208 |
| 207 # TODO(sigmund): integrate with testing infrastructure and mark negative tests. | |
| 208 # removing the prefix on test6 should purposely fail. | |
| 209 | |
| 210 TEST6_HTML = """ | 209 TEST6_HTML = """ |
| 211 <html> | 210 <html> |
| 212 <head></head> | 211 <head></head> |
| 213 <body> | 212 <body> |
| 214 <script type="application/javascript"> | 213 <script type="application/javascript"> |
| 215 if (window.layoutTestController) { | 214 if (window.layoutTestController) { |
| 216 window.layoutTestController.dumpAsText(); | 215 window.layoutTestController.dumpAsText(); |
| 217 } | 216 } |
| 218 </script> | 217 </script> |
| 219 | 218 |
| 220 <!-- embed source code --> | 219 <!-- embed source code --> |
| 221 <script type="application/dart"> | 220 <script type="application/dart"> |
| 222 #import('html/html.dart', prefix: 'html'); | 221 #import('dart:html', prefix: 'html'); |
| 223 main() { | 222 main() { |
| 224 html.window.alert('hi'); | 223 html.window.alert('hi'); |
| 225 } | 224 } |
| 226 </script> | 225 </script> |
| 227 </body> | 226 </body> |
| 228 </html> | 227 </html> |
| 229 """ | 228 """ |
| 230 | 229 |
| 231 TEST6_OUTPUT = """ | 230 TEST6_OUTPUT = """ |
| 232 ALERT: hi | 231 ALERT: hi |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 if verbose or pipe.returncode != 0: | 298 if verbose or pipe.returncode != 0: |
| 300 print output | 299 print output |
| 301 print err | 300 print err |
| 302 return pipe.returncode, output, err | 301 return pipe.returncode, output, err |
| 303 | 302 |
| 304 def browserRun(message, htmlfile, test, verbose): | 303 def browserRun(message, htmlfile, test, verbose): |
| 305 # run the generated code | 304 # run the generated code |
| 306 printLine(message + ' [%d]' % (test + 1)) | 305 printLine(message + ' [%d]' % (test + 1)) |
| 307 status, out, err = execute([ | 306 status, out, err = execute([ |
| 308 'tests/drt/DumpRenderTree', | 307 'tests/drt/DumpRenderTree', |
| 309 '--dart-flags=--enable_type_checks --enable_asserts', htmlfile], | 308 htmlfile], |
| 310 verbose) | 309 verbose) |
| 311 if status != 0: | 310 if status != 0: |
| 312 printLine("%sERROR%s test output [%d]" % (RED_COLOR, NO_COLOR, test + 1)) | 311 printLine("%sERROR%s test output [%d]" % (RED_COLOR, NO_COLOR, test + 1)) |
| 313 return status | 312 return status |
| 314 | 313 |
| 315 # check that the output is equivalent and cleanup | 314 # check that the output is equivalent and cleanup |
| 316 out = '\n' + out | 315 out = '\n' + out |
| 317 if out == OUTPUTS[test]: | 316 if out == OUTPUTS[test]: |
| 318 printLine("%sPASS%s [%d]" % (GREEN_COLOR, NO_COLOR, test + 1)) | 317 printLine("%sPASS%s [%d]" % (GREEN_COLOR, NO_COLOR, test + 1)) |
| 319 else: | 318 else: |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 407 deleteInputFiles() | 406 deleteInputFiles() |
| 408 return 1 | 407 return 1 |
| 409 | 408 |
| 410 if not keep_temporary_files: | 409 if not keep_temporary_files: |
| 411 deleteInputFiles() | 410 deleteInputFiles() |
| 412 return 0 | 411 return 0 |
| 413 | 412 |
| 414 | 413 |
| 415 if __name__ == '__main__': | 414 if __name__ == '__main__': |
| 416 sys.exit(main()) | 415 sys.exit(main()) |
| OLD | NEW |