Index: mojo/apps/js/test/js_to_cpp_unittest.cc |
diff --git a/mojo/apps/js/test/js_to_cpp_unittest.cc b/mojo/apps/js/test/js_to_cpp_unittest.cc |
index 527c81b0966da08ad6fdc4d78995b326cb54632f..64259df156faaf7c2b00c4229412aa2edda00162 100644 |
--- a/mojo/apps/js/test/js_to_cpp_unittest.cc |
+++ b/mojo/apps/js/test/js_to_cpp_unittest.cc |
@@ -65,54 +65,6 @@ bool IsRunningOnIsolatedBot() { |
return false; |
} |
-// NOTE: Callers will need to have established an AllocationScope, or you're |
-// gonna have a bad time. |
-js_to_cpp::EchoArgs BuildSampleEchoArgs() { |
- js_to_cpp::EchoArgs::Builder builder; |
- builder.set_si64(kExpectedInt64Value); |
- builder.set_si32(kExpectedInt32Value); |
- builder.set_si16(kExpectedInt16Value); |
- builder.set_si8(kExpectedInt8Value); |
- builder.set_ui64(kExpectedUInt64Value); |
- builder.set_ui32(kExpectedUInt32Value); |
- builder.set_ui16(kExpectedUInt16Value); |
- builder.set_ui8(kExpectedUInt8Value); |
- builder.set_float_val(kExpectedFloatVal); |
- builder.set_float_inf(kExpectedFloatInf); |
- builder.set_float_nan(kExpectedFloatNan); |
- builder.set_double_val(kExpectedDoubleVal); |
- builder.set_double_inf(kExpectedDoubleInf); |
- builder.set_double_nan(kExpectedDoubleNan); |
- builder.set_name("coming"); |
- mojo::Array<mojo::String>::Builder string_array(3); |
- string_array[0] = "one"; |
- string_array[1] = "two"; |
- string_array[2] = "three"; |
- builder.set_string_array(string_array.Finish()); |
- return builder.Finish(); |
-} |
- |
-void CheckSampleEchoArgs(const js_to_cpp::EchoArgs& arg) { |
- EXPECT_EQ(kExpectedInt64Value, arg.si64()); |
- EXPECT_EQ(kExpectedInt32Value, arg.si32()); |
- EXPECT_EQ(kExpectedInt16Value, arg.si16()); |
- EXPECT_EQ(kExpectedInt8Value, arg.si8()); |
- EXPECT_EQ(kExpectedUInt64Value, arg.ui64()); |
- EXPECT_EQ(kExpectedUInt32Value, arg.ui32()); |
- EXPECT_EQ(kExpectedUInt16Value, arg.ui16()); |
- EXPECT_EQ(kExpectedUInt8Value, arg.ui8()); |
- EXPECT_EQ(kExpectedFloatVal, arg.float_val()); |
- EXPECT_EQ(kExpectedFloatInf, arg.float_inf()); |
- EXPECT_NAN(arg.float_nan()); |
- EXPECT_EQ(kExpectedDoubleVal, arg.double_val()); |
- EXPECT_EQ(kExpectedDoubleInf, arg.double_inf()); |
- EXPECT_NAN(arg.double_nan()); |
- EXPECT_EQ(std::string("coming"), arg.name().To<std::string>()); |
- EXPECT_EQ(std::string("one"), arg.string_array()[0].To<std::string>()); |
- EXPECT_EQ(std::string("two"), arg.string_array()[1].To<std::string>()); |
- EXPECT_EQ(std::string("three"), arg.string_array()[2].To<std::string>()); |
-} |
- |
void CheckDataPipe(MojoHandle data_pipe_handle) { |
char buffer[100]; |
uint32_t buffer_size = static_cast<uint32_t>(sizeof(buffer)); |
@@ -125,6 +77,68 @@ void CheckDataPipe(MojoHandle data_pipe_handle) { |
} |
} |
+// NOTE: Callers will need to have established an AllocationScope, or you're |
+// gonna have a bad time. |
+js_to_cpp::EchoArgs BuildSampleEchoArgs() { |
+ js_to_cpp::EchoArgs::Builder builder; |
+ builder.set_si64(kExpectedInt64Value); |
+ builder.set_si32(kExpectedInt32Value); |
+ builder.set_si16(kExpectedInt16Value); |
+ builder.set_si8(kExpectedInt8Value); |
+ builder.set_ui64(kExpectedUInt64Value); |
+ builder.set_ui32(kExpectedUInt32Value); |
+ builder.set_ui16(kExpectedUInt16Value); |
+ builder.set_ui8(kExpectedUInt8Value); |
+ builder.set_float_val(kExpectedFloatVal); |
+ builder.set_float_inf(kExpectedFloatInf); |
+ builder.set_float_nan(kExpectedFloatNan); |
+ builder.set_double_val(kExpectedDoubleVal); |
+ builder.set_double_inf(kExpectedDoubleInf); |
+ builder.set_double_nan(kExpectedDoubleNan); |
+ builder.set_name("coming"); |
+ mojo::Array<mojo::String>::Builder string_array(3); |
+ string_array[0] = "one"; |
+ string_array[1] = "two"; |
+ string_array[2] = "three"; |
+ builder.set_string_array(string_array.Finish()); |
+ return builder.Finish(); |
+} |
+ |
+void CheckSampleEchoArgs(const js_to_cpp::EchoArgs& arg) { |
+ EXPECT_EQ(kExpectedInt64Value, arg.si64()); |
+ EXPECT_EQ(kExpectedInt32Value, arg.si32()); |
+ EXPECT_EQ(kExpectedInt16Value, arg.si16()); |
+ EXPECT_EQ(kExpectedInt8Value, arg.si8()); |
+ EXPECT_EQ(kExpectedUInt64Value, arg.ui64()); |
+ EXPECT_EQ(kExpectedUInt32Value, arg.ui32()); |
+ EXPECT_EQ(kExpectedUInt16Value, arg.ui16()); |
+ EXPECT_EQ(kExpectedUInt8Value, arg.ui8()); |
+ EXPECT_EQ(kExpectedFloatVal, arg.float_val()); |
+ EXPECT_EQ(kExpectedFloatInf, arg.float_inf()); |
+ EXPECT_NAN(arg.float_nan()); |
+ EXPECT_EQ(kExpectedDoubleVal, arg.double_val()); |
+ EXPECT_EQ(kExpectedDoubleInf, arg.double_inf()); |
+ EXPECT_NAN(arg.double_nan()); |
+ EXPECT_EQ(std::string("coming"), arg.name().To<std::string>()); |
+ EXPECT_EQ(std::string("one"), arg.string_array()[0].To<std::string>()); |
+ EXPECT_EQ(std::string("two"), arg.string_array()[1].To<std::string>()); |
+ EXPECT_EQ(std::string("three"), arg.string_array()[2].To<std::string>()); |
+ CheckDataPipe(arg.data_handle().get().value()); |
+} |
+ |
+js_to_cpp::EchoArgsList BuildSampleEchoArgsList() { |
+ js_to_cpp::EchoArgsList::Builder builder; |
+ builder.set_item(BuildSampleEchoArgs()); |
+ return builder.Finish(); |
+} |
+ |
+void CheckSampleEchoArgsList(const js_to_cpp::EchoArgsList& list) { |
+ if (list.is_null()) |
+ return; |
+ CheckSampleEchoArgs(list.item()); |
+ CheckSampleEchoArgsList(list.next()); |
+} |
+ |
void CheckCorruptedString(const mojo::String& arg) { |
// The values don't matter so long as all accesses are within bounds. |
if (arg.is_null()) |
@@ -168,8 +182,7 @@ class CppSideConnection : public js_to_cpp::CppSide { |
NOTREACHED(); |
} |
- virtual void EchoResponse(const js_to_cpp::EchoArgs& arg1, |
- const js_to_cpp::EchoArgs& arg2) OVERRIDE { |
+ virtual void EchoResponse(const js_to_cpp::EchoArgsList& list) OVERRIDE { |
NOTREACHED(); |
} |
@@ -222,19 +235,18 @@ class EchoCppSideConnection : public CppSideConnection { |
// js_to_cpp::CppSide: |
virtual void StartTest() OVERRIDE { |
AllocationScope scope; |
- js_side_->Echo(kExpectedMessageCount, BuildSampleEchoArgs()); |
+ js_side_->Echo(kExpectedMessageCount, BuildSampleEchoArgsList()); |
} |
- virtual void EchoResponse(const js_to_cpp::EchoArgs& arg1, |
- const js_to_cpp::EchoArgs& arg2) OVERRIDE { |
+ virtual void EchoResponse(const js_to_cpp::EchoArgsList& list) OVERRIDE { |
+ const js_to_cpp::EchoArgs& special_arg = list.item(); |
message_count_ += 1; |
- CheckSampleEchoArgs(arg1); |
- EXPECT_EQ(-1, arg2.si64()); |
- EXPECT_EQ(-1, arg2.si32()); |
- EXPECT_EQ(-1, arg2.si16()); |
- EXPECT_EQ(-1, arg2.si8()); |
- EXPECT_EQ(std::string("going"), arg2.name().To<std::string>()); |
- CheckDataPipe(arg2.data_handle().get().value()); |
+ EXPECT_EQ(-1, special_arg.si64()); |
+ EXPECT_EQ(-1, special_arg.si32()); |
+ EXPECT_EQ(-1, special_arg.si16()); |
+ EXPECT_EQ(-1, special_arg.si8()); |
+ EXPECT_EQ(std::string("going"), special_arg.name().To<std::string>()); |
+ CheckSampleEchoArgsList(list.next()); |
} |
virtual void TestFinished() OVERRIDE { |