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 - // 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 -} 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 +}