Merge "Allow webview version arg to be "factory"" into androidx-main
diff --git a/webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewApkTest.java b/webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewApkTest.java
index 7d035a8..dfc090c 100644
--- a/webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewApkTest.java
+++ b/webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewApkTest.java
@@ -44,21 +44,27 @@
      * version of the WebView APK we intend to install. This test ensures the version passed as an
      * instrumentation argument matches the WebView implementation on the device (to ensure the
      * WebView APK was indeed installed correctly).
+     * <p>
+     * On AOSP test runners, the string {@code factory} will be passed instead to indicate that
+     * the tests should expect the factory version of webview to be installed.
+     * The test fails if <em>no</em> argument is passed, which would indicate a test infra failure.
      */
     @Test
     public void testWebViewVersionMatchesInstrumentationArgs() {
         // WebView version: e.g. 46.0.2490.14, or 67.0.3396.17.
         String expectedWebViewVersionString =
                 InstrumentationRegistry.getArguments().getString("webview-version");
-        // Use assumeTrue instead of using assumeNotNull so that we can provide a more descriptive
-        // message.
         Assume.assumeTrue("Did not receive a WebView version as an instrumentation argument",
                 expectedWebViewVersionString != null);
-        // Convert to a WebViewVersion to ensure these are well-formed
-        // Chromium-style version strings.
-        WebViewVersion expectedWebViewVersion = new WebViewVersion(expectedWebViewVersionString);
-        WebViewVersion actualWebViewVersion =
-                WebViewVersion.getInstalledWebViewVersionFromPackage();
-        Assert.assertEquals(expectedWebViewVersion, actualWebViewVersion);
+
+        if (!"factory".equals(expectedWebViewVersionString)) {
+            // Convert to a WebViewVersion to ensure these are well-formed
+            // Chromium-style version strings.
+            WebViewVersion expectedWebViewVersion = new WebViewVersion(
+                    expectedWebViewVersionString);
+            WebViewVersion actualWebViewVersion =
+                    WebViewVersion.getInstalledWebViewVersionFromPackage();
+            Assert.assertEquals(expectedWebViewVersion, actualWebViewVersion);
+        }
     }
 }