Index: pkg/polymer/test/build/linter_test.dart |
diff --git a/pkg/polymer/test/build/linter_test.dart b/pkg/polymer/test/build/linter_test.dart |
index 3bff05c36b7df6a0ae1d8144272397947fc2f264..a834f9e546801ceca2dcdb0ee65bdc87f576f129 100644 |
--- a/pkg/polymer/test/build/linter_test.dart |
+++ b/pkg/polymer/test/build/linter_test.dart |
@@ -4,6 +4,8 @@ |
library polymer.test.linter_test; |
+import 'dart:convert'; |
+ |
import 'package:polymer/src/build/common.dart'; |
import 'package:polymer/src/build/linter.dart'; |
import 'package:unittest/unittest.dart'; |
@@ -645,14 +647,49 @@ void main() { |
</svg> |
'''.replaceAll(' ', ''), |
}, []); |
+ |
+ group('output logs to file', () { |
+ final outputLogsPhases = [[new Linter( |
+ new TransformOptions(injectBuildLogsInOutput: true, |
+ releaseMode: false))]]; |
+ |
+ testPhases("logs are output to file", outputLogsPhases, { |
+ 'a|web/test.html': '<!DOCTYPE html><html>\n' |
+ '<polymer-element name="x-a"></polymer-element>' |
+ '<script type="application/dart" src="foo.dart">' |
+ '</script>' |
+ '<script src="packages/browser/dart.js"></script>' |
+ '</html>', |
+ }, { |
+ 'a|web/test.html._buildLogs.1': |
+ '[{' |
+ '"level":"Warning",' |
+ '"message":${JSON.encode(usePolymerHtmlMessage(0))},' |
+ '"span":{' |
+ '"location":"web/test.html:2:1",' |
+ '"text":' |
+ '"${new HtmlEscape().convert('<polymer-element name="x-a">')}"' |
+ '}' |
+ '}]', |
+ }, [ |
+ // Logs should still make it to barback too. |
+ 'warning: ${usePolymerHtmlMessage(0)} (web/test.html 1 0)', |
+ ]); |
+ }); |
} |
_testLinter(String name, Map inputFiles, List outputMessages, |
[bool solo = false]) { |
- var linter = new Linter(new TransformOptions()); |
var outputFiles = {}; |
if (outputMessages.every((m) => m.startsWith('warning:'))) { |
inputFiles.forEach((k, v) => outputFiles[k] = v); |
} |
- testPhases(name, [[linter]], inputFiles, outputFiles, outputMessages, solo); |
+ if (outputMessages.isEmpty) { |
+ var linter = new Linter(new TransformOptions()); |
+ testPhases(name, [[linter]], inputFiles, outputFiles, outputMessages, solo); |
+ } else { |
+ testLogOutput( |
+ (options) => new Linter(options), name, inputFiles, outputFiles, |
+ outputMessages, solo); |
+ } |
} |