Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(446)

Side by Side Diff: net/websockets/websocket_frame_parser_unittest.cc

Issue 10796107: WebSocketFrameChunk should use IOBuffer to hold data (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/websockets/websocket_frame_parser.h" 5 #include "net/websockets/websocket_frame_parser.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/memory/scoped_vector.h" 10 #include "base/memory/scoped_vector.h"
11 #include "base/port.h" 11 #include "base/port.h"
12 #include "net/base/io_buffer.h"
12 #include "net/websockets/websocket_frame.h" 13 #include "net/websockets/websocket_frame.h"
13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
14 15
15 namespace { 16 namespace {
16 17
17 const char kHello[] = "Hello, world!"; 18 const char kHello[] = "Hello, world!";
18 const uint64 kHelloLength = arraysize(kHello) - 1; 19 const uint64 kHelloLength = arraysize(kHello) - 1;
19 const char kHelloFrame[] = "\x81\x0DHello, world!"; 20 const char kHelloFrame[] = "\x81\x0DHello, world!";
20 const uint64 kHelloFrameLength = arraysize(kHelloFrame) - 1; 21 const uint64 kHelloFrameLength = arraysize(kHelloFrame) - 1;
21 const char kMaskedHelloFrame[] = 22 const char kMaskedHelloFrame[] =
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 EXPECT_TRUE(header->final); 60 EXPECT_TRUE(header->final);
60 EXPECT_FALSE(header->reserved1); 61 EXPECT_FALSE(header->reserved1);
61 EXPECT_FALSE(header->reserved2); 62 EXPECT_FALSE(header->reserved2);
62 EXPECT_FALSE(header->reserved3); 63 EXPECT_FALSE(header->reserved3);
63 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode); 64 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode);
64 EXPECT_FALSE(header->masked); 65 EXPECT_FALSE(header->masked);
65 EXPECT_EQ(kHelloLength, header->payload_length); 66 EXPECT_EQ(kHelloLength, header->payload_length);
66 } 67 }
67 EXPECT_TRUE(frame->final_chunk); 68 EXPECT_TRUE(frame->final_chunk);
68 69
69 std::vector<char> expected_data(kHello, kHello + kHelloLength); 70 EXPECT_TRUE(!memcmp(kHello, frame->data->data(), kHelloLength));
Yuta Kitamura 2012/07/26 09:48:48 EXPECT_EQ(0, memcmp(...)) might be slightly better
Takashi Toyoshima 2012/07/26 12:39:05 Thanks. std::equal seems to work better. I'd use
Yuta Kitamura 2012/07/27 08:01:08 If you use std::equal, using EXPECT_TRUE is just f
Takashi Toyoshima 2012/07/27 10:28:43 OK. I use EXPECT_TRUE.
70 EXPECT_EQ(expected_data, frame->data);
71 } 71 }
72 72
73 TEST(WebSocketFrameParserTest, DecodeMaskedFrame) { 73 TEST(WebSocketFrameParserTest, DecodeMaskedFrame) {
74 WebSocketFrameParser parser; 74 WebSocketFrameParser parser;
75 75
76 ScopedVector<WebSocketFrameChunk> frames; 76 ScopedVector<WebSocketFrameChunk> frames;
77 EXPECT_TRUE(parser.Decode(kMaskedHelloFrame, kMaskedHelloFrameLength, 77 EXPECT_TRUE(parser.Decode(kMaskedHelloFrame, kMaskedHelloFrameLength,
78 &frames)); 78 &frames));
79 EXPECT_FALSE(parser.failed()); 79 EXPECT_FALSE(parser.failed());
80 ASSERT_EQ(1u, frames.size()); 80 ASSERT_EQ(1u, frames.size());
81 WebSocketFrameChunk* frame = frames[0]; 81 WebSocketFrameChunk* frame = frames[0];
82 ASSERT_TRUE(frame != NULL); 82 ASSERT_TRUE(frame != NULL);
83 const WebSocketFrameHeader* header = frame->header.get(); 83 const WebSocketFrameHeader* header = frame->header.get();
84 EXPECT_TRUE(header != NULL); 84 EXPECT_TRUE(header != NULL);
85 if (header) { 85 if (header) {
86 EXPECT_TRUE(header->final); 86 EXPECT_TRUE(header->final);
87 EXPECT_FALSE(header->reserved1); 87 EXPECT_FALSE(header->reserved1);
88 EXPECT_FALSE(header->reserved2); 88 EXPECT_FALSE(header->reserved2);
89 EXPECT_FALSE(header->reserved3); 89 EXPECT_FALSE(header->reserved3);
90 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode); 90 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode);
91 EXPECT_TRUE(header->masked); 91 EXPECT_TRUE(header->masked);
92 EXPECT_EQ(kHelloLength, header->payload_length); 92 EXPECT_EQ(kHelloLength, header->payload_length);
93 } 93 }
94 EXPECT_TRUE(frame->final_chunk); 94 EXPECT_TRUE(frame->final_chunk);
95 95
96 std::vector<char> expected_data(kHello, kHello + kHelloLength); 96 EXPECT_TRUE(!memcmp(kHello, frame->data->data(), kHelloLength));
97 EXPECT_EQ(expected_data, frame->data);
98 } 97 }
99 98
100 TEST(WebSocketFrameParserTest, DecodeManyFrames) { 99 TEST(WebSocketFrameParserTest, DecodeManyFrames) {
101 struct Input { 100 struct Input {
102 const char* frame; 101 const char* frame;
103 size_t frame_length; 102 size_t frame_length;
104 const char* expected_payload; 103 const char* expected_payload;
105 size_t expected_payload_length; 104 size_t expected_payload_length;
106 }; 105 };
107 static const Input kInputs[] = { 106 static const Input kInputs[] = {
(...skipping 28 matching lines...) Expand all
136 EXPECT_TRUE(parser.Decode(&input.front(), input.size(), &frames)); 135 EXPECT_TRUE(parser.Decode(&input.front(), input.size(), &frames));
137 EXPECT_FALSE(parser.failed()); 136 EXPECT_FALSE(parser.failed());
138 ASSERT_EQ(static_cast<size_t>(kNumInputs), frames.size()); 137 ASSERT_EQ(static_cast<size_t>(kNumInputs), frames.size());
139 138
140 for (int i = 0; i < kNumInputs; ++i) { 139 for (int i = 0; i < kNumInputs; ++i) {
141 WebSocketFrameChunk* frame = frames[i]; 140 WebSocketFrameChunk* frame = frames[i];
142 EXPECT_TRUE(frame != NULL); 141 EXPECT_TRUE(frame != NULL);
143 if (!frame) 142 if (!frame)
144 continue; 143 continue;
145 EXPECT_TRUE(frame->final_chunk); 144 EXPECT_TRUE(frame->final_chunk);
146 std::vector<char> expected_data( 145 EXPECT_TRUE(!memcmp(kInputs[i].expected_payload,
147 kInputs[i].expected_payload, 146 frame->data->data(),
148 kInputs[i].expected_payload + kInputs[i].expected_payload_length); 147 kInputs[i].expected_payload_length));
149 EXPECT_EQ(expected_data, frame->data);
150 148
151 const WebSocketFrameHeader* header = frame->header.get(); 149 const WebSocketFrameHeader* header = frame->header.get();
152 EXPECT_TRUE(header != NULL); 150 EXPECT_TRUE(header != NULL);
153 if (!header) 151 if (!header)
154 continue; 152 continue;
155 EXPECT_TRUE(header->final); 153 EXPECT_TRUE(header->final);
156 EXPECT_FALSE(header->reserved1); 154 EXPECT_FALSE(header->reserved1);
157 EXPECT_FALSE(header->reserved2); 155 EXPECT_FALSE(header->reserved2);
158 EXPECT_FALSE(header->reserved3); 156 EXPECT_FALSE(header->reserved3);
159 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode); 157 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode);
(...skipping 20 matching lines...) Expand all
180 EXPECT_TRUE(parser.Decode(&input1.front(), input1.size(), &frames1)); 178 EXPECT_TRUE(parser.Decode(&input1.front(), input1.size(), &frames1));
181 EXPECT_FALSE(parser.failed()); 179 EXPECT_FALSE(parser.failed());
182 EXPECT_EQ(1u, frames1.size()); 180 EXPECT_EQ(1u, frames1.size());
183 if (frames1.size() != 1u) 181 if (frames1.size() != 1u)
184 continue; 182 continue;
185 WebSocketFrameChunk* frame1 = frames1[0]; 183 WebSocketFrameChunk* frame1 = frames1[0];
186 EXPECT_TRUE(frame1 != NULL); 184 EXPECT_TRUE(frame1 != NULL);
187 if (!frame1) 185 if (!frame1)
188 continue; 186 continue;
189 EXPECT_FALSE(frame1->final_chunk); 187 EXPECT_FALSE(frame1->final_chunk);
190 EXPECT_EQ(expected1, frame1->data); 188 EXPECT_TRUE(!memcmp(expected1.data(),
189 frame1->data->data(),
190 expected1.size()));
191 const WebSocketFrameHeader* header1 = frame1->header.get(); 191 const WebSocketFrameHeader* header1 = frame1->header.get();
192 EXPECT_TRUE(header1 != NULL); 192 EXPECT_TRUE(header1 != NULL);
193 if (!header1) 193 if (!header1)
194 continue; 194 continue;
195 EXPECT_TRUE(header1->final); 195 EXPECT_TRUE(header1->final);
196 EXPECT_FALSE(header1->reserved1); 196 EXPECT_FALSE(header1->reserved1);
197 EXPECT_FALSE(header1->reserved2); 197 EXPECT_FALSE(header1->reserved2);
198 EXPECT_FALSE(header1->reserved3); 198 EXPECT_FALSE(header1->reserved3);
199 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header1->opcode); 199 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header1->opcode);
200 EXPECT_FALSE(header1->masked); 200 EXPECT_FALSE(header1->masked);
201 EXPECT_EQ(kHelloLength, header1->payload_length); 201 EXPECT_EQ(kHelloLength, header1->payload_length);
202 202
203 ScopedVector<WebSocketFrameChunk> frames2; 203 ScopedVector<WebSocketFrameChunk> frames2;
204 EXPECT_TRUE(parser.Decode(&input2.front(), input2.size(), &frames2)); 204 EXPECT_TRUE(parser.Decode(&input2.front(), input2.size(), &frames2));
205 EXPECT_FALSE(parser.failed()); 205 EXPECT_FALSE(parser.failed());
206 EXPECT_EQ(1u, frames2.size()); 206 EXPECT_EQ(1u, frames2.size());
207 if (frames2.size() != 1u) 207 if (frames2.size() != 1u)
208 continue; 208 continue;
209 WebSocketFrameChunk* frame2 = frames2[0]; 209 WebSocketFrameChunk* frame2 = frames2[0];
210 EXPECT_TRUE(frame2 != NULL); 210 EXPECT_TRUE(frame2 != NULL);
211 if (!frame2) 211 if (!frame2)
212 continue; 212 continue;
213 EXPECT_TRUE(frame2->final_chunk); 213 EXPECT_TRUE(frame2->final_chunk);
214 EXPECT_EQ(expected2, frame2->data); 214 EXPECT_TRUE(!memcmp(expected2.data(),
215 frame2->data->data(),
216 expected2.size()));
215 const WebSocketFrameHeader* header2 = frame2->header.get(); 217 const WebSocketFrameHeader* header2 = frame2->header.get();
216 EXPECT_TRUE(header2 == NULL); 218 EXPECT_TRUE(header2 == NULL);
217 } 219 }
218 } 220 }
219 221
220 TEST(WebSocketFrameParserTest, DecodePartialMaskedFrame) { 222 TEST(WebSocketFrameParserTest, DecodePartialMaskedFrame) {
221 static const size_t kFrameHeaderSize = 6; 223 static const size_t kFrameHeaderSize = 6;
222 224
223 for (size_t cutting_pos = 0; cutting_pos < kHelloLength; ++cutting_pos) { 225 for (size_t cutting_pos = 0; cutting_pos < kHelloLength; ++cutting_pos) {
224 std::vector<char> input1( 226 std::vector<char> input1(
(...skipping 11 matching lines...) Expand all
236 EXPECT_TRUE(parser.Decode(&input1.front(), input1.size(), &frames1)); 238 EXPECT_TRUE(parser.Decode(&input1.front(), input1.size(), &frames1));
237 EXPECT_FALSE(parser.failed()); 239 EXPECT_FALSE(parser.failed());
238 EXPECT_EQ(1u, frames1.size()); 240 EXPECT_EQ(1u, frames1.size());
239 if (frames1.size() != 1u) 241 if (frames1.size() != 1u)
240 continue; 242 continue;
241 WebSocketFrameChunk* frame1 = frames1[0]; 243 WebSocketFrameChunk* frame1 = frames1[0];
242 EXPECT_TRUE(frame1 != NULL); 244 EXPECT_TRUE(frame1 != NULL);
243 if (!frame1) 245 if (!frame1)
244 continue; 246 continue;
245 EXPECT_FALSE(frame1->final_chunk); 247 EXPECT_FALSE(frame1->final_chunk);
246 EXPECT_EQ(expected1, frame1->data); 248 EXPECT_TRUE(!memcmp(expected1.data(),
249 frame1->data->data(),
250 expected1.size()));
247 const WebSocketFrameHeader* header1 = frame1->header.get(); 251 const WebSocketFrameHeader* header1 = frame1->header.get();
248 EXPECT_TRUE(header1 != NULL); 252 EXPECT_TRUE(header1 != NULL);
249 if (!header1) 253 if (!header1)
250 continue; 254 continue;
251 EXPECT_TRUE(header1->final); 255 EXPECT_TRUE(header1->final);
252 EXPECT_FALSE(header1->reserved1); 256 EXPECT_FALSE(header1->reserved1);
253 EXPECT_FALSE(header1->reserved2); 257 EXPECT_FALSE(header1->reserved2);
254 EXPECT_FALSE(header1->reserved3); 258 EXPECT_FALSE(header1->reserved3);
255 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header1->opcode); 259 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header1->opcode);
256 EXPECT_TRUE(header1->masked); 260 EXPECT_TRUE(header1->masked);
257 EXPECT_EQ(kHelloLength, header1->payload_length); 261 EXPECT_EQ(kHelloLength, header1->payload_length);
258 262
259 ScopedVector<WebSocketFrameChunk> frames2; 263 ScopedVector<WebSocketFrameChunk> frames2;
260 EXPECT_TRUE(parser.Decode(&input2.front(), input2.size(), &frames2)); 264 EXPECT_TRUE(parser.Decode(&input2.front(), input2.size(), &frames2));
261 EXPECT_FALSE(parser.failed()); 265 EXPECT_FALSE(parser.failed());
262 EXPECT_EQ(1u, frames2.size()); 266 EXPECT_EQ(1u, frames2.size());
263 if (frames2.size() != 1u) 267 if (frames2.size() != 1u)
264 continue; 268 continue;
265 WebSocketFrameChunk* frame2 = frames2[0]; 269 WebSocketFrameChunk* frame2 = frames2[0];
266 EXPECT_TRUE(frame2 != NULL); 270 EXPECT_TRUE(frame2 != NULL);
267 if (!frame2) 271 if (!frame2)
268 continue; 272 continue;
269 EXPECT_TRUE(frame2->final_chunk); 273 EXPECT_TRUE(frame2->final_chunk);
270 EXPECT_EQ(expected2, frame2->data); 274 EXPECT_TRUE(!memcmp(expected2.data(),
275 frame2->data->data(),
276 expected2.size()));
271 const WebSocketFrameHeader* header2 = frame2->header.get(); 277 const WebSocketFrameHeader* header2 = frame2->header.get();
272 EXPECT_TRUE(header2 == NULL); 278 EXPECT_TRUE(header2 == NULL);
273 } 279 }
274 } 280 }
275 281
276 TEST(WebSocketFrameParserTest, DecodeFramesOfVariousLengths) { 282 TEST(WebSocketFrameParserTest, DecodeFramesOfVariousLengths) {
277 for (int i = 0; i < kNumFrameHeaderTests; ++i) { 283 for (int i = 0; i < kNumFrameHeaderTests; ++i) {
278 const char* frame_header = kFrameHeaderTests[i].frame_header; 284 const char* frame_header = kFrameHeaderTests[i].frame_header;
279 size_t frame_header_length = kFrameHeaderTests[i].frame_header_length; 285 size_t frame_header_length = kFrameHeaderTests[i].frame_header_length;
280 uint64 frame_length = kFrameHeaderTests[i].frame_length; 286 uint64 frame_length = kFrameHeaderTests[i].frame_length;
(...skipping 14 matching lines...) Expand all
295 continue; 301 continue;
296 WebSocketFrameChunk* frame = frames[0]; 302 WebSocketFrameChunk* frame = frames[0];
297 EXPECT_TRUE(frame != NULL); 303 EXPECT_TRUE(frame != NULL);
298 if (!frame) 304 if (!frame)
299 continue; 305 continue;
300 if (frame_length == input_payload_size) 306 if (frame_length == input_payload_size)
301 EXPECT_TRUE(frame->final_chunk); 307 EXPECT_TRUE(frame->final_chunk);
302 else 308 else
303 EXPECT_FALSE(frame->final_chunk); 309 EXPECT_FALSE(frame->final_chunk);
304 std::vector<char> expected_payload(input_payload_size, 'a'); 310 std::vector<char> expected_payload(input_payload_size, 'a');
305 EXPECT_EQ(expected_payload, frame->data); 311 EXPECT_TRUE(!memcmp(expected_payload.data(),
312 frame->data->data(),
313 expected_payload.size()));
306 const WebSocketFrameHeader* header = frame->header.get(); 314 const WebSocketFrameHeader* header = frame->header.get();
307 EXPECT_TRUE(header != NULL); 315 EXPECT_TRUE(header != NULL);
308 if (!header) 316 if (!header)
309 continue; 317 continue;
310 EXPECT_TRUE(header->final); 318 EXPECT_TRUE(header->final);
311 EXPECT_FALSE(header->reserved1); 319 EXPECT_FALSE(header->reserved1);
312 EXPECT_FALSE(header->reserved2); 320 EXPECT_FALSE(header->reserved2);
313 EXPECT_FALSE(header->reserved3); 321 EXPECT_FALSE(header->reserved3);
314 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode); 322 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode);
315 EXPECT_FALSE(header->masked); 323 EXPECT_FALSE(header->masked);
(...skipping 23 matching lines...) Expand all
339 if (frames.size() != 1u) 347 if (frames.size() != 1u)
340 continue; 348 continue;
341 WebSocketFrameChunk* frame = frames[0]; 349 WebSocketFrameChunk* frame = frames[0];
342 EXPECT_TRUE(frame != NULL); 350 EXPECT_TRUE(frame != NULL);
343 if (!frame) 351 if (!frame)
344 continue; 352 continue;
345 if (frame_length == 0u) 353 if (frame_length == 0u)
346 EXPECT_TRUE(frame->final_chunk); 354 EXPECT_TRUE(frame->final_chunk);
347 else 355 else
348 EXPECT_FALSE(frame->final_chunk); 356 EXPECT_FALSE(frame->final_chunk);
349 EXPECT_EQ(std::vector<char>(), frame->data);
Yuta Kitamura 2012/07/26 09:48:48 Why did you remove this?
Takashi Toyoshima 2012/07/26 12:39:05 I removed it because it didn't have buffer size in
350 const WebSocketFrameHeader* header = frame->header.get(); 357 const WebSocketFrameHeader* header = frame->header.get();
351 EXPECT_TRUE(header != NULL); 358 EXPECT_TRUE(header != NULL);
352 if (!header) 359 if (!header)
353 continue; 360 continue;
354 EXPECT_TRUE(header->final); 361 EXPECT_TRUE(header->final);
355 EXPECT_FALSE(header->reserved1); 362 EXPECT_FALSE(header->reserved1);
356 EXPECT_FALSE(header->reserved2); 363 EXPECT_FALSE(header->reserved2);
357 EXPECT_FALSE(header->reserved3); 364 EXPECT_FALSE(header->reserved3);
358 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode); 365 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode);
359 EXPECT_FALSE(header->masked); 366 EXPECT_FALSE(header->masked);
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 EXPECT_TRUE(parser.Decode(frame_header, frame_header_length, &frames)); 444 EXPECT_TRUE(parser.Decode(frame_header, frame_header_length, &frames));
438 EXPECT_FALSE(parser.failed()); 445 EXPECT_FALSE(parser.failed());
439 EXPECT_EQ(1u, frames.size()); 446 EXPECT_EQ(1u, frames.size());
440 if (frames.size() != 1u) 447 if (frames.size() != 1u)
441 continue; 448 continue;
442 WebSocketFrameChunk* frame = frames[0]; 449 WebSocketFrameChunk* frame = frames[0];
443 EXPECT_TRUE(frame != NULL); 450 EXPECT_TRUE(frame != NULL);
444 if (!frame) 451 if (!frame)
445 continue; 452 continue;
446 EXPECT_TRUE(frame->final_chunk); 453 EXPECT_TRUE(frame->final_chunk);
447 EXPECT_EQ(std::vector<char>(), frame->data);
448 const WebSocketFrameHeader* header = frame->header.get(); 454 const WebSocketFrameHeader* header = frame->header.get();
449 EXPECT_TRUE(header != NULL); 455 EXPECT_TRUE(header != NULL);
450 if (!header) 456 if (!header)
451 continue; 457 continue;
452 EXPECT_TRUE(header->final); 458 EXPECT_TRUE(header->final);
453 EXPECT_FALSE(header->reserved1); 459 EXPECT_FALSE(header->reserved1);
454 EXPECT_FALSE(header->reserved2); 460 EXPECT_FALSE(header->reserved2);
455 EXPECT_FALSE(header->reserved3); 461 EXPECT_FALSE(header->reserved3);
456 EXPECT_EQ(opcode, header->opcode); 462 EXPECT_EQ(opcode, header->opcode);
457 EXPECT_FALSE(header->masked); 463 EXPECT_FALSE(header->masked);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 EXPECT_TRUE(parser.Decode(frame_header, frame_header_length, &frames)); 499 EXPECT_TRUE(parser.Decode(frame_header, frame_header_length, &frames));
494 EXPECT_FALSE(parser.failed()); 500 EXPECT_FALSE(parser.failed());
495 EXPECT_EQ(1u, frames.size()); 501 EXPECT_EQ(1u, frames.size());
496 if (frames.size() != 1u) 502 if (frames.size() != 1u)
497 continue; 503 continue;
498 WebSocketFrameChunk* frame = frames[0]; 504 WebSocketFrameChunk* frame = frames[0];
499 EXPECT_TRUE(frame != NULL); 505 EXPECT_TRUE(frame != NULL);
500 if (!frame) 506 if (!frame)
501 continue; 507 continue;
502 EXPECT_TRUE(frame->final_chunk); 508 EXPECT_TRUE(frame->final_chunk);
503 EXPECT_EQ(std::vector<char>(), frame->data);
504 const WebSocketFrameHeader* header = frame->header.get(); 509 const WebSocketFrameHeader* header = frame->header.get();
505 EXPECT_TRUE(header != NULL); 510 EXPECT_TRUE(header != NULL);
506 if (!header) 511 if (!header)
507 continue; 512 continue;
508 EXPECT_EQ(final, header->final); 513 EXPECT_EQ(final, header->final);
509 EXPECT_EQ(reserved1, header->reserved1); 514 EXPECT_EQ(reserved1, header->reserved1);
510 EXPECT_EQ(reserved2, header->reserved2); 515 EXPECT_EQ(reserved2, header->reserved2);
511 EXPECT_EQ(reserved3, header->reserved3); 516 EXPECT_EQ(reserved3, header->reserved3);
512 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode); 517 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode);
513 EXPECT_FALSE(header->masked); 518 EXPECT_FALSE(header->masked);
514 EXPECT_EQ(0u, header->payload_length); 519 EXPECT_EQ(0u, header->payload_length);
515 } 520 }
516 } 521 }
517 522
518 } // namespace net 523 } // namespace net
OLDNEW
« net/websockets/websocket_frame.h ('K') | « net/websockets/websocket_frame_parser.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698