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

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

Issue 1234643002: customtabs: Convert to the new AIDL interface, temporarily imported. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added VisibleForTesting to util only used for testing Created 5 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/CustomTabsConnectionTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionTest.java
index bb5be6db9649a03276896fea1add633a57b5df2f..26a05b30b1f692456b7868f24d83e2f554e2f9cb 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionTest.java
@@ -6,9 +6,10 @@ package org.chromium.chrome.browser.customtabs;
import android.app.Application;
import android.content.Context;
+import android.net.Uri;
import android.os.Bundle;
import android.os.IBinder;
-import android.os.Process;
+import android.support.customtabs.ICustomTabsCallback;
import android.test.InstrumentationTestCase;
import android.test.suitebuilder.annotation.SmallTest;
@@ -16,6 +17,7 @@ import android.test.suitebuilder.annotation.SmallTest;
public class CustomTabsConnectionTest extends InstrumentationTestCase {
private CustomTabsConnection mCustomTabsConnection;
private static final String URL = "http://www.google.com";
+ private static final String URL2 = "https://www.android.com";
private static final String INVALID_SCHEME_URL = "intent://www.google.com";
@Override
@@ -28,71 +30,58 @@ public class CustomTabsConnectionTest extends InstrumentationTestCase {
@Override
protected void tearDown() throws Exception {
super.tearDown();
- mCustomTabsConnection.cleanup(Process.myUid());
+ mCustomTabsConnection.cleanupAll();
}
- /**
- * Tests that we can register the callback. Registering null returns an
- * error code, and multiple registrations are not allowed.
- */
- @SmallTest
- public void testFinishSetup() {
- assertTrue("It should not be possible to set a null callback.",
- mCustomTabsConnection.finishSetup(null) != 0);
- ICustomTabsConnectionCallback cb = new ICustomTabsConnectionCallback.Stub() {
+ private ICustomTabsCallback newDummyCallback() {
+ return new ICustomTabsCallback.Stub() {
@Override
- public void onUserNavigationStarted(long sessionId, String url, Bundle extras) {}
+ public void onUserNavigationStarted(Uri url, Bundle extras) {}
@Override
- public void onUserNavigationFinished(long sessionId, String url, Bundle extras) {}
+ public void onUserNavigationFinished(Uri url, Bundle extras) {}
@Override
public IBinder asBinder() {
return this;
}
};
- assertEquals(0, mCustomTabsConnection.finishSetup(cb));
- assertTrue("It should not be possible to set the callback twice.",
- mCustomTabsConnection.finishSetup(cb) != 0);
}
/**
- * Tests that {@link CustomTabsConnection#warmup(long)} succeeds and can
- * be issued multiple times.
+ * Tests that we can create a new session. Registering with a null callback
+ * fails, as well as multiple sessions with the same callback.
*/
@SmallTest
- public void testCanWarmup() {
- assertEquals(0, mCustomTabsConnection.warmup(0));
- // Can call it several times.
- assertEquals(0, mCustomTabsConnection.warmup(0));
+ public void testNewSession() {
+ assertEquals(false, mCustomTabsConnection.newSession(null));
+ ICustomTabsCallback cb = newDummyCallback();
+ assertEquals(true, mCustomTabsConnection.newSession(cb));
+ assertEquals(false, mCustomTabsConnection.newSession(cb));
}
/**
- * Tests that the session ID is positive, multiple sessions can be created,
- * and {@link CustomTabsConnection#newSession()} doesn't always return
- * the same session ID.
+ * Tests that {@link CustomTabsConnection#warmup(long)} succeeds and can
+ * be issued multiple times.
*/
@SmallTest
- public void testNewSession() {
- long sessionId = mCustomTabsConnection.newSession();
- assertTrue("Session IDs should be strictly positive.", sessionId > 0);
- assertTrue("Session IDs should be unique.",
- mCustomTabsConnection.newSession() != sessionId);
+ public void testCanWarmup() {
+ assertEquals(true, mCustomTabsConnection.warmup(0));
+ assertEquals(true, mCustomTabsConnection.warmup(0));
}
/**
* Calls warmup() and mayLaunchUrl(), checks for the expected result
* (success or failure) and returns the result code.
*/
- private long assertWarmupAndMayLaunchUrl(long id, String url, boolean shouldSucceed) {
+ private ICustomTabsCallback assertWarmupAndMayLaunchUrl(
+ ICustomTabsCallback cb, String url, boolean shouldSucceed) {
mCustomTabsConnection.warmup(0);
- long sessionId = id == 0 ? mCustomTabsConnection.newSession() : id;
- mCustomTabsConnection.mayLaunchUrl(sessionId, url, null, null);
- long result = mCustomTabsConnection.mayLaunchUrl(sessionId, url, null, null);
- if (shouldSucceed) {
- assertEquals(sessionId, result);
- } else {
- assertTrue("The result should be negative to signal failure.", result < 0);
+ if (cb == null) {
+ cb = newDummyCallback();
+ mCustomTabsConnection.newSession(cb);
}
- return result;
+ boolean succeeded = mCustomTabsConnection.mayLaunchUrl(cb, Uri.parse(url), null, null);
+ assertEquals(shouldSucceed, succeeded);
+ return shouldSucceed ? cb : null;
}
/**
@@ -102,8 +91,7 @@ public class CustomTabsConnectionTest extends InstrumentationTestCase {
*/
@SmallTest
public void testNoMayLaunchUrlWithInvalidSessionId() {
- assertWarmupAndMayLaunchUrl(42, URL, false);
- assertWarmupAndMayLaunchUrl(-1, URL, false);
+ assertWarmupAndMayLaunchUrl(newDummyCallback(), URL, false);
}
/**
@@ -113,7 +101,7 @@ public class CustomTabsConnectionTest extends InstrumentationTestCase {
*/
@SmallTest
public void testNoMayLaunchUrlWithInvalidScheme() {
- assertWarmupAndMayLaunchUrl(0, INVALID_SCHEME_URL, false);
+ assertWarmupAndMayLaunchUrl(null, INVALID_SCHEME_URL, false);
}
/**
@@ -123,16 +111,28 @@ public class CustomTabsConnectionTest extends InstrumentationTestCase {
*/
@SmallTest
public void testMayLaunchUrl() {
- assertWarmupAndMayLaunchUrl(0, URL, true);
+ assertWarmupAndMayLaunchUrl(null, URL, true);
+ }
+
+ /**
+ * Tests that
+ * {@link CustomTabsConnection#mayLaunchUrl(long, String, Bundle, List<Bundle>)}
+ * can be called several times with the same, and different URLs.
+ */
+ @SmallTest
+ public void testMultipleMayLaunchUrl() {
+ ICustomTabsCallback cb = assertWarmupAndMayLaunchUrl(null, URL, true);
+ assertWarmupAndMayLaunchUrl(cb, URL, true);
+ assertWarmupAndMayLaunchUrl(cb, URL2, true);
}
/**
- * Tests that session IDs are forgotten properly.
+ * Tests that sessions are forgotten properly.
*/
@SmallTest
- public void testForgetsSessionId() {
- long sessionId = assertWarmupAndMayLaunchUrl(0, URL, true);
- mCustomTabsConnection.cleanup(Process.myUid());
- assertWarmupAndMayLaunchUrl(sessionId, URL, false);
+ public void testForgetsSession() {
+ ICustomTabsCallback cb = assertWarmupAndMayLaunchUrl(null, URL, true);
+ mCustomTabsConnection.cleanupAll();
+ assertWarmupAndMayLaunchUrl(cb, URL, false);
}
}

Powered by Google App Engine
This is Rietveld 408576698