Răsfoiți Sursa

Fix: server IT tests need AbstractOnServerIT

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
tobiasKaminsky 5 ani în urmă
părinte
comite
78cc80266a

+ 0 - 0
screenshots/gplay/debug/com.nextcloud.client.FileDisplayActivityIT_drawer.png → screenshots/gplay/debug/com.nextcloud.client.FileDisplayActivityScreenshotIT_drawer.png


+ 0 - 0
screenshots/gplay/debug/com.nextcloud.client.FileDisplayActivityIT_open.png → screenshots/gplay/debug/com.nextcloud.client.FileDisplayActivityScreenshotIT_open.png


+ 2 - 2
src/androidTest/java/com/nextcloud/client/EndToEndRandomIT.java

@@ -24,7 +24,7 @@ package com.nextcloud.client;
 
 import android.accounts.AccountManager;
 
-import com.owncloud.android.AbstractIT;
+import com.owncloud.android.AbstractOnServerIT;
 import com.owncloud.android.datamodel.ArbitraryDataProvider;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.db.OCUpload;
@@ -59,7 +59,7 @@ import static junit.framework.TestCase.assertNotNull;
 import static junit.framework.TestCase.assertTrue;
 import static org.junit.Assume.assumeTrue;
 
-public class EndToEndRandomIT extends AbstractIT {
+public class EndToEndRandomIT extends AbstractOnServerIT {
     public enum Action {
         CREATE_FOLDER,
         GO_INTO_FOLDER,

+ 2 - 27
src/androidTest/java/com/nextcloud/client/FileDisplayActivityIT.java

@@ -26,7 +26,7 @@ import android.Manifest;
 import android.app.Activity;
 
 import com.facebook.testing.screenshot.Screenshot;
-import com.owncloud.android.AbstractIT;
+import com.owncloud.android.AbstractOnServerIT;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.resources.files.CreateFolderRemoteOperation;
@@ -38,7 +38,6 @@ import com.owncloud.android.lib.resources.shares.ShareType;
 import com.owncloud.android.operations.CreateFolderOperation;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.events.SearchEvent;
-import com.owncloud.android.utils.ScreenshotTest;
 
 import org.greenrobot.eventbus.EventBus;
 import org.junit.Assert;
@@ -56,7 +55,7 @@ import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentat
 import static junit.framework.TestCase.assertEquals;
 import static junit.framework.TestCase.assertTrue;
 
-public class FileDisplayActivityIT extends AbstractIT {
+public class FileDisplayActivityIT extends AbstractOnServerIT {
     @Rule public IntentsTestRule<FileDisplayActivity> activityRule = new IntentsTestRule<>(FileDisplayActivity.class,
                                                                                            true,
                                                                                            false);
@@ -65,30 +64,6 @@ public class FileDisplayActivityIT extends AbstractIT {
     public final GrantPermissionRule permissionRule = GrantPermissionRule.grant(
         Manifest.permission.WRITE_EXTERNAL_STORAGE);
 
-    @Test
-    @ScreenshotTest
-    public void open() {
-        FileDisplayActivity sut = activityRule.launchActivity(null);
-
-        sut.getListOfFilesFragment().setFabEnabled(false);
-        sut.getListOfFilesFragment().setEmptyListLoadingMessage();
-
-        Screenshot.snapActivity(sut).record();
-    }
-
-    @Test
-    @ScreenshotTest
-    public void drawer() {
-        FileDisplayActivity sut = activityRule.launchActivity(null);
-
-        onView(withId(R.id.drawer_layout)).perform(DrawerActions.open());
-
-        sut.getListOfFilesFragment().setFabEnabled(false);
-        sut.getListOfFilesFragment().setEmptyListLoadingMessage();
-
-        Screenshot.snapActivity(sut).record();
-    }
-
     @Test
     // @ScreenshotTest // todo run without real server
     public void showShares() {

+ 75 - 0
src/androidTest/java/com/nextcloud/client/FileDisplayActivityScreenshotIT.java

@@ -0,0 +1,75 @@
+/*
+ *
+ * Nextcloud Android client application
+ *
+ * @author Tobias Kaminsky
+ * Copyright (C) 2019 Tobias Kaminsky
+ * Copyright (C) 2019 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;
+
+import android.Manifest;
+
+import com.facebook.testing.screenshot.Screenshot;
+import com.owncloud.android.AbstractIT;
+import com.owncloud.android.R;
+import com.owncloud.android.ui.activity.FileDisplayActivity;
+import com.owncloud.android.utils.ScreenshotTest;
+
+import org.junit.Rule;
+import org.junit.Test;
+
+import androidx.test.espresso.contrib.DrawerActions;
+import androidx.test.espresso.intent.rule.IntentsTestRule;
+import androidx.test.rule.GrantPermissionRule;
+
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
+
+public class FileDisplayActivityScreenshotIT extends AbstractIT {
+    @Rule public IntentsTestRule<FileDisplayActivity> activityRule = new IntentsTestRule<>(FileDisplayActivity.class,
+                                                                                           true,
+                                                                                           false);
+
+    @Rule
+    public final GrantPermissionRule permissionRule = GrantPermissionRule.grant(
+        Manifest.permission.WRITE_EXTERNAL_STORAGE);
+
+    @Test
+    @ScreenshotTest
+    public void open() {
+        FileDisplayActivity sut = activityRule.launchActivity(null);
+
+        sut.getListOfFilesFragment().setFabEnabled(false);
+        sut.getListOfFilesFragment().setEmptyListLoadingMessage();
+
+        Screenshot.snapActivity(sut).record();
+    }
+
+    @Test
+    @ScreenshotTest
+    public void drawer() {
+        FileDisplayActivity sut = activityRule.launchActivity(null);
+
+        onView(withId(R.id.drawer_layout)).perform(DrawerActions.open());
+
+        sut.getListOfFilesFragment().setFabEnabled(false);
+        sut.getListOfFilesFragment().setEmptyListLoadingMessage();
+
+        Screenshot.snapActivity(sut).record();
+    }
+}

+ 2 - 2
src/androidTest/java/com/nextcloud/client/account/OwnCloudClientManagerTest.java

@@ -34,7 +34,7 @@ import android.accounts.OperationCanceledException;
 import android.net.Uri;
 import android.os.Bundle;
 
-import com.owncloud.android.AbstractIT;
+import com.owncloud.android.AbstractOnServerIT;
 import com.owncloud.android.lib.common.OwnCloudAccount;
 import com.owncloud.android.lib.common.OwnCloudClient;
 import com.owncloud.android.lib.common.OwnCloudClientManager;
@@ -48,7 +48,7 @@ import androidx.test.platform.app.InstrumentationRegistry;
 
 import static org.junit.Assert.assertEquals;
 
-public class OwnCloudClientManagerTest extends AbstractIT {
+public class OwnCloudClientManagerTest extends AbstractOnServerIT {
 
     /**
      * Like on files app we create & store an account in Android's account manager.

+ 2 - 2
src/androidTest/java/com/nextcloud/client/account/UserAccountManagerImplTest.java

@@ -6,7 +6,7 @@ import android.os.Bundle;
 
 import com.nextcloud.client.preferences.AppPreferences;
 import com.nextcloud.client.preferences.AppPreferencesImpl;
-import com.owncloud.android.AbstractIT;
+import com.owncloud.android.AbstractOnServerIT;
 import com.owncloud.android.lib.common.accounts.AccountUtils;
 
 import org.junit.Before;
@@ -17,7 +17,7 @@ import static junit.framework.TestCase.assertNull;
 import static junit.framework.TestCase.assertTrue;
 import static org.junit.Assert.assertFalse;
 
-public class UserAccountManagerImplTest extends AbstractIT {
+public class UserAccountManagerImplTest extends AbstractOnServerIT {
 
     private AccountManager accountManager;
 

+ 5 - 0
src/androidTest/java/com/owncloud/android/AbstractOnServerIT.java

@@ -8,12 +8,14 @@ import android.content.ActivityNotFoundException;
 import android.net.Uri;
 import android.os.Bundle;
 
+import com.nextcloud.client.account.User;
 import com.nextcloud.client.account.UserAccountManager;
 import com.nextcloud.client.account.UserAccountManagerImpl;
 import com.nextcloud.client.device.BatteryStatus;
 import com.nextcloud.client.device.PowerManagementService;
 import com.nextcloud.client.network.Connectivity;
 import com.nextcloud.client.network.ConnectivityService;
+import com.nextcloud.java.util.Optional;
 import com.owncloud.android.datamodel.UploadsStorageManager;
 import com.owncloud.android.db.OCUpload;
 import com.owncloud.android.files.services.FileUploader;
@@ -78,6 +80,9 @@ public abstract class AbstractOnServerIT extends AbstractIT {
                 throw new ActivityNotFoundException();
             }
 
+            Optional<User> optionalUser = userAccountManager.getUser(account.name);
+            user = optionalUser.orElseThrow(IllegalAccessError::new);
+
             client = OwnCloudClientFactory.createOwnCloudClient(account, targetContext);
 
             createDummyFiles();

+ 1 - 1
src/androidTest/java/com/owncloud/android/FileIT.java

@@ -18,7 +18,7 @@ import static org.junit.Assert.assertNull;
  * Tests related to file operations
  */
 @RunWith(AndroidJUnit4.class)
-public class FileIT extends AbstractIT {
+public class FileIT extends AbstractOnServerIT {
 
     @Test
     public void testCreateFolder() {

+ 1 - 1
src/androidTest/java/com/owncloud/android/ScreenshotsIT.java

@@ -39,7 +39,7 @@ import static org.junit.Assert.assertTrue;
 
 @LargeTest
 @RunWith(JUnit4.class)
-public class ScreenshotsIT extends AbstractIT {
+public class ScreenshotsIT extends AbstractOnServerIT {
     @ClassRule
     public static final LocaleTestRule localeTestRule = new LocaleTestRule();
 

+ 1 - 4
src/androidTest/java/com/owncloud/android/UploadIT.java

@@ -37,10 +37,8 @@ import com.owncloud.android.utils.FileStorageUtils;
 
 import org.junit.After;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
 import androidx.annotation.NonNull;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import static junit.framework.TestCase.assertFalse;
 import static junit.framework.TestCase.assertTrue;
@@ -49,8 +47,7 @@ import static junit.framework.TestCase.assertTrue;
  * Tests related to file uploads
  */
 
-@RunWith(AndroidJUnit4.class)
-public class UploadIT extends AbstractIT {
+public class UploadIT extends AbstractOnServerIT {
     private static final String FOLDER = "/testUpload/";
 
     private UploadsStorageManager uploadsStorageManager =

+ 2 - 2
src/androidTest/java/com/owncloud/android/files/services/FileUploaderIT.kt

@@ -28,7 +28,7 @@ import com.nextcloud.client.device.BatteryStatus
 import com.nextcloud.client.device.PowerManagementService
 import com.nextcloud.client.network.Connectivity
 import com.nextcloud.client.network.ConnectivityService
-import com.owncloud.android.AbstractIT
+import com.owncloud.android.AbstractOnServerIT
 import com.owncloud.android.datamodel.OCFile
 import com.owncloud.android.datamodel.UploadsStorageManager
 import com.owncloud.android.db.OCUpload
@@ -43,7 +43,7 @@ import org.junit.Before
 import org.junit.Test
 import java.io.File
 
-class FileUploaderIT : AbstractIT() {
+class FileUploaderIT : AbstractOnServerIT() {
     var uploadsStorageManager: UploadsStorageManager? = null
 
     val connectivityServiceMock: ConnectivityService = object : ConnectivityService {

+ 52 - 57
src/androidTest/java/com/owncloud/android/ui/activity/ConflictsResolveActivityIT.java

@@ -31,8 +31,6 @@ import com.owncloud.android.R;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.db.OCUpload;
-import com.owncloud.android.lib.resources.files.UploadFileRemoteOperation;
-import com.owncloud.android.operations.RefreshFolderOperation;
 import com.owncloud.android.ui.dialog.ConflictsResolveDialog;
 import com.owncloud.android.utils.FileStorageUtils;
 import com.owncloud.android.utils.ScreenshotTest;
@@ -40,9 +38,6 @@ import com.owncloud.android.utils.ScreenshotTest;
 import org.junit.Rule;
 import org.junit.Test;
 
-import java.io.File;
-import java.io.IOException;
-
 import androidx.fragment.app.DialogFragment;
 import androidx.test.espresso.intent.rule.IntentsTestRule;
 
@@ -95,59 +90,59 @@ public class ConflictsResolveActivityIT extends AbstractIT {
         Screenshot.snap(dialog.getDialog().getWindow().getDecorView()).record();
     }
 
-    @Test
+//    @Test
     // @ScreenshotTest // todo run without real server
-    public void screenshotImages() throws IOException {
-        FileDataStorageManager storageManager = new FileDataStorageManager(account,
-                                                                           targetContext.getContentResolver());
-
-        OCFile newFile = new OCFile("/newFile.txt");
-        newFile.setFileLength(56000);
-        newFile.setModificationTimestamp(1522019340);
-        newFile.setStoragePath(FileStorageUtils.getSavePath(account.name) + "/nonEmpty.txt");
-
-        File image = getFile("image.jpg");
-
-        assertTrue(new UploadFileRemoteOperation(image.getAbsolutePath(),
-                                                 "/image.jpg",
-                                                 "image/jpg",
-                                                 "10000000").execute(client).isSuccess());
-
-        assertTrue(new RefreshFolderOperation(storageManager.getFileByPath("/"),
-                                              System.currentTimeMillis(),
-                                              false,
-                                              true,
-                                              storageManager,
-                                              account,
-                                              targetContext
-        ).execute(client).isSuccess());
-
-        OCFile existingFile = storageManager.getFileByPath("/image.jpg");
-
-        Intent intent = new Intent(targetContext, ConflictsResolveActivity.class);
-        intent.putExtra(ConflictsResolveActivity.EXTRA_FILE, newFile);
-        intent.putExtra(ConflictsResolveActivity.EXTRA_EXISTING_FILE, existingFile);
-
-        ConflictsResolveActivity sut = activityRule.launchActivity(intent);
-
-        ConflictsResolveDialog.OnConflictDecisionMadeListener listener = decision -> {
-
-        };
-
-        ConflictsResolveDialog dialog = ConflictsResolveDialog.newInstance(existingFile,
-                                                                           newFile,
-                                                                           UserAccountManagerImpl
-                                                                               .fromContext(targetContext)
-                                                                               .getUser()
-                                                                          );
-        dialog.showDialog(sut);
-        dialog.listener = listener;
-
-        getInstrumentation().waitForIdleSync();
-        shortSleep();
-
-        Screenshot.snap(dialog.getDialog().getWindow().getDecorView()).record();
-    }
+//    public void screenshotImages() throws IOException {
+//        FileDataStorageManager storageManager = new FileDataStorageManager(account,
+//                                                                           targetContext.getContentResolver());
+//
+//        OCFile newFile = new OCFile("/newFile.txt");
+//        newFile.setFileLength(56000);
+//        newFile.setModificationTimestamp(1522019340);
+//        newFile.setStoragePath(FileStorageUtils.getSavePath(account.name) + "/nonEmpty.txt");
+//
+//        File image = getFile("image.jpg");
+//
+//        assertTrue(new UploadFileRemoteOperation(image.getAbsolutePath(),
+//                                                 "/image.jpg",
+//                                                 "image/jpg",
+//                                                 "10000000").execute(client).isSuccess());
+//
+//        assertTrue(new RefreshFolderOperation(storageManager.getFileByPath("/"),
+//                                              System.currentTimeMillis(),
+//                                              false,
+//                                              true,
+//                                              storageManager,
+//                                              account,
+//                                              targetContext
+//        ).execute(client).isSuccess());
+//
+//        OCFile existingFile = storageManager.getFileByPath("/image.jpg");
+//
+//        Intent intent = new Intent(targetContext, ConflictsResolveActivity.class);
+//        intent.putExtra(ConflictsResolveActivity.EXTRA_FILE, newFile);
+//        intent.putExtra(ConflictsResolveActivity.EXTRA_EXISTING_FILE, existingFile);
+//
+//        ConflictsResolveActivity sut = activityRule.launchActivity(intent);
+//
+//        ConflictsResolveDialog.OnConflictDecisionMadeListener listener = decision -> {
+//
+//        };
+//
+//        ConflictsResolveDialog dialog = ConflictsResolveDialog.newInstance(existingFile,
+//                                                                           newFile,
+//                                                                           UserAccountManagerImpl
+//                                                                               .fromContext(targetContext)
+//                                                                               .getUser()
+//                                                                          );
+//        dialog.showDialog(sut);
+//        dialog.listener = listener;
+//
+//        getInstrumentation().waitForIdleSync();
+//        shortSleep();
+//
+//        Screenshot.snap(dialog.getDialog().getWindow().getDecorView()).record();
+//    }
 
     @Test
     public void cancel() {

+ 2 - 2
src/androidTest/java/com/owncloud/android/ui/fragment/OCFileListFragmentIT.kt

@@ -36,7 +36,7 @@ import com.nextcloud.client.network.ConnectivityService
 import com.nextcloud.client.preferences.AppPreferences
 import com.nextcloud.client.preferences.AppPreferencesImpl
 import com.nextcloud.client.preferences.DarkMode
-import com.owncloud.android.AbstractIT
+import com.owncloud.android.AbstractOnServerIT
 import com.owncloud.android.MainApp
 import com.owncloud.android.datamodel.UploadsStorageManager
 import com.owncloud.android.db.OCUpload
@@ -54,7 +54,7 @@ import org.junit.Assert.assertTrue
 import org.junit.Rule
 import org.junit.Test
 
-class OCFileListFragmentIT : AbstractIT() {
+class OCFileListFragmentIT : AbstractOnServerIT() {
     companion object {
         val SECOND_IN_MILLIS = 1000L
         val RESULT_PER_PAGE = 50