|
|
|
@ -2621,6 +2621,20 @@ VOID TEST(ProtocolJSONTest, Dumps)
|
|
|
|
|
EXPECT_STREQ("[]", p->dumps().c_str());
|
|
|
|
|
srs_freep(p);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (true) {
|
|
|
|
|
SrsJsonObject* p = SrsJsonAny::object();
|
|
|
|
|
p->set("id", SrsJsonAny::integer(3));
|
|
|
|
|
EXPECT_STREQ("{\"id\":3}", p->dumps().c_str());
|
|
|
|
|
srs_freep(p);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (true) {
|
|
|
|
|
SrsJsonArray* p = SrsJsonAny::array();
|
|
|
|
|
p->add(SrsJsonAny::integer(3));
|
|
|
|
|
EXPECT_STREQ("[3]", p->dumps().c_str());
|
|
|
|
|
srs_freep(p);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
VOID TEST(ProtocolJSONTest, Parse)
|
|
|
|
@ -2680,3 +2694,78 @@ VOID TEST(ProtocolJSONTest, Parse)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
VOID TEST(ProtocolJSONTest, ObjectAPI)
|
|
|
|
|
{
|
|
|
|
|
SrsJsonObject* p = SrsJsonAny::object();
|
|
|
|
|
SrsAutoFree(SrsJsonObject, p);
|
|
|
|
|
|
|
|
|
|
p->set("id", SrsJsonAny::integer(3));
|
|
|
|
|
p->set("name", SrsJsonAny::str("srs"));
|
|
|
|
|
|
|
|
|
|
EXPECT_STREQ("name", p->key_at(1).c_str());
|
|
|
|
|
EXPECT_STREQ("srs", p->value_at(1)->to_str().c_str());
|
|
|
|
|
|
|
|
|
|
p->set("name", NULL);
|
|
|
|
|
p->set("name", SrsJsonAny::str("ossrs"));
|
|
|
|
|
p->set("version", SrsJsonAny::number(3.1));
|
|
|
|
|
p->set("stable", SrsJsonAny::boolean(true));
|
|
|
|
|
|
|
|
|
|
SrsJsonObject* pp = SrsJsonAny::object();
|
|
|
|
|
p->set("args", pp);
|
|
|
|
|
pp->set("url", SrsJsonAny::str("ossrs.net"));
|
|
|
|
|
pp->set("year", SrsJsonAny::integer(2019));
|
|
|
|
|
|
|
|
|
|
SrsJsonArray* pa = SrsJsonAny::array();
|
|
|
|
|
p->set("authors", pa);
|
|
|
|
|
pa->add(SrsJsonAny::str("winlin"));
|
|
|
|
|
pa->add(SrsJsonAny::str("wenjie"));
|
|
|
|
|
|
|
|
|
|
SrsJsonAny* prop = p->get_property("name");
|
|
|
|
|
EXPECT_STREQ("ossrs", prop->to_str().c_str());
|
|
|
|
|
EXPECT_STREQ("ossrs", p->ensure_property_string("name")->to_str().c_str());
|
|
|
|
|
|
|
|
|
|
EXPECT_TRUE(NULL == p->get_property("invalid"));
|
|
|
|
|
EXPECT_TRUE(NULL == p->ensure_property_string("invalid"));
|
|
|
|
|
EXPECT_TRUE(NULL == p->ensure_property_string("id"));
|
|
|
|
|
|
|
|
|
|
EXPECT_TRUE(NULL == p->ensure_property_integer("invalid"));
|
|
|
|
|
EXPECT_TRUE(NULL == p->ensure_property_integer("name"));
|
|
|
|
|
EXPECT_EQ(3, p->ensure_property_integer("id")->to_integer());
|
|
|
|
|
|
|
|
|
|
EXPECT_TRUE(NULL == p->ensure_property_number("invalid"));
|
|
|
|
|
EXPECT_TRUE(NULL == p->ensure_property_number("name"));
|
|
|
|
|
EXPECT_EQ(3.1, p->ensure_property_number("version")->to_number());
|
|
|
|
|
|
|
|
|
|
EXPECT_TRUE(NULL == p->ensure_property_boolean("invalid"));
|
|
|
|
|
EXPECT_TRUE(NULL == p->ensure_property_boolean("name"));
|
|
|
|
|
EXPECT_TRUE(p->ensure_property_boolean("stable")->to_boolean());
|
|
|
|
|
|
|
|
|
|
EXPECT_TRUE(NULL == p->ensure_property_object("invalid"));
|
|
|
|
|
EXPECT_TRUE(NULL == p->ensure_property_object("name"));
|
|
|
|
|
EXPECT_TRUE(NULL != p->ensure_property_object("args")->to_object());
|
|
|
|
|
|
|
|
|
|
EXPECT_TRUE(NULL == p->ensure_property_array("invalid"));
|
|
|
|
|
EXPECT_TRUE(NULL == p->ensure_property_array("name"));
|
|
|
|
|
EXPECT_TRUE(NULL != p->ensure_property_array("authors")->to_array());
|
|
|
|
|
|
|
|
|
|
SrsAmf0Object* a = (SrsAmf0Object*)p->to_amf0();
|
|
|
|
|
EXPECT_EQ(6, a->count());
|
|
|
|
|
srs_freep(a);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
VOID TEST(ProtocolJSONTest, ArrayAPI)
|
|
|
|
|
{
|
|
|
|
|
SrsJsonArray* p = SrsJsonAny::array();
|
|
|
|
|
SrsAutoFree(SrsJsonArray, p);
|
|
|
|
|
|
|
|
|
|
p->add(SrsJsonAny::integer(2019));
|
|
|
|
|
p->add(SrsJsonAny::str("srs"));
|
|
|
|
|
p->add(SrsJsonAny::boolean(true));
|
|
|
|
|
|
|
|
|
|
EXPECT_STREQ("srs", p->at(1)->to_str().c_str());
|
|
|
|
|
|
|
|
|
|
SrsAmf0StrictArray* a = (SrsAmf0StrictArray*)p->to_amf0();
|
|
|
|
|
EXPECT_EQ(3, a->count());
|
|
|
|
|
srs_freep(a);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|