summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@spawned.biz>2024-11-09 18:42:20 +0100
committerJoel Klinghed <the_jk@spawned.biz>2024-11-09 18:42:20 +0100
commit78219cc5219b364b17df48bd20e636bcfec39cc4 (patch)
tree487a195193729158abbfe8533490cf24021ef376 /libs
parentd274ffe5ec33c285034bdae64b532f2a470b9407 (diff)
documents: Add single merge tests local <-> documents
Fixed DocumentFile#equals. DelayedDocumentFile was equal DocumentFile but DocumentFile wasn't equal to DelayedDocumentFile.
Diffstat (limited to 'libs')
-rw-r--r--libs/documents/build.gradle.kts1
-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
6 files changed, 101 insertions, 6 deletions
diff --git a/libs/documents/build.gradle.kts b/libs/documents/build.gradle.kts
index 9a1d104..5abcf99 100644
--- a/libs/documents/build.gradle.kts
+++ b/libs/documents/build.gradle.kts
@@ -22,6 +22,7 @@ dependencies {
implementation(libs.androidx.core)
implementation(libs.androidx.fragment.ktx)
implementation(libs.androidx.uiautomator)
+ testImplementation(project(":libs:local"))
testImplementation(project(":libs:test-utils"))
androidTestImplementation(project(":libs:test-utils"))
}
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
+}