Index: content/public/android/javatests/src/org/chromium/content/browser/webcontents/WebContentsTest.java |
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/webcontents/WebContentsTest.java b/content/public/android/javatests/src/org/chromium/content/browser/webcontents/WebContentsTest.java |
index 110a099c1bc09040f2942544a35c92c9986de0df..448ba982b3d364c81bb69d53329ffeabb13f7bee 100644 |
--- a/content/public/android/javatests/src/org/chromium/content/browser/webcontents/WebContentsTest.java |
+++ b/content/public/android/javatests/src/org/chromium/content/browser/webcontents/WebContentsTest.java |
@@ -1,4 +1,4 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
@@ -10,12 +10,18 @@ import android.os.Bundle; |
import android.os.Parcel; |
import android.support.test.filters.SmallTest; |
+import org.junit.Assert; |
+import org.junit.Rule; |
+import org.junit.Test; |
+import org.junit.runner.RunWith; |
+ |
import org.chromium.base.ThreadUtils; |
+import org.chromium.base.test.BaseJUnit4ClassRunner; |
import org.chromium.content_public.browser.RenderFrameHost; |
import org.chromium.content_public.browser.WebContents; |
import org.chromium.content_shell.Shell; |
import org.chromium.content_shell_apk.ContentShellActivity; |
-import org.chromium.content_shell_apk.ContentShellTestBase; |
+import org.chromium.content_shell_apk.ContentShellActivityTestRule; |
import java.util.concurrent.Callable; |
import java.util.concurrent.ExecutionException; |
@@ -24,7 +30,11 @@ import java.util.concurrent.ExecutionException; |
* Test various Java WebContents specific features. |
* TODO(dtrainor): Add more testing for the WebContents methods. |
*/ |
-public class WebContentsTest extends ContentShellTestBase { |
+@RunWith(BaseJUnit4ClassRunner.class) |
+public class WebContentsTest { |
+ @Rule |
+ public ContentShellActivityTestRule mActivityTestRule = new ContentShellActivityTestRule(); |
+ |
private static final String TEST_URL_1 = "about://blank"; |
private static final String WEB_CONTENTS_KEY = "WEBCONTENTSKEY"; |
private static final String PARCEL_STRING_TEST_DATA = "abcdefghijklmnopqrstuvwxyz"; |
@@ -37,21 +47,23 @@ public class WebContentsTest extends ContentShellTestBase { |
* @throws InterruptedException |
* @throws ExecutionException |
*/ |
+ @Test |
@SmallTest |
public void testWebContentsIsDestroyedMethod() throws InterruptedException, ExecutionException { |
- final ContentShellActivity activity = launchContentShellWithUrl(TEST_URL_1); |
- waitForActiveShellToBeDoneLoading(); |
+ final ContentShellActivity activity = |
+ mActivityTestRule.launchContentShellWithUrl(TEST_URL_1); |
+ mActivityTestRule.waitForActiveShellToBeDoneLoading(); |
WebContents webContents = activity.getActiveWebContents(); |
- assertFalse("WebContents incorrectly marked as destroyed", |
- isWebContentsDestroyed(webContents)); |
+ Assert.assertFalse( |
+ "WebContents incorrectly marked as destroyed", isWebContentsDestroyed(webContents)); |
// Launch a new shell. |
Shell originalShell = activity.getActiveShell(); |
- loadNewShell(TEST_URL_1); |
- assertNotSame("New shell not created", activity.getActiveShell(), originalShell); |
+ mActivityTestRule.loadNewShell(TEST_URL_1); |
+ Assert.assertNotSame("New shell not created", activity.getActiveShell(), originalShell); |
- assertTrue("WebContents incorrectly marked as not destroyed", |
+ Assert.assertTrue("WebContents incorrectly marked as not destroyed", |
isWebContentsDestroyed(webContents)); |
} |
@@ -60,11 +72,12 @@ public class WebContentsTest extends ContentShellTestBase { |
* |
* @throws InterruptedException |
*/ |
+ @Test |
@SmallTest |
public void testWebContentsSerializeDeserializeInParcel() throws InterruptedException { |
- launchContentShellWithUrl(TEST_URL_1); |
- waitForActiveShellToBeDoneLoading(); |
- WebContents webContents = getWebContents(); |
+ mActivityTestRule.launchContentShellWithUrl(TEST_URL_1); |
+ mActivityTestRule.waitForActiveShellToBeDoneLoading(); |
+ WebContents webContents = mActivityTestRule.getWebContents(); |
Parcel parcel = Parcel.obtain(); |
@@ -78,8 +91,8 @@ public class WebContentsTest extends ContentShellTestBase { |
WebContents.class.getClassLoader()); |
// Make sure they're equal. |
- assertEquals("Deserialized object does not match", |
- webContents, deserializedWebContents); |
+ Assert.assertEquals( |
+ "Deserialized object does not match", webContents, deserializedWebContents); |
} finally { |
parcel.recycle(); |
} |
@@ -89,13 +102,14 @@ public class WebContentsTest extends ContentShellTestBase { |
* Check that it is possible to serialize and deserialize a WebContents object through Bundles. |
* @throws InterruptedException |
*/ |
+ @Test |
@SmallTest |
// TODO(crbug.com/635567): Fix this properly. |
@SuppressLint("ParcelClassLoader") |
public void testWebContentsSerializeDeserializeInBundle() throws InterruptedException { |
- launchContentShellWithUrl(TEST_URL_1); |
- waitForActiveShellToBeDoneLoading(); |
- WebContents webContents = getWebContents(); |
+ mActivityTestRule.launchContentShellWithUrl(TEST_URL_1); |
+ mActivityTestRule.waitForActiveShellToBeDoneLoading(); |
+ WebContents webContents = mActivityTestRule.getWebContents(); |
// Use a parcel to force the Bundle to actually serialize and deserialize, otherwise it can |
// cache the WebContents object. |
@@ -119,8 +133,8 @@ public class WebContentsTest extends ContentShellTestBase { |
deserializedBundle.getParcelable(WEB_CONTENTS_KEY); |
// Make sure they're equal. |
- assertEquals("Deserialized object does not match", |
- webContents, deserializedWebContents); |
+ Assert.assertEquals( |
+ "Deserialized object does not match", webContents, deserializedWebContents); |
} finally { |
parcel.recycle(); |
} |
@@ -130,13 +144,14 @@ public class WebContentsTest extends ContentShellTestBase { |
* Check that it is possible to serialize and deserialize a WebContents object through Intents. |
* @throws InterruptedException |
*/ |
+ @Test |
@SmallTest |
// TODO(crbug.com/635567): Fix this properly. |
@SuppressLint("ParcelClassLoader") |
public void testWebContentsSerializeDeserializeInIntent() throws InterruptedException { |
- launchContentShellWithUrl(TEST_URL_1); |
- waitForActiveShellToBeDoneLoading(); |
- WebContents webContents = getWebContents(); |
+ mActivityTestRule.launchContentShellWithUrl(TEST_URL_1); |
+ mActivityTestRule.waitForActiveShellToBeDoneLoading(); |
+ WebContents webContents = mActivityTestRule.getWebContents(); |
// Use a parcel to force the Intent to actually serialize and deserialize, otherwise it can |
// cache the WebContents object. |
@@ -160,8 +175,8 @@ public class WebContentsTest extends ContentShellTestBase { |
(WebContents) deserializedIntent.getParcelableExtra(WEB_CONTENTS_KEY); |
// Make sure they're equal. |
- assertEquals("Deserialized object does not match", |
- webContents, deserializedWebContents); |
+ Assert.assertEquals( |
+ "Deserialized object does not match", webContents, deserializedWebContents); |
} finally { |
parcel.recycle(); |
} |
@@ -172,12 +187,13 @@ public class WebContentsTest extends ContentShellTestBase { |
* instance fails. |
* @throws InterruptedException |
*/ |
+ @Test |
@SmallTest |
public void testWebContentsFailDeserializationAcrossProcessBoundary() |
throws InterruptedException { |
- launchContentShellWithUrl(TEST_URL_1); |
- waitForActiveShellToBeDoneLoading(); |
- WebContents webContents = getWebContents(); |
+ mActivityTestRule.launchContentShellWithUrl(TEST_URL_1); |
+ mActivityTestRule.waitForActiveShellToBeDoneLoading(); |
+ WebContents webContents = mActivityTestRule.getWebContents(); |
Parcel parcel = Parcel.obtain(); |
@@ -194,7 +210,7 @@ public class WebContentsTest extends ContentShellTestBase { |
WebContents.class.getClassLoader()); |
// Make sure we weren't able to deserialize the WebContents. |
- assertNull("Unexpectedly deserialized a WebContents", deserializedWebContents); |
+ Assert.assertNull("Unexpectedly deserialized a WebContents", deserializedWebContents); |
} finally { |
parcel.recycle(); |
} |
@@ -206,15 +222,16 @@ public class WebContentsTest extends ContentShellTestBase { |
* @throws InterruptedException |
* @throws ExecutionException |
*/ |
+ @Test |
@SmallTest |
public void testSerializingADestroyedWebContentsDoesNotDeserialize() |
throws InterruptedException, ExecutionException { |
- ContentShellActivity activity = launchContentShellWithUrl(TEST_URL_1); |
- waitForActiveShellToBeDoneLoading(); |
+ ContentShellActivity activity = mActivityTestRule.launchContentShellWithUrl(TEST_URL_1); |
+ mActivityTestRule.waitForActiveShellToBeDoneLoading(); |
WebContents webContents = activity.getActiveWebContents(); |
- loadNewShell(TEST_URL_1); |
+ mActivityTestRule.loadNewShell(TEST_URL_1); |
- assertTrue("WebContents not destroyed", isWebContentsDestroyed(webContents)); |
+ Assert.assertTrue("WebContents not destroyed", isWebContentsDestroyed(webContents)); |
Parcel parcel = Parcel.obtain(); |
@@ -228,8 +245,8 @@ public class WebContentsTest extends ContentShellTestBase { |
WebContents.class.getClassLoader()); |
// Make sure we weren't able to deserialize the WebContents. |
- assertNull("Unexpectedly deserialized a destroyed WebContents", |
- deserializedWebContents); |
+ Assert.assertNull( |
+ "Unexpectedly deserialized a destroyed WebContents", deserializedWebContents); |
} finally { |
parcel.recycle(); |
} |
@@ -241,11 +258,12 @@ public class WebContentsTest extends ContentShellTestBase { |
* @throws InterruptedException |
* @throws ExecutionException |
*/ |
+ @Test |
@SmallTest |
public void testDestroyingAWebContentsAfterSerializingDoesNotDeserialize() |
throws InterruptedException, ExecutionException { |
- ContentShellActivity activity = launchContentShellWithUrl(TEST_URL_1); |
- waitForActiveShellToBeDoneLoading(); |
+ ContentShellActivity activity = mActivityTestRule.launchContentShellWithUrl(TEST_URL_1); |
+ mActivityTestRule.waitForActiveShellToBeDoneLoading(); |
WebContents webContents = activity.getActiveWebContents(); |
Parcel parcel = Parcel.obtain(); |
@@ -255,8 +273,8 @@ public class WebContentsTest extends ContentShellTestBase { |
parcel.writeParcelable(webContents, 0); |
// Destroy the WebContents. |
- loadNewShell(TEST_URL_1); |
- assertTrue("WebContents not destroyed", isWebContentsDestroyed(webContents)); |
+ mActivityTestRule.loadNewShell(TEST_URL_1); |
+ Assert.assertTrue("WebContents not destroyed", isWebContentsDestroyed(webContents)); |
// Try to read back the WebContents. |
parcel.setDataPosition(0); |
@@ -264,8 +282,8 @@ public class WebContentsTest extends ContentShellTestBase { |
WebContents.class.getClassLoader()); |
// Make sure we weren't able to deserialize the WebContents. |
- assertNull("Unexpectedly deserialized a destroyed WebContents", |
- deserializedWebContents); |
+ Assert.assertNull( |
+ "Unexpectedly deserialized a destroyed WebContents", deserializedWebContents); |
} finally { |
parcel.recycle(); |
} |
@@ -276,12 +294,12 @@ public class WebContentsTest extends ContentShellTestBase { |
* Parcel. |
* @throws InterruptedException |
*/ |
+ @Test |
@SmallTest |
- public void testFailedDeserializationDoesntCorruptParcel() |
- throws InterruptedException { |
- launchContentShellWithUrl(TEST_URL_1); |
- waitForActiveShellToBeDoneLoading(); |
- WebContents webContents = getWebContents(); |
+ public void testFailedDeserializationDoesntCorruptParcel() throws InterruptedException { |
+ mActivityTestRule.launchContentShellWithUrl(TEST_URL_1); |
+ mActivityTestRule.waitForActiveShellToBeDoneLoading(); |
+ WebContents webContents = mActivityTestRule.getWebContents(); |
Parcel parcel = Parcel.obtain(); |
@@ -301,10 +319,10 @@ public class WebContentsTest extends ContentShellTestBase { |
WebContents.class.getClassLoader()); |
// Make sure we weren't able to deserialize the WebContents. |
- assertNull("Unexpectedly deserialized a WebContents", deserializedWebContents); |
+ Assert.assertNull("Unexpectedly deserialized a WebContents", deserializedWebContents); |
// Make sure we can properly deserialize the String after the WebContents. |
- assertEquals("Failing to read the WebContents corrupted the parcel", |
+ Assert.assertEquals("Failing to read the WebContents corrupted the parcel", |
PARCEL_STRING_TEST_DATA, parcel.readString()); |
} finally { |
parcel.recycle(); |
@@ -317,10 +335,12 @@ public class WebContentsTest extends ContentShellTestBase { |
* |
* @throws InterruptedException |
*/ |
+ @Test |
@SmallTest |
public void testWebContentsMainFrame() throws InterruptedException { |
boliu
2017/03/10 18:32:32
this needs a rebase.. depending on timing of when
the real yoland
2017/03/10 19:31:58
Will do
boliu
2017/03/10 19:36:10
That CL just got cq-ed again, so guess you have to
|
- final ContentShellActivity activity = launchContentShellWithUrl(TEST_URL_1); |
- waitForActiveShellToBeDoneLoading(); |
+ final ContentShellActivity activity = |
+ mActivityTestRule.launchContentShellWithUrl(TEST_URL_1); |
+ mActivityTestRule.waitForActiveShellToBeDoneLoading(); |
final WebContents webContents = activity.getActiveWebContents(); |
ThreadUtils.postOnUiThread(new Runnable() { |
@@ -328,14 +348,14 @@ public class WebContentsTest extends ContentShellTestBase { |
public void run() { |
RenderFrameHost frameHost = webContents.getMainFrame(); |
- assertNotNull(frameHost); |
+ Assert.assertNotNull(frameHost); |
- assertEquals("RenderFrameHost has incorrect last committed URL", "about:blank", |
- frameHost.getLastCommittedURL()); |
+ Assert.assertEquals("RenderFrameHost has incorrect last committed URL", |
+ "about:blank", frameHost.getLastCommittedURL()); |
WebContents associatedWebContents = WebContentsImpl.fromRenderFrameHost(frameHost); |
- assertEquals("RenderFrameHost associated with different WebContents", webContents, |
- associatedWebContents); |
+ Assert.assertEquals("RenderFrameHost associated with different WebContents", |
+ webContents, associatedWebContents); |
} |
}); |
} |