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

Side by Side Diff: mojo/public/cpp/bindings/tests/sample_service_unittest.cc

Issue 247363003: Update mojom parser to allow array of arrays. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix js unit tests Created 6 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <algorithm> 5 #include <algorithm>
6 #include <ostream> 6 #include <ostream>
7 #include <string> 7 #include <string>
8 8
9 #include "mojo/public/cpp/bindings/allocation_scope.h" 9 #include "mojo/public/cpp/bindings/allocation_scope.h"
10 #include "mojo/public/cpp/environment/environment.h" 10 #include "mojo/public/cpp/environment/environment.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 options.flags = MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE; 68 options.flags = MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE;
69 options.element_num_bytes = 1; 69 options.element_num_bytes = 1;
70 options.capacity_num_bytes = 1024; 70 options.capacity_num_bytes = 1024;
71 mojo::ScopedDataPipeProducerHandle producer; 71 mojo::ScopedDataPipeProducerHandle producer;
72 mojo::ScopedDataPipeConsumerHandle consumer; 72 mojo::ScopedDataPipeConsumerHandle consumer;
73 mojo::CreateDataPipe(&options, &producer, &consumer); 73 mojo::CreateDataPipe(&options, &producer, &consumer);
74 input_streams[i] = consumer.Pass(); 74 input_streams[i] = consumer.Pass();
75 output_streams[i] = producer.Pass(); 75 output_streams[i] = producer.Pass();
76 } 76 }
77 77
78 mojo::Array<mojo::Array<bool> >::Builder array_of_array_of_bools(2);
79 for (size_t i = 0; i < 2; ++i) {
80 mojo::Array<bool>::Builder array_of_bools(2);
81 for (size_t j = 0; j < 2; ++j) {
82 array_of_bools[j] = j;
83 }
84 array_of_array_of_bools[i] = array_of_bools.Finish();
85 }
86
78 mojo::ScopedMessagePipeHandle pipe0, pipe1; 87 mojo::ScopedMessagePipeHandle pipe0, pipe1;
79 mojo::CreateMessagePipe(&pipe0, &pipe1); 88 mojo::CreateMessagePipe(&pipe0, &pipe1);
80 89
81 Foo::Builder foo; 90 Foo::Builder foo;
82 foo.set_name(name); 91 foo.set_name(name);
83 foo.set_x(1); 92 foo.set_x(1);
84 foo.set_y(2); 93 foo.set_y(2);
85 foo.set_a(false); 94 foo.set_a(false);
86 foo.set_b(true); 95 foo.set_b(true);
87 foo.set_c(false); 96 foo.set_c(false);
88 foo.set_bar(bar.Finish()); 97 foo.set_bar(bar.Finish());
89 foo.set_extra_bars(extra_bars.Finish()); 98 foo.set_extra_bars(extra_bars.Finish());
90 foo.set_data(data.Finish()); 99 foo.set_data(data.Finish());
91 foo.set_source(pipe1.Pass()); 100 foo.set_source(pipe1.Pass());
92 foo.set_input_streams(input_streams.Finish()); 101 foo.set_input_streams(input_streams.Finish());
93 foo.set_output_streams(output_streams.Finish()); 102 foo.set_output_streams(output_streams.Finish());
103 foo.set_array_of_array_of_bools(array_of_array_of_bools.Finish());
94 104
95 return foo.Finish(); 105 return foo.Finish();
96 } 106 }
97 107
98 // Check that the given |Foo| is identical to the one made by |MakeFoo()|. 108 // Check that the given |Foo| is identical to the one made by |MakeFoo()|.
99 void CheckFoo(const Foo& foo) { 109 void CheckFoo(const Foo& foo) {
100 const std::string kName("foopy"); 110 const std::string kName("foopy");
101 ASSERT_FALSE(foo.name().is_null()); 111 ASSERT_FALSE(foo.name().is_null());
102 EXPECT_EQ(kName.size(), foo.name().size()); 112 EXPECT_EQ(kName.size(), foo.name().size());
103 for (size_t i = 0; i < std::min(kName.size(), foo.name().size()); i++) { 113 for (size_t i = 0; i < std::min(kName.size(), foo.name().size()); i++) {
(...skipping 27 matching lines...) Expand all
131 EXPECT_EQ(10u, foo.data().size()); 141 EXPECT_EQ(10u, foo.data().size());
132 for (size_t i = 0; i < foo.data().size(); ++i) { 142 for (size_t i = 0; i < foo.data().size(); ++i) {
133 EXPECT_EQ(static_cast<uint8_t>(foo.data().size() - i), foo.data()[i]) << i; 143 EXPECT_EQ(static_cast<uint8_t>(foo.data().size() - i), foo.data()[i]) << i;
134 } 144 }
135 145
136 EXPECT_FALSE(foo.input_streams().is_null()); 146 EXPECT_FALSE(foo.input_streams().is_null());
137 EXPECT_EQ(2u, foo.input_streams().size()); 147 EXPECT_EQ(2u, foo.input_streams().size());
138 148
139 EXPECT_FALSE(foo.output_streams().is_null()); 149 EXPECT_FALSE(foo.output_streams().is_null());
140 EXPECT_EQ(2u, foo.output_streams().size()); 150 EXPECT_EQ(2u, foo.output_streams().size());
151
152 EXPECT_EQ(2u, foo.array_of_array_of_bools().size());
153 for (size_t i = 0; i < foo.array_of_array_of_bools().size(); ++i) {
154 EXPECT_EQ(2u, foo.array_of_array_of_bools()[i].size());
155 for (size_t j = 0; j < foo.array_of_array_of_bools()[i].size(); ++j) {
156 EXPECT_EQ(bool(j), foo.array_of_array_of_bools()[i][j]);
157 }
158 }
141 } 159 }
142 160
143 void PrintSpacer(int depth) { 161 void PrintSpacer(int depth) {
144 for (int i = 0; i < depth; ++i) 162 for (int i = 0; i < depth; ++i)
145 std::cout << " "; 163 std::cout << " ";
146 } 164 }
147 165
148 void Print(int depth, const char* name, bool value) { 166 void Print(int depth, const char* name, bool value) {
149 PrintSpacer(depth); 167 PrintSpacer(depth);
150 std::cout << name << ": " << (value ? "true" : "false") << std::endl; 168 std::cout << name << ": " << (value ? "true" : "false") << std::endl;
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 Print(depth, "y", foo.y()); 233 Print(depth, "y", foo.y());
216 Print(depth, "a", foo.a()); 234 Print(depth, "a", foo.a());
217 Print(depth, "b", foo.b()); 235 Print(depth, "b", foo.b());
218 Print(depth, "c", foo.c()); 236 Print(depth, "c", foo.c());
219 Print(depth, "bar", foo.bar()); 237 Print(depth, "bar", foo.bar());
220 Print(depth, "extra_bars", foo.extra_bars()); 238 Print(depth, "extra_bars", foo.extra_bars());
221 Print(depth, "data", foo.data()); 239 Print(depth, "data", foo.data());
222 Print(depth, "source", foo.source().get()); 240 Print(depth, "source", foo.source().get());
223 Print(depth, "input_streams", foo.input_streams()); 241 Print(depth, "input_streams", foo.input_streams());
224 Print(depth, "output_streams", foo.output_streams()); 242 Print(depth, "output_streams", foo.output_streams());
243 Print(depth, "array_of_array_of_bools", foo.array_of_array_of_bools());
225 --depth; 244 --depth;
226 } 245 }
227 } 246 }
228 247
229 void DumpHex(const uint8_t* bytes, uint32_t num_bytes) { 248 void DumpHex(const uint8_t* bytes, uint32_t num_bytes) {
230 for (uint32_t i = 0; i < num_bytes; ++i) { 249 for (uint32_t i = 0; i < num_bytes; ++i) {
231 std::cout << std::setw(2) << std::setfill('0') << std::hex << 250 std::cout << std::setw(2) << std::setfill('0') << std::hex <<
232 uint32_t(bytes[i]); 251 uint32_t(bytes[i]);
233 252
234 if (i % 16 == 15) { 253 if (i % 16 == 15) {
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 365
347 EXPECT_EQ(1u, full.shape_masks().size()); 366 EXPECT_EQ(1u, full.shape_masks().size());
348 EXPECT_EQ(1 << imported::SHAPE_RECTANGLE, full.shape_masks()[0]); 367 EXPECT_EQ(1 << imported::SHAPE_RECTANGLE, full.shape_masks()[0]);
349 368
350 EXPECT_EQ(imported::SHAPE_CIRCLE, full.thing().shape()); 369 EXPECT_EQ(imported::SHAPE_CIRCLE, full.thing().shape());
351 EXPECT_EQ(imported::COLOR_BLACK, full.thing().color()); 370 EXPECT_EQ(imported::COLOR_BLACK, full.thing().color());
352 } 371 }
353 372
354 } // namespace 373 } // namespace
355 } // namespace sample 374 } // namespace sample
OLDNEW
« no previous file with comments | « mojo/bindings/js/codec_unittests.js ('k') | mojo/public/interfaces/bindings/tests/sample_service.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698