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

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: Give QuadList an ArrayTraits Iterator 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
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..55113890b7b490ae2b47dcbd3624852a44988645 100644
--- a/cc/ipc/struct_traits_unittest.cc
+++ b/cc/ipc/struct_traits_unittest.cc
@@ -5,7 +5,10 @@
#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_id.h"
+#include "cc/quads/solid_color_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 +52,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 +275,44 @@ TEST_F(StructTraitsTest, FilterOperations) {
}
}
+TEST_F(StructTraitsTest, QuadList) {
+ const DrawQuad::Material material1 = DrawQuad::DEBUG_BORDER;
+ const DrawQuad::Material material2 = DrawQuad::SOLID_COLOR;
+ const gfx::Rect rect1(1234, 4321, 1357, 7531);
+ const gfx::Rect rect2(2468, 8642, 4321, 1234);
+ const int32_t width1 = 1337;
+ const uint32_t color2 = 0xffffffff;
+
+ 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;
+
+ 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);
+}
+
TEST_F(StructTraitsTest, RenderPassId) {
const int layer_id = 1337;
const uint32_t index = 0xdeadbeef;

Powered by Google App Engine
This is Rietveld 408576698