winlin

amf0 utest: refine amf0 size and finish utest.

1 -/*  
2 -The MIT License (MIT)  
3 -  
4 -Copyright (c) 2013-2014 winlin  
5 -  
6 -Permission is hereby granted, free of charge, to any person obtaining a copy of  
7 -this software and associated documentation files (the "Software"), to deal in  
8 -the Software without restriction, including without limitation the rights to  
9 -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of  
10 -the Software, and to permit persons to whom the Software is furnished to do so,  
11 -subject to the following conditions:  
12 -  
13 -The above copyright notice and this permission notice shall be included in all  
14 -copies or substantial portions of the Software.  
15 -  
16 -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR  
17 -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS  
18 -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR  
19 -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER  
20 -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN  
21 -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  
22 -*/  
23 -#include <srs_utest_amf0.hpp>  
24 -  
25 -VOID TEST(AMF0Test, Size)  
26 -{  
27 - EXPECT_EQ(2+6, SrsAmf0Size::utf8("winlin"));  
28 - EXPECT_EQ(2+0, SrsAmf0Size::utf8(""));  
29 -  
30 - EXPECT_EQ(1+2+6, SrsAmf0Size::str("winlin"));  
31 - EXPECT_EQ(1+2+0, SrsAmf0Size::str(""));  
32 -  
33 - EXPECT_EQ(1+8, SrsAmf0Size::number());  
34 -  
35 - EXPECT_EQ(1, SrsAmf0Size::null());  
36 -  
37 - EXPECT_EQ(1, SrsAmf0Size::undefined());  
38 -  
39 - EXPECT_EQ(1+1, SrsAmf0Size::boolean());  
40 -  
41 - if (true) {  
42 - int size = 1+3;  
43 - SrsAmf0Object obj;  
44 -  
45 - EXPECT_EQ(size, SrsAmf0Size::object(&obj));  
46 - }  
47 - if (true) {  
48 - int size = 1+3;  
49 - SrsAmf0Object obj;  
50 -  
51 - size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");  
52 - obj.set("name", new SrsAmf0String("winlin"));  
53 -  
54 - EXPECT_EQ(size, SrsAmf0Size::object(&obj));  
55 - }  
56 -  
57 - if (true) {  
58 - int size = 1+4+3;  
59 - SrsAmf0EcmaArray arr;  
60 -  
61 - EXPECT_EQ(size, SrsAmf0Size::array(&arr));  
62 - }  
63 - if (true) {  
64 - int size = 1+4+3;  
65 - SrsAmf0EcmaArray arr;  
66 -  
67 - size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");  
68 - arr.set("name", new SrsAmf0String("winlin"));  
69 -  
70 - EXPECT_EQ(size, SrsAmf0Size::array(&arr));  
71 - }  
72 - if (true) {  
73 - int size = 1+4+3;  
74 - SrsAmf0EcmaArray arr;  
75 -  
76 - size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");  
77 - arr.set("name", new SrsAmf0String("winlin"));  
78 -  
79 - SrsAmf0Object* args = new SrsAmf0Object();  
80 - size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args);  
81 - arr.set("args", args);  
82 -  
83 - EXPECT_EQ(size, SrsAmf0Size::array(&arr));  
84 - }  
85 -} 1 +/*
  2 +The MIT License (MIT)
  3 +
  4 +Copyright (c) 2013-2014 winlin
  5 +
  6 +Permission is hereby granted, free of charge, to any person obtaining a copy of
  7 +this software and associated documentation files (the "Software"), to deal in
  8 +the Software without restriction, including without limitation the rights to
  9 +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
  10 +the Software, and to permit persons to whom the Software is furnished to do so,
  11 +subject to the following conditions:
  12 +
  13 +The above copyright notice and this permission notice shall be included in all
  14 +copies or substantial portions of the Software.
  15 +
  16 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  17 +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
  18 +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
  19 +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
  20 +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  21 +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  22 +*/
  23 +#include <srs_utest_amf0.hpp>
  24 +
  25 +VOID TEST(AMF0Test, Size)
  26 +{
  27 + // size of elem
  28 + EXPECT_EQ(2+6, SrsAmf0Size::utf8("winlin"));
  29 + EXPECT_EQ(2+0, SrsAmf0Size::utf8(""));
  30 +
  31 + EXPECT_EQ(1+2+6, SrsAmf0Size::str("winlin"));
  32 + EXPECT_EQ(1+2+0, SrsAmf0Size::str(""));
  33 +
  34 + EXPECT_EQ(1+8, SrsAmf0Size::number());
  35 +
  36 + EXPECT_EQ(1, SrsAmf0Size::null());
  37 +
  38 + EXPECT_EQ(1, SrsAmf0Size::undefined());
  39 +
  40 + EXPECT_EQ(1+1, SrsAmf0Size::boolean());
  41 +
  42 + // object: empty
  43 + if (true) {
  44 + int size = 1+3;
  45 + SrsAmf0Object o;
  46 +
  47 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  48 + }
  49 + // object: elem
  50 + if (true) {
  51 + int size = 1+3;
  52 + SrsAmf0Object o;
  53 +
  54 + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
  55 + o.set("name", new SrsAmf0String("winlin"));
  56 +
  57 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  58 + }
  59 + if (true) {
  60 + int size = 1+3;
  61 + SrsAmf0Object o;
  62 +
  63 + size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number();
  64 + o.set("age", new SrsAmf0Number(9));
  65 +
  66 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  67 + }
  68 + if (true) {
  69 + int size = 1+3;
  70 + SrsAmf0Object o;
  71 +
  72 + size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null();
  73 + o.set("email", new SrsAmf0Null());
  74 +
  75 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  76 + }
  77 + if (true) {
  78 + int size = 1+3;
  79 + SrsAmf0Object o;
  80 +
  81 + size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined();
  82 + o.set("email", new SrsAmf0Undefined());
  83 +
  84 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  85 + }
  86 + if (true) {
  87 + int size = 1+3;
  88 + SrsAmf0Object o;
  89 +
  90 + size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean();
  91 + o.set("sex", new SrsAmf0Boolean(true));
  92 +
  93 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  94 + }
  95 +
  96 + // array: empty
  97 + if (true) {
  98 + int size = 1+4+3;
  99 + SrsAmf0EcmaArray o;
  100 +
  101 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  102 + }
  103 + // array: elem
  104 + if (true) {
  105 + int size = 1+4+3;
  106 + SrsAmf0EcmaArray o;
  107 +
  108 + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
  109 + o.set("name", new SrsAmf0String("winlin"));
  110 +
  111 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  112 + }
  113 + if (true) {
  114 + int size = 1+4+3;
  115 + SrsAmf0EcmaArray o;
  116 +
  117 + size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number();
  118 + o.set("age", new SrsAmf0Number(9));
  119 +
  120 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  121 + }
  122 + if (true) {
  123 + int size = 1+4+3;
  124 + SrsAmf0EcmaArray o;
  125 +
  126 + size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null();
  127 + o.set("email", new SrsAmf0Null());
  128 +
  129 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  130 + }
  131 + if (true) {
  132 + int size = 1+4+3;
  133 + SrsAmf0EcmaArray o;
  134 +
  135 + size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined();
  136 + o.set("email", new SrsAmf0Undefined());
  137 +
  138 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  139 + }
  140 + if (true) {
  141 + int size = 1+4+3;
  142 + SrsAmf0EcmaArray o;
  143 +
  144 + size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean();
  145 + o.set("sex", new SrsAmf0Boolean(true));
  146 +
  147 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  148 + }
  149 +
  150 + // object: array
  151 + if (true) {
  152 + int size = 1+3;
  153 + SrsAmf0Object o;
  154 +
  155 + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
  156 + o.set("name", new SrsAmf0String("winlin"));
  157 +
  158 + SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray();
  159 + args->set("p0", new SrsAmf0String("function"));
  160 + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
  161 + o.set("args", args);
  162 +
  163 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  164 + }
  165 + if (true) {
  166 + int size = 1+3;
  167 + SrsAmf0Object o;
  168 +
  169 + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
  170 + o.set("name", new SrsAmf0String("winlin"));
  171 +
  172 + SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray();
  173 + args->set("p0", new SrsAmf0String("function"));
  174 + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
  175 + o.set("args", args);
  176 +
  177 + SrsAmf0EcmaArray* params = new SrsAmf0EcmaArray();
  178 + params->set("p1", new SrsAmf0Number(10));
  179 + size += SrsAmf0Size::utf8("params")+SrsAmf0Size::array(params);
  180 + o.set("params", params);
  181 +
  182 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  183 + }
  184 +
  185 + // array: object
  186 + if (true) {
  187 + int size = 1+4+3;
  188 + SrsAmf0EcmaArray o;
  189 +
  190 + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
  191 + o.set("name", new SrsAmf0String("winlin"));
  192 +
  193 + SrsAmf0Object* args = new SrsAmf0Object();
  194 + args->set("p0", new SrsAmf0String("function"));
  195 + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args);
  196 + o.set("args", args);
  197 +
  198 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  199 + }
  200 + if (true) {
  201 + int size = 1+4+3;
  202 + SrsAmf0EcmaArray o;
  203 +
  204 + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
  205 + o.set("name", new SrsAmf0String("winlin"));
  206 +
  207 + SrsAmf0Object* args = new SrsAmf0Object();
  208 + args->set("p0", new SrsAmf0String("function"));
  209 + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args);
  210 + o.set("args", args);
  211 +
  212 + SrsAmf0Object* params = new SrsAmf0Object();
  213 + params->set("p1", new SrsAmf0Number(10));
  214 + size += SrsAmf0Size::utf8("params")+SrsAmf0Size::object(params);
  215 + o.set("params", params);
  216 +
  217 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  218 + }
  219 +
  220 + // object: object
  221 + if (true) {
  222 + int size = 1+3;
  223 + SrsAmf0Object o;
  224 +
  225 + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
  226 + o.set("name", new SrsAmf0String("winlin"));
  227 +
  228 + SrsAmf0Object* args = new SrsAmf0Object();
  229 + args->set("p0", new SrsAmf0String("function"));
  230 + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args);
  231 + o.set("args", args);
  232 +
  233 + SrsAmf0Object* params = new SrsAmf0Object();
  234 + params->set("p1", new SrsAmf0Number(10));
  235 + size += SrsAmf0Size::utf8("params")+SrsAmf0Size::object(params);
  236 + o.set("params", params);
  237 +
  238 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  239 + }
  240 +
  241 + // array: array
  242 + if (true) {
  243 + int size = 1+4+3;
  244 + SrsAmf0EcmaArray o;
  245 +
  246 + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
  247 + o.set("name", new SrsAmf0String("winlin"));
  248 +
  249 + SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray();
  250 + args->set("p0", new SrsAmf0String("function"));
  251 + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
  252 + o.set("args", args);
  253 +
  254 + SrsAmf0EcmaArray* params = new SrsAmf0EcmaArray();
  255 + params->set("p1", new SrsAmf0Number(10));
  256 + size += SrsAmf0Size::utf8("params")+SrsAmf0Size::array(params);
  257 + o.set("params", params);
  258 +
  259 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  260 + }
  261 +}