Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87e0e30e authored by Ram Peri's avatar Ram Peri
Browse files

Move Native Graphics initialization into ViewScreenshotTestRule.

Test: atest SystemUIGoogleRoboRNGTests
Bug: 276453135
Change-Id: I7cdcd01c20b8d9c377404c57de6fc375bfeb0648
parent 0b0a96a8
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -62,6 +62,15 @@ open class ViewScreenshotTestRule(
    private val isRobolectric = if (Build.FINGERPRINT.contains("robolectric")) true else false

    override fun apply(base: Statement, description: Description): Statement {
        if (isRobolectric) {
            // In robolectric mode, we enable NATIVE graphics and unpack font and icu files.
            // We need to use reflection, as this library is only needed and therefore
            //  only available in deviceless mode.
            val nativeLoaderClassName = "org.robolectric.nativeruntime.DefaultNativeRuntimeLoader"
            val defaultNativeRuntimeLoader = Class.forName(nativeLoaderClassName)
            System.setProperty("robolectric.graphicsMode", "NATIVE")
            defaultNativeRuntimeLoader.getMethod("injectAndLoad").invoke(null)
        }
        val ruleToApply = if (isRobolectric) roboRule else delegateRule
        return ruleToApply.apply(base, description)
    }