Fix WebViewTest.getContentHeight().
Rather than waiting for the UI thread to go idle, wait for the
specific conditions that we care about.
Bug:8763944
Change-Id: I9bd7166c8dfb866c9a3fb07295b24b4f1c97d165
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java b/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
index 9a19f29..1d43250 100644
--- a/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
@@ -959,25 +959,37 @@
public void testGetContentHeight() throws Throwable {
mOnUiThread.loadDataAndWaitForCompletion(
"<html><body></body></html>", "text/html", null);
- getInstrumentation().waitForIdleSync();
+ new PollingCheck() {
+ @Override
+ protected boolean check() {
+ return mOnUiThread.getScale() != 0 && mOnUiThread.getContentHeight() != 0;
+ }
+ }.run();
+ assertEquals(mOnUiThread.getHeight(),
+ mOnUiThread.getContentHeight() * mOnUiThread.getScale(), 2f);
final int pageHeight = 600;
// set the margin to 0
final String p = "<p style=\"height:" + pageHeight
+ "px;margin:0px auto;\">Get the height of HTML content.</p>";
- assertEquals(mOnUiThread.getHeight(), mOnUiThread.getContentHeight() * mOnUiThread.getScale(), 2f);
mOnUiThread.loadDataAndWaitForCompletion("<html><body>" + p
+ "</body></html>", "text/html", null);
- getInstrumentation().waitForIdleSync();
+ new PollingCheck() {
+ @Override
+ protected boolean check() {
+ return mOnUiThread.getContentHeight() > pageHeight;
+ }
+ }.run();
- assertTrue(mOnUiThread.getContentHeight() > pageHeight);
- int extraSpace = mOnUiThread.getContentHeight() - pageHeight;
-
+ final int extraSpace = mOnUiThread.getContentHeight() - pageHeight;
mOnUiThread.loadDataAndWaitForCompletion("<html><body>" + p
+ p + "</body></html>", "text/html", null);
- getInstrumentation().waitForIdleSync();
- assertEquals(pageHeight + pageHeight + extraSpace,
- mOnUiThread.getContentHeight());
+ new PollingCheck() {
+ @Override
+ protected boolean check() {
+ return pageHeight + pageHeight + extraSpace == mOnUiThread.getContentHeight();
+ }
+ }.run();
}
@UiThreadTest