[go: nahoru, domu]

Wait until an AndroidOwner is available

Add a check to see if an AndroidOwner is available to the waitForIdle
criteria.

Fixes: 154818174
Test: Added LateSetContentTest
Change-Id: I88b682d0d8dd4141fe0f46377dcbe163c89dd05c
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/LateSetContentTest.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/LateSetContentTest.kt
new file mode 100644
index 0000000..aa37c23
--- /dev/null
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/LateSetContentTest.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.ui.test
+
+import android.os.Bundle
+import android.os.Handler
+import android.os.Looper
+import androidx.activity.ComponentActivity
+import androidx.test.filters.LargeTest
+import androidx.ui.core.setContent
+import androidx.ui.test.android.AndroidComposeTestRule
+import androidx.ui.test.util.BoundaryNode
+import org.junit.Rule
+import org.junit.Test
+
+@LargeTest
+class LateSetContentTest {
+    @get:Rule
+    val composeTestRule = AndroidComposeTestRule<Activity>()
+
+    @Test
+    fun test() {
+        findByTag("Node").assertExists()
+    }
+
+    class Activity : ComponentActivity() {
+        private val handler = Handler(Looper.getMainLooper())
+        override fun onCreate(savedInstanceState: Bundle?) {
+            super.onCreate(savedInstanceState)
+            handler.postDelayed({
+                setContent { BoundaryNode("Node") }
+            }, 500)
+        }
+    }
+}