Index: android_webview/tools/system_webview_shell/layout_tests/src/org/chromium/webview_shell/test/WebViewLayoutTest.java |
diff --git a/android_webview/tools/system_webview_shell/layout_tests/src/org/chromium/webview_shell/test/WebViewLayoutTest.java b/android_webview/tools/system_webview_shell/layout_tests/src/org/chromium/webview_shell/test/WebViewLayoutTest.java |
index 470061c5a47dc3f50e65e8b38f022e72f0acd645..0206880fb3d9fefc6181879e6faf950c72e27182 100644 |
--- a/android_webview/tools/system_webview_shell/layout_tests/src/org/chromium/webview_shell/test/WebViewLayoutTest.java |
+++ b/android_webview/tools/system_webview_shell/layout_tests/src/org/chromium/webview_shell/test/WebViewLayoutTest.java |
@@ -4,16 +4,27 @@ |
package org.chromium.webview_shell.test; |
-import android.test.ActivityInstrumentationTestCase2; |
+import static org.junit.Assert.assertEquals; |
+import static org.junit.Assert.assertNotNull; |
+import static org.junit.Assert.assertTrue; |
+ |
import android.test.suitebuilder.annotation.MediumTest; |
import junit.framework.ComparisonFailure; |
import org.chromium.base.Log; |
+import org.chromium.base.test.BaseJUnitClassRunner; |
import org.chromium.base.test.util.DisableIf; |
import org.chromium.base.test.util.UrlUtils; |
import org.chromium.webview_shell.WebViewLayoutTestActivity; |
+import org.junit.Assume; |
+import org.junit.Before; |
+import org.junit.Ignore; |
+import org.junit.Rule; |
+import org.junit.Test; |
+import org.junit.runner.RunWith; |
+ |
import java.io.BufferedReader; |
import java.io.File; |
import java.io.FileInputStream; |
@@ -24,13 +35,12 @@ import java.io.InputStreamReader; |
import java.util.HashMap; |
import java.util.HashSet; |
import java.util.concurrent.TimeUnit; |
-import java.util.concurrent.TimeoutException; |
/** |
* Tests running end-to-end layout tests. |
*/ |
-public class WebViewLayoutTest |
- extends ActivityInstrumentationTestCase2<WebViewLayoutTestActivity> { |
+@RunWith(BaseJUnitClassRunner.class) |
+public class WebViewLayoutTest { |
private static final String TAG = "WebViewLayoutTest"; |
@@ -49,36 +59,35 @@ public class WebViewLayoutTest |
private WebViewLayoutTestActivity mTestActivity; |
- public WebViewLayoutTest() { |
- super(WebViewLayoutTestActivity.class); |
- } |
- |
- @Override |
- protected void setUp() throws Exception { |
- super.setUp(); |
- mTestActivity = (WebViewLayoutTestActivity) getActivity(); |
- } |
+ @Rule |
+ public WebViewLayoutActivityTestRule<WebViewLayoutTestActivity> mActivityRule = |
+ new WebViewLayoutActivityTestRule<>(WebViewLayoutTestActivity.class); |
- @Override |
- protected void tearDown() throws Exception { |
- mTestActivity.finish(); |
- super.tearDown(); |
+ @Before |
+ public void setUp() throws Exception { |
+ mTestActivity = mActivityRule.getActivity(); |
} |
- @Override |
- public WebViewLayoutTestRunner getInstrumentation() { |
- return (WebViewLayoutTestRunner) super.getInstrumentation(); |
+ @MediumTest |
+ @Test |
+ public void testSimple() throws Throwable { |
+ runWebViewLayoutTest("experimental/basic-logging.html", |
+ "experimental/basic-logging-expected.txt"); |
} |
+ @Test |
@MediumTest |
- public void testSimple() throws Exception { |
+ public void testSimple2() throws Throwable { |
+ Assume.assumeTrue(1 == 2); |
runWebViewLayoutTest("experimental/basic-logging.html", |
"experimental/basic-logging-expected.txt"); |
} |
+ |
// This is a non-failing test because it tends to require frequent rebaselines. |
@MediumTest |
- public void testGlobalInterfaceNoFail() throws Exception { |
+ @Test |
+ public void testGlobalInterfaceNoFail() throws Throwable { |
runBlinkLayoutTest("webexposed/global-interface-listing.html", |
"webexposed/global-interface-listing-expected.txt", true); |
} |
@@ -86,7 +95,9 @@ public class WebViewLayoutTest |
// This is a non-failing test to avoid 'blind' rebaselines by the sheriff |
// (see crbug.com/564765). |
@MediumTest |
- public void testNoUnexpectedInterfaces() throws Exception { |
+ @DisableIf.Build(sdk_is_greater_than = 14) |
+ @Test |
+ public void testNoUnexpectedInterfaces() throws Throwable { |
ensureJsTestCopied(); |
loadUrlWebViewAsync("file://" + PATH_BLINK_PREFIX |
+ "webexposed/global-interface-listing.html", mTestActivity); |
@@ -113,7 +124,8 @@ public class WebViewLayoutTest |
} |
@MediumTest |
- public void testWebViewExcludedInterfaces() throws Exception { |
+ @Test |
+ public void testWebViewExcludedInterfaces() throws Throwable { |
ensureJsTestCopied(); |
loadUrlWebViewAsync("file://" + PATH_BLINK_PREFIX |
+ "webexposed/global-interface-listing.html", mTestActivity); |
@@ -157,7 +169,8 @@ public class WebViewLayoutTest |
} |
@MediumTest |
- public void testWebViewIncludedStableInterfaces() throws Exception { |
+ @Test |
+ public void testWebViewIncludedStableInterfaces() throws Throwable { |
ensureJsTestCopied(); |
loadUrlWebViewAsync("file://" + PATH_BLINK_PREFIX |
+ "webexposed/global-interface-listing.html", mTestActivity); |
@@ -202,13 +215,14 @@ public class WebViewLayoutTest |
} |
@MediumTest |
- public void testRequestMIDIAccess() throws Exception { |
+ @Test |
+ public void testRequestMIDIAccess() throws Throwable { |
runWebViewLayoutTest("blink-apis/webmidi/requestmidiaccess.html", |
"blink-apis/webmidi/requestmidiaccess-expected.txt"); |
} |
@MediumTest |
- public void testRequestMIDIAccessWithSysex() throws Exception { |
+ public void testRequestMIDIAccessWithSysex() throws Throwable { |
mTestActivity.setGrantPermission(true); |
runWebViewLayoutTest("blink-apis/webmidi/requestmidiaccess-with-sysex.html", |
"blink-apis/webmidi/requestmidiaccess-with-sysex-expected.txt"); |
@@ -216,7 +230,8 @@ public class WebViewLayoutTest |
} |
@MediumTest |
- public void testRequestMIDIAccessDenyPermission() throws Exception { |
+ @Test |
+ public void testRequestMIDIAccessDenyPermission() throws Throwable { |
runWebViewLayoutTest("blink-apis/webmidi/requestmidiaccess-permission-denied.html", |
"blink-apis/webmidi/requestmidiaccess-permission-denied-expected.txt"); |
} |
@@ -224,19 +239,23 @@ public class WebViewLayoutTest |
// Blink platform API tests |
@MediumTest |
- public void testGeolocationCallbacks() throws Exception { |
+ @Test |
+ @Ignore |
+ public void testGeolocationCallbacks() throws Throwable { |
runWebViewLayoutTest("blink-apis/geolocation/geolocation-permission-callbacks.html", |
"blink-apis/geolocation/geolocation-permission-callbacks-expected.txt"); |
} |
@MediumTest |
- public void testMediaStreamApiDenyPermission() throws Exception { |
+ @Test |
+ public void testMediaStreamApiDenyPermission() throws Throwable { |
runWebViewLayoutTest("blink-apis/webrtc/mediastream-permission-denied-callbacks.html", |
"blink-apis/webrtc/mediastream-permission-denied-callbacks-expected.txt"); |
} |
@MediumTest |
- public void testMediaStreamApi() throws Exception { |
+ @Test |
+ public void testMediaStreamApi() throws Throwable { |
mTestActivity.setGrantPermission(true); |
runWebViewLayoutTest("blink-apis/webrtc/mediastream-callbacks.html", |
"blink-apis/webrtc/mediastream-callbacks-expected.txt"); |
@@ -244,7 +263,8 @@ public class WebViewLayoutTest |
} |
@MediumTest |
- public void testBatteryApi() throws Exception { |
+ @Test |
+ public void testBatteryApi() throws Throwable { |
runWebViewLayoutTest("blink-apis/battery-status/battery-callback.html", |
"blink-apis/battery-status/battery-callback-expected.txt"); |
} |
@@ -254,7 +274,8 @@ public class WebViewLayoutTest |
*/ |
@MediumTest |
@DisableIf.Build(product_name_includes = "aosp") |
- public void testEMEPermission() throws Exception { |
+ @Test |
+ public void testEMEPermission() throws Throwable { |
mTestActivity.setGrantPermission(true); |
runWebViewLayoutTest("blink-apis/eme/eme.html", "blink-apis/eme/eme-expected.txt"); |
mTestActivity.setGrantPermission(false); |
@@ -264,21 +285,20 @@ public class WebViewLayoutTest |
// test helper methods |
private void runWebViewLayoutTest(final String fileName, final String fileNameExpected) |
- throws Exception { |
+ throws Throwable { |
runTest(PATH_WEBVIEW_PREFIX + fileName, PATH_WEBVIEW_PREFIX + fileNameExpected, false); |
} |
private void runBlinkLayoutTest(final String fileName, final String fileNameExpected, |
- boolean noFail) throws Exception { |
+ boolean noFail) throws Throwable { |
ensureJsTestCopied(); |
runTest(PATH_BLINK_PREFIX + fileName, PATH_WEBVIEW_PREFIX + fileNameExpected, noFail); |
} |
private void runTest(final String fileName, final String fileNameExpected, boolean noFail) |
- throws FileNotFoundException, IOException, InterruptedException, TimeoutException { |
+ throws Throwable { |
loadUrlWebViewAsync("file://" + fileName, mTestActivity); |
- |
- if (getInstrumentation().isRebaseline()) { |
+ if (mActivityRule.isRebaseline()) { |
// this is the rebaseline process |
mTestActivity.waitForFinish(TIMEOUT_SECONDS, TimeUnit.SECONDS); |
String result = mTestActivity.getTestResult(); |
@@ -298,8 +318,8 @@ public class WebViewLayoutTest |
} |
private void loadUrlWebViewAsync(final String fileUrl, |
- final WebViewLayoutTestActivity activity) { |
- getInstrumentation().runOnMainSync(new Runnable() { |
+ final WebViewLayoutTestActivity activity) throws Throwable { |
+ mActivityRule.runOnUiThread(new Runnable() { |
@Override |
public void run() { |
activity.loadUrl(fileUrl); |