OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 library analyzer.test.src.task.html_test; | 5 library analyzer.test.src.task.html_test; |
6 | 6 |
7 import 'package:analyzer/src/generated/source.dart'; | 7 import 'package:analyzer/src/generated/source.dart'; |
8 import 'package:analyzer/src/task/html.dart'; | 8 import 'package:analyzer/src/task/html.dart'; |
9 import 'package:analyzer/task/general.dart'; | 9 import 'package:analyzer/task/general.dart'; |
10 import 'package:analyzer/task/html.dart'; | 10 import 'package:analyzer/task/html.dart'; |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 } | 296 } |
297 | 297 |
298 test_perform() { | 298 test_perform() { |
299 String code = r''' | 299 String code = r''' |
300 <!DOCTYPE html> | 300 <!DOCTYPE html> |
301 <html> | 301 <html> |
302 <head> | 302 <head> |
303 <title>test page</title> | 303 <title>test page</title> |
304 </head> | 304 </head> |
305 <body> | 305 <body> |
306 <h1>Test</h1> | 306 <h1 myAttr='my value'>Test</h1> |
307 </body> | 307 </body> |
308 </html> | 308 </html> |
309 '''; | 309 '''; |
310 AnalysisTarget target = newSource('/test.html', code); | 310 AnalysisTarget target = newSource('/test.html', code); |
311 computeResult(target, HTML_DOCUMENT); | 311 computeResult(target, HTML_DOCUMENT); |
312 expect(task, isParseHtmlTask); | 312 expect(task, isParseHtmlTask); |
313 expect(outputs[HTML_DOCUMENT], isNotNull); | |
314 expect(outputs[HTML_DOCUMENT_ERRORS], isEmpty); | 313 expect(outputs[HTML_DOCUMENT_ERRORS], isEmpty); |
| 314 // HTML_DOCUMENT |
| 315 { |
| 316 Document document = outputs[HTML_DOCUMENT]; |
| 317 expect(document, isNotNull); |
| 318 // verify that attributes are not lower-cased |
| 319 Element element = document.body.getElementsByTagName('h1').single; |
| 320 expect(element.attributes['myAttr'], 'my value'); |
| 321 } |
315 // LINE_INFO | 322 // LINE_INFO |
316 { | 323 { |
317 LineInfo lineInfo = outputs[LINE_INFO]; | 324 LineInfo lineInfo = outputs[LINE_INFO]; |
318 expect(lineInfo, isNotNull); | 325 expect(lineInfo, isNotNull); |
319 { | 326 { |
320 int offset = code.indexOf('<!DOCTYPE'); | 327 int offset = code.indexOf('<!DOCTYPE'); |
321 LineInfo_Location location = lineInfo.getLocation(offset); | 328 LineInfo_Location location = lineInfo.getLocation(offset); |
322 expect(location.lineNumber, 1); | 329 expect(location.lineNumber, 1); |
323 expect(location.columnNumber, 1); | 330 expect(location.columnNumber, 1); |
324 } | 331 } |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 expect(bodyElement.localName, 'body'); | 366 expect(bodyElement.localName, 'body'); |
360 // actual nodes | 367 // actual nodes |
361 expect(bodyElement.nodes, hasLength(4)); | 368 expect(bodyElement.nodes, hasLength(4)); |
362 expect((bodyElement.nodes[0] as Element).localName, 'div'); | 369 expect((bodyElement.nodes[0] as Element).localName, 'div'); |
363 expect((bodyElement.nodes[2] as Element).localName, 'span'); | 370 expect((bodyElement.nodes[2] as Element).localName, 'span'); |
364 } | 371 } |
365 // it's OK to don't have DOCTYPE | 372 // it's OK to don't have DOCTYPE |
366 expect(outputs[HTML_DOCUMENT_ERRORS], isEmpty); | 373 expect(outputs[HTML_DOCUMENT_ERRORS], isEmpty); |
367 } | 374 } |
368 } | 375 } |
OLD | NEW |