1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

Cover JSON codec. 3.0.62

This commit is contained in:
winlin 2019-10-22 09:58:09 +08:00
parent e683f07715
commit 1ebec34d5b
2 changed files with 94 additions and 5 deletions

View file

@ -1632,12 +1632,10 @@ SrsAmf0Any* SrsJsonAny::to_amf0()
srs_assert(false);
}
default: {
break;
}
}
return SrsAmf0Any::null();
}
}
}
SrsJsonAny* SrsJsonAny::str(const char* value)
{
@ -1729,8 +1727,6 @@ SrsJsonAny* srs_json_parse_tree(json_value* node)
default:
return NULL;
}
return NULL;
}
SrsJsonAny* SrsJsonAny::loads(const string& str)

View file

@ -2499,6 +2499,11 @@ VOID TEST(ProtocolJSONTest, Interfaces)
SrsJsonAny* p = SrsJsonAny::str();
EXPECT_TRUE(p->is_string());
EXPECT_TRUE(p->to_str().empty());
SrsAmf0Any* a = p->to_amf0();
EXPECT_TRUE(a->is_string());
srs_freep(a);
srs_freep(p);
}
@ -2506,6 +2511,11 @@ VOID TEST(ProtocolJSONTest, Interfaces)
SrsJsonAny* p = SrsJsonAny::str("hello");
EXPECT_TRUE(p->is_string());
EXPECT_TRUE(string("hello") == p->to_str());
SrsAmf0Any* a = p->to_amf0();
EXPECT_TRUE(a->is_string());
srs_freep(a);
srs_freep(p);
}
@ -2513,6 +2523,44 @@ VOID TEST(ProtocolJSONTest, Interfaces)
SrsJsonAny* p = SrsJsonAny::str("hello", 2);
EXPECT_TRUE(p->is_string());
EXPECT_TRUE(string("he") == p->to_str());
SrsAmf0Any* a = p->to_amf0();
EXPECT_TRUE(a->is_string());
srs_freep(a);
srs_freep(p);
}
if (true) {
SrsJsonAny* p = SrsJsonAny::boolean(true);
EXPECT_TRUE(p->is_boolean());
SrsAmf0Any* a = p->to_amf0();
EXPECT_TRUE(a->is_boolean());
srs_freep(a);
srs_freep(p);
}
if (true) {
SrsJsonAny* p = SrsJsonAny::integer();
EXPECT_TRUE(p->is_integer());
SrsAmf0Any* a = p->to_amf0();
EXPECT_TRUE(a->is_number());
srs_freep(a);
srs_freep(p);
}
if (true) {
SrsJsonAny* p = SrsJsonAny::number();
EXPECT_TRUE(p->is_number());
SrsAmf0Any* a = p->to_amf0();
EXPECT_TRUE(a->is_number());
srs_freep(a);
srs_freep(p);
}
}
@ -2575,3 +2623,48 @@ VOID TEST(ProtocolJSONTest, Dumps)
}
}
VOID TEST(ProtocolJSONTest, Parse)
{
if (true) {
SrsJsonAny* p = SrsJsonAny::loads("\"hello\"");
EXPECT_TRUE(p->is_string());
srs_freep(p);
}
if (true) {
SrsJsonAny* p = SrsJsonAny::loads("true");
EXPECT_TRUE(p->is_boolean());
srs_freep(p);
}
if (true) {
SrsJsonAny* p = SrsJsonAny::loads("3");
EXPECT_TRUE(p->is_integer());
srs_freep(p);
}
if (true) {
SrsJsonAny* p = SrsJsonAny::loads("3.0");
EXPECT_TRUE(p->is_number());
srs_freep(p);
}
if (true) {
SrsJsonAny* p = SrsJsonAny::loads("null");
EXPECT_TRUE(p->is_null());
srs_freep(p);
}
if (true) {
SrsJsonAny* p = SrsJsonAny::loads("{}}");
EXPECT_TRUE(p->is_object());
srs_freep(p);
}
if (true) {
SrsJsonAny* p = SrsJsonAny::loads("[]]");
EXPECT_TRUE(p->is_array());
srs_freep(p);
}
}