Merge "Add annotation to simulate RTL in tests." into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
79809b448c
+17
@@ -37,6 +37,7 @@ import com.android.launcher3.util.TestUtil
|
||||
import com.android.quickstep.AllAppsActionManager
|
||||
import java.lang.reflect.Field
|
||||
import java.lang.reflect.ParameterizedType
|
||||
import java.util.Locale
|
||||
import java.util.Optional
|
||||
import org.junit.Assume.assumeTrue
|
||||
import org.junit.rules.TestRule
|
||||
@@ -119,6 +120,15 @@ class TaskbarUnitTestRule(
|
||||
}
|
||||
}
|
||||
|
||||
if (description.getAnnotation(ForceRtl::class.java) != null) {
|
||||
// Needs to be set on window context instead of sandbox context, because it does
|
||||
// does not propagate between them. However, this change will impact created
|
||||
// TaskbarActivityContext instances, since they wrap the window context.
|
||||
taskbarManager.windowContext.resources.configuration.setLayoutDirection(
|
||||
RTL_LOCALE
|
||||
)
|
||||
}
|
||||
|
||||
try {
|
||||
TaskbarViewController.enableModelLoadingForTests(false)
|
||||
|
||||
@@ -191,4 +201,11 @@ class TaskbarUnitTestRule(
|
||||
@Retention(AnnotationRetention.RUNTIME)
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION)
|
||||
annotation class NavBarKidsMode
|
||||
|
||||
/** Forces RTL UI for tests. */
|
||||
@Retention(AnnotationRetention.RUNTIME)
|
||||
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION)
|
||||
annotation class ForceRtl
|
||||
}
|
||||
|
||||
private val RTL_LOCALE = Locale.of("ar", "XB")
|
||||
|
||||
+10
@@ -19,11 +19,13 @@ package com.android.launcher3.taskbar.rules
|
||||
import android.platform.test.annotations.DisableFlags
|
||||
import android.platform.test.annotations.EnableFlags
|
||||
import android.platform.test.flag.junit.SetFlagsRule
|
||||
import com.android.launcher3.Utilities
|
||||
import com.android.launcher3.taskbar.TaskbarActivityContext
|
||||
import com.android.launcher3.taskbar.TaskbarKeyguardController
|
||||
import com.android.launcher3.taskbar.TaskbarManager
|
||||
import com.android.launcher3.taskbar.TaskbarStashController
|
||||
import com.android.launcher3.taskbar.bubbles.BubbleBarController
|
||||
import com.android.launcher3.taskbar.rules.TaskbarUnitTestRule.ForceRtl
|
||||
import com.android.launcher3.taskbar.rules.TaskbarUnitTestRule.InjectController
|
||||
import com.android.launcher3.taskbar.rules.TaskbarUnitTestRule.NavBarKidsMode
|
||||
import com.android.launcher3.taskbar.rules.TaskbarUnitTestRule.UserSetupMode
|
||||
@@ -197,6 +199,14 @@ class TaskbarUnitTestRuleTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testForceRtlAnnotation_setsActivityContextLayoutDirection() {
|
||||
@ForceRtl class Rtl
|
||||
onSetup(description = Description.createSuiteDescription(Rtl::class.java)) {
|
||||
assertThat(Utilities.isRtl(activityContext.resources)).isTrue()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes [runTest] after the [testRule] setup phase completes.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user