Loading tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonPreviewPreferenceControllerTest.java +3 −2 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.widget.ImageView; import androidx.test.core.app.ApplicationProvider; import com.android.settings.R; import com.android.settings.testutils.ImageTestUtils; import org.junit.Before; import org.junit.Rule; Loading Loading @@ -73,8 +74,8 @@ public class AccessibilityButtonPreviewPreferenceControllerTest { final Drawable navigationBarDrawable = mContext.getDrawable( R.drawable.accessibility_button_navigation); assertThat(mController.mPreview.getDrawable().getConstantState()).isEqualTo( navigationBarDrawable.getConstantState()); assertThat(ImageTestUtils.drawableToBitmap(mController.mPreview.getDrawable()).sameAs( ImageTestUtils.drawableToBitmap(navigationBarDrawable))).isTrue(); } @Test Loading tests/robotests/src/com/android/settings/accessibility/FloatingMenuLayerDrawableTest.java +5 −5 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.graphics.drawable.Drawable; import androidx.test.core.app.ApplicationProvider; import com.android.settings.R; import com.android.settings.testutils.ImageTestUtils; import org.junit.Test; import org.junit.runner.RunWith; Loading Loading @@ -51,11 +52,10 @@ public class FloatingMenuLayerDrawableTest { final Drawable actual1stDrawable = actualDrawable.getDrawable(0); final Drawable actual2ndDrawable = actualDrawable.getDrawable(1); // These are VectorDrawables, so it can use getConstantState() to compare. assertThat(actual1stDrawable.getConstantState()).isEqualTo( expected1stDrawable.getConstantState()); assertThat(actual2ndDrawable.getConstantState()).isEqualTo( expected2ndDrawable.getConstantState()); assertThat(ImageTestUtils.drawableToBitmap(actual1stDrawable).sameAs( ImageTestUtils.drawableToBitmap(expected1stDrawable))).isTrue(); assertThat(ImageTestUtils.drawableToBitmap(actual2ndDrawable).sameAs( ImageTestUtils.drawableToBitmap(expected2ndDrawable))).isTrue(); } @Test Loading tests/robotests/src/com/android/settings/testutils/ImageTestUtils.java 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.testutils; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.drawable.Drawable; import androidx.annotation.Nullable; /** * Utilities for testing images within unit tests. */ public class ImageTestUtils { /** Converts the drawable object to bitmap. */ @Nullable public static Bitmap drawableToBitmap(@Nullable Drawable drawable) { if (drawable == null) { return null; } final Bitmap bitmap = Bitmap.createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); final Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); drawable.draw(canvas); return bitmap; } } Loading
tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonPreviewPreferenceControllerTest.java +3 −2 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.widget.ImageView; import androidx.test.core.app.ApplicationProvider; import com.android.settings.R; import com.android.settings.testutils.ImageTestUtils; import org.junit.Before; import org.junit.Rule; Loading Loading @@ -73,8 +74,8 @@ public class AccessibilityButtonPreviewPreferenceControllerTest { final Drawable navigationBarDrawable = mContext.getDrawable( R.drawable.accessibility_button_navigation); assertThat(mController.mPreview.getDrawable().getConstantState()).isEqualTo( navigationBarDrawable.getConstantState()); assertThat(ImageTestUtils.drawableToBitmap(mController.mPreview.getDrawable()).sameAs( ImageTestUtils.drawableToBitmap(navigationBarDrawable))).isTrue(); } @Test Loading
tests/robotests/src/com/android/settings/accessibility/FloatingMenuLayerDrawableTest.java +5 −5 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.graphics.drawable.Drawable; import androidx.test.core.app.ApplicationProvider; import com.android.settings.R; import com.android.settings.testutils.ImageTestUtils; import org.junit.Test; import org.junit.runner.RunWith; Loading Loading @@ -51,11 +52,10 @@ public class FloatingMenuLayerDrawableTest { final Drawable actual1stDrawable = actualDrawable.getDrawable(0); final Drawable actual2ndDrawable = actualDrawable.getDrawable(1); // These are VectorDrawables, so it can use getConstantState() to compare. assertThat(actual1stDrawable.getConstantState()).isEqualTo( expected1stDrawable.getConstantState()); assertThat(actual2ndDrawable.getConstantState()).isEqualTo( expected2ndDrawable.getConstantState()); assertThat(ImageTestUtils.drawableToBitmap(actual1stDrawable).sameAs( ImageTestUtils.drawableToBitmap(expected1stDrawable))).isTrue(); assertThat(ImageTestUtils.drawableToBitmap(actual2ndDrawable).sameAs( ImageTestUtils.drawableToBitmap(expected2ndDrawable))).isTrue(); } @Test Loading
tests/robotests/src/com/android/settings/testutils/ImageTestUtils.java 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.testutils; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.drawable.Drawable; import androidx.annotation.Nullable; /** * Utilities for testing images within unit tests. */ public class ImageTestUtils { /** Converts the drawable object to bitmap. */ @Nullable public static Bitmap drawableToBitmap(@Nullable Drawable drawable) { if (drawable == null) { return null; } final Bitmap bitmap = Bitmap.createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); final Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); drawable.draw(canvas); return bitmap; } }