diff options
author | desperateCoder <echotodevnull@gmail.com> | 2022-07-01 13:21:54 +0300 |
---|---|---|
committer | desperateCoder <echotodevnull@gmail.com> | 2022-07-01 13:21:54 +0300 |
commit | 47a04a0534bf45d1db7dc1179cdf27cdee6557f5 (patch) | |
tree | 024c456b69281b824951a48f9c53f17469c53986 | |
parent | ad8e11512cc58c5e4175f0678263f84213075138 (diff) |
#1295 handle unreachable host as offlineexception
2 files changed, 9 insertions, 2 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/ServerCommunicationErrorHandler.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/ServerCommunicationErrorHandler.java index 7d8516174..307aab734 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/api/ServerCommunicationErrorHandler.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/ServerCommunicationErrorHandler.java @@ -14,8 +14,8 @@ import it.niedermann.nextcloud.deck.exceptions.OfflineException; public class ServerCommunicationErrorHandler { private static final Handler[] handlers = new Handler[]{ - new Handler(UnknownErrorException.class, Arrays.asList("econnrefused", "connection refused"), OfflineException.Reason.CONNECTION_REFUSED), - new Handler(UnknownErrorException.class, Arrays.asList("Unable to resolve host", "No address associated with hostname"), OfflineException.Reason.CONNECTION_REFUSED), + new Handler(UnknownErrorException.class, Arrays.asList("econnrefused", "unable to resolve host", + "connection refused", "no address associated with hostname"), OfflineException.Reason.CONNECTION_REFUSED), new Handler(ClassNotFoundException.class, Collections.singletonList("connecttimeoutexception"), OfflineException.Reason.CONNECTION_TIMEOUT) }; diff --git a/app/src/test/java/it/niedermann/nextcloud/deck/api/ServerCommunicationErrorHandlerTest.java b/app/src/test/java/it/niedermann/nextcloud/deck/api/ServerCommunicationErrorHandlerTest.java index aa7ca0837..147749056 100644 --- a/app/src/test/java/it/niedermann/nextcloud/deck/api/ServerCommunicationErrorHandlerTest.java +++ b/app/src/test/java/it/niedermann/nextcloud/deck/api/ServerCommunicationErrorHandlerTest.java @@ -21,6 +21,13 @@ public class ServerCommunicationErrorHandlerTest { } @Test + public void shouldMap_UnknownErrorExceptions_To_OfflineExceptions_ForHostUnreachable() { + final var result = ServerCommunicationErrorHandler.translateError(new UnknownErrorException("Unable to resolve host \"nextcloud-prod.fritz.box\": No address associated with hostname")); + assertEquals(OfflineException.class, result.getClass()); + assertEquals(OfflineException.Reason.CONNECTION_REFUSED, ((OfflineException) result).getReason()); + } + + @Test public void shouldMap_ClassNotFoundExceptions_To_OfflineExceptions_ForConnectionRefused() { final var result = ServerCommunicationErrorHandler.translateError(new ClassNotFoundException("java.lang.ClassNotFoundException: org.apache.commons.httpclient.ConnectTimeoutException")); assertEquals(OfflineException.class, result.getClass()); |