@@ -14,6 +14,7 @@ import 'package:devtools_app_shared/utils.dart';
1414import 'package:devtools_test/devtools_test.dart' ;
1515import 'package:devtools_test/helpers.dart' ;
1616import 'package:flutter_test/flutter_test.dart' ;
17+ import 'package:logging/logging.dart' ;
1718
1819void main () {
1920 group ('LoggingController' , () {
@@ -27,6 +28,7 @@ void main() {
2728 jsonEncode ({'kind' : 'stdout' , 'message' : message}),
2829 0 ,
2930 summary: message,
31+ level: Level .INFO .value,
3032 ),
3133 );
3234 }
@@ -38,12 +40,21 @@ void main() {
3840 jsonEncode ({'kind' : 'gc' , 'message' : message}),
3941 0 ,
4042 summary: message,
43+ level: Level .INFO .value,
4144 ),
4245 );
4346 }
4447
45- void addLogWithKind (String kind) {
46- controller.log (LogData (kind, jsonEncode ({'foo' : 'test_data' }), 0 ));
48+ void addLog ({required String kind, Level ? level, bool isError = false }) {
49+ controller.log (
50+ LogData (
51+ kind,
52+ jsonEncode ({'foo' : 'test_data' }),
53+ 0 ,
54+ level: level? .value,
55+ isError: isError,
56+ ),
57+ );
4758 }
4859
4960 setUp (() {
@@ -88,8 +99,8 @@ void main() {
8899 addStdoutData ('abc' );
89100 addStdoutData ('def' );
90101 addStdoutData ('abc ghi' );
91- addLogWithKind ( 'Flutter.Navigation' );
92- addLogWithKind ( 'Flutter.Error' );
102+ addLog (kind : 'Flutter.Navigation' );
103+ addLog (kind : 'Flutter.Error' , isError : true );
93104 addGcData ('gc1' );
94105 addGcData ('gc2' );
95106
@@ -112,8 +123,8 @@ void main() {
112123 addStdoutData ('abc' );
113124 addStdoutData ('def' );
114125 addStdoutData ('abc ghi' );
115- addLogWithKind ( 'Flutter.Navigation' );
116- addLogWithKind ( 'Flutter.Error' );
126+ addLog (kind : 'Flutter.Navigation' );
127+ addLog (kind : 'Flutter.Error' , isError : true );
117128 addGcData ('gc1' );
118129 addGcData ('gc2' );
119130
@@ -133,24 +144,27 @@ void main() {
133144 addStdoutData ('abc' );
134145 addStdoutData ('def' );
135146 addStdoutData ('abc ghi' );
136- addLogWithKind ( 'Flutter.Navigation' );
137- addLogWithKind ( 'Flutter.Error' );
147+ addLog (kind : 'Flutter.Navigation' );
148+ addLog (kind : 'Flutter.Error' , isError : true );
138149
139150 // The following logs should all be filtered by default.
140151 addGcData ('gc1' );
141152 addGcData ('gc2' );
142- addLogWithKind ( 'Flutter.FirstFrame' );
143- addLogWithKind ( 'Flutter.FrameworkInitialization' );
144- addLogWithKind ( 'Flutter.Frame' );
145- addLogWithKind ( 'Flutter.ImageSizesForFrame' );
146- addLogWithKind ( 'Flutter.ServiceExtensionStateChanged' );
153+ addLog (kind : 'Flutter.FirstFrame' );
154+ addLog (kind : 'Flutter.FrameworkInitialization' );
155+ addLog (kind : 'Flutter.Frame' );
156+ addLog (kind : 'Flutter.ImageSizesForFrame' );
157+ addLog (kind : 'Flutter.ServiceExtensionStateChanged' );
147158
148159 // At this point data is filtered by the default toggle filter values.
149160 expect (controller.data, hasLength (12 ));
150161 expect (controller.filteredData.value, hasLength (5 ));
151162
152- // Test query filters assuming default toggle filters are all enabled.
153- for (final filter in controller.activeFilter.value.settingFilters) {
163+ // Test query filters assuming default setting filters are all enabled.
164+ controller.activeFilter.value.settingFilters.first.setting.value =
165+ Level .INFO ;
166+ for (final filter
167+ in controller.activeFilter.value.settingFilters.sublist (1 )) {
154168 filter.setting.value = true ;
155169 }
156170
@@ -186,12 +200,14 @@ void main() {
186200 expect (controller.data, hasLength (12 ));
187201 expect (controller.filteredData.value, hasLength (5 ));
188202
189- // Test toggle filters.
190- final verboseFlutterFrameworkFilter =
203+ // Test setting filters.
204+ final minimumLogLevelFilter =
191205 controller.activeFilter.value.settingFilters[0 ];
192- final verboseFlutterServiceFilter =
206+ final verboseFlutterFrameworkFilter =
193207 controller.activeFilter.value.settingFilters[1 ];
194- final gcFilter = controller.activeFilter.value.settingFilters[2 ];
208+ final verboseFlutterServiceFilter =
209+ controller.activeFilter.value.settingFilters[2 ];
210+ final gcFilter = controller.activeFilter.value.settingFilters[3 ];
195211
196212 verboseFlutterFrameworkFilter.setting.value = false ;
197213 controller.setActiveFilter ();
@@ -207,6 +223,11 @@ void main() {
207223 controller.setActiveFilter ();
208224 expect (controller.data, hasLength (12 ));
209225 expect (controller.filteredData.value, hasLength (12 ));
226+
227+ minimumLogLevelFilter.setting.value = Level .SEVERE ;
228+ controller.setActiveFilter ();
229+ expect (controller.data, hasLength (12 ));
230+ expect (controller.filteredData.value, hasLength (1 ));
210231 });
211232 });
212233
0 commit comments