Skip to content

Commit

Permalink
chore: Rename Mocks to Fakes
Browse files Browse the repository at this point in the history
  • Loading branch information
1fexd committed Jan 16, 2025
1 parent ae2a1b5 commit 2c08812
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 62 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package fe.linksheet.activity.bottomsheet.content.success.appcontent

import android.net.Uri
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Column
Expand All @@ -11,7 +10,6 @@ import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.itemsIndexed
Expand All @@ -36,8 +34,8 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import app.linksheet.testing.ResolveInfoMocks
import app.linksheet.testing.ResolveInfoMocks.toAppInfo
import app.linksheet.testing.ResolveInfoFakes
import app.linksheet.testing.ResolveInfoFakes.toAppInfo
import fe.composekit.component.shape.CustomShapeDefaults
import fe.kotlin.extension.iterable.getOrFirstOrNull
import fe.linksheet.R
Expand Down Expand Up @@ -223,9 +221,9 @@ private fun AppContentListPreview_Short() {


val apps = listOf(
ResolveInfoMocks.youtube.toAppInfo("Youtube", image),
ResolveInfoMocks.duckduckgoBrowser.toAppInfo("DuckDuckGo", image),
ResolveInfoMocks.chromeBrowser.toAppInfo("Google Chrome", image)
ResolveInfoFakes.Youtube.toAppInfo("Youtube", image),
ResolveInfoFakes.DuckDuckGoBrowser.toAppInfo("DuckDuckGo", image),
ResolveInfoFakes.ChromeBrowser.toAppInfo("Google Chrome", image)
)

AppContentList(
Expand All @@ -247,7 +245,7 @@ private fun AppContentListPreview_Short() {
@Composable
private fun AppContentListPreview_Long() {
val image = lazy { ImageBitmap(1, 1) }
val apps = ResolveInfoMocks.allResolved.map {
val apps = ResolveInfoFakes.allResolved.map {
it.toAppInfo( it.resolvePackageName, icon = image)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,48 +2,53 @@ package app.linksheet.testing

import android.content.pm.ResolveInfo
import androidx.compose.ui.graphics.ImageBitmap
import fe.linksheet.extension.android.info
import fe.linksheet.module.app.ActivityAppInfo
import fe.linksheet.module.resolver.DisplayActivityInfo

object ResolveInfoMocks {
val miBrowser = buildResolveInfoTestMock { activity, application ->
object ResolveInfoFakes {
val MiBrowser = buildResolveInfoTestFake { activity, application ->
activity.name = "com.sec.android.app.sbrowser.SBrowserLauncherActivity"
activity.packageName = "com.mi.globalbrowser"
application.name = "MiBrowser"
}

val duckduckgoBrowser = buildResolveInfoTestMock { activity, application ->
val DuckDuckGoBrowser = buildResolveInfoTestFake { activity, application ->
activity.name = "com.duckduckgo.app.dispatchers.IntentDispatcherActivity"
activity.packageName = "com.duckduckgo.mobile.android"
application.name = "DuckDuckGo"
}

val youtube = buildResolveInfoTestMock { activity, application ->
val Youtube = buildResolveInfoTestFake { activity, application ->
activity.name = "com.google.android.youtube.UrlActivity"
activity.packageName = "com.google.android.youtube"
application.name = "Youtube"
}

val newPipe = buildResolveInfoTestMock { activity, application ->
val NewPipe = buildResolveInfoTestFake { activity, application ->
activity.name = "org.schabi.newpipe.RouterActivity"
activity.packageName = "org.schabi.newpipe"
application.name = "NewPipe"
}

val newPipeEnhanced = buildResolveInfoTestMock { activity, application ->
val NewPipeEnhanced = buildResolveInfoTestFake { activity, application ->
activity.name = "org.schabi.newpipe.RouterActivity"
activity.packageName = "InfinityLoop1309.NewPipeEnhanced"
application.name = "NewPipeEnhanced"
}

val pepper = buildResolveInfoTestMock { activity, application ->
val Pepper = buildResolveInfoTestFake { activity, application ->
activity.name = "com.pepper.presentation.dispatch.DispatchActivity"
activity.packageName = "com.tippingcanoe.pepperpl"
application.name = "Pepper"
}

val chromeBrowser = buildResolveInfoTestMock { activity, application ->
val ChromeBrowser = buildResolveInfoTestFake { activity, application ->
activity.name = "com.google.android.apps.chrome.Main"
activity.packageName = "com.android.chrome"
application.name = "Chrome"
}

val allApps = listOf(youtube, newPipe, newPipeEnhanced, pepper)
val allBrowsers = listOf(miBrowser, duckduckgoBrowser, chromeBrowser)
val allApps = listOf(Youtube, NewPipe, NewPipeEnhanced, Pepper)
val allBrowsers = listOf(MiBrowser, DuckDuckGoBrowser, ChromeBrowser)
val allResolved = allApps + allBrowsers

val ResolveInfo.packageName: String
Expand All @@ -65,12 +70,11 @@ object ResolveInfoMocks {
return listOf(*resolveInfos).toKeyedMap()
}

fun ResolveInfo.toDisplayActivityInfo(): DisplayActivityInfo {
val image = lazy { ImageBitmap(1, 1) }
return DisplayActivityInfo(info, resolvePackageName, icon = image)
}

fun ResolveInfo.toAppInfo(label: String, icon: Lazy<ImageBitmap>): ActivityAppInfo {
return ActivityAppInfo(activityInfo, label, icon)
}

fun ResolveInfo.toAppInfo(icon: Lazy<ImageBitmap>): ActivityAppInfo {
return toAppInfo(activityInfo.applicationInfo.name, icon)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import android.content.pm.ActivityInfo
import android.content.pm.ApplicationInfo
import android.content.pm.ResolveInfo

fun buildResolveInfoTestMock(block: ResolveInfo.(ActivityInfo, ApplicationInfo) -> Unit): ResolveInfo {
fun buildResolveInfoTestFake(block: ResolveInfo.(ActivityInfo, ApplicationInfo) -> Unit): ResolveInfo {
val resolveInfo = ResolveInfo()
val activityInfo = ActivityInfo()
val applicationInfo = ApplicationInfo()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ import fe.linksheet.module.resolver.AutoLaunchSingleBrowserExperiment
import fe.linksheet.module.resolver.FilteredBrowserList
import fe.linksheet.module.resolver.BrowserModeConfigHelper
import fe.linksheet.module.resolver.browser.BrowserMode
import app.linksheet.testing.ResolveInfoMocks.allBrowsers
import app.linksheet.testing.ResolveInfoMocks.duckduckgoBrowser
import app.linksheet.testing.ResolveInfoMocks.miBrowser
import app.linksheet.testing.ResolveInfoMocks.newPipe
import app.linksheet.testing.ResolveInfoMocks.packageName
import app.linksheet.testing.ResolveInfoMocks.toKeyedMap
import app.linksheet.testing.ResolveInfoMocks.youtube
import app.linksheet.testing.ResolveInfoFakes.allBrowsers
import app.linksheet.testing.ResolveInfoFakes.DuckDuckGoBrowser
import app.linksheet.testing.ResolveInfoFakes.MiBrowser
import app.linksheet.testing.ResolveInfoFakes.NewPipe
import app.linksheet.testing.ResolveInfoFakes.packageName
import app.linksheet.testing.ResolveInfoFakes.toKeyedMap
import app.linksheet.testing.ResolveInfoFakes.Youtube
import org.junit.After
import org.junit.runner.RunWith
import org.koin.core.context.stopKoin
Expand All @@ -29,17 +29,17 @@ class ExperimentAutoLaunchSingleBrowserTest {
private val whitelistedNull = BrowserModeConfigHelper.Whitelisted(null)
private val whitelistedEmpty = BrowserModeConfigHelper.Whitelisted(emptySet())
private val whitelistedDuckDuckGoBrowser = BrowserModeConfigHelper.Whitelisted(
setOf(duckduckgoBrowser.packageName)
setOf(DuckDuckGoBrowser.packageName)
)

private val whitelistedMiBrowser = BrowserModeConfigHelper.Whitelisted(setOf(miBrowser.packageName))
private val whitelistedMiBrowser = BrowserModeConfigHelper.Whitelisted(setOf(MiBrowser.packageName))
private val whitelistedMiDuckDuckGoBrowser = BrowserModeConfigHelper.Whitelisted(
setOf(duckduckgoBrowser.packageName, miBrowser.packageName)
setOf(DuckDuckGoBrowser.packageName, MiBrowser.packageName)
)

private val selectedNull = BrowserModeConfigHelper.SelectedBrowser(null)
private val selectedDuckDuckGoBrowser = BrowserModeConfigHelper.SelectedBrowser(duckduckgoBrowser.packageName)
private val selectedMiBrowser = BrowserModeConfigHelper.SelectedBrowser(miBrowser.packageName)
private val selectedDuckDuckGoBrowser = BrowserModeConfigHelper.SelectedBrowser(DuckDuckGoBrowser.packageName)
private val selectedMiBrowser = BrowserModeConfigHelper.SelectedBrowser(MiBrowser.packageName)

val configs = listOf(
BrowserModeConfigHelper.None,
Expand Down Expand Up @@ -90,7 +90,7 @@ class ExperimentAutoLaunchSingleBrowserTest {
@Test
fun `single browser, single app`() {
val runTest: (BrowserModeConfigHelper) -> FilteredBrowserList? = { config ->
AutoLaunchSingleBrowserExperiment.handle(config, listOf(youtube), duckduckgoBrowser.toKeyedMap())
AutoLaunchSingleBrowserExperiment.handle(config, listOf(Youtube), DuckDuckGoBrowser.toKeyedMap())
}

assertEach(configs) { config ->
Expand All @@ -101,7 +101,7 @@ class ExperimentAutoLaunchSingleBrowserTest {
@Test
fun `single browser, many apps`() {
val runTest: (BrowserModeConfigHelper) -> FilteredBrowserList? = { config ->
AutoLaunchSingleBrowserExperiment.handle(config, listOf(youtube, newPipe), duckduckgoBrowser.toKeyedMap())
AutoLaunchSingleBrowserExperiment.handle(config, listOf(Youtube, NewPipe), DuckDuckGoBrowser.toKeyedMap())
}

assertEach(configs) { config ->
Expand All @@ -112,11 +112,11 @@ class ExperimentAutoLaunchSingleBrowserTest {
@Test
fun `single browser, no apps`() {
val runTest: (BrowserModeConfigHelper) -> FilteredBrowserList? = { config ->
AutoLaunchSingleBrowserExperiment.handle(config, emptyList(), duckduckgoBrowser.toKeyedMap())
AutoLaunchSingleBrowserExperiment.handle(config, emptyList(), DuckDuckGoBrowser.toKeyedMap())
}

assertEach(configs) { config ->
assertThat(runTest(config)).isValid(config.mode, duckduckgoBrowser)
assertThat(runTest(config)).isValid(config.mode, DuckDuckGoBrowser)
}
}

Expand All @@ -134,10 +134,10 @@ class ExperimentAutoLaunchSingleBrowserTest {
assertThat(runTest(whitelistedMiDuckDuckGoBrowser)).isNull()
assertThat(runTest(selectedNull)).isNull()

assertThat(runTest(whitelistedDuckDuckGoBrowser)).isValid(BrowserMode.Whitelisted, duckduckgoBrowser)
assertThat(runTest(whitelistedMiBrowser)).isValid(BrowserMode.Whitelisted, miBrowser)
assertThat(runTest(selectedDuckDuckGoBrowser)).isValid(BrowserMode.SelectedBrowser, duckduckgoBrowser)
assertThat(runTest(selectedMiBrowser)).isValid(BrowserMode.SelectedBrowser, miBrowser)
assertThat(runTest(whitelistedDuckDuckGoBrowser)).isValid(BrowserMode.Whitelisted, DuckDuckGoBrowser)
assertThat(runTest(whitelistedMiBrowser)).isValid(BrowserMode.Whitelisted, MiBrowser)
assertThat(runTest(selectedDuckDuckGoBrowser)).isValid(BrowserMode.SelectedBrowser, DuckDuckGoBrowser)
assertThat(runTest(selectedMiBrowser)).isValid(BrowserMode.SelectedBrowser, MiBrowser)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ import fe.linksheet.module.resolver.FilteredBrowserList
import fe.linksheet.module.resolver.BrowserModeConfigHelper
import fe.linksheet.module.resolver.ImprovedBrowserHandler
import fe.linksheet.module.resolver.browser.BrowserMode
import app.linksheet.testing.ResolveInfoMocks.allApps
import app.linksheet.testing.ResolveInfoMocks.allBrowsers
import app.linksheet.testing.ResolveInfoMocks.allResolved
import app.linksheet.testing.ResolveInfoMocks.duckduckgoBrowser
import app.linksheet.testing.ResolveInfoMocks.miBrowser
import app.linksheet.testing.ResolveInfoMocks.packageSetOf
import app.linksheet.testing.ResolveInfoMocks.toKeyedMap
import app.linksheet.testing.ResolveInfoMocks.youtube
import app.linksheet.testing.ResolveInfoFakes.allApps
import app.linksheet.testing.ResolveInfoFakes.allBrowsers
import app.linksheet.testing.ResolveInfoFakes.allResolved
import app.linksheet.testing.ResolveInfoFakes.DuckDuckGoBrowser
import app.linksheet.testing.ResolveInfoFakes.MiBrowser
import app.linksheet.testing.ResolveInfoFakes.packageSetOf
import app.linksheet.testing.ResolveInfoFakes.toKeyedMap
import app.linksheet.testing.ResolveInfoFakes.Youtube
import org.junit.After
import org.junit.runner.RunWith
import org.koin.core.context.stopKoin
Expand Down Expand Up @@ -63,11 +63,11 @@ class ImprovedBrowserHandlerTest {
fun `only list native apps, of which user has single, but no browser`() {
val config = BrowserModeConfigHelper.None

assertThat(handler.filterBrowsers(config, emptyMap(), listOf(youtube))).isDataClassEqualTo(
assertThat(handler.filterBrowsers(config, emptyMap(), listOf(Youtube))).isDataClassEqualTo(
FilteredBrowserList(
browserMode = BrowserMode.None,
browsers = emptyList(),
apps = listOf(youtube),
apps = listOf(Youtube),
// TODO: Test returns false, is that a bug or expected behavior?
// isSingleOption = true,
noBrowsersOnlySingleApp = true
Expand Down Expand Up @@ -107,12 +107,12 @@ class ImprovedBrowserHandlerTest {

@Test
fun `selected browser`() {
val config = BrowserModeConfigHelper.SelectedBrowser(miBrowser.activityInfo.packageName)
val config = BrowserModeConfigHelper.SelectedBrowser(MiBrowser.activityInfo.packageName)

assertThat(handler.filterBrowsers(config, allBrowsers.toKeyedMap(), allResolved)).isDataClassEqualTo(
FilteredBrowserList(
browserMode = BrowserMode.SelectedBrowser,
browsers = listOf(miBrowser),
browsers = listOf(MiBrowser),
apps = allApps,
isSingleOption = false,
noBrowsersOnlySingleApp = false
Expand All @@ -139,12 +139,12 @@ class ImprovedBrowserHandlerTest {

@Test
fun `whitelisted browsers, one selected`() {
val config = BrowserModeConfigHelper.Whitelisted(packageSetOf(miBrowser))
val config = BrowserModeConfigHelper.Whitelisted(packageSetOf(MiBrowser))

assertThat(handler.filterBrowsers(config, allBrowsers.toKeyedMap(), allResolved)).isDataClassEqualTo(
FilteredBrowserList(
browserMode = BrowserMode.Whitelisted,
browsers = listOf(miBrowser),
browsers = listOf(MiBrowser),
apps = allApps,
isSingleOption = false,
noBrowsersOnlySingleApp = false
Expand All @@ -154,12 +154,12 @@ class ImprovedBrowserHandlerTest {

@Test
fun `whitelisted browsers, multiple selected`() {
val config = BrowserModeConfigHelper.Whitelisted(packageSetOf(miBrowser, duckduckgoBrowser))
val config = BrowserModeConfigHelper.Whitelisted(packageSetOf(MiBrowser, DuckDuckGoBrowser))

assertThat(handler.filterBrowsers(config, allBrowsers.toKeyedMap(), allResolved)).isDataClassEqualTo(
FilteredBrowserList(
browserMode = BrowserMode.Whitelisted,
browsers = listOf(miBrowser, duckduckgoBrowser),
browsers = listOf(MiBrowser, DuckDuckGoBrowser),
apps = allApps,
isSingleOption = false,
noBrowsersOnlySingleApp = false
Expand Down

0 comments on commit 2c08812

Please sign in to comment.