diff --git a/mobile/android/services/src/main/java/org/mozilla/gecko/push/autopush/AutopushClientException.java b/mobile/android/services/src/main/java/org/mozilla/gecko/push/autopush/AutopushClientException.java index 1c5161d824e..e3fda7a45fe 100644 --- a/mobile/android/services/src/main/java/org/mozilla/gecko/push/autopush/AutopushClientException.java +++ b/mobile/android/services/src/main/java/org/mozilla/gecko/push/autopush/AutopushClientException.java @@ -21,6 +21,10 @@ public class AutopushClientException extends Exception { super(e); } + public boolean isTransientError() { + return false; + } + public static class AutopushClientRemoteException extends AutopushClientException { private static final long serialVersionUID = 2209313149952001000L; @@ -56,6 +60,15 @@ public class AutopushClientException extends Exception { public boolean isNotFound() { return httpStatusCode == HttpStatus.SC_NOT_FOUND; } + + public boolean isGone() { + return httpStatusCode == HttpStatus.SC_GONE; + } + + @Override + public boolean isTransientError() { + return httpStatusCode >= 500; + } } public static class AutopushClientMalformedResponseException extends AutopushClientRemoteException { diff --git a/mobile/android/tests/background/junit4/src/org/mozilla/gecko/push/autopush/test/TestLiveAutopushClient.java b/mobile/android/tests/background/junit4/src/org/mozilla/gecko/push/autopush/test/TestLiveAutopushClient.java index 6d35404945c..10507e51377 100644 --- a/mobile/android/tests/background/junit4/src/org/mozilla/gecko/push/autopush/test/TestLiveAutopushClient.java +++ b/mobile/android/tests/background/junit4/src/org/mozilla/gecko/push/autopush/test/TestLiveAutopushClient.java @@ -35,7 +35,7 @@ import static org.mockito.Mockito.verify; @RunWith(TestRunner.class) @Ignore("Live test that requires network connection -- remove this line to run this test.") public class TestLiveAutopushClient { - final String serverURL = "https://updates-autopush-dev.stage.mozaws.net/v1/gcm/829133274407"; + final String serverURL = "https://updates-autopush.stage.mozaws.net/v1/gcm/829133274407"; protected AutopushClient client; @@ -93,7 +93,7 @@ public class TestLiveAutopushClient { final AutopushClientException failureException = assertFailure(reunregisterDelegate, Void.class); Assert.assertThat(failureException, instanceOf(AutopushClientException.AutopushClientRemoteException.class)); - Assert.assertTrue(((AutopushClientException.AutopushClientRemoteException) failureException).isNotFound()); + Assert.assertTrue(((AutopushClientException.AutopushClientRemoteException) failureException).isGone()); } @Test @@ -122,13 +122,13 @@ public class TestLiveAutopushClient { Assert.assertNull(assertSuccess(unsubscribeDelegate, Void.class)); - // Trying to unsubscribe a second time should give a 404. + // Trying to unsubscribe a second time should give a 410. final RequestDelegate reunsubscribeDelegate = mock(RequestDelegate.class); client.unsubscribeChannel(registerResponse.uaid, registerResponse.secret, subscribeResponse.channelID, reunsubscribeDelegate); final AutopushClientException reunsubscribeFailureException = assertFailure(reunsubscribeDelegate, Void.class); Assert.assertThat(reunsubscribeFailureException, instanceOf(AutopushClientException.AutopushClientRemoteException.class)); - Assert.assertTrue(((AutopushClientException.AutopushClientRemoteException) reunsubscribeFailureException).isNotFound()); + Assert.assertTrue(((AutopushClientException.AutopushClientRemoteException) reunsubscribeFailureException).isGone()); // Trying to unsubscribe from a non-existent channel should give a 404. Right now it gives a 401! final RequestDelegate badUnsubscribeDelegate = mock(RequestDelegate.class);