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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/ClientManagerTest.java

Issue 2970003003: customtabs: Extract a redirect endpoint, and maybe connect to it. (Closed)
Patch Set: Typo. Created 3 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/ClientManagerTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/ClientManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/ClientManagerTest.java
index 3ce29345573e08a94f39fc991685ee87d16dcd85..34e16276ceceaf2b8e475cfcc34e63c31237eed8 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/ClientManagerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/ClientManagerTest.java
@@ -18,6 +18,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.chromium.base.ContextUtils;
+import org.chromium.base.ThreadUtils;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.MetricsUtils;
@@ -50,6 +51,12 @@ public class ClientManagerTest {
RequestThrottler.purgeAllEntriesForTesting(context);
mClientManager = new ClientManager(context);
RecordHistogram.initialize();
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ OriginVerifier.reset();
+ }
+ });
}
@Test
@@ -162,53 +169,71 @@ public class ClientManagerTest {
@Test
@SmallTest
public void testPostMessageOriginVerification() {
- Assert.assertTrue(
- mClientManager.newSession(mSession, mUid, null, new PostMessageHandler(mSession)));
+ final ClientManager cm = mClientManager;
+ Assert.assertTrue(cm.newSession(mSession, mUid, null, new PostMessageHandler(mSession)));
// Should always start with no origin.
- Assert.assertNull(mClientManager.getPostMessageOriginForSessionForTesting(mSession));
+ Assert.assertNull(cm.getPostMessageOriginForSessionForTesting(mSession));
- // With no prepopulated origins, this verification should fail.
- mClientManager.verifyAndInitializeWithPostMessageOriginForSession(mSession, Uri.parse(URL));
- Assert.assertNull(mClientManager.getPostMessageOriginForSessionForTesting(mSession));
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ // With no prepopulated origins, this verification should fail.
+ cm.verifyAndInitializeWithPostMessageOriginForSession(mSession, Uri.parse(URL));
+ Assert.assertNull(cm.getPostMessageOriginForSessionForTesting(mSession));
+
+ // If there is a prepopulated origin, we should get a synchronous verification.
+ OriginVerifier.addVerifiedOriginForPackage(
+ ContextUtils.getApplicationContext().getPackageName(), Uri.parse(URL));
+ cm.verifyAndInitializeWithPostMessageOriginForSession(mSession, Uri.parse(URL));
+ }
+ });
- // If there is a prepopulated origin, we should get a synchronous verification.
- OriginVerifier.prePopulateVerifiedOriginForTesting(
- ContextUtils.getApplicationContext().getPackageName(), Uri.parse(URL));
- mClientManager.verifyAndInitializeWithPostMessageOriginForSession(mSession, Uri.parse(URL));
CriteriaHelper.pollUiThread(new Criteria() {
@Override
public boolean isSatisfied() {
- return mClientManager.getPostMessageOriginForSessionForTesting(mSession) != null;
+ return cm.getPostMessageOriginForSessionForTesting(mSession) != null;
}
});
- Uri verifiedOrigin = mClientManager.getPostMessageOriginForSessionForTesting(mSession);
- Assert.assertEquals(IntentHandler.ANDROID_APP_REFERRER_SCHEME, verifiedOrigin.getScheme());
- // initializeWithPostMessageOriginForSession should override without checking origin.
- mClientManager.initializeWithPostMessageOriginForSession(mSession, null);
- Assert.assertNull(mClientManager.getPostMessageOriginForSessionForTesting(mSession));
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ Uri verifiedOrigin = cm.getPostMessageOriginForSessionForTesting(mSession);
+ Assert.assertEquals(
+ IntentHandler.ANDROID_APP_REFERRER_SCHEME, verifiedOrigin.getScheme());
+
+ // initializeWithPostMessageOriginForSession should override without checking
+ // origin.
+ cm.initializeWithPostMessageOriginForSession(mSession, null);
+ Assert.assertNull(cm.getPostMessageOriginForSessionForTesting(mSession));
+ }
+ });
}
@Test
@SmallTest
public void testPostMessageOriginHttpNotAllowed() {
- Assert.assertTrue(
- mClientManager.newSession(mSession, mUid, null, new PostMessageHandler(mSession)));
+ final ClientManager cm = mClientManager;
+ Assert.assertTrue(cm.newSession(mSession, mUid, null, new PostMessageHandler(mSession)));
// Should always start with no origin.
- Assert.assertNull(mClientManager.getPostMessageOriginForSessionForTesting(mSession));
-
- // With no prepopulated origins, this verification should fail.
- mClientManager.verifyAndInitializeWithPostMessageOriginForSession(
- mSession, Uri.parse(HTTP_URL));
- Assert.assertNull(mClientManager.getPostMessageOriginForSessionForTesting(mSession));
-
- // Even if there is a prepopulated origin, non-https origins should get an early return with
- // false.
- OriginVerifier.prePopulateVerifiedOriginForTesting(
- ContextUtils.getApplicationContext().getPackageName(), Uri.parse(HTTP_URL));
- mClientManager.verifyAndInitializeWithPostMessageOriginForSession(
- mSession, Uri.parse(HTTP_URL));
- Assert.assertNull(mClientManager.getPostMessageOriginForSessionForTesting(mSession));
+ Assert.assertNull(cm.getPostMessageOriginForSessionForTesting(mSession));
+
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ Uri uri = Uri.parse(HTTP_URL);
+ // With no prepopulated origins, this verification should fail.
+ cm.verifyAndInitializeWithPostMessageOriginForSession(mSession, uri);
+ Assert.assertNull(cm.getPostMessageOriginForSessionForTesting(mSession));
+
+ // Even if there is a prepopulated origin, non-https origins should get an early
+ // return with false.
+ OriginVerifier.addVerifiedOriginForPackage(
+ ContextUtils.getApplicationContext().getPackageName(), uri);
+ cm.verifyAndInitializeWithPostMessageOriginForSession(mSession, uri);
+ Assert.assertNull(cm.getPostMessageOriginForSessionForTesting(mSession));
+ }
+ });
}
@Test

Powered by Google App Engine
This is Rietveld 408576698