summaryrefslogtreecommitdiff
path: root/libs/documents/src
diff options
context:
space:
mode:
Diffstat (limited to 'libs/documents/src')
-rw-r--r--libs/documents/src/main/java/org/the_jk/cleversync/io/documents/DocumentFile.kt18
-rw-r--r--libs/documents/src/test/java/org/the_jk/cleversync/documents/DocumentTreeTest.kt2
-rw-r--r--libs/documents/src/test/java/org/the_jk/cleversync/documents/DocumentTreeTestHelper.kt5
-rw-r--r--libs/documents/src/test/java/org/the_jk/cleversync/documents/SingleMergeDocumentsLocalTest.kt41
-rw-r--r--libs/documents/src/test/java/org/the_jk/cleversync/documents/SingleMergeLocalDocumentsTest.kt40
5 files changed, 100 insertions, 6 deletions
diff --git a/libs/documents/src/main/java/org/the_jk/cleversync/io/documents/DocumentFile.kt b/libs/documents/src/main/java/org/the_jk/cleversync/io/documents/DocumentFile.kt
index 768b679..31aeb7f 100644
--- a/libs/documents/src/main/java/org/the_jk/cleversync/io/documents/DocumentFile.kt
+++ b/libs/documents/src/main/java/org/the_jk/cleversync/io/documents/DocumentFile.kt
@@ -40,8 +40,22 @@ internal class DocumentFile(
}
}
- override fun equals(other: Any?) = other is DocumentFile &&
- DocumentsContract.getDocumentId(other.documentUri) == DocumentsContract.getDocumentId(documentUri)
+ override fun equals(other: Any?): Boolean {
+ return when (other) {
+ is DocumentFile -> {
+ DocumentsContract.getDocumentId(other.documentUri) ==
+ DocumentsContract.getDocumentId(documentUri)
+ }
+
+ is DelayedCreationDocumentFile -> {
+ other == this
+ }
+
+ else -> {
+ false
+ }
+ }
+ }
override fun hashCode() = DocumentsContract.getDocumentId(documentUri).hashCode()
override fun toString() = DocumentsContract.getDocumentId(documentUri) ?: "null"
}
diff --git a/libs/documents/src/test/java/org/the_jk/cleversync/documents/DocumentTreeTest.kt b/libs/documents/src/test/java/org/the_jk/cleversync/documents/DocumentTreeTest.kt
index ad6abfa..30fc96f 100644
--- a/libs/documents/src/test/java/org/the_jk/cleversync/documents/DocumentTreeTest.kt
+++ b/libs/documents/src/test/java/org/the_jk/cleversync/documents/DocumentTreeTest.kt
@@ -21,7 +21,7 @@ class DocumentTreeTest : TreeAbstractTest() {
@Before
fun setUp() {
- tree = helper.openTree(folder)
+ tree = helper.openTree(folder.root)
}
@After
diff --git a/libs/documents/src/test/java/org/the_jk/cleversync/documents/DocumentTreeTestHelper.kt b/libs/documents/src/test/java/org/the_jk/cleversync/documents/DocumentTreeTestHelper.kt
index 5358920..6ebb7b6 100644
--- a/libs/documents/src/test/java/org/the_jk/cleversync/documents/DocumentTreeTestHelper.kt
+++ b/libs/documents/src/test/java/org/the_jk/cleversync/documents/DocumentTreeTestHelper.kt
@@ -13,7 +13,6 @@ import android.provider.DocumentsProvider
import android.webkit.MimeTypeMap
import androidx.test.core.app.ApplicationProvider
import com.google.common.truth.Truth.assertThat
-import org.junit.rules.TemporaryFolder
import org.robolectric.Robolectric
import org.robolectric.android.controller.ContentProviderController
import org.the_jk.cleversync.io.ModifiableTree
@@ -26,7 +25,7 @@ import java.io.IOException
class DocumentTreeTestHelper {
private lateinit var controller: ContentProviderController<FakeProvider>
- fun openTree(folder: TemporaryFolder): ModifiableTree {
+ fun openTree(root: File): ModifiableTree {
val context = ApplicationProvider.getApplicationContext<Context>()
val contentResolver = context.contentResolver
val providerInfo = ProviderInfo()
@@ -38,7 +37,7 @@ class DocumentTreeTestHelper {
controller = Robolectric
.buildContentProvider(FakeProvider::class.java)
- controller.get().setBaseDir(folder.root)
+ controller.get().setBaseDir(root)
controller.create(providerInfo)
val treeUri = DocumentsContract.buildTreeDocumentUri(providerInfo.authority, ROOT)
diff --git a/libs/documents/src/test/java/org/the_jk/cleversync/documents/SingleMergeDocumentsLocalTest.kt b/libs/documents/src/test/java/org/the_jk/cleversync/documents/SingleMergeDocumentsLocalTest.kt
new file mode 100644
index 0000000..ecde00b
--- /dev/null
+++ b/libs/documents/src/test/java/org/the_jk/cleversync/documents/SingleMergeDocumentsLocalTest.kt
@@ -0,0 +1,41 @@
+package org.the_jk.cleversync.documents
+
+
+import org.junit.After
+import org.junit.Rule
+import org.junit.rules.TemporaryFolder
+import org.junit.runner.RunWith
+import org.robolectric.RobolectricTestRunner
+import org.robolectric.annotation.Config
+import org.the_jk.cleversync.io.BaseSingleMergeTest
+import org.the_jk.cleversync.io.ModifiableTree
+import org.the_jk.cleversync.local.LocalTreeFactory
+
+@Config(manifest=Config.NONE)
+@RunWith(RobolectricTestRunner::class)
+class SingleMergeDocumentsLocalTest : BaseSingleMergeTest() {
+ @Rule
+ @JvmField
+ val temp = TemporaryFolder()
+
+ private val helper = DocumentTreeTestHelper()
+ private lateinit var documents: ModifiableTree
+
+ @After
+ fun tearDownTest() {
+ helper.closeTree(documents)
+ }
+
+ override fun source(): ModifiableTree {
+ documents = helper.openTree(temp.newFolder("source"))
+ return documents
+ }
+
+ override fun sourceSupportsSymlinks() = false
+
+ override fun target(): ModifiableTree {
+ return LocalTreeFactory.modifiableTree(temp.newFolder("target").toPath())
+ }
+
+ override fun targetSupportsSymlinks() = true
+}
diff --git a/libs/documents/src/test/java/org/the_jk/cleversync/documents/SingleMergeLocalDocumentsTest.kt b/libs/documents/src/test/java/org/the_jk/cleversync/documents/SingleMergeLocalDocumentsTest.kt
new file mode 100644
index 0000000..68a5281
--- /dev/null
+++ b/libs/documents/src/test/java/org/the_jk/cleversync/documents/SingleMergeLocalDocumentsTest.kt
@@ -0,0 +1,40 @@
+package org.the_jk.cleversync.documents
+
+import org.junit.After
+import org.junit.Rule
+import org.junit.rules.TemporaryFolder
+import org.junit.runner.RunWith
+import org.robolectric.RobolectricTestRunner
+import org.robolectric.annotation.Config
+import org.the_jk.cleversync.io.BaseSingleMergeTest
+import org.the_jk.cleversync.io.ModifiableTree
+import org.the_jk.cleversync.local.LocalTreeFactory
+
+@Config(manifest=Config.NONE)
+@RunWith(RobolectricTestRunner::class)
+class SingleMergeLocalDocumentsTest : BaseSingleMergeTest() {
+ @Rule
+ @JvmField
+ val temp = TemporaryFolder()
+
+ private val helper = DocumentTreeTestHelper()
+ private lateinit var documents: ModifiableTree
+
+ @After
+ fun tearDownTest() {
+ helper.closeTree(documents)
+ }
+
+ override fun source(): ModifiableTree {
+ return LocalTreeFactory.modifiableTree(temp.newFolder("source").toPath())
+ }
+
+ override fun sourceSupportsSymlinks() = true
+
+ override fun target(): ModifiableTree {
+ documents = helper.openTree(temp.newFolder("target"))
+ return documents
+ }
+
+ override fun targetSupportsSymlinks() = false
+}