From 019bfea06cbdfa569e496ae5e4f1f3e1f67cd9bd Mon Sep 17 00:00:00 2001 From: MohitMali Date: Thu, 5 May 2022 17:43:47 +0530 Subject: [PATCH] MimeTypeTest added --- .../kiwixmobile/mimetype/MimeTypeTest.kt | 71 +++++++++++++++++++ .../kiwixmobile/core/reader/ZimFileReader.kt | 2 +- 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 app/src/androidTest/java/org/kiwix/kiwixmobile/mimetype/MimeTypeTest.kt diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/mimetype/MimeTypeTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/mimetype/MimeTypeTest.kt new file mode 100644 index 000000000..ee0ed9fcd --- /dev/null +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/mimetype/MimeTypeTest.kt @@ -0,0 +1,71 @@ +/* + * Kiwix Android + * Copyright (c) 2022 Kiwix + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +package org.kiwix.kiwixmobile.mimetype + +import android.util.Log +import androidx.core.content.edit +import androidx.preference.PreferenceManager +import androidx.test.rule.ActivityTestRule +import org.junit.Test +import org.kiwix.kiwixlib.JNIKiwixReader +import org.kiwix.kiwixmobile.BaseActivityTest +import org.kiwix.kiwixmobile.core.NightModeConfig +import org.kiwix.kiwixmobile.core.reader.ZimFileReader +import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil +import org.kiwix.kiwixmobile.main.KiwixMainActivity +import java.io.File +import java.io.FileOutputStream +import java.io.OutputStream + +class MimeTypeTest : BaseActivityTest() { + + override var activityRule: ActivityTestRule = activityTestRule { + PreferenceManager.getDefaultSharedPreferences(context).edit { + putBoolean(SharedPreferenceUtil.PREF_SHOW_INTRO, false) + putBoolean(SharedPreferenceUtil.PREF_WIFI_ONLY, false) + } + } + + @Test + fun testMimeType() { + val loadFileStream = MimeTypeTest::class.java.classLoader.getResourceAsStream("testzim.zim") + val zimFile = File(context.cacheDir, "testzim.zim") + if (zimFile.exists()) zimFile.delete() + zimFile.createNewFile() + loadFileStream.use { inputStream -> + val out: OutputStream = FileOutputStream(zimFile) + out.use { out -> + // Transfer bytes from in to out + val buf = ByteArray(1024) + var len: Int + while (inputStream.read(buf).also { len = it } > 0) { + out.write(buf, 0, len) + } + } + } + val zimFileReader = ZimFileReader( + zimFile, + JNIKiwixReader(zimFile.canonicalPath), + NightModeConfig(SharedPreferenceUtil(context), context) + ) + zimFileReader.readMimeType(zimFileReader.getRandomArticleUrl()!!).also { + Log.e("ZIMFILEREADER", "testMimeType: $it") + } + } +} diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt index e86582601..4100a3023 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimFileReader.kt @@ -127,7 +127,7 @@ class ZimFileReader constructor( } fun readMimeType(uri: String): String = getContentAndMimeType(uri) - .second.substringBefore(";").also { + .second.replace("^([^ ]+).*$", "$1").substringBefore(";").also { Log.d(TAG, "getting mimetype for $uri = $it") }