@@ -8,6 +8,7 @@ import 'dart:io' hide Directory, File;
88
99import 'package:flutter_tools/src/artifacts.dart' ;
1010import 'package:flutter_tools/src/base/file_system.dart' ;
11+ import 'package:flutter_tools/src/base/logger.dart' ;
1112import 'package:flutter_tools/src/base/platform.dart' ;
1213import 'package:flutter_tools/src/build_info.dart' ;
1314import 'package:flutter_tools/src/build_system/targets/web.dart' ;
@@ -16,6 +17,7 @@ import 'package:flutter_tools/src/convert.dart';
1617import 'package:flutter_tools/src/globals.dart' as globals;
1718import 'package:flutter_tools/src/isolated/devfs_web.dart' ;
1819import 'package:flutter_tools/src/web/compile.dart' ;
20+ import 'package:logging/logging.dart' as logging;
1921import 'package:package_config/package_config.dart' ;
2022import 'package:shelf/shelf.dart' ;
2123import 'package:test/fake.dart' ;
@@ -39,6 +41,7 @@ void main() {
3941 PackageConfig packages;
4042 Platform windows;
4143 FakeHttpServer httpServer;
44+ BufferLogger logger;
4245
4346 setUpAll (() async {
4447 packages = PackageConfig (< Package > [
@@ -50,6 +53,7 @@ void main() {
5053 httpServer = FakeHttpServer ();
5154 linux = FakePlatform (environment: < String , String > {});
5255 windows = FakePlatform (operatingSystem: 'windows' , environment: < String , String > {});
56+ logger = BufferLogger .test ();
5357 testbed = Testbed (setup: () {
5458 webAssetServer = WebAssetServer (
5559 httpServer,
@@ -67,9 +71,35 @@ void main() {
6771 webBuildDirectory: null ,
6872 basePath: null ,
6973 );
74+ }, overrides: < Type , Generator > {
75+ Logger : () => logger,
7076 });
7177 });
7278
79+ test ('.log() filters events' , () => testbed.run (() {
80+ // harmless warning that should be filtered out
81+ const String harmlessMessage = 'Unresolved uri: dart:ui' ;
82+ // serious warning
83+ const String seriousMessage = 'Something bad happened' ;
84+
85+ final List <logging.LogRecord > events = < logging.LogRecord > [
86+ logging.LogRecord (
87+ logging.Level .WARNING ,
88+ harmlessMessage,
89+ 'DartUri' ,
90+ ),
91+ logging.LogRecord (
92+ logging.Level .WARNING ,
93+ seriousMessage,
94+ 'DartUri' ,
95+ ),
96+ ];
97+
98+ events.forEach (log);
99+ expect (logger.warningText, contains (seriousMessage));
100+ expect (logger.warningText, isNot (contains (harmlessMessage)));
101+ }));
102+
73103 test ('Handles against malformed manifest' , () => testbed.run (() async {
74104 final File source = globals.fs.file ('source' )
75105 ..writeAsStringSync ('main() {}' );
0 commit comments