| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 /** Common definitions used for setting up the test environment. */ | 5 /** Common definitions used for setting up the test environment. */ |
| 6 library testing; | 6 library testing; |
| 7 | 7 |
| 8 import 'package:html5lib/dom.dart'; | 8 import 'package:html5lib/dom.dart'; |
| 9 import 'package:html5lib/parser.dart'; | 9 import 'package:html5lib/parser.dart'; |
| 10 import 'package:web_ui/src/analyzer.dart'; | 10 import 'package:web_ui/src/analyzer.dart'; |
| 11 import 'package:web_ui/src/info.dart'; | 11 import 'package:web_ui/src/info.dart'; |
| 12 import 'package:web_ui/src/messages.dart'; | 12 import 'package:web_ui/src/messages.dart'; |
| 13 import 'package:web_ui/src/options.dart'; | 13 import 'package:web_ui/src/options.dart'; |
| 14 import 'package:web_ui/src/files.dart'; | 14 import 'package:web_ui/src/files.dart'; |
| 15 import 'package:web_ui/src/file_system/path.dart'; | 15 import 'package:web_ui/src/file_system/path.dart'; |
| 16 import 'package:web_ui/src/utils.dart'; | 16 import 'package:web_ui/src/utils.dart'; |
| 17 | 17 |
| 18 | 18 |
| 19 Document parseDocument(String html) => parse(html); | 19 Document parseDocument(String html) => parse(html); |
| 20 | 20 |
| 21 Element parseSubtree(String html) => parseFragment(html).nodes[0]; | 21 Element parseSubtree(String html) => parseFragment(html).nodes[0]; |
| 22 | 22 |
| 23 ElementInfo analyzeElement(Element elem, {Messages messages}) { | 23 ElementInfo analyzeElement(Element elem, {Messages messages}) { |
| 24 messages = messages == null ? new Messages.silent() : messages; | |
| 25 var fileInfo = analyzeNodeForTesting(elem, messages: messages); | 24 var fileInfo = analyzeNodeForTesting(elem, messages: messages); |
| 26 return fileInfo.bodyInfo; | 25 return fileInfo.bodyInfo; |
| 27 } | 26 } |
| 28 | 27 |
| 29 FileInfo analyzeDefinitionsInTree(Document doc, {Messages messages}) { | 28 FileInfo analyzeDefinitionsInTree(Document doc, {Messages messages}) { |
| 30 messages = messages == null ? new Messages.silent() : messages; | |
| 31 return analyzeDefinitions( | 29 return analyzeDefinitions( |
| 32 new SourceFile(new Path(''))..document = doc, messages: messages | 30 new SourceFile(new Path(''))..document = doc, messages: messages |
| 33 ); | 31 ); |
| 34 } | 32 } |
| 35 | 33 |
| 36 /** Parses files in [fileContents], with [mainHtmlFile] being the main file. */ | 34 /** Parses files in [fileContents], with [mainHtmlFile] being the main file. */ |
| 37 List<SourceFile> parseFiles(Map<String, String> fileContents, | 35 List<SourceFile> parseFiles(Map<String, String> fileContents, |
| 38 [String mainHtmlFile = 'index.html']) { | 36 [String mainHtmlFile = 'index.html']) { |
| 39 | 37 |
| 40 var result = <SourceFile>[]; | 38 var result = <SourceFile>[]; |
| 41 fileContents.forEach((filename, contents) { | 39 fileContents.forEach((filename, contents) { |
| 42 var src = new SourceFile(new Path(filename)); | 40 var src = new SourceFile(new Path(filename)); |
| 43 src.document = parse(contents); | 41 src.document = parse(contents); |
| 44 result.add(src); | 42 result.add(src); |
| 45 }); | 43 }); |
| 46 | 44 |
| 47 return result; | 45 return result; |
| 48 } | 46 } |
| 49 | 47 |
| 50 /** Analyze all files. */ | 48 /** Analyze all files. */ |
| 51 Map<String, FileInfo> analyzeFiles(List<SourceFile> files) { | 49 Map<String, FileInfo> analyzeFiles(List<SourceFile> files, |
| 50 {Messages messages}) { |
| 51 |
| 52 var result = new Map<Path, FileInfo>(); | 52 var result = new Map<Path, FileInfo>(); |
| 53 // analyze definitions | 53 // analyze definitions |
| 54 for (var file in files) { | 54 for (var file in files) { |
| 55 result[file.path] = analyzeDefinitions(file); | 55 result[file.path] = analyzeDefinitions(file, messages: messages); |
| 56 } | 56 } |
| 57 | 57 |
| 58 // analyze file contents | 58 // analyze file contents |
| 59 var uniqueIds = new IntIterator(); | 59 var uniqueIds = new IntIterator(); |
| 60 for (var file in files) { | 60 for (var file in files) { |
| 61 analyzeFile(file, result, uniqueIds); | 61 analyzeFile(file, result, uniqueIds, messages: messages); |
| 62 } | 62 } |
| 63 return _toStringMap(result); | 63 return _toStringMap(result); |
| 64 } | 64 } |
| 65 | 65 |
| 66 Map<Path, FileInfo> toPathMap(Map<String, FileInfo> map) { | 66 Map<Path, FileInfo> toPathMap(Map<String, FileInfo> map) { |
| 67 var res = new Map<Path, FileInfo>(); | 67 var res = new Map<Path, FileInfo>(); |
| 68 for (var k in map.keys) { | 68 for (var k in map.keys) { |
| 69 res[new Path(k)] = map[k]; | 69 res[new Path(k)] = map[k]; |
| 70 } | 70 } |
| 71 return res; | 71 return res; |
| 72 } | 72 } |
| 73 | 73 |
| 74 Map<String, FileInfo> _toStringMap(Map<Path, FileInfo> map) { | 74 Map<String, FileInfo> _toStringMap(Map<Path, FileInfo> map) { |
| 75 var res = new Map<String, FileInfo>(); | 75 var res = new Map<String, FileInfo>(); |
| 76 for (var k in map.keys) { | 76 for (var k in map.keys) { |
| 77 res[k.toString()] = map[k]; | 77 res[k.toString()] = map[k]; |
| 78 } | 78 } |
| 79 return res; | 79 return res; |
| 80 } | 80 } |
| OLD | NEW |