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,11 +1632,9 @@ SrsAmf0Any* SrsJsonAny::to_amf0()
srs_assert(false); srs_assert(false);
} }
default: { default: {
break; return SrsAmf0Any::null();
} }
} }
return SrsAmf0Any::null();
} }
SrsJsonAny* SrsJsonAny::str(const char* value) SrsJsonAny* SrsJsonAny::str(const char* value)
@ -1729,8 +1727,6 @@ SrsJsonAny* srs_json_parse_tree(json_value* node)
default: default:
return NULL; return NULL;
} }
return NULL;
} }
SrsJsonAny* SrsJsonAny::loads(const string& str) SrsJsonAny* SrsJsonAny::loads(const string& str)

View file

@ -2499,6 +2499,11 @@ VOID TEST(ProtocolJSONTest, Interfaces)
SrsJsonAny* p = SrsJsonAny::str(); SrsJsonAny* p = SrsJsonAny::str();
EXPECT_TRUE(p->is_string()); EXPECT_TRUE(p->is_string());
EXPECT_TRUE(p->to_str().empty()); EXPECT_TRUE(p->to_str().empty());
SrsAmf0Any* a = p->to_amf0();
EXPECT_TRUE(a->is_string());
srs_freep(a);
srs_freep(p); srs_freep(p);
} }
@ -2506,6 +2511,11 @@ VOID TEST(ProtocolJSONTest, Interfaces)
SrsJsonAny* p = SrsJsonAny::str("hello"); SrsJsonAny* p = SrsJsonAny::str("hello");
EXPECT_TRUE(p->is_string()); EXPECT_TRUE(p->is_string());
EXPECT_TRUE(string("hello") == p->to_str()); EXPECT_TRUE(string("hello") == p->to_str());
SrsAmf0Any* a = p->to_amf0();
EXPECT_TRUE(a->is_string());
srs_freep(a);
srs_freep(p); srs_freep(p);
} }
@ -2513,6 +2523,44 @@ VOID TEST(ProtocolJSONTest, Interfaces)
SrsJsonAny* p = SrsJsonAny::str("hello", 2); SrsJsonAny* p = SrsJsonAny::str("hello", 2);
EXPECT_TRUE(p->is_string()); EXPECT_TRUE(p->is_string());
EXPECT_TRUE(string("he") == p->to_str()); 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); 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);
}
}