Giter Site home page Giter Site logo

sergio-sastre / fontsizetestrule Goto Github PK

View Code? Open in Web Editor NEW
19.0 1.0 1.0 204 KB

An ActivityScenario extension and a Junit4 TestRule to simulate changing the font size on a device/emulator, as it would be done by going to Settings > display > Font size

License: Apache License 2.0

Kotlin 100.00%
android kotlin testing instrumentation-tests

fontsizetestrule's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

akjaw

fontsizetestrule's Issues

Problem with Emulators with API 26+

Hello, I couldn't find any guidelines for issues so I'll just explain the problem I'm experiencing.

I have a Jetpack Compose project for which I want to try out Snapshot testing. I was following the README for the RoadToEffectiveSnapshotTesting project and created a parameterized test where the font changes.

Shot only supports API's 26+ to create a screenshot for composables. However when I tried using this TestRule on API 26, 28 and 30 the font did not change. Neither in my own project nor in the RoadToEffectiveSnapshotTesting one.

I'm not sure if this is a problem with my machine / emulators or the TestRule. I wasn't able to debug the TestRule because I only had access to the decompiled sources (maybe it would be possible to expose the source code through the library to make debugging easier?).

My current hack to change the font looks like this:

@Before
fun setUp() {
    InstrumentationRegistry
        .getInstrumentation()
        .uiAutomation
        .executeShellCommand("settings put system font_scale ${data.fontScale.value}")
        .apply {
            Thread.sleep(2000)
            close()
        }
}

@After
fun tearDown() {
    InstrumentationRegistry
        .getInstrumentation()
        .uiAutomation
        .executeShellCommand("settings put system font_scale 1.0")
        .apply {
            Thread.sleep(1000)
            close()
        }
}

But this is only an temporary solution ๐Ÿ˜„

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.