Эх сурвалжийг харах

Add test

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
tobiasKaminsky 4 жил өмнө
parent
commit
4905d01e67

+ 53 - 0
src/androidTest/java/com/nextcloud/client/network/ConnectivityServiceImplIT.kt

@@ -0,0 +1,53 @@
+/*
+ *
+ * Nextcloud Android client application
+ *
+ * @author Tobias Kaminsky
+ * Copyright (C) 2020 Tobias Kaminsky
+ * Copyright (C) 2020 Nextcloud GmbH
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+package com.nextcloud.client.network
+
+import android.accounts.AccountManager
+import android.content.Context
+import android.net.ConnectivityManager
+import com.nextcloud.client.account.UserAccountManagerImpl
+import com.nextcloud.client.network.ConnectivityServiceImpl.GetRequestBuilder
+import com.owncloud.android.AbstractOnServerIT
+import org.junit.Assert.assertFalse
+import org.junit.Assert.assertTrue
+import org.junit.Test
+
+class ConnectivityServiceImplIT : AbstractOnServerIT() {
+    @Test
+    fun testInternetWalled() {
+        val connectivityManager = targetContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
+        val accountManager = targetContext.getSystemService(Context.ACCOUNT_SERVICE) as AccountManager
+        val userAccountManager = UserAccountManagerImpl(targetContext, accountManager)
+        val clientFactory = ClientFactoryImpl(targetContext)
+        val requestBuilder = GetRequestBuilder()
+
+        val sut = ConnectivityServiceImpl(
+            connectivityManager,
+            userAccountManager,
+            clientFactory,
+            requestBuilder
+        )
+
+        assertTrue(sut.connectivity.isConnected)
+        assertFalse(sut.isInternetWalled)
+    }
+}

+ 3 - 1
src/main/java/com/nextcloud/client/network/ConnectivityServiceImpl.java

@@ -75,11 +75,13 @@ class ConnectivityServiceImpl implements ConnectivityService {
 
             int status = get.execute(client);
 
+            boolean result = !(status == HttpStatus.SC_NO_CONTENT && (get.getResponseBodyAsString().length() == 0));
+
             if (get != null) {
                 get.releaseConnection();
             }
 
-            return !(status == HttpStatus.SC_NO_CONTENT && (get.getResponseBodyAsString().length() == 0));
+            return result;
         } else {
             return !getConnectivity().isConnected();
         }