Index: chrome/android/junit/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelperTest.java |
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelperTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelperTest.java |
index 270fc670fbcec9f48f2a287e2bf124000ebf8205..cc8e786735c47d198937b35400faa160e5606c8f 100644 |
--- a/chrome/android/junit/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelperTest.java |
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelperTest.java |
@@ -23,8 +23,8 @@ |
import org.junit.Before; |
import org.junit.Test; |
import org.junit.runner.RunWith; |
+import org.robolectric.Robolectric; |
import org.robolectric.annotation.Config; |
-import org.robolectric.shadows.ShadowLooper; |
/** |
* Tests for {@link GoogleApiClientHelper} |
@@ -52,14 +52,16 @@ |
@Feature({"GCore"}) |
public void connectionAttemptDelayTest() { |
GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
- |
- ShadowLooper.pauseMainLooper(); |
- helper.onConnectionFailed(new ConnectionResult(ConnectionResult.SERVICE_UPDATING)); |
- verify(mMockClient, times(0)).connect(); |
- ShadowLooper.unPauseMainLooper(); |
- |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
- verify(mMockClient, times(1)).connect(); |
+ ConnectionResult mockResult = mock(ConnectionResult.class); |
+ when(mockResult.getErrorCode()).thenReturn(ConnectionResult.SERVICE_UPDATING); |
+ |
+ Robolectric.pauseMainLooper(); |
+ helper.onConnectionFailed(mockResult); |
+ verify(mMockClient, never()).connect(); |
+ Robolectric.unPauseMainLooper(); |
+ |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
+ verify(mMockClient).connect(); |
} |
/** Tests that the connection handler gives up after a number of connection attempts. */ |
@@ -68,24 +70,28 @@ |
public void connectionFailureTest() { |
GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
- helper.onConnectionFailed(new ConnectionResult(ConnectionResult.DEVELOPER_ERROR)); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ ConnectionResult mockResult = mock(ConnectionResult.class); |
+ when(mockResult.getErrorCode()).thenReturn(ConnectionResult.DEVELOPER_ERROR); |
+ |
+ helper.onConnectionFailed(mockResult); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
// Should not retry on unrecoverable errors |
verify(mMockClient, never()).connect(); |
// Connection attempts |
+ when(mockResult.getErrorCode()).thenReturn(ConnectionResult.SERVICE_UPDATING); |
for (int i = 0; i < ConnectedTask.RETRY_NUMBER_LIMIT; i++) { |
- helper.onConnectionFailed(new ConnectionResult(ConnectionResult.SERVICE_UPDATING)); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ helper.onConnectionFailed(mockResult); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
} |
// Should have tried to connect every time. |
verify(mMockClient, times(ConnectedTask.RETRY_NUMBER_LIMIT)).connect(); |
// Try again |
- helper.onConnectionFailed(new ConnectionResult(ConnectionResult.SERVICE_UPDATING)); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ helper.onConnectionFailed(mockResult); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
// The connection handler should have given up, no new call. |
verify(mMockClient, times(ConnectedTask.RETRY_NUMBER_LIMIT)).connect(); |
@@ -96,11 +102,13 @@ |
@Feature({"GCore"}) |
public void connectionAttemptsResetTest() { |
GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
+ ConnectionResult mockResult = mock(ConnectionResult.class); |
+ when(mockResult.getErrorCode()).thenReturn(ConnectionResult.SERVICE_UPDATING); |
// Connection attempts |
for (int i = 0; i < ConnectedTask.RETRY_NUMBER_LIMIT - 1; i++) { |
- helper.onConnectionFailed(new ConnectionResult(ConnectionResult.SERVICE_UPDATING)); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ helper.onConnectionFailed(mockResult); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
} |
// Should have tried to connect every time. |
@@ -108,19 +116,19 @@ |
// Connection successful now |
helper.onConnected(null); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
for (int i = 0; i < ConnectedTask.RETRY_NUMBER_LIMIT; i++) { |
- helper.onConnectionFailed(new ConnectionResult(ConnectionResult.SERVICE_UPDATING)); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ helper.onConnectionFailed(mockResult); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
} |
// A success should allow for more connection attempts. |
verify(mMockClient, times(ConnectedTask.RETRY_NUMBER_LIMIT * 2 - 1)).connect(); |
// This should not result in a connection attempt, the limit is still there. |
- helper.onConnectionFailed(new ConnectionResult(ConnectionResult.SERVICE_UPDATING)); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ helper.onConnectionFailed(mockResult); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
// The connection handler should have given up, no new call. |
verify(mMockClient, times(ConnectedTask.RETRY_NUMBER_LIMIT * 2 - 1)).connect(); |
@@ -130,7 +138,7 @@ |
@Feature({"GCore"}) |
public void lifecycleManagementTest() { |
GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
Activity mockActivity = mock(Activity.class); |
ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.CREATED); |
@@ -147,8 +155,8 @@ |
// Should be disconnected when we go in the background |
ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STOPPED); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
- verify(mMockClient, times(1)).disconnect(); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
+ verify(mMockClient).disconnect(); |
// Should be reconnected when we come in the foreground |
ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STARTED); |
@@ -169,7 +177,7 @@ |
@Feature({"GCore"}) |
public void lifecycleManagementDelayTest() { |
GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
Activity mockActivity = mock(Activity.class); |
ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.CREATED); |
helper.setDisconnectionDelay(5000); |
@@ -179,12 +187,12 @@ |
// Should not be disconnected when we go in the background |
ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STOPPED); |
- ShadowLooper.runUiThreadTasks(); |
- verify(mMockClient, times(0)).disconnect(); |
+ Robolectric.runUiThreadTasks(); |
+ verify(mMockClient, never()).disconnect(); |
// Should be disconnected when we wait. |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
- verify(mMockClient, times(1)).disconnect(); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
+ verify(mMockClient).disconnect(); |
// Should be reconnected when we come in the foreground |
ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STARTED); |
@@ -192,11 +200,11 @@ |
// Should not disconnect when we became visible during the delay |
ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STOPPED); |
- ShadowLooper.runUiThreadTasks(); |
- verify(mMockClient, times(1)).disconnect(); |
- ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STARTED); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
- verify(mMockClient, times(1)).disconnect(); |
+ Robolectric.runUiThreadTasks(); |
+ verify(mMockClient).disconnect(); |
+ ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STARTED); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
+ verify(mMockClient).disconnect(); |
} |
@Test |
@@ -204,7 +212,7 @@ |
public void disconnectionCancellingTest() { |
int disconnectionTimeout = 5000; |
GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
Activity mockActivity = mock(Activity.class); |
ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.CREATED); |
helper.setDisconnectionDelay(disconnectionTimeout); |
@@ -214,9 +222,9 @@ |
// We go in the background and come back before the end of the timeout. |
ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STOPPED); |
- ShadowLooper.idleMainLooper(disconnectionTimeout - 42); |
- ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STARTED); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ Robolectric.idleMainLooper(disconnectionTimeout - 42); |
+ ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STARTED); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
// The client should not have been disconnected, which would drop requests otherwise. |
verify(mMockClient, never()).disconnect(); |
@@ -228,7 +236,7 @@ |
int disconnectionTimeout = 5000; |
int arbitraryNumberOfSeconds = 42; |
GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
Activity mockActivity = mock(Activity.class); |
ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.CREATED); |
helper.setDisconnectionDelay(disconnectionTimeout); |
@@ -238,15 +246,15 @@ |
// We go in the background and extend the delay |
ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STOPPED); |
- ShadowLooper.idleMainLooper(disconnectionTimeout - arbitraryNumberOfSeconds); |
+ Robolectric.idleMainLooper(disconnectionTimeout - arbitraryNumberOfSeconds); |
helper.willUseConnection(); |
// The client should not have been disconnected. |
- ShadowLooper.idleMainLooper(disconnectionTimeout - arbitraryNumberOfSeconds); |
+ Robolectric.idleMainLooper(disconnectionTimeout - arbitraryNumberOfSeconds); |
verify(mMockClient, never()).disconnect(); |
// After the full timeout it should still disconnect though |
- ShadowLooper.idleMainLooper(arbitraryNumberOfSeconds); |
+ Robolectric.idleMainLooper(arbitraryNumberOfSeconds); |
verify(mMockClient).disconnect(); |
// The client is now disconnected then |
@@ -261,7 +269,7 @@ |
@Feature({"GCore"}) |
public void willUseConnectionForegroundTest() { |
GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
Activity mockActivity = mock(Activity.class); |
ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.CREATED); |
helper.setDisconnectionDelay(5000); |
@@ -271,11 +279,11 @@ |
// We are in the foreground |
ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STARTED); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
// Disconnections should not be scheduled when in the foreground. |
helper.willUseConnection(); |
- ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
+ Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
verify(mMockClient, never()).disconnect(); |
} |
} |