Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: android_webview/javatests/src/org/chromium/android_webview/test/AwTestBase.java

Issue 2691073003: Add javatests for the WebView SafeBrowsing feature (Closed)
Patch Set: Move getPixelColorAtCenterOfView to GraphicsTestUtils Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 static org.chromium.base.test.util.ScalableTimeout.scaleTimeout; 7 import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout;
8 8
9 import android.app.Instrumentation; 9 import android.app.Instrumentation;
10 import android.content.Context; 10 import android.content.Context;
11 import android.graphics.Bitmap;
12 import android.os.Build; 11 import android.os.Build;
13 import android.util.AndroidRuntimeException; 12 import android.util.AndroidRuntimeException;
14 import android.util.Log; 13 import android.util.Log;
15 14
16 import org.chromium.android_webview.AwBrowserContext; 15 import org.chromium.android_webview.AwBrowserContext;
17 import org.chromium.android_webview.AwBrowserProcess; 16 import org.chromium.android_webview.AwBrowserProcess;
18 import org.chromium.android_webview.AwContents; 17 import org.chromium.android_webview.AwContents;
19 import org.chromium.android_webview.AwContentsClient; 18 import org.chromium.android_webview.AwContentsClient;
20 import org.chromium.android_webview.AwSettings; 19 import org.chromium.android_webview.AwSettings;
21 import org.chromium.android_webview.AwSwitches; 20 import org.chromium.android_webview.AwSwitches;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 protected void createAwBrowserContext() { 96 protected void createAwBrowserContext() {
98 if (mBrowserContext != null) { 97 if (mBrowserContext != null) {
99 throw new AndroidRuntimeException("There should only be one browser context."); 98 throw new AndroidRuntimeException("There should only be one browser context.");
100 } 99 }
101 getActivity(); // The Activity must be launched in order to load native code 100 getActivity(); // The Activity must be launched in order to load native code
102 final InMemorySharedPreferences prefs = new InMemorySharedPreferences(); 101 final InMemorySharedPreferences prefs = new InMemorySharedPreferences();
103 final Context appContext = getInstrumentation().getTargetContext().getAp plicationContext(); 102 final Context appContext = getInstrumentation().getTargetContext().getAp plicationContext();
104 getInstrumentation().runOnMainSync(new Runnable() { 103 getInstrumentation().runOnMainSync(new Runnable() {
105 @Override 104 @Override
106 public void run() { 105 public void run() {
107 mBrowserContext = new AwBrowserContext(prefs, appContext); 106 mBrowserContext = createAwBrowserContextOnUiThread(prefs, appCon text);
108 } 107 }
109 }); 108 });
110 } 109 }
111 110
111 protected AwBrowserContext createAwBrowserContextOnUiThread(
112 InMemorySharedPreferences prefs, Context appContext) {
113 return new AwBrowserContext(prefs, appContext);
114 }
115
112 protected void startBrowserProcess() throws Exception { 116 protected void startBrowserProcess() throws Exception {
113 // The Activity must be launched in order for proper webview statics to be setup. 117 // The Activity must be launched in order for proper webview statics to be setup.
114 getActivity(); 118 getActivity();
115 getInstrumentation().runOnMainSync(new Runnable() { 119 getInstrumentation().runOnMainSync(new Runnable() {
116 @Override 120 @Override
117 public void run() { 121 public void run() {
118 AwBrowserProcess.start(); 122 AwBrowserProcess.start();
119 } 123 }
120 }); 124 });
121 } 125 }
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 } 371 }
368 372
369 // Waits for the pixel at the center of AwContents to color up into expected Color. 373 // Waits for the pixel at the center of AwContents to color up into expected Color.
370 // Note that this is a stricter condition that waiting for a visual state ca llback, 374 // Note that this is a stricter condition that waiting for a visual state ca llback,
371 // as visual state callback only indicates that *something* has appeared in WebView. 375 // as visual state callback only indicates that *something* has appeared in WebView.
372 public void waitForPixelColorAtCenterOfView(final AwContents awContents, 376 public void waitForPixelColorAtCenterOfView(final AwContents awContents,
373 final AwTestContainerView testContainerView, final int expectedColor ) throws Exception { 377 final AwTestContainerView testContainerView, final int expectedColor ) throws Exception {
374 pollUiThread(new Callable<Boolean>() { 378 pollUiThread(new Callable<Boolean>() {
375 @Override 379 @Override
376 public Boolean call() throws Exception { 380 public Boolean call() throws Exception {
377 Bitmap bitmap = GraphicsTestUtils.drawAwContents(awContents, 2, 2, 381 return GraphicsTestUtils.getPixelColorAtCenterOfView(awContents, testContainerView)
378 -(float) testContainerView.getWidth() / 2, 382 == expectedColor;
379 -(float) testContainerView.getHeight() / 2);
380 return bitmap.getPixel(0, 0) == expectedColor;
381 } 383 }
382 }); 384 });
383 } 385 }
384 386
385 /** 387 /**
386 * Checks the current test has |clazz| annotation. Note this swallows NoSuch MethodException 388 * Checks the current test has |clazz| annotation. Note this swallows NoSuch MethodException
387 * and returns false in that case. 389 * and returns false in that case.
388 */ 390 */
389 private boolean testMethodHasAnnotation(Class<? extends Annotation> clazz) { 391 private boolean testMethodHasAnnotation(Class<? extends Annotation> clazz) {
390 String testName = getName(); 392 String testName = getName();
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
704 int titleCallCount = onReceivedTitleHelper.getCallCount(); 706 int titleCallCount = onReceivedTitleHelper.getCallCount();
705 707
706 onPageFinishedHelper.waitForCallback(finishCallCount, 1, WAIT_TIMEOUT_MS , 708 onPageFinishedHelper.waitForCallback(finishCallCount, 1, WAIT_TIMEOUT_MS ,
707 TimeUnit.MILLISECONDS); 709 TimeUnit.MILLISECONDS);
708 onReceivedTitleHelper.waitForCallback(titleCallCount, 1, WAIT_TIMEOUT_MS , 710 onReceivedTitleHelper.waitForCallback(titleCallCount, 1, WAIT_TIMEOUT_MS ,
709 TimeUnit.MILLISECONDS); 711 TimeUnit.MILLISECONDS);
710 712
711 return new PopupInfo(popupContentsClient, popupContainerView, popupConte nts); 713 return new PopupInfo(popupContentsClient, popupContainerView, popupConte nts);
712 } 714 }
713 } 715 }
OLDNEW
« no previous file with comments | « android_webview/javatests/DEPS ('k') | android_webview/javatests/src/org/chromium/android_webview/test/SafeBrowsingTest.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698