Commit 4c644702 authored by Aran Gilman's avatar Aran Gilman Committed by Commit Bot

Re-enable GraphicsContextDarkModeTests on Android.

Android appears to use a different color encoding scheme than the other
platforms (ABGR vs ARGB). Retrieving the colors via *getAddr32()
returns the "raw" color with the platform-specific encoding. getColor()
reorders the bytes to be in ARGB no matter what platform it's on.

I also used existing named constants for the colors to make the tests a
bit easier to read.

Bug: 850782
Change-Id: Ic756fee15fa685cafecfc21f57b2565bf8df08a2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1594824
Commit-Queue: Aran Gilman <gilmanmh@google.com>
Reviewed-by: default avatarRune Lillesveen <futhark@chromium.org>
Reviewed-by: default avatarStephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#657760}
parent 4e8786e5
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
#include "third_party/skia/include/core/SkShader.h" #include "third_party/skia/include/core/SkShader.h"
namespace blink { namespace blink {
namespace {
#define EXPECT_EQ_RECT(a, b) \ #define EXPECT_EQ_RECT(a, b) \
EXPECT_EQ(a.x(), b.x()); \ EXPECT_EQ(a.x(), b.x()); \
...@@ -156,14 +157,10 @@ class GraphicsContextDarkModeTest : public testing::Test { ...@@ -156,14 +157,10 @@ class GraphicsContextDarkModeTest : public testing::Test {
} }
void DrawColorsToContext() { void DrawColorsToContext() {
Color black(0.0f, 0.0f, 0.0f, 1.0f); context_->FillRect(FloatRect(0, 0, 1, 1), Color(SK_ColorBLACK));
Color white(1.0f, 1.0f, 1.0f, 1.0f); context_->FillRect(FloatRect(1, 0, 1, 1), Color(SK_ColorWHITE));
Color red(1.0f, 0.0f, 0.0f, 1.0f); context_->FillRect(FloatRect(2, 0, 1, 1), Color(SK_ColorRED));
Color gray(0.5f, 0.5f, 0.5f, 1.0f); context_->FillRect(FloatRect(3, 0, 1, 1), Color(SK_ColorGRAY));
context_->FillRect(FloatRect(0, 0, 1, 1), black);
context_->FillRect(FloatRect(1, 0, 1, 1), white);
context_->FillRect(FloatRect(2, 0, 1, 1), red);
context_->FillRect(FloatRect(3, 0, 1, 1), gray);
// Capture the result in the bitmap. // Capture the result in the bitmap.
canvas_->drawPicture(context_->EndRecording()); canvas_->drawPicture(context_->EndRecording());
} }
...@@ -176,28 +173,16 @@ class GraphicsContextDarkModeTest : public testing::Test { ...@@ -176,28 +173,16 @@ class GraphicsContextDarkModeTest : public testing::Test {
// This is just a baseline test, compare against the other variants // This is just a baseline test, compare against the other variants
// of the test below, where dark mode is enabled. // of the test below, where dark mode is enabled.
// TODO(crbug.com/850782): Reenable this. TEST_F(GraphicsContextDarkModeTest, NoDarkMode) {
#if defined(OS_ANDROID)
#define MAYBE_NoDarkMode DISABLED_NoDarkMode
#else
#define MAYBE_NoDarkMode NoDarkMode
#endif
TEST_F(GraphicsContextDarkModeTest, MAYBE_NoDarkMode) {
DrawColorsToContext(); DrawColorsToContext();
EXPECT_EQ(0xff000000, *bitmap_.getAddr32(0, 0)); EXPECT_EQ(SK_ColorBLACK, bitmap_.getColor(0, 0));
EXPECT_EQ(0xffffffff, *bitmap_.getAddr32(1, 0)); EXPECT_EQ(SK_ColorWHITE, bitmap_.getColor(1, 0));
EXPECT_EQ(0xffff0000, *bitmap_.getAddr32(2, 0)); EXPECT_EQ(SK_ColorRED, bitmap_.getColor(2, 0));
EXPECT_EQ(0xff808080, *bitmap_.getAddr32(3, 0)); EXPECT_EQ(SK_ColorGRAY, bitmap_.getColor(3, 0));
} }
// TODO(crbug.com/850782): Reenable this. TEST_F(GraphicsContextDarkModeTest, DarkModeOff) {
#if defined(OS_ANDROID)
#define MAYBE_DarkModeOff DISABLED_DarkModeOff
#else
#define MAYBE_DarkModeOff DarkModeOff
#endif
TEST_F(GraphicsContextDarkModeTest, MAYBE_DarkModeOff) {
DarkModeSettings settings; DarkModeSettings settings;
settings.mode = DarkMode::kOff; settings.mode = DarkMode::kOff;
settings.grayscale = false; settings.grayscale = false;
...@@ -206,21 +191,15 @@ TEST_F(GraphicsContextDarkModeTest, MAYBE_DarkModeOff) { ...@@ -206,21 +191,15 @@ TEST_F(GraphicsContextDarkModeTest, MAYBE_DarkModeOff) {
DrawColorsToContext(); DrawColorsToContext();
EXPECT_EQ(0xff000000, *bitmap_.getAddr32(0, 0)); EXPECT_EQ(SK_ColorBLACK, bitmap_.getColor(0, 0));
EXPECT_EQ(0xffffffff, *bitmap_.getAddr32(1, 0)); EXPECT_EQ(SK_ColorWHITE, bitmap_.getColor(1, 0));
EXPECT_EQ(0xffff0000, *bitmap_.getAddr32(2, 0)); EXPECT_EQ(SK_ColorRED, bitmap_.getColor(2, 0));
EXPECT_EQ(0xff808080, *bitmap_.getAddr32(3, 0)); EXPECT_EQ(SK_ColorGRAY, bitmap_.getColor(3, 0));
} }
// Simple invert for testing. Each color component |c| // Simple invert for testing. Each color component |c|
// is replaced with |255 - c| for easy testing. // is replaced with |255 - c| for easy testing.
// TODO(crbug.com/850782): Reenable this. TEST_F(GraphicsContextDarkModeTest, SimpleInvertForTesting) {
#if defined(OS_ANDROID)
#define MAYBE_SimpleInvertForTesting DISABLED_SimpleInvertForTesting
#else
#define MAYBE_SimpleInvertForTesting SimpleInvertForTesting
#endif
TEST_F(GraphicsContextDarkModeTest, MAYBE_SimpleInvertForTesting) {
DarkModeSettings settings; DarkModeSettings settings;
settings.mode = DarkMode::kSimpleInvertForTesting; settings.mode = DarkMode::kSimpleInvertForTesting;
settings.grayscale = false; settings.grayscale = false;
...@@ -229,20 +208,14 @@ TEST_F(GraphicsContextDarkModeTest, MAYBE_SimpleInvertForTesting) { ...@@ -229,20 +208,14 @@ TEST_F(GraphicsContextDarkModeTest, MAYBE_SimpleInvertForTesting) {
DrawColorsToContext(); DrawColorsToContext();
EXPECT_EQ(0xffffffff, *bitmap_.getAddr32(0, 0)); EXPECT_EQ(SK_ColorWHITE, bitmap_.getColor(0, 0));
EXPECT_EQ(0xff000000, *bitmap_.getAddr32(1, 0)); EXPECT_EQ(SK_ColorBLACK, bitmap_.getColor(1, 0));
EXPECT_EQ(0xff00ffff, *bitmap_.getAddr32(2, 0)); EXPECT_EQ(SK_ColorCYAN, bitmap_.getColor(2, 0));
EXPECT_EQ(0xff7f7f7f, *bitmap_.getAddr32(3, 0)); EXPECT_EQ(0xff777777, bitmap_.getColor(3, 0));
} }
// Invert brightness (with gamma correction). // Invert brightness (with gamma correction).
// TODO(crbug.com/850782): Reenable this. TEST_F(GraphicsContextDarkModeTest, InvertBrightness) {
#if defined(OS_ANDROID)
#define MAYBE_InvertBrightness DISABLED_InvertBrightness
#else
#define MAYBE_InvertBrightness InvertBrightness
#endif
TEST_F(GraphicsContextDarkModeTest, MAYBE_InvertBrightness) {
DarkModeSettings settings; DarkModeSettings settings;
settings.mode = DarkMode::kInvertBrightness; settings.mode = DarkMode::kInvertBrightness;
settings.grayscale = false; settings.grayscale = false;
...@@ -251,20 +224,14 @@ TEST_F(GraphicsContextDarkModeTest, MAYBE_InvertBrightness) { ...@@ -251,20 +224,14 @@ TEST_F(GraphicsContextDarkModeTest, MAYBE_InvertBrightness) {
DrawColorsToContext(); DrawColorsToContext();
EXPECT_EQ(0xffffffff, *bitmap_.getAddr32(0, 0)); EXPECT_EQ(SK_ColorWHITE, bitmap_.getColor(0, 0));
EXPECT_EQ(0xff000000, *bitmap_.getAddr32(1, 0)); EXPECT_EQ(SK_ColorBLACK, bitmap_.getColor(1, 0));
EXPECT_EQ(0xff00ffff, *bitmap_.getAddr32(2, 0)); EXPECT_EQ(SK_ColorCYAN, bitmap_.getColor(2, 0));
EXPECT_EQ(0xffdddddd, *bitmap_.getAddr32(3, 0)); EXPECT_EQ(0xffd8d8d8, bitmap_.getColor(3, 0));
} }
// Invert lightness (in HSL space). // Invert lightness (in HSL space).
// TODO(crbug.com/850782): Reenable this. TEST_F(GraphicsContextDarkModeTest, InvertLightness) {
#if defined(OS_ANDROID)
#define MAYBE_InvertLightness DISABLED_InvertLightness
#else
#define MAYBE_InvertLightness InvertLightness
#endif
TEST_F(GraphicsContextDarkModeTest, MAYBE_InvertLightness) {
DarkModeSettings settings; DarkModeSettings settings;
settings.mode = DarkMode::kInvertLightness; settings.mode = DarkMode::kInvertLightness;
settings.grayscale = false; settings.grayscale = false;
...@@ -273,10 +240,10 @@ TEST_F(GraphicsContextDarkModeTest, MAYBE_InvertLightness) { ...@@ -273,10 +240,10 @@ TEST_F(GraphicsContextDarkModeTest, MAYBE_InvertLightness) {
DrawColorsToContext(); DrawColorsToContext();
EXPECT_EQ(0xffffffff, *bitmap_.getAddr32(0, 0)); EXPECT_EQ(SK_ColorWHITE, bitmap_.getColor(0, 0));
EXPECT_EQ(0xff000000, *bitmap_.getAddr32(1, 0)); EXPECT_EQ(SK_ColorBLACK, bitmap_.getColor(1, 0));
EXPECT_EQ(0xffff0000, *bitmap_.getAddr32(2, 0)); EXPECT_EQ(SK_ColorRED, bitmap_.getColor(2, 0));
EXPECT_EQ(0xffdddddd, *bitmap_.getAddr32(3, 0)); EXPECT_EQ(0xffd8d8d8, bitmap_.getColor(3, 0));
} }
// Invert lightness plus grayscale. // Invert lightness plus grayscale.
...@@ -289,19 +256,13 @@ TEST_F(GraphicsContextDarkModeTest, InvertLightnessPlusGrayscale) { ...@@ -289,19 +256,13 @@ TEST_F(GraphicsContextDarkModeTest, InvertLightnessPlusGrayscale) {
DrawColorsToContext(); DrawColorsToContext();
EXPECT_EQ(0xffffffff, *bitmap_.getAddr32(0, 0)); EXPECT_EQ(SK_ColorWHITE, bitmap_.getColor(0, 0));
EXPECT_EQ(0xff000000, *bitmap_.getAddr32(1, 0)); EXPECT_EQ(SK_ColorBLACK, bitmap_.getColor(1, 0));
EXPECT_EQ(0xffe2e2e2, *bitmap_.getAddr32(2, 0)); EXPECT_EQ(0xffe2e2e2, bitmap_.getColor(2, 0));
EXPECT_EQ(0xffdddddd, *bitmap_.getAddr32(3, 0)); EXPECT_EQ(0xffd8d8d8, bitmap_.getColor(3, 0));
} }
// TODO(crbug.com/850782): Reenable this. TEST_F(GraphicsContextDarkModeTest, InvertLightnessPlusContrast) {
#if defined(OS_ANDROID)
#define MAYBE_InvertLightnessPlusContrast DISABLED_InvertLightnessPlusContrast
#else
#define MAYBE_InvertLightnessPlusContrast InvertLightnessPlusContrast
#endif
TEST_F(GraphicsContextDarkModeTest, MAYBE_InvertLightnessPlusContrast) {
DarkModeSettings settings; DarkModeSettings settings;
settings.mode = DarkMode::kInvertLightness; settings.mode = DarkMode::kInvertLightness;
settings.grayscale = false; settings.grayscale = false;
...@@ -310,10 +271,11 @@ TEST_F(GraphicsContextDarkModeTest, MAYBE_InvertLightnessPlusContrast) { ...@@ -310,10 +271,11 @@ TEST_F(GraphicsContextDarkModeTest, MAYBE_InvertLightnessPlusContrast) {
DrawColorsToContext(); DrawColorsToContext();
EXPECT_EQ(0xffffffff, *bitmap_.getAddr32(0, 0)); EXPECT_EQ(SK_ColorWHITE, bitmap_.getColor(0, 0));
EXPECT_EQ(0xff000000, *bitmap_.getAddr32(1, 0)); EXPECT_EQ(SK_ColorBLACK, bitmap_.getColor(1, 0));
EXPECT_EQ(0xffff0000, *bitmap_.getAddr32(2, 0)); EXPECT_EQ(SK_ColorRED, bitmap_.getColor(2, 0));
EXPECT_EQ(0xffeeeeee, *bitmap_.getAddr32(3, 0)); EXPECT_EQ(0xffe7e7e7, bitmap_.getColor(3, 0));
} }
} // namespace
} // namespace blink } // namespace blink
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment