| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stdlib.h> | 5 #include <stdlib.h> |
| 6 | 6 |
| 7 #include "skia/ext/platform_canvas.h" | 7 #include "skia/ext/platform_canvas.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 #include "third_party/skia/include/core/SkBitmap.h" | 9 #include "third_party/skia/include/core/SkBitmap.h" |
| 10 #include "third_party/skia/include/core/SkColorPriv.h" | 10 #include "third_party/skia/include/core/SkColorPriv.h" |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 SkBitmap bitmap; | 121 SkBitmap bitmap; |
| 122 EXPECT_DOUBLE_EQ(1.0, CalculateBoringScore(bitmap)); | 122 EXPECT_DOUBLE_EQ(1.0, CalculateBoringScore(bitmap)); |
| 123 } | 123 } |
| 124 | 124 |
| 125 TEST(ColorUtils, CalculateBoringScore_SingleColor) { | 125 TEST(ColorUtils, CalculateBoringScore_SingleColor) { |
| 126 const gfx::Size kSize(20, 10); | 126 const gfx::Size kSize(20, 10); |
| 127 gfx::Canvas canvas(kSize, 1.0f, true); | 127 gfx::Canvas canvas(kSize, 1.0f, true); |
| 128 // Fill all pixels in black. | 128 // Fill all pixels in black. |
| 129 canvas.FillRect(gfx::Rect(kSize), SK_ColorBLACK); | 129 canvas.FillRect(gfx::Rect(kSize), SK_ColorBLACK); |
| 130 | 130 |
| 131 SkBitmap bitmap = skia::ReadPixels(canvas.sk_canvas()); | 131 SkBitmap bitmap = canvas.ToBitmap(); |
| 132 // The thumbnail should deserve the highest boring score. | 132 // The thumbnail should deserve the highest boring score. |
| 133 EXPECT_DOUBLE_EQ(1.0, CalculateBoringScore(bitmap)); | 133 EXPECT_DOUBLE_EQ(1.0, CalculateBoringScore(bitmap)); |
| 134 } | 134 } |
| 135 | 135 |
| 136 TEST(ColorUtils, CalculateBoringScore_TwoColors) { | 136 TEST(ColorUtils, CalculateBoringScore_TwoColors) { |
| 137 const gfx::Size kSize(20, 10); | 137 const gfx::Size kSize(20, 10); |
| 138 | 138 |
| 139 gfx::Canvas canvas(kSize, 1.0f, true); | 139 gfx::Canvas canvas(kSize, 1.0f, true); |
| 140 // Fill all pixels in black. | 140 // Fill all pixels in black. |
| 141 canvas.FillRect(gfx::Rect(kSize), SK_ColorBLACK); | 141 canvas.FillRect(gfx::Rect(kSize), SK_ColorBLACK); |
| 142 // Fill the left half pixels in white. | 142 // Fill the left half pixels in white. |
| 143 canvas.FillRect(gfx::Rect(0, 0, kSize.width() / 2, kSize.height()), | 143 canvas.FillRect(gfx::Rect(0, 0, kSize.width() / 2, kSize.height()), |
| 144 SK_ColorWHITE); | 144 SK_ColorWHITE); |
| 145 | 145 |
| 146 SkBitmap bitmap = skia::ReadPixels(canvas.sk_canvas()); | 146 SkBitmap bitmap = canvas.ToBitmap(); |
| 147 ASSERT_EQ(kSize.width(), bitmap.width()); | 147 ASSERT_EQ(kSize.width(), bitmap.width()); |
| 148 ASSERT_EQ(kSize.height(), bitmap.height()); | 148 ASSERT_EQ(kSize.height(), bitmap.height()); |
| 149 // The thumbnail should be less boring because two colors are used. | 149 // The thumbnail should be less boring because two colors are used. |
| 150 EXPECT_DOUBLE_EQ(0.5, CalculateBoringScore(bitmap)); | 150 EXPECT_DOUBLE_EQ(0.5, CalculateBoringScore(bitmap)); |
| 151 } | 151 } |
| 152 | 152 |
| 153 TEST(ColorUtils, AlphaBlend) { | 153 TEST(ColorUtils, AlphaBlend) { |
| 154 SkColor fore = SkColorSetARGB(255, 200, 200, 200); | 154 SkColor fore = SkColorSetARGB(255, 200, 200, 200); |
| 155 SkColor back = SkColorSetARGB(255, 100, 100, 100); | 155 SkColor back = SkColorSetARGB(255, 100, 100, 100); |
| 156 | 156 |
| 157 EXPECT_TRUE(AlphaBlend(fore, back, 255) == fore); | 157 EXPECT_TRUE(AlphaBlend(fore, back, 255) == fore); |
| 158 EXPECT_TRUE(AlphaBlend(fore, back, 0) == back); | 158 EXPECT_TRUE(AlphaBlend(fore, back, 0) == back); |
| 159 | 159 |
| 160 // One is fully transparent, result is partially transparent. | 160 // One is fully transparent, result is partially transparent. |
| 161 back = SkColorSetA(back, 0); | 161 back = SkColorSetA(back, 0); |
| 162 EXPECT_EQ(136U, SkColorGetA(AlphaBlend(fore, back, 136))); | 162 EXPECT_EQ(136U, SkColorGetA(AlphaBlend(fore, back, 136))); |
| 163 | 163 |
| 164 // Both are fully transparent, result is fully transparent. | 164 // Both are fully transparent, result is fully transparent. |
| 165 fore = SkColorSetA(fore, 0); | 165 fore = SkColorSetA(fore, 0); |
| 166 EXPECT_EQ(0U, SkColorGetA(AlphaBlend(fore, back, 255))); | 166 EXPECT_EQ(0U, SkColorGetA(AlphaBlend(fore, back, 255))); |
| 167 } | 167 } |
| 168 | 168 |
| 169 } // namespace color_utils | 169 } // namespace color_utils |
| OLD | NEW |