|
@@ -211,15 +211,25 @@ TEST(Element, MapElement) {
|
|
"9123456789abcdefa123456789abcdefb123456789abcdef"
|
|
"9123456789abcdefa123456789abcdefb123456789abcdef"
|
|
"c123456789abcdefd123456789abcdefe123456789abcdef"
|
|
"c123456789abcdefd123456789abcdefe123456789abcdef"
|
|
"f123456789abcde");
|
|
"f123456789abcde");
|
|
|
|
+ std::map<std::string, ElementPtr> long_maptag_map;
|
|
|
|
+
|
|
EXPECT_EQ(255, long_maptag.length()); // check prerequisite
|
|
EXPECT_EQ(255, long_maptag.length()); // check prerequisite
|
|
el = Element::createFromString("{ \"" + long_maptag + "\": \"bar\"}");
|
|
el = Element::createFromString("{ \"" + long_maptag + "\": \"bar\"}");
|
|
EXPECT_EQ("bar", el->find(long_maptag)->stringValue());
|
|
EXPECT_EQ("bar", el->find(long_maptag)->stringValue());
|
|
|
|
|
|
|
|
+ long_maptag_map[long_maptag] = Element::create("bar");
|
|
|
|
+ el = Element::create(long_maptag_map);
|
|
|
|
+ EXPECT_EQ("bar", el->find(long_maptag)->stringValue());
|
|
|
|
+
|
|
// A one-byte longer tag should trigger an exception.
|
|
// A one-byte longer tag should trigger an exception.
|
|
long_maptag.push_back('f');
|
|
long_maptag.push_back('f');
|
|
EXPECT_THROW(Element::createFromString("{ \"" + long_maptag +
|
|
EXPECT_THROW(Element::createFromString("{ \"" + long_maptag +
|
|
"\": \"bar\"}"),
|
|
"\": \"bar\"}"),
|
|
ParseError);
|
|
ParseError);
|
|
|
|
+
|
|
|
|
+ long_maptag_map[long_maptag] = Element::create("bar");
|
|
|
|
+ EXPECT_THROW(Element::create(long_maptag_map), TypeError);
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
TEST(Element, to_and_from_wire) {
|
|
TEST(Element, to_and_from_wire) {
|