Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Unified Diff: cc/ipc/struct_traits_unittest.cc

Issue 2042413003: Implement cc::FilterOperation StructTraits (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased + Addressed Enne's comment Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/ipc/filter_operation_struct_traits.h ('k') | cc/ipc/traits_test_service.mojom » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/ipc/struct_traits_unittest.cc
diff --git a/cc/ipc/struct_traits_unittest.cc b/cc/ipc/struct_traits_unittest.cc
index 6f6e365c5d53f14a4fd150bdb889e115eb5d5fb2..7c99e1da834cc949a3701ce6ce3d0c92298ce7f5 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);
@@ -184,6 +192,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());
+ break;
+ 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());
+ break;
+ case FilterOperation::COLOR_MATRIX:
+ EXPECT_EQ(0, memcmp(input.matrix(), output.matrix(), 20));
+ break;
+ case FilterOperation::ZOOM:
+ EXPECT_EQ(input.amount(), output.amount());
+ EXPECT_EQ(input.zoom_inset(), output.zoom_inset());
+ break;
+ 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);
+ break;
+ }
+ case FilterOperation::ALPHA_THRESHOLD:
+ NOTREACHED();
+ break;
+ }
+ }
+}
+
TEST_F(StructTraitsTest, RenderPassId) {
const int layer_id = 1337;
const uint32_t index = 0xdeadbeef;
« no previous file with comments | « cc/ipc/filter_operation_struct_traits.h ('k') | cc/ipc/traits_test_service.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698