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

Unified Diff: cc/ipc/struct_traits_unittest.cc

Issue 2064833002: Implement DrawQuad StructTraits (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix move constructor 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/quads_struct_traits.cc ('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 6c9803e9a055c1ea0e6fc8408be0b0742d89174a..792eb5eb7344ab26dadcc7a8d2223760e9c66fa3 100644
--- a/cc/ipc/struct_traits_unittest.cc
+++ b/cc/ipc/struct_traits_unittest.cc
@@ -5,7 +5,12 @@
#include "base/message_loop/message_loop.h"
#include "cc/input/selection.h"
#include "cc/ipc/traits_test_service.mojom.h"
+#include "cc/quads/debug_border_draw_quad.h"
+#include "cc/quads/render_pass.h"
+#include "cc/quads/render_pass_draw_quad.h"
#include "cc/quads/render_pass_id.h"
+#include "cc/quads/solid_color_draw_quad.h"
+#include "cc/quads/surface_draw_quad.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkString.h"
@@ -49,6 +54,11 @@ class StructTraitsTest : public testing::Test, public mojom::TraitsTestService {
callback.Run(f);
}
+ void EchoQuadList(const QuadList& q,
+ const EchoQuadListCallback& callback) override {
+ callback.Run(q);
+ }
+
void EchoRenderPassId(const RenderPassId& r,
const EchoRenderPassIdCallback& callback) override {
callback.Run(r);
@@ -267,6 +277,72 @@ TEST_F(StructTraitsTest, FilterOperations) {
}
}
+TEST_F(StructTraitsTest, QuadListBasic) {
+ const DrawQuad::Material material1 = DrawQuad::DEBUG_BORDER;
+ const DrawQuad::Material material2 = DrawQuad::SOLID_COLOR;
+ const DrawQuad::Material material3 = DrawQuad::SURFACE_CONTENT;
+ const DrawQuad::Material material4 = DrawQuad::RENDER_PASS;
+ const gfx::Rect rect1(1234, 4321, 1357, 7531);
+ const gfx::Rect rect2(2468, 8642, 4321, 1234);
+ const gfx::Rect rect3(1029, 3847, 5610, 2938);
+ const gfx::Rect rect4(1234, 5678, 9101112, 13141516);
+ const int32_t width1 = 1337;
+ const uint32_t color2 = 0xffffffff;
+ const SurfaceId surface_id(1234, 5678, 2468);
+ const RenderPassId render_pass_id(1234, 5678);
+
+ QuadList input;
+ DebugBorderDrawQuad* debug_quad =
+ input.AllocateAndConstruct<DebugBorderDrawQuad>();
+ debug_quad->material = material1;
+ debug_quad->rect = rect1;
+ debug_quad->width = width1;
+
+ SolidColorDrawQuad* solid_quad =
+ input.AllocateAndConstruct<SolidColorDrawQuad>();
+ solid_quad->material = material2;
+ solid_quad->rect = rect2;
+ solid_quad->color = color2;
+
+ SurfaceDrawQuad* surface_quad = input.AllocateAndConstruct<SurfaceDrawQuad>();
+ surface_quad->material = material3;
+ surface_quad->rect = rect3;
+ surface_quad->surface_id = surface_id;
+
+ RenderPassDrawQuad* render_pass_quad =
+ input.AllocateAndConstruct<RenderPassDrawQuad>();
+ render_pass_quad->material = material4;
+ render_pass_quad->rect = rect4;
+ render_pass_quad->render_pass_id = render_pass_id;
+
+ mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy();
+ QuadList output;
+ proxy->EchoQuadList(input, &output);
+
+ ASSERT_EQ(input.size(), output.size());
+
+ ASSERT_EQ(material1, output.ElementAt(0)->material);
+ EXPECT_EQ(rect1, output.ElementAt(0)->rect);
+ EXPECT_EQ(width1,
+ static_cast<DebugBorderDrawQuad*>(output.ElementAt(0))->width);
+
+ ASSERT_EQ(material2, output.ElementAt(1)->material);
+ EXPECT_EQ(rect2, output.ElementAt(1)->rect);
+ EXPECT_EQ(color2,
+ static_cast<SolidColorDrawQuad*>(output.ElementAt(1))->color);
+
+ ASSERT_EQ(material3, output.ElementAt(2)->material);
+ EXPECT_EQ(rect3, output.ElementAt(2)->rect);
+ EXPECT_EQ(surface_id,
+ static_cast<SurfaceDrawQuad*>(output.ElementAt(2))->surface_id);
+
+ ASSERT_EQ(material4, output.ElementAt(3)->material);
+ EXPECT_EQ(rect4, output.ElementAt(3)->rect);
+ EXPECT_EQ(
+ render_pass_id,
+ static_cast<RenderPassDrawQuad*>(output.ElementAt(3))->render_pass_id);
+}
+
TEST_F(StructTraitsTest, RenderPassId) {
const int layer_id = 1337;
const uint32_t index = 0xdeadbeef;
« no previous file with comments | « cc/ipc/quads_struct_traits.cc ('k') | cc/ipc/traits_test_service.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698