Skip to content

Commit 6e631c5

Browse files
authored
Delete un-tested hybrid_android_views, add layering to android_engine_test. (flutter#162903)
Another large test suite that has never been running. The underlying thing I _think_ it wanted tested, which was hybrid composition, is now tested by `android_engine_test`. I also added a red square on top of each platform view so that, like `hybrid_android_views`, we can make sure layering is working as expected. Any other ideas? Can also be follow-up PRs?
1 parent 2c5c114 commit 6e631c5

33 files changed

+50
-2534
lines changed

dev/devicelab/bin/tasks/hybrid_android_views_integration_test.dart

Lines changed: 0 additions & 12 deletions
This file was deleted.

dev/integration_tests/android_engine_test/android/app/src/main/kotlin/com/example/native_driver_test/extensions/NativeDriverSupportPlugin.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ class NativeDriverSupportPlugin :
6161
selector = NativeSelector.ByContentDescription(call.argument("label")!!)
6262
}
6363
"byNativeIntegerId" -> {
64-
selector = NativeSelector.ByViewId(call.argument("id")!!)
64+
val stringId = call.argument<String>("id")!!
65+
selector = NativeSelector.ByViewId(stringId.toInt())
6566
}
6667
else -> {
6768
result.error("INVALID_SELECTOR", "Not supported", kind)
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// Copyright 2014 The Flutter Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
import 'package:flutter/material.dart';
6+
7+
final class MainApp extends StatelessWidget {
8+
const MainApp({super.key, required this.platformView});
9+
final Widget platformView;
10+
11+
@override
12+
Widget build(BuildContext context) {
13+
return MaterialApp(
14+
debugShowCheckedModeBanner: false,
15+
home: Stack(
16+
children: <Widget>[
17+
platformView,
18+
Center(child: Container(width: 100, height: 100, color: Colors.red)),
19+
],
20+
),
21+
);
22+
}
23+
}

dev/integration_tests/android_engine_test/lib/platform_view/hybrid_composition_platform_view_main.dart

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,21 @@ import 'package:flutter/services.dart';
1111
import 'package:flutter_driver/driver_extension.dart';
1212

1313
import '../src/allow_list_devices.dart';
14+
import '_shared.dart';
1415

1516
void main() async {
1617
ensureAndroidDevice();
1718
enableFlutterDriverExtension(commands: <CommandExtension>[nativeDriverCommands]);
1819

1920
// Run on full screen.
2021
await SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive);
21-
runApp(const MainApp());
22-
}
23-
24-
final class MainApp extends StatelessWidget {
25-
const MainApp({super.key});
26-
27-
@override
28-
Widget build(BuildContext context) {
29-
return const MaterialApp(
30-
debugShowCheckedModeBanner: false,
31-
home: _HybridCompositionAndroidPlatformView(viewType: 'blue_orange_gradient_platform_view'),
32-
);
33-
}
22+
runApp(
23+
const MainApp(
24+
platformView: _HybridCompositionAndroidPlatformView(
25+
viewType: 'blue_orange_gradient_platform_view',
26+
),
27+
),
28+
);
3429
}
3530

3631
final class _HybridCompositionAndroidPlatformView extends StatelessWidget {

dev/integration_tests/android_engine_test/lib/platform_view/texture_layer_hybrid_composition_platform_view_main.dart

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,20 @@ import 'package:flutter/services.dart';
88
import 'package:flutter_driver/driver_extension.dart';
99

1010
import '../src/allow_list_devices.dart';
11+
import '_shared.dart';
1112

1213
void main() async {
1314
ensureAndroidDevice();
1415
enableFlutterDriverExtension(commands: <CommandExtension>[nativeDriverCommands]);
1516

1617
// Run on full screen.
1718
await SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive);
18-
runApp(const MainApp());
19-
}
20-
21-
final class MainApp extends StatelessWidget {
22-
const MainApp({super.key});
23-
24-
@override
25-
Widget build(BuildContext context) {
26-
return const MaterialApp(
27-
debugShowCheckedModeBanner: false,
28-
// It is assumed:
29-
// - The Android SDK version is >= 23 (the test driver checks)
30-
// - This view does NOT use a SurfaceView
31-
//
32-
// See https://github.com/flutter/flutter/blob/main/docs/platforms/android/Android-Platform-Views.md.
33-
home: AndroidView(viewType: 'blue_orange_gradient_platform_view'),
34-
);
35-
}
19+
runApp(
20+
// It is assumed:
21+
// - The Android SDK version is >= 23 (the test driver checks)
22+
// - This view does NOT use a SurfaceView
23+
//
24+
// See https://github.com/flutter/flutter/blob/main/docs/platforms/android/Android-Platform-Views.md.
25+
const MainApp(platformView: AndroidView(viewType: 'blue_orange_gradient_platform_view')),
26+
);
3627
}

dev/integration_tests/android_engine_test/lib/platform_view/virtual_display_platform_view_main.dart

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,22 @@ import 'package:flutter/services.dart';
88
import 'package:flutter_driver/driver_extension.dart';
99

1010
import '../src/allow_list_devices.dart';
11+
import '_shared.dart';
1112

1213
void main() async {
1314
ensureAndroidDevice();
1415
enableFlutterDriverExtension(commands: <CommandExtension>[nativeDriverCommands]);
1516

1617
// Run on full screen.
1718
await SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive);
18-
runApp(const MainApp());
19-
}
20-
21-
final class MainApp extends StatelessWidget {
22-
const MainApp({super.key});
23-
24-
@override
25-
Widget build(BuildContext context) {
26-
return const MaterialApp(
27-
debugShowCheckedModeBanner: false,
19+
runApp(
20+
const MainApp(
2821
// It is assumed:
2922
// - The Android SDK version is >= 23 (the test driver checks)
3023
// - This view DOES use a SurfaceView
3124
//
3225
// See https://github.com/flutter/flutter/blob/main/docs/platforms/android/Android-Platform-Views.md.
33-
home: AndroidView(viewType: 'blue_orange_gradient_surface_view_platform_view'),
34-
);
35-
}
26+
platformView: AndroidView(viewType: 'blue_orange_gradient_surface_view_platform_view'),
27+
),
28+
);
3629
}

dev/integration_tests/android_engine_test/test_driver/platform_view/hybrid_composition_platform_view_main_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ import '../_luci_skia_gold_prelude.dart';
1313
///
1414
/// ```sh
1515
/// # Checkout HEAD, i.e. *before* changes you want to test.
16-
/// UPDATE_GOLDENS=1 flutter drive lib/platform_view/hybrid_compoisition_platform_view_main.dart
16+
/// UPDATE_GOLDENS=1 flutter drive lib/platform_view/hybrid_composition_platform_view_main.dart
1717
///
1818
/// # Make your changes.
1919
///
2020
/// # Run the test against baseline.
21-
/// flutter drive lib/platform_view/hybrid_compoisition_platform_view_main.dart
21+
/// flutter drive lib/platform_view/hybrid_composition_platform_view_main.dart
2222
/// ```
2323
///
2424
/// For a convenient way to deflake a test, see `tool/deflake.dart`.

dev/integration_tests/hybrid_android_views/README.md

Lines changed: 0 additions & 31 deletions
This file was deleted.

dev/integration_tests/hybrid_android_views/android/app/build.gradle

Lines changed: 0 additions & 66 deletions
This file was deleted.

dev/integration_tests/hybrid_android_views/android/app/src/main/AndroidManifest.xml

Lines changed: 0 additions & 40 deletions
This file was deleted.

0 commit comments

Comments
 (0)