Refactor PrintSettings (2/n)
The "Add service" button. Bug: 320076351 Flag: com.android.settings.flags.refactor_print_settings Test: manual Test: unit test Change-Id: I624293edcbfe9ef8388d48759611aeac522352a4
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package com.android.settings.print
|
||||
|
||||
import android.content.Context
|
||||
import android.net.Uri
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.test.isDisplayed
|
||||
@@ -31,7 +32,9 @@ import com.android.settings.print.PrintRepository.PrintServiceDisplayInfo
|
||||
import com.android.settings.print.PrintSettingsFragment.EXTRA_CHECKED
|
||||
import com.android.settings.print.PrintSettingsFragment.EXTRA_SERVICE_COMPONENT_NAME
|
||||
import com.android.settings.print.PrintSettingsFragment.EXTRA_TITLE
|
||||
import com.android.settings.print.PrintSettingsPageProvider.AddPrintService
|
||||
import com.android.settings.print.PrintSettingsPageProvider.PrintService
|
||||
import kotlinx.coroutines.flow.flowOf
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
@@ -44,35 +47,32 @@ import org.mockito.kotlin.whenever
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
class PrintSettingsPageProviderTest {
|
||||
@get:Rule
|
||||
val composeTestRule = createComposeRule()
|
||||
@get:Rule val composeTestRule = createComposeRule()
|
||||
|
||||
private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
|
||||
doNothing().whenever(mock).startActivity(any())
|
||||
}
|
||||
private val context: Context =
|
||||
spy(ApplicationProvider.getApplicationContext()) {
|
||||
doNothing().whenever(mock).startActivity(any())
|
||||
}
|
||||
|
||||
private val displayInfo = PrintServiceDisplayInfo(
|
||||
title = TITLE,
|
||||
isEnabled = true,
|
||||
summary = SUMMARY,
|
||||
icon = context.getDrawable(R.drawable.ic_settings_print)!!,
|
||||
componentName = "ComponentName",
|
||||
)
|
||||
private val displayInfo =
|
||||
PrintServiceDisplayInfo(
|
||||
title = TITLE,
|
||||
isEnabled = true,
|
||||
summary = SUMMARY,
|
||||
icon = context.getDrawable(R.drawable.ic_settings_print)!!,
|
||||
componentName = "ComponentName",
|
||||
)
|
||||
|
||||
@Test
|
||||
fun printService_titleDisplayed() {
|
||||
composeTestRule.setContent {
|
||||
PrintService(displayInfo)
|
||||
}
|
||||
composeTestRule.setContent { PrintService(displayInfo) }
|
||||
|
||||
composeTestRule.onNodeWithText(TITLE).isDisplayed()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun printService_summaryDisplayed() {
|
||||
composeTestRule.setContent {
|
||||
PrintService(displayInfo)
|
||||
}
|
||||
composeTestRule.setContent { PrintService(displayInfo) }
|
||||
|
||||
composeTestRule.onNodeWithText(SUMMARY).isDisplayed()
|
||||
}
|
||||
@@ -80,25 +80,43 @@ class PrintSettingsPageProviderTest {
|
||||
@Test
|
||||
fun printService_onClick() {
|
||||
composeTestRule.setContent {
|
||||
CompositionLocalProvider(LocalContext provides context) {
|
||||
PrintService(displayInfo)
|
||||
}
|
||||
CompositionLocalProvider(LocalContext provides context) { PrintService(displayInfo) }
|
||||
}
|
||||
|
||||
composeTestRule.onNodeWithText(TITLE).performClick()
|
||||
|
||||
verify(context).startActivity(argThat {
|
||||
val fragment = getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)
|
||||
val arguments = getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)!!
|
||||
fragment == PrintServiceSettingsFragment::class.qualifiedName &&
|
||||
arguments.getBoolean(EXTRA_CHECKED) == displayInfo.isEnabled &&
|
||||
arguments.getString(EXTRA_TITLE) == displayInfo.title &&
|
||||
arguments.getString(EXTRA_SERVICE_COMPONENT_NAME) == displayInfo.componentName
|
||||
})
|
||||
verify(context)
|
||||
.startActivity(
|
||||
argThat {
|
||||
val fragment = getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)
|
||||
val arguments = getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)!!
|
||||
fragment == PrintServiceSettingsFragment::class.qualifiedName &&
|
||||
arguments.getBoolean(EXTRA_CHECKED) == displayInfo.isEnabled &&
|
||||
arguments.getString(EXTRA_TITLE) == displayInfo.title &&
|
||||
arguments.getString(EXTRA_SERVICE_COMPONENT_NAME) ==
|
||||
displayInfo.componentName
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun addPrintService_onClick() {
|
||||
composeTestRule.setContent {
|
||||
CompositionLocalProvider(LocalContext provides context) {
|
||||
AddPrintService(flowOf(SEARCH_URI))
|
||||
}
|
||||
}
|
||||
|
||||
composeTestRule
|
||||
.onNodeWithText(context.getString(R.string.print_menu_item_add_service))
|
||||
.performClick()
|
||||
|
||||
verify(context).startActivity(argThat { data == Uri.parse(SEARCH_URI) })
|
||||
}
|
||||
|
||||
private companion object {
|
||||
const val TITLE = "Title"
|
||||
const val SUMMARY = "Summary"
|
||||
const val SEARCH_URI = "search.uri"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user