Add test that does not use mutable extras

Adding a test for CreationExtras that does not use any mutable extras.

Test: added new test
Bug: 223405407
Change-Id: I23ad86ea5969ea177fbb7394883bcbdc925116f2
diff --git a/lifecycle/lifecycle-viewmodel/src/test/java/androidx/lifecycle/ViewModelProviderTest.kt b/lifecycle/lifecycle-viewmodel/src/test/java/androidx/lifecycle/ViewModelProviderTest.kt
index f5ccb76..f4423a9 100644
--- a/lifecycle/lifecycle-viewmodel/src/test/java/androidx/lifecycle/ViewModelProviderTest.kt
+++ b/lifecycle/lifecycle-viewmodel/src/test/java/androidx/lifecycle/ViewModelProviderTest.kt
@@ -112,7 +112,7 @@
     }
 
     @Test
-    fun testDefaultCreationExtras() {
+    fun testDefaultCreationExtrasWithMutableExtras() {
         val owner = ViewModelStoreOwnerWithCreationExtras()
         val wasCalled = BooleanArray(1)
         val testFactory: ViewModelProvider.Factory = object : ViewModelProvider.Factory {
@@ -144,6 +144,34 @@
         assertThat(wasCalled[0]).isTrue()
     }
 
+    @Test
+    fun testDefaultCreationExtras() {
+        val owner = ViewModelStoreOwnerWithCreationExtras()
+        val wasCalled = BooleanArray(1)
+        val testFactory: ViewModelProvider.Factory = object : ViewModelProvider.Factory {
+            override fun <T : ViewModel> create(
+                modelClass: Class<T>,
+                extras: CreationExtras
+            ): T {
+                val key = extras[ViewModelProvider.NewInstanceFactory.VIEW_MODEL_KEY]
+                assertThat(key).isEqualTo("customKey")
+                assertThat(extras[TEST_KEY]).isEqualTo(TEST_VALUE)
+                wasCalled[0] = true
+                @Suppress("UNCHECKED_CAST")
+                return ViewModel1() as T
+            }
+        }
+        ViewModelProvider(owner, testFactory)["customKey", ViewModel1::class.java]
+        assertThat(wasCalled[0]).isTrue()
+        wasCalled[0] = false
+        ViewModelProvider(object : ViewModelStoreOwnerWithCreationExtras() {
+            override fun getDefaultViewModelProviderFactory(): ViewModelProvider.Factory {
+                return testFactory
+            }
+        })["customKey", ViewModel1::class.java]
+        assertThat(wasCalled[0]).isTrue()
+    }
+
     class ViewModelStoreOwnerWithFactory internal constructor(
         private val mStore: ViewModelStore,
         private val mFactory: ViewModelProvider.Factory