Browse Source

Merge pull request #6892 from nextcloud/richWorkspacesTest

add tests for rich workspaces
Tobias Kaminsky 4 years ago
parent
commit
7f729e630e

BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.OCFileListFragmentStaticServerIT_showRichWorkspace.png


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

@@ -23,30 +23,19 @@
 package com.owncloud.android.ui.fragment
 
 import android.Manifest
-import androidx.test.core.app.ActivityScenario
 import androidx.test.espresso.intent.rule.IntentsTestRule
 import androidx.test.platform.app.InstrumentationRegistry
 import androidx.test.rule.GrantPermissionRule
-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.client.preferences.AppPreferences
-import com.nextcloud.client.preferences.AppPreferencesImpl
-import com.nextcloud.client.preferences.DarkMode
 import com.owncloud.android.AbstractOnServerIT
-import com.owncloud.android.MainApp
 import com.owncloud.android.datamodel.OCFile
-import com.owncloud.android.datamodel.UploadsStorageManager
-import com.owncloud.android.db.OCUpload
-import com.owncloud.android.files.services.FileUploader
 import com.owncloud.android.lib.resources.shares.CreateShareRemoteOperation
 import com.owncloud.android.lib.resources.shares.OCShare
 import com.owncloud.android.lib.resources.shares.ShareType
 import com.owncloud.android.operations.CreateFolderOperation
-import com.owncloud.android.operations.RefreshFolderOperation
-import com.owncloud.android.operations.UploadFileOperation
 import com.owncloud.android.ui.activity.FileDisplayActivity
 import junit.framework.TestCase
 import org.junit.Assert.assertFalse
@@ -88,93 +77,6 @@ class OCFileListFragmentIT : AbstractOnServerIT() {
             get() = BatteryStatus()
     }
 
-    @Test
-    // @ScreenshotTest // todo run without real server
-    fun showRichWorkspace() {
-        assertTrue(CreateFolderOperation("/test/", user, targetContext).execute(client, storageManager).isSuccess)
-
-        val ocUpload = OCUpload(
-            getDummyFile("/nonEmpty.txt").absolutePath,
-            "/test/Readme.md",
-            account.name
-        )
-        val newUpload = UploadFileOperation(
-            UploadsStorageManager(UserAccountManagerImpl.fromContext(targetContext), targetContext.contentResolver),
-            connectivityServiceMock,
-            powerManagementServiceMock,
-            user,
-            null,
-            ocUpload,
-            FileUploader.NameCollisionPolicy.DEFAULT,
-            FileUploader.LOCAL_BEHAVIOUR_COPY,
-            targetContext,
-            false,
-            false
-        )
-
-        newUpload.addRenameUploadListener {}
-        newUpload.setRemoteFolderToBeCreated()
-
-        assertTrue(newUpload.execute(client, storageManager).isSuccess)
-
-        assertTrue(
-            RefreshFolderOperation(
-                storageManager.getFileByPath("/test/"),
-                System.currentTimeMillis() / SECOND_IN_MILLIS,
-                false,
-                true,
-                storageManager,
-                account,
-                targetContext
-            )
-                .execute(client)
-                .isSuccess
-        )
-
-        val sut = ActivityScenario.launch(FileDisplayActivity::class.java)
-        shortSleep()
-        sut.onActivity { activity -> activity.onBrowsedDownTo(storageManager.getFileByPath("/test/")) }
-
-        shortSleep()
-        shortSleep()
-
-//        sut.onActivity { activity ->
-//            Screenshot.snapActivity(activity).setName("richworkspaces_light").record()
-//        }
-
-        val preferences: AppPreferences = AppPreferencesImpl.fromContext(targetContext)
-        preferences.darkThemeMode = DarkMode.DARK
-
-        sut.onActivity { activity ->
-            MainApp.setAppTheme(DarkMode.DARK)
-        }
-
-        shortSleep()
-        sut.onActivity { activity -> activity.onBackPressed() }
-
-        shortSleep()
-
-        sut.recreate()
-
-        sut.onActivity { activity -> activity.onBrowsedDownTo(storageManager.getFileByPath("/test/")) }
-
-        shortSleep()
-        shortSleep()
-
-//        sut.onActivity { activity ->
-//            Screenshot.snapActivity(activity).setName("richworkspaces_dark").record()
-//        }
-
-        // switch back to light mode
-        preferences.darkThemeMode = DarkMode.LIGHT
-        sut.onActivity { MainApp.setAppTheme(DarkMode.LIGHT) }
-
-        shortSleep()
-        sut.onActivity { activity -> activity.onBackPressed() }
-
-        sut.recreate()
-    }
-
     @Test
     // @ScreenshotTest // todo run without real server
     fun createAndShowShareToUser() {

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

@@ -25,7 +25,6 @@ package com.owncloud.android.ui.fragment
 import android.Manifest
 import androidx.test.espresso.intent.rule.IntentsTestRule
 import androidx.test.rule.GrantPermissionRule
-import com.facebook.testing.screenshot.Screenshot
 import com.nextcloud.client.TestActivity
 import com.owncloud.android.AbstractIT
 import com.owncloud.android.datamodel.OCFile
@@ -42,6 +41,7 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
 
     @Test
     @ScreenshotTest
+    @Suppress("MagicNumber")
     fun showFiles() {
         val sut = testActivityRule.launchActivity(null)
 
@@ -71,6 +71,33 @@ class OCFileListFragmentStaticServerIT : AbstractIT() {
 
         waitForIdleSync()
 
-        Screenshot.snapActivity(sut).record()
+        screenshot(sut)
+    }
+
+    @Test
+    @ScreenshotTest
+    fun showRichWorkspace() {
+        val sut = testActivityRule.launchActivity(null)
+        val fragment = OCFileListFragment()
+
+        val folder = OCFile("/test/")
+        folder.setFolder()
+        sut.storageManager.saveFile(folder)
+
+        val textFile = OCFile("/test/Readme.md", "00000001")
+        textFile.mimeType = "text/markdown"
+        textFile.fileLength = 1024000
+        textFile.modificationTimestamp = 1188206955000
+        textFile.parentId = sut.storageManager.getFileByEncryptedRemotePath("/test/").fileId
+        textFile.storagePath = getFile("java.md").absolutePath
+        sut.storageManager.saveFile(textFile)
+
+        sut.addFragment(fragment)
+        val testFolder: OCFile = sut.storageManager.getFileByEncryptedRemotePath("/test/")
+        testFolder.richWorkspace = getFile("java.md").readText()
+
+        sut.runOnUiThread { fragment.listDirectory(testFolder, false, false) }
+
+        screenshot(sut)
     }
 }

+ 0 - 0
src/debug/kotlin/com/nextcloud/TestActivity.kt → src/debug/java/com/nextcloud/client/TestActivity.kt