Index: mojo/public/cpp/bindings/tests/map_unittest.cc |
diff --git a/mojo/public/cpp/bindings/tests/map_unittest.cc b/mojo/public/cpp/bindings/tests/map_unittest.cc |
index c621522134acf2f9c01083f62ae0dac1ef5f9edb..eddbe96bf502470728fcfa6d4886fd98e5286084 100644 |
--- a/mojo/public/cpp/bindings/tests/map_unittest.cc |
+++ b/mojo/public/cpp/bindings/tests/map_unittest.cc |
@@ -5,6 +5,7 @@ |
#include "mojo/public/cpp/bindings/array.h" |
#include "mojo/public/cpp/bindings/lib/array_serialization.h" |
#include "mojo/public/cpp/bindings/lib/fixed_buffer.h" |
+#include "mojo/public/cpp/bindings/lib/map_serialization.h" |
#include "mojo/public/cpp/bindings/map.h" |
#include "mojo/public/cpp/bindings/string.h" |
#include "mojo/public/cpp/environment/environment.h" |
@@ -250,6 +251,58 @@ TEST_F(MapTest, MapArrayClone) { |
} |
} |
+TEST_F(MapTest, ArrayOfMap) { |
+ { |
+ Array<Map<int32_t, int8_t>> array(1); |
+ array[0].insert(1, 42); |
+ |
+ size_t size = GetSerializedSize_(array); |
+ |
+ internal::FixedBuffer buf(size); |
+ internal::Array_Data<internal::MapPointerPair<int32_t, int8_t>>* data; |
+ SerializeArray_< |
+ internal::ArrayValidateParams<0, false, |
+ internal::ArrayValidateParams<0, false, |
+ internal::NoValidateParams>>>(array.Pass(), &buf, &data); |
+ |
+ Array<Map<int32_t, int8_t>> array2; |
+ Deserialize_(data, &array2); |
+ ASSERT_EQ(1u, array2.size()); |
+ ASSERT_EQ(1u, array2[0].size()); |
+ ASSERT_EQ(42, array2[0].at(1)); |
+ } |
+ |
+ { |
+ Array<Map<String, Array<bool>>> array(1); |
+ Array<bool> map_value(2); |
+ map_value[0] = false; |
+ map_value[1] = true; |
+ |
+ array[0].insert("hello world", map_value.Pass()); |
+ |
+ size_t size = GetSerializedSize_(array); |
+ |
+ internal::FixedBuffer buf(size); |
+ internal::Array_Data< |
+ internal::MapPointerPair<internal::String_Data*, |
+ internal::Array_Data<bool>*>>* data; |
+ SerializeArray_< |
+ internal::ArrayValidateParams<0, false, |
+ internal::ArrayValidateParams<0, false, |
+ internal::ArrayValidateParams<0, false, |
+ internal::NoValidateParams>>>>(array.Pass(), &buf, &data); |
+ |
+ Array<Map<String, Array<bool>>> array2; |
+ Deserialize_(data, &array2); |
+ ASSERT_EQ(1u, array2.size()); |
+ ASSERT_EQ(1u, array2[0].size()); |
+ ASSERT_FALSE(array2[0].at("hello world")[0]); |
+ ASSERT_TRUE(array2[0].at("hello world")[1]); |
+ } |
+ |
+ // TODO(yzshen): More tests... |
+} |
+ |
} // namespace |
} // namespace test |
} // namespace mojo |