Fixed: SearchFragmentTest for custom apps was failing.

This commit is contained in:
MohitMaliFtechiz 2024-12-06 17:41:56 +05:30
parent 8a124d82ac
commit af8ca7f620

View File

@ -21,7 +21,7 @@ package org.kiwix.kiwixmobile.custom.search
import android.Manifest
import android.content.Context
import android.content.res.AssetFileDescriptor
import android.os.ParcelFileDescriptor
import androidx.core.content.ContextCompat
import androidx.core.content.edit
import androidx.lifecycle.Lifecycle
import androidx.navigation.fragment.NavHostFragment
@ -61,7 +61,6 @@ import org.kiwix.kiwixmobile.custom.testutils.TestUtils.closeSystemDialogs
import org.kiwix.kiwixmobile.custom.testutils.TestUtils.isSystemUINotRespondingDialogVisible
import java.io.File
import java.io.FileOutputStream
import java.io.IOException
import java.net.URI
import java.util.concurrent.TimeUnit
import javax.inject.Singleton
@ -225,7 +224,7 @@ class SearchFragmentTestForCustomApp {
UiThreadStatement.runOnUiThread {
customMainActivity.navigate(customMainActivity.readerFragmentResId)
}
openZimFileInReaderWithAssetFileDescriptor(downloadingZimFile)
openZimFileInReader(zimFile = downloadingZimFile)
openSearchWithQuery(searchTerms[0])
// wait for searchFragment become visible on screen.
delay(2000)
@ -304,12 +303,6 @@ class SearchFragmentTestForCustomApp {
}
}
private fun openZimFileInReaderWithAssetFileDescriptor(downloadingZimFile: File) {
getAssetFileDescriptorFromFile(downloadingZimFile)?.let(::openZimFileInReader) ?: run {
throw RuntimeException("Unable to get fileDescriptor from file. Original exception")
}
}
private fun openZimFileInReader(
assetFileDescriptor: AssetFileDescriptor? = null,
zimFile: File? = null
@ -338,23 +331,6 @@ class SearchFragmentTestForCustomApp {
}
}
private fun getAssetFileDescriptorFromFile(file: File): AssetFileDescriptor? {
val parcelFileDescriptor = getFileDescriptor(file)
if (parcelFileDescriptor != null) {
return AssetFileDescriptor(parcelFileDescriptor, 0, file.length())
}
return null
}
private fun getFileDescriptor(file: File?): ParcelFileDescriptor? {
try {
return ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY)
} catch (e: IOException) {
e.printStackTrace()
return null
}
}
private fun writeZimFileData(responseBody: ResponseBody, file: File) {
FileOutputStream(file).use { outputStream ->
responseBody.byteStream().use { inputStream ->
@ -374,7 +350,7 @@ class SearchFragmentTestForCustomApp {
.build()
private fun getDownloadingZimFile(): File {
val zimFile = File(context.cacheDir, "ray_charles.zim")
val zimFile = File(ContextCompat.getExternalFilesDirs(context, null)[0], "ray_charles.zim")
if (zimFile.exists()) zimFile.delete()
zimFile.createNewFile()
return zimFile