diff --git a/.cirrus.yml b/.cirrus.yml
index 5278c1dcd0dd..1b13f5208956 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -124,12 +124,9 @@ task:
- cd packages/pigeon
- pushd mock_handler_tester; flutter pub get; popd
- pushd e2e_tests/test_objc; flutter pub get; popd
- - pushd platform_tests/ios_swift_unit_tests; flutter pub get; popd
- - pushd platform_tests/windows_unit_tests; flutter pub get; popd
- - pushd platform_tests/ios_unit_tests; flutter pub get; popd
+ - pushd platform_tests/test_plugin; flutter pub get; popd
+ - pushd platform_tests/alternate_language_test_plugin; flutter pub get; popd
- pushd platform_tests/flutter_null_safe_unit_tests; flutter pub get; popd
- - pushd platform_tests/android_kotlin_unit_tests; flutter pub get; popd
- - pushd platform_tests/android_unit_tests; flutter pub get; popd
publishable_script: ./script/tool_runner.sh publish-check --allow-pre-release
- name: dart_unit_tests
env:
diff --git a/packages/pigeon/platform_tests/README.md b/packages/pigeon/platform_tests/README.md
new file mode 100644
index 000000000000..64db08c33235
--- /dev/null
+++ b/packages/pigeon/platform_tests/README.md
@@ -0,0 +1,27 @@
+# Native Pigeon Tests
+
+This directory contains native test harnesses for native and end-to-end tests
+of Pigeon-generated code. The [test script](../tool/run_tests.dart) generates
+native code from [pigeons/](../pigeons/) into the native test scaffolding, and
+then drives the tests there.
+
+To run these tests, use [`run_tests.dart`](../tool/run_tests.dart)
+
+## test\_plugin
+
+The new unified test harness for all platforms. Tests in this plugin use the
+same structure as tests for the Flutter team-maintained plugins, as described
+[in the repository documentation](https://github.com/flutter/flutter/wiki/Plugin-Tests).
+
+## alternate\_language\_test\_plugin
+
+The test harness for alternate languages, on platforms that have multiple
+supported plugin languages. It covers:
+- Java for Android
+- Objective-C for iOS
+
+## flutter\_null\_safe\_unit\_tests
+
+Dart unit tests for null-safe mode. This is a legacy structure from before
+NNBD was the only mode Pigeon supported; these should be folded back into
+the main tests.
diff --git a/packages/pigeon/platform_tests/windows_unit_tests/.gitignore b/packages/pigeon/platform_tests/alternate_language_test_plugin/.gitignore
similarity index 96%
rename from packages/pigeon/platform_tests/windows_unit_tests/.gitignore
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/.gitignore
index 9be145fde98d..96486fd93024 100644
--- a/packages/pigeon/platform_tests/windows_unit_tests/.gitignore
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/.gitignore
@@ -8,6 +8,7 @@
.buildlog/
.history
.svn/
+migrate_working_dir/
# IntelliJ related
*.iml
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/.metadata b/packages/pigeon/platform_tests/alternate_language_test_plugin/.metadata
new file mode 100644
index 000000000000..666f73a817f9
--- /dev/null
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/.metadata
@@ -0,0 +1,33 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled.
+
+version:
+ revision: c7d11549a51eb37807604bdfd1141a82be8fac4b
+ channel: main
+
+project_type: plugin
+
+# Tracks metadata for the flutter migrate command
+migration:
+ platforms:
+ - platform: root
+ create_revision: c7d11549a51eb37807604bdfd1141a82be8fac4b
+ base_revision: c7d11549a51eb37807604bdfd1141a82be8fac4b
+ - platform: android
+ create_revision: c7d11549a51eb37807604bdfd1141a82be8fac4b
+ base_revision: c7d11549a51eb37807604bdfd1141a82be8fac4b
+ - platform: ios
+ create_revision: c7d11549a51eb37807604bdfd1141a82be8fac4b
+ base_revision: c7d11549a51eb37807604bdfd1141a82be8fac4b
+
+ # User provided section
+
+ # List of Local paths (relative to this file) that should be
+ # ignored by the migrate tool.
+ #
+ # Files that are not part of the templates will be ignored by default.
+ unmanaged_files:
+ - 'lib/main.dart'
+ - 'ios/Runner.xcodeproj/project.pbxproj'
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/README.md b/packages/pigeon/platform_tests/alternate_language_test_plugin/README.md
new file mode 100644
index 000000000000..5bc262b99de0
--- /dev/null
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/README.md
@@ -0,0 +1,6 @@
+# alternate_language_test_plugin
+
+Tests for languages not covered by `test_plugin`.
+See [the `platform_tests` README](../README.md) for details.
+
+To run these tests, use [`run_tests.dart`](../tool/run_tests.dart)
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/.gitignore b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/.gitignore
new file mode 100644
index 000000000000..161bdcdaf88c
--- /dev/null
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/.gitignore
@@ -0,0 +1,9 @@
+*.iml
+.gradle
+/local.properties
+/.idea/workspace.xml
+/.idea/libraries
+.DS_Store
+/build
+/captures
+.cxx
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/build.gradle b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/build.gradle
new file mode 100644
index 000000000000..75b9fe086031
--- /dev/null
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/build.gradle
@@ -0,0 +1,52 @@
+group 'com.example.alternate_language_test_plugin'
+version '1.0'
+
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+
+ dependencies {
+ classpath 'com.android.tools.build:gradle:4.2.0'
+ }
+}
+
+rootProject.allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+apply plugin: 'com.android.library'
+
+android {
+ compileSdkVersion 31
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+
+ defaultConfig {
+ minSdkVersion 16
+ }
+
+ testOptions {
+ unitTests.includeAndroidResources = true
+ unitTests.returnDefaultValues = true
+ unitTests.all {
+ testLogging {
+ events "passed", "skipped", "failed", "standardOut", "standardError"
+ outputs.upToDateWhen {false}
+ showStandardStreams = true
+ }
+ }
+ }
+
+ dependencies {
+ testImplementation 'junit:junit:4.+'
+ testImplementation "org.mockito:mockito-core:3.+"
+ }
+}
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/settings.gradle b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/settings.gradle
new file mode 100644
index 000000000000..0f10659c4e4e
--- /dev/null
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/settings.gradle
@@ -0,0 +1 @@
+rootProject.name = 'alternate_language_test_plugin'
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/.gitignore b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/.gitignore
new file mode 100644
index 000000000000..abf5cc115a98
--- /dev/null
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/.gitignore
@@ -0,0 +1,5 @@
+# TODO(stuartmorgan): Remove this, so that review will show the effects of
+# changes on generated files. This will need a way to avoid unnecessary churn,
+# such as a flag to suppress version stamp generation.
+*.java
+!AlternateLanguageTestPlugin.kt
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/AndroidManifest.xml b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/AndroidManifest.xml
new file mode 100644
index 000000000000..5695b8b4ee74
--- /dev/null
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/AndroidManifest.xml
@@ -0,0 +1,3 @@
+
+
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/java/com/example/alternate_language_test_plugin/AlternateLanguageTestPlugin.java b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/java/com/example/alternate_language_test_plugin/AlternateLanguageTestPlugin.java
new file mode 100644
index 000000000000..bac591df95f2
--- /dev/null
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/java/com/example/alternate_language_test_plugin/AlternateLanguageTestPlugin.java
@@ -0,0 +1,20 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package com.example.alternate_language_test_plugin;
+
+import androidx.annotation.NonNull;
+import io.flutter.embedding.engine.plugins.FlutterPlugin;
+
+/**
+ * This plugin is currently a no-op since only unit tests have been set up. In the future, this will
+ * register Pigeon APIs used in integration tests.
+ */
+public class AlternateLanguageTestPlugin implements FlutterPlugin {
+ @Override
+ public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) {}
+
+ @Override
+ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {}
+}
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/AllDatatypesTest.java b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/AllDatatypesTest.java
similarity index 97%
rename from packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/AllDatatypesTest.java
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/AllDatatypesTest.java
index 6cef5dd50993..9cbc2cf7fee7 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/AllDatatypesTest.java
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/AllDatatypesTest.java
@@ -2,12 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-package com.example.android_unit_tests;
+package com.example.alternate_language_test_plugin;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
-import com.example.android_unit_tests.AllDatatypes.*;
+import com.example.alternate_language_test_plugin.AllDatatypes.*;
import io.flutter.plugin.common.BinaryMessenger;
import java.nio.ByteBuffer;
import java.util.ArrayList;
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/AsyncTest.java b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/AsyncTest.java
similarity index 96%
rename from packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/AsyncTest.java
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/AsyncTest.java
index 4ae20621adbf..7877e02207cb 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/AsyncTest.java
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/AsyncTest.java
@@ -2,12 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-package com.example.android_unit_tests;
+package com.example.alternate_language_test_plugin;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
-import com.example.android_unit_tests.AsyncHandlers.*;
+import com.example.alternate_language_test_plugin.AsyncHandlers.*;
import io.flutter.plugin.common.BinaryMessenger;
import io.flutter.plugin.common.MessageCodec;
import java.nio.ByteBuffer;
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/EnumTest.java b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/EnumTest.java
similarity index 91%
rename from packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/EnumTest.java
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/EnumTest.java
index 84b5b5d32889..617e04fa06c3 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/EnumTest.java
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/EnumTest.java
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-package com.example.android_unit_tests;
+package com.example.alternate_language_test_plugin;
import static org.junit.Assert.*;
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/ListTest.java b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/ListTest.java
similarity index 90%
rename from packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/ListTest.java
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/ListTest.java
index fdf916a5350a..510534a2f29e 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/ListTest.java
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/ListTest.java
@@ -2,13 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-package com.example.android_unit_tests;
+package com.example.alternate_language_test_plugin;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
-import com.example.android_unit_tests.PigeonList.EchoApi;
-import com.example.android_unit_tests.PigeonList.TestMessage;
+import com.example.alternate_language_test_plugin.PigeonList.EchoApi;
+import com.example.alternate_language_test_plugin.PigeonList.TestMessage;
import io.flutter.plugin.common.BinaryMessenger;
import java.nio.ByteBuffer;
import java.util.ArrayList;
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/MultipleArityTest.java b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/MultipleArityTest.java
similarity index 91%
rename from packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/MultipleArityTest.java
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/MultipleArityTest.java
index e336d11042c4..036e76b4aae3 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/MultipleArityTest.java
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/MultipleArityTest.java
@@ -2,12 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-package com.example.android_unit_tests;
+package com.example.alternate_language_test_plugin;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
-import com.example.android_unit_tests.MultipleArity.MultipleArityFlutterApi;
+import com.example.alternate_language_test_plugin.MultipleArity.MultipleArityFlutterApi;
import io.flutter.plugin.common.BinaryMessenger;
import java.nio.ByteBuffer;
import java.util.ArrayList;
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/NonNullFieldsTest.java b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/NonNullFieldsTest.java
similarity index 82%
rename from packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/NonNullFieldsTest.java
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/NonNullFieldsTest.java
index 3336fcf3af1b..c43e882f8e3c 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/NonNullFieldsTest.java
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/NonNullFieldsTest.java
@@ -2,11 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-package com.example.android_unit_tests;
+package com.example.alternate_language_test_plugin;
import static org.junit.Assert.*;
-import com.example.android_unit_tests.NonNullFields.NonNullFieldSearchRequest;
+import com.example.alternate_language_test_plugin.NonNullFields.NonNullFieldSearchRequest;
import java.lang.IllegalStateException;
import org.junit.Test;
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/NullFieldsTest.java b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/NullFieldsTest.java
similarity index 99%
rename from packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/NullFieldsTest.java
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/NullFieldsTest.java
index c1df044ca533..de47463fb214 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/NullFieldsTest.java
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/NullFieldsTest.java
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-package com.example.android_unit_tests;
+package com.example.alternate_language_test_plugin;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/NullableReturnsTest.java b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/NullableReturnsTest.java
similarity index 98%
rename from packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/NullableReturnsTest.java
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/NullableReturnsTest.java
index 1f791713098d..0b3beecfe4a1 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/NullableReturnsTest.java
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/NullableReturnsTest.java
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-package com.example.android_unit_tests;
+package com.example.alternate_language_test_plugin;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/PigeonTest.java b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/PigeonTest.java
similarity index 99%
rename from packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/PigeonTest.java
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/PigeonTest.java
index cf7f90a2562f..c50bd515556a 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/PigeonTest.java
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/PigeonTest.java
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-package com.example.android_unit_tests;
+package com.example.alternate_language_test_plugin;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/PrimitiveTest.java b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/PrimitiveTest.java
similarity index 96%
rename from packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/PrimitiveTest.java
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/PrimitiveTest.java
index d1f3fb130ac4..9599513eacf6 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/PrimitiveTest.java
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/test/java/com/example/alternate_language_test_plugin/PrimitiveTest.java
@@ -2,13 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-package com.example.android_unit_tests;
+package com.example.alternate_language_test_plugin;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
-import com.example.android_unit_tests.Primitive.PrimitiveFlutterApi;
-import com.example.android_unit_tests.Primitive.PrimitiveHostApi;
+import com.example.alternate_language_test_plugin.Primitive.PrimitiveFlutterApi;
+import com.example.alternate_language_test_plugin.Primitive.PrimitiveHostApi;
import io.flutter.plugin.common.BinaryMessenger;
import io.flutter.plugin.common.MessageCodec;
import java.nio.ByteBuffer;
diff --git a/packages/pigeon/platform_tests/android_kotlin_unit_tests/.gitignore b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/.gitignore
similarity index 92%
rename from packages/pigeon/platform_tests/android_kotlin_unit_tests/.gitignore
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/example/.gitignore
index 0fa6b675c0a5..24476c5d1eb5 100644
--- a/packages/pigeon/platform_tests/android_kotlin_unit_tests/.gitignore
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/.gitignore
@@ -8,6 +8,7 @@
.buildlog/
.history
.svn/
+migrate_working_dir/
# IntelliJ related
*.iml
@@ -31,9 +32,6 @@
.pub/
/build/
-# Web related
-lib/generated_plugin_registrant.dart
-
# Symbolication related
app.*.symbols
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/.gitignore b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/.gitignore
similarity index 91%
rename from packages/pigeon/platform_tests/android_unit_tests/android/.gitignore
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/.gitignore
index 0a741cb43d66..6f568019d3c6 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/.gitignore
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/.gitignore
@@ -9,3 +9,5 @@ GeneratedPluginRegistrant.java
# Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
key.properties
+**/*.keystore
+**/*.jks
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/build.gradle b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle
similarity index 71%
rename from packages/pigeon/platform_tests/android_unit_tests/android/app/build.gradle
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle
index 93562e75b6be..4ce69f6d2b4a 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/build.gradle
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/build.gradle
@@ -26,17 +26,21 @@ apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
- compileSdkVersion 31
+ compileSdkVersion flutter.compileSdkVersion
+ ndkVersion flutter.ndkVersion
- sourceSets {
- main.java.srcDirs += 'src/main/kotlin'
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
- applicationId "com.example.android_unit_tests"
- minSdkVersion 16
- targetSdkVersion 30
+ applicationId "com.example.alternate_language_test_plugin_example"
+ // You can update the following values to match your application needs.
+ // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
+ minSdkVersion flutter.minSdkVersion
+ targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
@@ -48,18 +52,8 @@ android {
signingConfig signingConfigs.debug
}
}
-
- testOptions {
- unitTests.returnDefaultValues = true
- }
}
flutter {
source '../..'
}
-
-dependencies {
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
- testImplementation 'junit:junit:4.+'
- testImplementation "org.mockito:mockito-core:3.+"
-}
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/profile/AndroidManifest.xml b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/debug/AndroidManifest.xml
similarity index 50%
rename from packages/pigeon/platform_tests/android_unit_tests/android/app/src/profile/AndroidManifest.xml
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/debug/AndroidManifest.xml
index 010226676c95..eb4818f5b822 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/profile/AndroidManifest.xml
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/debug/AndroidManifest.xml
@@ -1,6 +1,7 @@
-
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/main/AndroidManifest.xml b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/AndroidManifest.xml
similarity index 70%
rename from packages/pigeon/platform_tests/android_unit_tests/android/app/src/main/AndroidManifest.xml
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/AndroidManifest.xml
index a94518627505..b5f5188e8c45 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/main/AndroidManifest.xml
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/AndroidManifest.xml
@@ -1,10 +1,12 @@
+ package="com.example.alternate_language_test_plugin_example">
-
-
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/java/com/example/alternate_language_test_plugin_example/MainActivity.java b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/java/com/example/alternate_language_test_plugin_example/MainActivity.java
new file mode 100644
index 000000000000..04d9b3be5f60
--- /dev/null
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/java/com/example/alternate_language_test_plugin_example/MainActivity.java
@@ -0,0 +1,9 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package com.example.alternate_language_test_plugin_example;
+
+import io.flutter.embedding.android.FlutterActivity;
+
+public class MainActivity extends FlutterActivity {}
diff --git a/packages/pigeon/platform_tests/android_kotlin_unit_tests/android/app/src/main/res/drawable-v21/launch_background.xml b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/drawable-v21/launch_background.xml
similarity index 100%
rename from packages/pigeon/platform_tests/android_kotlin_unit_tests/android/app/src/main/res/drawable-v21/launch_background.xml
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/drawable-v21/launch_background.xml
diff --git a/packages/pigeon/platform_tests/android_kotlin_unit_tests/android/app/src/main/res/drawable/launch_background.xml b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/drawable/launch_background.xml
similarity index 100%
rename from packages/pigeon/platform_tests/android_kotlin_unit_tests/android/app/src/main/res/drawable/launch_background.xml
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/drawable/launch_background.xml
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 000000000000..db77bb4b7b09
Binary files /dev/null and b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 000000000000..17987b79bb8a
Binary files /dev/null and b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 000000000000..09d4391482be
Binary files /dev/null and b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 000000000000..d5f1c8d34e7a
Binary files /dev/null and b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 000000000000..4d6372eebdb2
Binary files /dev/null and b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/main/res/values-night/styles.xml b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/values-night/styles.xml
similarity index 94%
rename from packages/pigeon/platform_tests/android_unit_tests/android/app/src/main/res/values-night/styles.xml
rename to packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/values-night/styles.xml
index 449a9f930826..06952be745f9 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/main/res/values-night/styles.xml
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/example/android/app/src/main/res/values-night/styles.xml
@@ -3,14 +3,14 @@