Chromium Code Reviews| Index: cc/ipc/struct_traits_unittest.cc |
| diff --git a/cc/ipc/struct_traits_unittest.cc b/cc/ipc/struct_traits_unittest.cc |
| index fccf2926d12749fddf920cf53eb8813821e0fb68..9bc4405d5f464484e27d8f3738c171104a2e75df 100644 |
| --- a/cc/ipc/struct_traits_unittest.cc |
| +++ b/cc/ipc/struct_traits_unittest.cc |
| @@ -8,6 +8,8 @@ |
| #include "cc/quads/render_pass_id.h" |
| #include "mojo/public/cpp/bindings/binding_set.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| +#include "third_party/skia/include/core/SkString.h" |
| +#include "third_party/skia/include/effects/SkDropShadowImageFilter.h" |
| namespace cc { |
| @@ -35,6 +37,12 @@ class StructTraitsTest : public testing::Test, public mojom::TraitsTestService { |
| callback.Run(c); |
| } |
| + void EchoFilterOperation( |
| + const FilterOperation& f, |
| + const EchoFilterOperationCallback& callback) override { |
| + callback.Run(f); |
| + } |
| + |
| void EchoRenderPassId(const RenderPassId& r, |
| const EchoRenderPassIdCallback& callback) override { |
| callback.Run(r); |
| @@ -178,6 +186,61 @@ TEST_F(StructTraitsTest, CompositorFrameMetadata) { |
| EXPECT_EQ(referenced_surfaces[i], output.referenced_surfaces[i]); |
| } |
| +TEST_F(StructTraitsTest, FilterOperation) { |
| + const FilterOperation inputs[] = { |
| + FilterOperation::CreateBlurFilter(20), |
| + FilterOperation::CreateDropShadowFilter(gfx::Point(4, 4), 4.0f, |
| + SkColorSetARGB(255, 40, 0, 0)), |
| + FilterOperation::CreateReferenceFilter(SkDropShadowImageFilter::Make( |
| + SkIntToScalar(3), SkIntToScalar(8), SkIntToScalar(4), |
| + SkIntToScalar(9), SK_ColorBLACK, |
| + SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode, |
| + nullptr))}; |
| + mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
| + for (const auto& input : inputs) { |
| + FilterOperation output; |
| + proxy->EchoFilterOperation(input, &output); |
| + EXPECT_EQ(input.type(), output.type()); |
| + switch (input.type()) { |
| + case FilterOperation::GRAYSCALE: |
| + case FilterOperation::SEPIA: |
| + case FilterOperation::SATURATE: |
| + case FilterOperation::HUE_ROTATE: |
| + case FilterOperation::INVERT: |
| + case FilterOperation::BRIGHTNESS: |
| + case FilterOperation::SATURATING_BRIGHTNESS: |
| + case FilterOperation::CONTRAST: |
| + case FilterOperation::OPACITY: |
| + case FilterOperation::BLUR: |
| + EXPECT_EQ(input.amount(), output.amount()); |
| + continue; |
|
yzshen1
2016/06/08 16:25:16
It seems more common to use "break;" here.
Fady Samuel
2016/06/08 17:04:19
Done.
|
| + case FilterOperation::DROP_SHADOW: |
| + EXPECT_EQ(input.amount(), output.amount()); |
| + EXPECT_EQ(input.drop_shadow_offset(), output.drop_shadow_offset()); |
| + EXPECT_EQ(input.drop_shadow_color(), output.drop_shadow_color()); |
| + continue; |
| + case FilterOperation::COLOR_MATRIX: |
| + EXPECT_EQ(0, memcmp(input.matrix(), output.matrix(), 20)); |
| + continue; |
| + case FilterOperation::ZOOM: |
| + EXPECT_EQ(input.amount(), output.amount()); |
| + EXPECT_EQ(input.zoom_inset(), output.zoom_inset()); |
| + continue; |
| + case FilterOperation::REFERENCE: { |
| + SkString input_str; |
| + input.image_filter()->toString(&input_str); |
| + SkString output_str; |
| + output.image_filter()->toString(&output_str); |
| + EXPECT_EQ(input_str, output_str); |
| + continue; |
| + } |
| + case FilterOperation::ALPHA_THRESHOLD: |
| + NOTREACHED(); |
| + continue; |
| + } |
| + } |
| +} |
| + |
| TEST_F(StructTraitsTest, RenderPassId) { |
| const int layer_id = 1337; |
| const uint32_t index = 0xdeadbeef; |