@@ -8,6 +8,7 @@ import 'dart:io' hide Directory, File;
8
8
9
9
import 'package:flutter_tools/src/artifacts.dart' ;
10
10
import 'package:flutter_tools/src/base/file_system.dart' ;
11
+ import 'package:flutter_tools/src/base/logger.dart' ;
11
12
import 'package:flutter_tools/src/base/platform.dart' ;
12
13
import 'package:flutter_tools/src/build_info.dart' ;
13
14
import 'package:flutter_tools/src/build_system/targets/web.dart' ;
@@ -16,6 +17,7 @@ import 'package:flutter_tools/src/convert.dart';
16
17
import 'package:flutter_tools/src/globals.dart' as globals;
17
18
import 'package:flutter_tools/src/isolated/devfs_web.dart' ;
18
19
import 'package:flutter_tools/src/web/compile.dart' ;
20
+ import 'package:logging/logging.dart' as logging;
19
21
import 'package:package_config/package_config.dart' ;
20
22
import 'package:shelf/shelf.dart' ;
21
23
import 'package:test/fake.dart' ;
@@ -39,6 +41,7 @@ void main() {
39
41
PackageConfig packages;
40
42
Platform windows;
41
43
FakeHttpServer httpServer;
44
+ BufferLogger logger;
42
45
43
46
setUpAll (() async {
44
47
packages = PackageConfig (< Package > [
@@ -50,6 +53,7 @@ void main() {
50
53
httpServer = FakeHttpServer ();
51
54
linux = FakePlatform (environment: < String , String > {});
52
55
windows = FakePlatform (operatingSystem: 'windows' , environment: < String , String > {});
56
+ logger = BufferLogger .test ();
53
57
testbed = Testbed (setup: () {
54
58
webAssetServer = WebAssetServer (
55
59
httpServer,
@@ -67,9 +71,35 @@ void main() {
67
71
webBuildDirectory: null ,
68
72
basePath: null ,
69
73
);
74
+ }, overrides: < Type , Generator > {
75
+ Logger : () => logger,
70
76
});
71
77
});
72
78
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
+
73
103
test ('Handles against malformed manifest' , () => testbed.run (() async {
74
104
final File source = globals.fs.file ('source' )
75
105
..writeAsStringSync ('main() {}' );
0 commit comments