Chromium Code Reviews| 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 cc8e786735c47d198937b35400faa160e5606c8f..270fc670fbcec9f48f2a287e2bf124000ebf8205 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.After; |
| 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,16 +52,14 @@ public class GoogleApiClientHelperTest { |
| @Feature({"GCore"}) |
| public void connectionAttemptDelayTest() { |
| GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
| - ConnectionResult mockResult = mock(ConnectionResult.class); |
|
mikecase (-- gone --)
2016/07/31 04:21:09
ConnectionResult class is now final and can't be m
|
| - when(mockResult.getErrorCode()).thenReturn(ConnectionResult.SERVICE_UPDATING); |
| - Robolectric.pauseMainLooper(); |
| - helper.onConnectionFailed(mockResult); |
| - verify(mMockClient, never()).connect(); |
| - Robolectric.unPauseMainLooper(); |
| + ShadowLooper.pauseMainLooper(); |
| + helper.onConnectionFailed(new ConnectionResult(ConnectionResult.SERVICE_UPDATING)); |
| + verify(mMockClient, times(0)).connect(); |
| + ShadowLooper.unPauseMainLooper(); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| - verify(mMockClient).connect(); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| + verify(mMockClient, times(1)).connect(); |
| } |
| /** Tests that the connection handler gives up after a number of connection attempts. */ |
| @@ -70,28 +68,24 @@ public class GoogleApiClientHelperTest { |
| public void connectionFailureTest() { |
| GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
| - ConnectionResult mockResult = mock(ConnectionResult.class); |
| - when(mockResult.getErrorCode()).thenReturn(ConnectionResult.DEVELOPER_ERROR); |
| - |
| - helper.onConnectionFailed(mockResult); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + helper.onConnectionFailed(new ConnectionResult(ConnectionResult.DEVELOPER_ERROR)); |
| + ShadowLooper.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(mockResult); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + helper.onConnectionFailed(new ConnectionResult(ConnectionResult.SERVICE_UPDATING)); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| } |
| // Should have tried to connect every time. |
| verify(mMockClient, times(ConnectedTask.RETRY_NUMBER_LIMIT)).connect(); |
| // Try again |
| - helper.onConnectionFailed(mockResult); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + helper.onConnectionFailed(new ConnectionResult(ConnectionResult.SERVICE_UPDATING)); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| // The connection handler should have given up, no new call. |
| verify(mMockClient, times(ConnectedTask.RETRY_NUMBER_LIMIT)).connect(); |
| @@ -102,13 +96,11 @@ public class GoogleApiClientHelperTest { |
| @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(mockResult); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + helper.onConnectionFailed(new ConnectionResult(ConnectionResult.SERVICE_UPDATING)); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| } |
| // Should have tried to connect every time. |
| @@ -116,19 +108,19 @@ public class GoogleApiClientHelperTest { |
| // Connection successful now |
| helper.onConnected(null); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| for (int i = 0; i < ConnectedTask.RETRY_NUMBER_LIMIT; i++) { |
| - helper.onConnectionFailed(mockResult); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + helper.onConnectionFailed(new ConnectionResult(ConnectionResult.SERVICE_UPDATING)); |
| + ShadowLooper.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(mockResult); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + helper.onConnectionFailed(new ConnectionResult(ConnectionResult.SERVICE_UPDATING)); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| // The connection handler should have given up, no new call. |
| verify(mMockClient, times(ConnectedTask.RETRY_NUMBER_LIMIT * 2 - 1)).connect(); |
| @@ -138,7 +130,7 @@ public class GoogleApiClientHelperTest { |
| @Feature({"GCore"}) |
| public void lifecycleManagementTest() { |
| GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| Activity mockActivity = mock(Activity.class); |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.CREATED); |
| @@ -155,8 +147,8 @@ public class GoogleApiClientHelperTest { |
| // Should be disconnected when we go in the background |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STOPPED); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| - verify(mMockClient).disconnect(); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| + verify(mMockClient, times(1)).disconnect(); |
| // Should be reconnected when we come in the foreground |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STARTED); |
| @@ -177,7 +169,7 @@ public class GoogleApiClientHelperTest { |
| @Feature({"GCore"}) |
| public void lifecycleManagementDelayTest() { |
| GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| Activity mockActivity = mock(Activity.class); |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.CREATED); |
| helper.setDisconnectionDelay(5000); |
| @@ -187,12 +179,12 @@ public class GoogleApiClientHelperTest { |
| // Should not be disconnected when we go in the background |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STOPPED); |
| - Robolectric.runUiThreadTasks(); |
| - verify(mMockClient, never()).disconnect(); |
| + ShadowLooper.runUiThreadTasks(); |
| + verify(mMockClient, times(0)).disconnect(); |
| // Should be disconnected when we wait. |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| - verify(mMockClient).disconnect(); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| + verify(mMockClient, times(1)).disconnect(); |
| // Should be reconnected when we come in the foreground |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STARTED); |
| @@ -200,11 +192,11 @@ public class GoogleApiClientHelperTest { |
| // Should not disconnect when we became visible during the delay |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STOPPED); |
| - Robolectric.runUiThreadTasks(); |
| - verify(mMockClient).disconnect(); |
| + ShadowLooper.runUiThreadTasks(); |
| + verify(mMockClient, times(1)).disconnect(); |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STARTED); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| - verify(mMockClient).disconnect(); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| + verify(mMockClient, times(1)).disconnect(); |
| } |
| @Test |
| @@ -212,7 +204,7 @@ public class GoogleApiClientHelperTest { |
| public void disconnectionCancellingTest() { |
| int disconnectionTimeout = 5000; |
| GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| Activity mockActivity = mock(Activity.class); |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.CREATED); |
| helper.setDisconnectionDelay(disconnectionTimeout); |
| @@ -222,9 +214,9 @@ public class GoogleApiClientHelperTest { |
| // We go in the background and come back before the end of the timeout. |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STOPPED); |
| - Robolectric.idleMainLooper(disconnectionTimeout - 42); |
| + ShadowLooper.idleMainLooper(disconnectionTimeout - 42); |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STARTED); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| // The client should not have been disconnected, which would drop requests otherwise. |
| verify(mMockClient, never()).disconnect(); |
| @@ -236,7 +228,7 @@ public class GoogleApiClientHelperTest { |
| int disconnectionTimeout = 5000; |
| int arbitraryNumberOfSeconds = 42; |
| GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| Activity mockActivity = mock(Activity.class); |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.CREATED); |
| helper.setDisconnectionDelay(disconnectionTimeout); |
| @@ -246,15 +238,15 @@ public class GoogleApiClientHelperTest { |
| // We go in the background and extend the delay |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STOPPED); |
| - Robolectric.idleMainLooper(disconnectionTimeout - arbitraryNumberOfSeconds); |
| + ShadowLooper.idleMainLooper(disconnectionTimeout - arbitraryNumberOfSeconds); |
| helper.willUseConnection(); |
| // The client should not have been disconnected. |
| - Robolectric.idleMainLooper(disconnectionTimeout - arbitraryNumberOfSeconds); |
| + ShadowLooper.idleMainLooper(disconnectionTimeout - arbitraryNumberOfSeconds); |
| verify(mMockClient, never()).disconnect(); |
| // After the full timeout it should still disconnect though |
| - Robolectric.idleMainLooper(arbitraryNumberOfSeconds); |
| + ShadowLooper.idleMainLooper(arbitraryNumberOfSeconds); |
| verify(mMockClient).disconnect(); |
| // The client is now disconnected then |
| @@ -269,7 +261,7 @@ public class GoogleApiClientHelperTest { |
| @Feature({"GCore"}) |
| public void willUseConnectionForegroundTest() { |
| GoogleApiClientHelper helper = new GoogleApiClientHelper(mMockClient); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| Activity mockActivity = mock(Activity.class); |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.CREATED); |
| helper.setDisconnectionDelay(5000); |
| @@ -279,11 +271,11 @@ public class GoogleApiClientHelperTest { |
| // We are in the foreground |
| ApplicationStatus.onStateChangeForTesting(mockActivity, ActivityState.STARTED); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| // Disconnections should not be scheduled when in the foreground. |
| helper.willUseConnection(); |
| - Robolectric.runUiThreadTasksIncludingDelayedTasks(); |
| + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); |
| verify(mMockClient, never()).disconnect(); |
| } |
| } |