update amf0 strict array test, fix bug of count zero init

pull/133/head
winlin 11 years ago
parent 373f92551d
commit 5a06909d75

@ -1037,6 +1037,7 @@ SrsAmf0Any* SrsAmf0EcmaArray::ensure_property_number(string name)
SrsAmf0StrictArray::SrsAmf0StrictArray()
{
marker = RTMP_AMF0_StrictArray;
_count = 0;
}
SrsAmf0StrictArray::~SrsAmf0StrictArray()

@ -1049,3 +1049,71 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps)
EXPECT_EQ(2, o->count());
}
}
VOID TEST(AMF0Test, ApiStrictArray)
{
SrsStream s;
char buf[1024];
memset(buf, 0, sizeof(buf));
EXPECT_EQ(ERROR_SUCCESS, s.initialize(buf, sizeof(buf)));
SrsAmf0StrictArray* o = NULL;
// append property
if (true) {
o = SrsAmf0Any::strict_array();
SrsAutoFree(SrsAmf0StrictArray, o);
o->append(SrsAmf0Any::number(100));
EXPECT_DOUBLE_EQ(100, o->at(0)->to_number());
o->append(SrsAmf0Any::number(101));
EXPECT_DOUBLE_EQ(101, o->at(1)->to_number());
o->append(SrsAmf0Any::str("winlin"));
EXPECT_STREQ("winlin", o->at(2)->to_str().c_str());
}
// count
if (true) {
o = SrsAmf0Any::strict_array();
SrsAutoFree(SrsAmf0StrictArray, o);
EXPECT_EQ(0, o->count());
o->append(SrsAmf0Any::boolean());
EXPECT_EQ(1, o->count());
o->append(SrsAmf0Any::boolean());
EXPECT_EQ(2, o->count());
o->clear();
EXPECT_EQ(0, o->count());
}
// io
if (true) {
o = SrsAmf0Any::strict_array();
SrsAutoFree(SrsAmf0StrictArray, o);
s.reset();
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
EXPECT_EQ(5, s.pos());
s.reset();
EXPECT_EQ(0x0a, s.read_1bytes());
EXPECT_EQ(0x00, s.read_4bytes());
}
if (true) {
o = SrsAmf0Any::strict_array();
SrsAutoFree(SrsAmf0StrictArray, o);
o->append(SrsAmf0Any::number(0));
s.reset();
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
EXPECT_EQ(5 + SrsAmf0Size::number(), s.pos());
}
}

Loading…
Cancel
Save