Reland: fix and add painting web tests (#42689)
This commit is contained in:
parent
adf9d6f78a
commit
3bc3b323c4
@ -443,7 +443,6 @@ Future<void> _runWebTests() async {
|
|||||||
'test/cupertino',
|
'test/cupertino',
|
||||||
'test/examples',
|
'test/examples',
|
||||||
'test/material',
|
'test/material',
|
||||||
'test/painting',
|
|
||||||
'test/rendering',
|
'test/rendering',
|
||||||
'test/widgets',
|
'test/widgets',
|
||||||
];
|
];
|
||||||
|
@ -813,13 +813,13 @@ void main() {
|
|||||||
for (Gradient gradient in gradients45) {
|
for (Gradient gradient in gradients45) {
|
||||||
await runTest(tester, gradient, 45);
|
await runTest(tester, gradient, 45);
|
||||||
}
|
}
|
||||||
});
|
}, skip: isBrowser); // TODO(yjbanov): web does not support golden tests yet: https://github.com/flutter/flutter/issues/40297
|
||||||
|
|
||||||
testWidgets('Gradients - 90 degrees', (WidgetTester tester) async {
|
testWidgets('Gradients - 90 degrees', (WidgetTester tester) async {
|
||||||
for (Gradient gradient in gradients90) {
|
for (Gradient gradient in gradients90) {
|
||||||
await runTest(tester, gradient, 90);
|
await runTest(tester, gradient, 90);
|
||||||
}
|
}
|
||||||
});
|
}, skip: isBrowser); // TODO(yjbanov): web does not support golden tests yet: https://github.com/flutter/flutter/issues/40297
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@ void main() {
|
|||||||
.having((NetworkImageLoadException e) => e.statusCode, 'statusCode', errorStatusCode)
|
.having((NetworkImageLoadException e) => e.statusCode, 'statusCode', errorStatusCode)
|
||||||
.having((NetworkImageLoadException e) => e.uri, 'uri', Uri.base.resolve(requestUrl)),
|
.having((NetworkImageLoadException e) => e.uri, 'uri', Uri.base.resolve(requestUrl)),
|
||||||
);
|
);
|
||||||
});
|
}, skip: isBrowser); // Browser implementation does not use HTTP client but a <img> tag.
|
||||||
|
|
||||||
test('Disallows null urls', () {
|
test('Disallows null urls', () {
|
||||||
expect(() {
|
expect(() {
|
||||||
|
@ -91,7 +91,7 @@ void main() {
|
|||||||
expect(cache.isEmpty, isTrue);
|
expect(cache.isEmpty, isTrue);
|
||||||
final Element element = tester.element(find.byType(CupertinoDatePicker));
|
final Element element = tester.element(find.byType(CupertinoDatePicker));
|
||||||
expect(element.dirty, isTrue);
|
expect(element.dirty, isTrue);
|
||||||
});
|
}, skip: isBrowser); // TODO(yjbanov): cupertino does not work on the Web yet: https://github.com/flutter/flutter/issues/41920
|
||||||
|
|
||||||
testWidgets('CupertinoDatePicker reset cache upon system fonts change - date mode', (WidgetTester tester) async {
|
testWidgets('CupertinoDatePicker reset cache upon system fonts change - date mode', (WidgetTester tester) async {
|
||||||
await tester.pumpWidget(
|
await tester.pumpWidget(
|
||||||
@ -118,7 +118,7 @@ void main() {
|
|||||||
expect(cache.isNotEmpty, isTrue);
|
expect(cache.isNotEmpty, isTrue);
|
||||||
final Element element = tester.element(find.byType(CupertinoDatePicker));
|
final Element element = tester.element(find.byType(CupertinoDatePicker));
|
||||||
expect(element.dirty, isTrue);
|
expect(element.dirty, isTrue);
|
||||||
});
|
}, skip: isBrowser); // TODO(yjbanov): cupertino does not work on the Web yet: https://github.com/flutter/flutter/issues/41920
|
||||||
|
|
||||||
testWidgets('CupertinoDatePicker reset cache upon system fonts change - time mode', (WidgetTester tester) async {
|
testWidgets('CupertinoDatePicker reset cache upon system fonts change - time mode', (WidgetTester tester) async {
|
||||||
await tester.pumpWidget(
|
await tester.pumpWidget(
|
||||||
@ -147,7 +147,7 @@ void main() {
|
|||||||
expect(state.numberLabelBaseline - 18.400070190429688 < precisionErrorTolerance, isTrue);
|
expect(state.numberLabelBaseline - 18.400070190429688 < precisionErrorTolerance, isTrue);
|
||||||
final Element element = tester.element(find.byType(CupertinoTimerPicker));
|
final Element element = tester.element(find.byType(CupertinoTimerPicker));
|
||||||
expect(element.dirty, isTrue);
|
expect(element.dirty, isTrue);
|
||||||
});
|
}, skip: isBrowser); // TODO(yjbanov): cupertino does not work on the Web yet: https://github.com/flutter/flutter/issues/41920
|
||||||
|
|
||||||
testWidgets('RangeSlider relayout upon system fonts changes', (WidgetTester tester) async {
|
testWidgets('RangeSlider relayout upon system fonts changes', (WidgetTester tester) async {
|
||||||
await tester.pumpWidget(
|
await tester.pumpWidget(
|
||||||
|
@ -277,6 +277,7 @@ Future<void> main() async {
|
|||||||
// The following parameters are hard-coded in Flutter's test embedder. Since
|
// The following parameters are hard-coded in Flutter's test embedder. Since
|
||||||
// we don't have an embedder yet this is the lowest-most layer we can put
|
// we don't have an embedder yet this is the lowest-most layer we can put
|
||||||
// this stuff in.
|
// this stuff in.
|
||||||
|
ui.debugEmulateFlutterTesterEnvironment = true;
|
||||||
await ui.webOnlyInitializeEngine();
|
await ui.webOnlyInitializeEngine();
|
||||||
// TODO(flutterweb): remove need for dynamic cast.
|
// TODO(flutterweb): remove need for dynamic cast.
|
||||||
(ui.window as dynamic).debugOverrideDevicePixelRatio(3.0);
|
(ui.window as dynamic).debugOverrideDevicePixelRatio(3.0);
|
||||||
|
@ -5,12 +5,16 @@
|
|||||||
@TestOn('chrome') // Uses web-only Flutter SDK
|
@TestOn('chrome') // Uses web-only Flutter SDK
|
||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import 'dart:ui' as ui;
|
||||||
|
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
|
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
|
// Disabling tester emulation because this test relies on real message channel communication.
|
||||||
|
ui.debugEmulateFlutterTesterEnvironment = false; // ignore: undefined_prefixed_name
|
||||||
|
|
||||||
group('Plugin Event Channel', () {
|
group('Plugin Event Channel', () {
|
||||||
setUp(() {
|
setUp(() {
|
||||||
TestWidgetsFlutterBinding.ensureInitialized();
|
TestWidgetsFlutterBinding.ensureInitialized();
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
@TestOn('chrome') // Uses web-only Flutter SDK
|
@TestOn('chrome') // Uses web-only Flutter SDK
|
||||||
|
|
||||||
|
import 'dart:ui' as ui;
|
||||||
|
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
|
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
|
||||||
@ -27,6 +29,9 @@ class TestPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
|
// Disabling tester emulation because this test relies on real message channel communication.
|
||||||
|
ui.debugEmulateFlutterTesterEnvironment = false; // ignore: undefined_prefixed_name
|
||||||
|
|
||||||
group('Plugin Registry', () {
|
group('Plugin Registry', () {
|
||||||
setUp(() {
|
setUp(() {
|
||||||
TestWidgetsFlutterBinding.ensureInitialized();
|
TestWidgetsFlutterBinding.ensureInitialized();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user