diff --git a/app/build.gradle b/app/build.gradle index bd16fcc92..ebe36ad43 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -98,10 +98,6 @@ android { includeInBundle = false } - sourceSets { - test.java.srcDirs += '../testShared/src/test/java' - } - compileOptions { sourceCompatibility JavaVersion.VERSION_21 targetCompatibility JavaVersion.VERSION_21 @@ -158,7 +154,7 @@ dependencies { ksp libs.androidX.annotation //For tests - kspTest libs.auto.service + testImplementation project(':testShared') testImplementation libs.junit//tests the app logic testImplementation libs.robolectric//tests android interaction testImplementation libs.robolectric.shadows.httpclient//tests android interaction @@ -180,6 +176,7 @@ dependencies { testImplementation libs.kotlin.coroutine.test testImplementation libs.androidX.core.testing testImplementation libs.logback.classic + kspTest libs.auto.service androidTestImplementation libs.junit //tests the app logic androidTestImplementation libs.androidX.test.expresso diff --git a/file_operations/build.gradle b/file_operations/build.gradle index 3c8f78aeb..3f5cf3233 100644 --- a/file_operations/build.gradle +++ b/file_operations/build.gradle @@ -26,10 +26,6 @@ android { } } - sourceSets { - test.java.srcDirs += '../testShared/src/test/java' - } - compileOptions { sourceCompatibility JavaVersion.VERSION_21 targetCompatibility JavaVersion.VERSION_21 @@ -106,6 +102,7 @@ dependencies { //TODO some libs are not needed //For tests + testImplementation project(':testShared') testImplementation libs.junit //tests the app logic testImplementation libs.robolectric //tests android interaction testImplementation libs.robolectric.shadows.httpclient //tests android interaction diff --git a/settings.gradle b/settings.gradle index 0023200c5..cb1e87c6e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -3,4 +3,4 @@ plugins { } include ':file_operations' include ':portscanner' -include ':app', ':commons_compress_7z' +include ':app', ':commons_compress_7z', ':testShared' diff --git a/testShared/build.gradle b/testShared/build.gradle new file mode 100644 index 000000000..12d423a85 --- /dev/null +++ b/testShared/build.gradle @@ -0,0 +1,81 @@ +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' + +android { + namespace "com.amaze.filemanager.test" + compileSdkVersion libs.versions.compileSdk.get().toInteger() + + defaultConfig { + minSdkVersion libs.versions.minSdk.get().toInteger() + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + flavorDimensions = ['static'] + + productFlavors { + fdroid { + dimension 'static' + } + + play { + dimension 'static' + } + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_21 + targetCompatibility JavaVersion.VERSION_21 + } + + testOptions { + unitTests { + includeAndroidResources = true + returnDefaultValues = true + } + } +} + +kotlin { + jvmToolchain(21) +} + +dependencies { + // App module dependency for accessing app classes + implementation project(':app') + + // File operations module for NativeOperations + implementation project(':file_operations') + + // Core testing dependencies + implementation libs.junit + implementation libs.robolectric + implementation libs.robolectric.shadows.httpclient + implementation libs.androidX.test.core + implementation libs.androidX.test.runner + implementation libs.androidX.test.rules + implementation libs.androidX.test.ext.junit + implementation libs.mockito.core + implementation libs.androidX.multidex + implementation libs.awaitility + + // Kotlin standard library + implementation libs.kotlin.stdlib.jdk8 + + // MockK for Kotlin mocking + implementation libs.mockk + + // RxJava for Completable and reactive types + implementation libs.rxjava + implementation libs.rxandroid + + // Room for database classes + implementation libs.room.runtime + + // SMB for shadow implementations + implementation libs.jcifs.ng + + // Android dependencies + implementation libs.androidX.appcompat + implementation libs.androidX.fragment +} + diff --git a/testShared/src/test/java/com/amaze/filemanager/shadows/ShadowFileUtils.kt b/testShared/src/main/java/com/amaze/filemanager/shadows/ShadowFileUtils.kt similarity index 100% rename from testShared/src/test/java/com/amaze/filemanager/shadows/ShadowFileUtils.kt rename to testShared/src/main/java/com/amaze/filemanager/shadows/ShadowFileUtils.kt diff --git a/testShared/src/test/java/com/amaze/filemanager/shadows/ShadowMultiDex.java b/testShared/src/main/java/com/amaze/filemanager/shadows/ShadowMultiDex.java similarity index 100% rename from testShared/src/test/java/com/amaze/filemanager/shadows/ShadowMultiDex.java rename to testShared/src/main/java/com/amaze/filemanager/shadows/ShadowMultiDex.java diff --git a/testShared/src/test/java/com/amaze/filemanager/shadows/ShadowSmbUtil.kt b/testShared/src/main/java/com/amaze/filemanager/shadows/ShadowSmbUtil.kt similarity index 100% rename from testShared/src/test/java/com/amaze/filemanager/shadows/ShadowSmbUtil.kt rename to testShared/src/main/java/com/amaze/filemanager/shadows/ShadowSmbUtil.kt diff --git a/testShared/src/test/java/com/amaze/filemanager/shadows/jcifs/smb/ShadowSmbFile.java b/testShared/src/main/java/com/amaze/filemanager/shadows/jcifs/smb/ShadowSmbFile.java similarity index 100% rename from testShared/src/test/java/com/amaze/filemanager/shadows/jcifs/smb/ShadowSmbFile.java rename to testShared/src/main/java/com/amaze/filemanager/shadows/jcifs/smb/ShadowSmbFile.java diff --git a/testShared/src/test/java/com/amaze/filemanager/test/DummyFileGenerator.java b/testShared/src/main/java/com/amaze/filemanager/test/DummyFileGenerator.java similarity index 100% rename from testShared/src/test/java/com/amaze/filemanager/test/DummyFileGenerator.java rename to testShared/src/main/java/com/amaze/filemanager/test/DummyFileGenerator.java diff --git a/testShared/src/test/java/com/amaze/filemanager/test/ShadowNativeOperations.java b/testShared/src/main/java/com/amaze/filemanager/test/ShadowNativeOperations.java similarity index 100% rename from testShared/src/test/java/com/amaze/filemanager/test/ShadowNativeOperations.java rename to testShared/src/main/java/com/amaze/filemanager/test/ShadowNativeOperations.java diff --git a/testShared/src/test/java/com/amaze/filemanager/test/ShadowPasswordUtil.kt b/testShared/src/main/java/com/amaze/filemanager/test/ShadowPasswordUtil.kt similarity index 100% rename from testShared/src/test/java/com/amaze/filemanager/test/ShadowPasswordUtil.kt rename to testShared/src/main/java/com/amaze/filemanager/test/ShadowPasswordUtil.kt diff --git a/testShared/src/test/java/com/amaze/filemanager/test/ShadowPasswordUtilTest.java b/testShared/src/main/java/com/amaze/filemanager/test/ShadowPasswordUtilTest.java similarity index 100% rename from testShared/src/test/java/com/amaze/filemanager/test/ShadowPasswordUtilTest.java rename to testShared/src/main/java/com/amaze/filemanager/test/ShadowPasswordUtilTest.java diff --git a/testShared/src/test/java/com/amaze/filemanager/test/ShadowTabHandler.kt b/testShared/src/main/java/com/amaze/filemanager/test/ShadowTabHandler.kt similarity index 100% rename from testShared/src/test/java/com/amaze/filemanager/test/ShadowTabHandler.kt rename to testShared/src/main/java/com/amaze/filemanager/test/ShadowTabHandler.kt diff --git a/testShared/src/test/java/com/amaze/filemanager/test/TestUtils.kt b/testShared/src/main/java/com/amaze/filemanager/test/TestUtils.kt similarity index 100% rename from testShared/src/test/java/com/amaze/filemanager/test/TestUtils.kt rename to testShared/src/main/java/com/amaze/filemanager/test/TestUtils.kt