Skip to content

Commit

Permalink
Set fixed density for ViewConfigurationTest
Browse files Browse the repository at this point in the history
Work with:

./gradlew -Pandroid.sdk.channel=3 nexusOneApi34DebugAndroidTest

Signed-off-by: utzcoz <utzcoz@outlook.com>
  • Loading branch information
utzcoz committed May 5, 2024
1 parent 8f2e01e commit 9797e30
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/tests.yml
Expand Up @@ -138,8 +138,8 @@ jobs:
script: echo "Generated AVD snapshot for caching."

- name: Run device tests
# We need to use adb shell wm density to reset device's density to ensure it can work
# with some tests correctly.
# We need to use adb shell wm density to reset device's density to use fixed density
# for all devices. Hope it can improve the stability of Emulator testing.
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
Expand Down
Expand Up @@ -3,7 +3,10 @@
import static android.os.Build.VERSION_CODES.O_MR1;
import static com.google.common.truth.Truth.assertThat;

import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
import android.util.DisplayMetrics;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import java.lang.reflect.Method;
Expand All @@ -23,6 +26,15 @@ public final class ViewConfigurationTest {

@Before
public void setUp() {
Resources resources = ApplicationProvider.getApplicationContext().getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
metrics.density = 1.5f;
metrics.densityDpi = 240;
metrics.setTo(metrics);
Configuration configuration = resources.getConfiguration();
configuration.densityDpi = 240;
configuration.setTo(configuration);
resources.updateConfiguration(configuration, metrics);
density =
ApplicationProvider.getApplicationContext().getResources().getDisplayMetrics().density;
viewConfiguration = ViewConfiguration.get(ApplicationProvider.getApplicationContext());
Expand All @@ -49,7 +61,6 @@ public void isFadingMarqueeEnabled_returnsFalse() throws Exception {
assertThat(isFadingMarqueeEnabled).isFalse();
}

// Emulators have hdpi density by default, so match this in Robolectric for consistency.
@Config(qualifiers = "hdpi")
@Test
public void overfling_distance() {
Expand Down

0 comments on commit 9797e30

Please sign in to comment.