| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.android_webview.test; | 5 package org.chromium.android_webview.test; |
| 6 | 6 |
| 7 import android.graphics.Bitmap; | 7 import android.graphics.Bitmap; |
| 8 import android.graphics.Color; | 8 import android.graphics.Color; |
| 9 import android.graphics.Rect; | 9 import android.graphics.Rect; |
| 10 import android.test.suitebuilder.annotation.SmallTest; | 10 import android.test.suitebuilder.annotation.SmallTest; |
| 11 import android.util.Base64; | 11 import android.util.Base64; |
| 12 | 12 |
| 13 import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout; | 13 import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout; |
| 14 | 14 |
| 15 import org.chromium.android_webview.AwContents; | 15 import org.chromium.android_webview.AwContents; |
| 16 import org.chromium.android_webview.AwContents.VisualStateCallback; | 16 import org.chromium.android_webview.AwContents.VisualStateCallback; |
| 17 import org.chromium.android_webview.AwContentsClient; | 17 import org.chromium.android_webview.AwContentsClient; |
| 18 import org.chromium.android_webview.AwWebResourceResponse; | 18 import org.chromium.android_webview.AwWebResourceResponse; |
| 19 import org.chromium.android_webview.test.util.CommonResources; | 19 import org.chromium.android_webview.test.util.CommonResources; |
| 20 import org.chromium.android_webview.test.util.GraphicsTestUtils; | 20 import org.chromium.android_webview.test.util.GraphicsTestUtils; |
| 21 import org.chromium.android_webview.test.util.JavascriptEventObserver; | 21 import org.chromium.android_webview.test.util.JavascriptEventObserver; |
| 22 import org.chromium.base.ThreadUtils; | 22 import org.chromium.base.ThreadUtils; |
| 23 import org.chromium.base.annotations.SuppressFBWarnings; |
| 23 import org.chromium.base.test.util.Feature; | 24 import org.chromium.base.test.util.Feature; |
| 24 import org.chromium.content.browser.ContentViewCore; | 25 import org.chromium.content.browser.ContentViewCore; |
| 25 import org.chromium.content.browser.test.util.CallbackHelper; | 26 import org.chromium.content.browser.test.util.CallbackHelper; |
| 26 import org.chromium.content.browser.test.util.DOMUtils; | 27 import org.chromium.content.browser.test.util.DOMUtils; |
| 27 import org.chromium.content_public.browser.LoadUrlParams; | 28 import org.chromium.content_public.browser.LoadUrlParams; |
| 28 | 29 |
| 29 import java.io.ByteArrayInputStream; | 30 import java.io.ByteArrayInputStream; |
| 30 import java.io.FilterInputStream; | 31 import java.io.FilterInputStream; |
| 31 import java.io.IOException; | 32 import java.io.IOException; |
| 32 import java.io.InputStream; | 33 import java.io.InputStream; |
| (...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 428 final TestAwContentsClient awContentsClient = new TestAwContentsClient()
; | 429 final TestAwContentsClient awContentsClient = new TestAwContentsClient()
; |
| 429 final AwTestContainerView testView = | 430 final AwTestContainerView testView = |
| 430 createDetachedTestContainerViewOnMainSync(awContentsClient); | 431 createDetachedTestContainerViewOnMainSync(awContentsClient); |
| 431 final AwContents awContents = testView.getAwContents(); | 432 final AwContents awContents = testView.getAwContents(); |
| 432 final ContentViewCore contentViewCore = testView.getContentViewCore(); | 433 final ContentViewCore contentViewCore = testView.getContentViewCore(); |
| 433 | 434 |
| 434 enableJavaScriptOnUiThread(awContents); | 435 enableJavaScriptOnUiThread(awContents); |
| 435 | 436 |
| 436 // JS will notify this observer once it has changed the background color
of the page. | 437 // JS will notify this observer once it has changed the background color
of the page. |
| 437 final Object pageChangeNotifier = new Object() { | 438 final Object pageChangeNotifier = new Object() { |
| 439 @SuppressFBWarnings("UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS") |
| 438 public void onPageChanged() { | 440 public void onPageChanged() { |
| 439 ThreadUtils.postOnUiThread(new Runnable() { | 441 ThreadUtils.postOnUiThread(new Runnable() { |
| 440 @Override | 442 @Override |
| 441 public void run() { | 443 public void run() { |
| 442 awContents.insertVisualStateCallback(20, new VisualState
Callback() { | 444 awContents.insertVisualStateCallback(20, new VisualState
Callback() { |
| 443 @Override | 445 @Override |
| 444 public void onComplete(long id) { | 446 public void onComplete(long id) { |
| 445 Bitmap redScreenshot = | 447 Bitmap redScreenshot = |
| 446 GraphicsTestUtils.drawAwContents(awConte
nts, 100, 100); | 448 GraphicsTestUtils.drawAwContents(awConte
nts, 100, 100); |
| 447 assertEquals(Color.RED, redScreenshot.getPixel(5
0, 50)); | 449 assertEquals(Color.RED, redScreenshot.getPixel(5
0, 50)); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 463 }); | 465 }); |
| 464 | 466 |
| 465 assertTrue(testFinishedSignal.await(AwTestBase.WAIT_TIMEOUT_MS, TimeUnit
.MILLISECONDS)); | 467 assertTrue(testFinishedSignal.await(AwTestBase.WAIT_TIMEOUT_MS, TimeUnit
.MILLISECONDS)); |
| 466 } | 468 } |
| 467 | 469 |
| 468 private static final LoadUrlParams createTestPageUrl(String backgroundColor)
{ | 470 private static final LoadUrlParams createTestPageUrl(String backgroundColor)
{ |
| 469 return LoadUrlParams.createLoadDataParams( | 471 return LoadUrlParams.createLoadDataParams( |
| 470 "<html><body bgcolor=" + backgroundColor + "></body></html>", "t
ext/html", false); | 472 "<html><body bgcolor=" + backgroundColor + "></body></html>", "t
ext/html", false); |
| 471 } | 473 } |
| 472 } | 474 } |
| OLD | NEW |