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

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: s/uint64_t/uint64/g 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 <algorithm>
7 #include <vector> 8 #include <vector>
8 9
9 #include "base/basictypes.h" 10 #include "base/basictypes.h"
10 #include "base/memory/scoped_vector.h" 11 #include "base/memory/scoped_vector.h"
11 #include "base/port.h" 12 #include "base/port.h"
13 #include "net/base/io_buffer.h"
12 #include "net/websockets/websocket_frame.h" 14 #include "net/websockets/websocket_frame.h"
13 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
14 16
15 namespace { 17 namespace {
16 18
17 const char kHello[] = "Hello, world!"; 19 const char kHello[] = "Hello, world!";
18 const uint64 kHelloLength = arraysize(kHello) - 1; 20 const uint64 kHelloLength = arraysize(kHello) - 1;
19 const char kHelloFrame[] = "\x81\x0DHello, world!"; 21 const char kHelloFrame[] = "\x81\x0DHello, world!";
20 const uint64 kHelloFrameLength = arraysize(kHelloFrame) - 1; 22 const uint64 kHelloFrameLength = arraysize(kHelloFrame) - 1;
21 const char kMaskedHelloFrame[] = 23 const char kMaskedHelloFrame[] =
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 EXPECT_TRUE(header->final); 61 EXPECT_TRUE(header->final);
60 EXPECT_FALSE(header->reserved1); 62 EXPECT_FALSE(header->reserved1);
61 EXPECT_FALSE(header->reserved2); 63 EXPECT_FALSE(header->reserved2);
62 EXPECT_FALSE(header->reserved3); 64 EXPECT_FALSE(header->reserved3);
63 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode); 65 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode);
64 EXPECT_FALSE(header->masked); 66 EXPECT_FALSE(header->masked);
65 EXPECT_EQ(kHelloLength, header->payload_length); 67 EXPECT_EQ(kHelloLength, header->payload_length);
66 } 68 }
67 EXPECT_TRUE(frame->final_chunk); 69 EXPECT_TRUE(frame->final_chunk);
68 70
69 std::vector<char> expected_data(kHello, kHello + kHelloLength); 71 ASSERT_EQ(static_cast<int>(kHelloLength), frame->data->size());
70 EXPECT_EQ(expected_data, frame->data); 72 EXPECT_TRUE(std::equal(kHello, kHello + kHelloLength, frame->data->data()));
71 } 73 }
72 74
73 TEST(WebSocketFrameParserTest, DecodeMaskedFrame) { 75 TEST(WebSocketFrameParserTest, DecodeMaskedFrame) {
74 WebSocketFrameParser parser; 76 WebSocketFrameParser parser;
75 77
76 ScopedVector<WebSocketFrameChunk> frames; 78 ScopedVector<WebSocketFrameChunk> frames;
77 EXPECT_TRUE(parser.Decode(kMaskedHelloFrame, kMaskedHelloFrameLength, 79 EXPECT_TRUE(parser.Decode(kMaskedHelloFrame, kMaskedHelloFrameLength,
78 &frames)); 80 &frames));
79 EXPECT_FALSE(parser.failed()); 81 EXPECT_FALSE(parser.failed());
80 ASSERT_EQ(1u, frames.size()); 82 ASSERT_EQ(1u, frames.size());
81 WebSocketFrameChunk* frame = frames[0]; 83 WebSocketFrameChunk* frame = frames[0];
82 ASSERT_TRUE(frame != NULL); 84 ASSERT_TRUE(frame != NULL);
83 const WebSocketFrameHeader* header = frame->header.get(); 85 const WebSocketFrameHeader* header = frame->header.get();
84 EXPECT_TRUE(header != NULL); 86 EXPECT_TRUE(header != NULL);
85 if (header) { 87 if (header) {
86 EXPECT_TRUE(header->final); 88 EXPECT_TRUE(header->final);
87 EXPECT_FALSE(header->reserved1); 89 EXPECT_FALSE(header->reserved1);
88 EXPECT_FALSE(header->reserved2); 90 EXPECT_FALSE(header->reserved2);
89 EXPECT_FALSE(header->reserved3); 91 EXPECT_FALSE(header->reserved3);
90 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode); 92 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode);
91 EXPECT_TRUE(header->masked); 93 EXPECT_TRUE(header->masked);
92 EXPECT_EQ(kHelloLength, header->payload_length); 94 EXPECT_EQ(kHelloLength, header->payload_length);
93 } 95 }
94 EXPECT_TRUE(frame->final_chunk); 96 EXPECT_TRUE(frame->final_chunk);
95 97
96 std::vector<char> expected_data(kHello, kHello + kHelloLength); 98 ASSERT_EQ(static_cast<int>(kHelloLength), frame->data->size());
97 EXPECT_EQ(expected_data, frame->data); 99 EXPECT_TRUE(std::equal(kHello, kHello + kHelloLength, frame->data->data()));
98 } 100 }
99 101
100 TEST(WebSocketFrameParserTest, DecodeManyFrames) { 102 TEST(WebSocketFrameParserTest, DecodeManyFrames) {
101 struct Input { 103 struct Input {
102 const char* frame; 104 const char* frame;
103 size_t frame_length; 105 size_t frame_length;
104 const char* expected_payload; 106 const char* expected_payload;
105 size_t expected_payload_length; 107 size_t expected_payload_length;
106 }; 108 };
107 static const Input kInputs[] = { 109 static const Input kInputs[] = {
(...skipping 28 matching lines...) Expand all
136 EXPECT_TRUE(parser.Decode(&input.front(), input.size(), &frames)); 138 EXPECT_TRUE(parser.Decode(&input.front(), input.size(), &frames));
137 EXPECT_FALSE(parser.failed()); 139 EXPECT_FALSE(parser.failed());
138 ASSERT_EQ(static_cast<size_t>(kNumInputs), frames.size()); 140 ASSERT_EQ(static_cast<size_t>(kNumInputs), frames.size());
139 141
140 for (int i = 0; i < kNumInputs; ++i) { 142 for (int i = 0; i < kNumInputs; ++i) {
141 WebSocketFrameChunk* frame = frames[i]; 143 WebSocketFrameChunk* frame = frames[i];
142 EXPECT_TRUE(frame != NULL); 144 EXPECT_TRUE(frame != NULL);
143 if (!frame) 145 if (!frame)
144 continue; 146 continue;
145 EXPECT_TRUE(frame->final_chunk); 147 EXPECT_TRUE(frame->final_chunk);
146 std::vector<char> expected_data( 148 ASSERT_EQ(kInputs[i].expected_payload_length,
149 static_cast<uint64>(frame->data->size()));
150 EXPECT_TRUE(std::equal(
147 kInputs[i].expected_payload, 151 kInputs[i].expected_payload,
148 kInputs[i].expected_payload + kInputs[i].expected_payload_length); 152 kInputs[i].expected_payload + kInputs[i].expected_payload_length,
149 EXPECT_EQ(expected_data, frame->data); 153 frame->data->data()));
150 154
151 const WebSocketFrameHeader* header = frame->header.get(); 155 const WebSocketFrameHeader* header = frame->header.get();
152 EXPECT_TRUE(header != NULL); 156 EXPECT_TRUE(header != NULL);
153 if (!header) 157 if (!header)
154 continue; 158 continue;
155 EXPECT_TRUE(header->final); 159 EXPECT_TRUE(header->final);
156 EXPECT_FALSE(header->reserved1); 160 EXPECT_FALSE(header->reserved1);
157 EXPECT_FALSE(header->reserved2); 161 EXPECT_FALSE(header->reserved2);
158 EXPECT_FALSE(header->reserved3); 162 EXPECT_FALSE(header->reserved3);
159 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode); 163 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode);
(...skipping 20 matching lines...) Expand all
180 EXPECT_TRUE(parser.Decode(&input1.front(), input1.size(), &frames1)); 184 EXPECT_TRUE(parser.Decode(&input1.front(), input1.size(), &frames1));
181 EXPECT_FALSE(parser.failed()); 185 EXPECT_FALSE(parser.failed());
182 EXPECT_EQ(1u, frames1.size()); 186 EXPECT_EQ(1u, frames1.size());
183 if (frames1.size() != 1u) 187 if (frames1.size() != 1u)
184 continue; 188 continue;
185 WebSocketFrameChunk* frame1 = frames1[0]; 189 WebSocketFrameChunk* frame1 = frames1[0];
186 EXPECT_TRUE(frame1 != NULL); 190 EXPECT_TRUE(frame1 != NULL);
187 if (!frame1) 191 if (!frame1)
188 continue; 192 continue;
189 EXPECT_FALSE(frame1->final_chunk); 193 EXPECT_FALSE(frame1->final_chunk);
190 EXPECT_EQ(expected1, frame1->data); 194 if (expected1.size() == 0) {
195 EXPECT_EQ(NULL, frame1->data.get());
196 } else {
197 ASSERT_EQ(cutting_pos, static_cast<size_t>(frame1->data->size()));
198 EXPECT_TRUE(std::equal(expected1.data(),
199 expected1.data() + expected1.size(),
200 frame1->data->data()));
201 }
191 const WebSocketFrameHeader* header1 = frame1->header.get(); 202 const WebSocketFrameHeader* header1 = frame1->header.get();
192 EXPECT_TRUE(header1 != NULL); 203 EXPECT_TRUE(header1 != NULL);
193 if (!header1) 204 if (!header1)
194 continue; 205 continue;
195 EXPECT_TRUE(header1->final); 206 EXPECT_TRUE(header1->final);
196 EXPECT_FALSE(header1->reserved1); 207 EXPECT_FALSE(header1->reserved1);
197 EXPECT_FALSE(header1->reserved2); 208 EXPECT_FALSE(header1->reserved2);
198 EXPECT_FALSE(header1->reserved3); 209 EXPECT_FALSE(header1->reserved3);
199 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header1->opcode); 210 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header1->opcode);
200 EXPECT_FALSE(header1->masked); 211 EXPECT_FALSE(header1->masked);
201 EXPECT_EQ(kHelloLength, header1->payload_length); 212 EXPECT_EQ(kHelloLength, header1->payload_length);
202 213
203 ScopedVector<WebSocketFrameChunk> frames2; 214 ScopedVector<WebSocketFrameChunk> frames2;
204 EXPECT_TRUE(parser.Decode(&input2.front(), input2.size(), &frames2)); 215 EXPECT_TRUE(parser.Decode(&input2.front(), input2.size(), &frames2));
205 EXPECT_FALSE(parser.failed()); 216 EXPECT_FALSE(parser.failed());
206 EXPECT_EQ(1u, frames2.size()); 217 EXPECT_EQ(1u, frames2.size());
207 if (frames2.size() != 1u) 218 if (frames2.size() != 1u)
208 continue; 219 continue;
209 WebSocketFrameChunk* frame2 = frames2[0]; 220 WebSocketFrameChunk* frame2 = frames2[0];
210 EXPECT_TRUE(frame2 != NULL); 221 EXPECT_TRUE(frame2 != NULL);
211 if (!frame2) 222 if (!frame2)
212 continue; 223 continue;
213 EXPECT_TRUE(frame2->final_chunk); 224 EXPECT_TRUE(frame2->final_chunk);
214 EXPECT_EQ(expected2, frame2->data); 225 if (expected2.size() == 0) {
226 EXPECT_EQ(NULL, frame2->data.get());
227 } else {
228 ASSERT_EQ(expected2.size(), static_cast<uint64>(frame2->data->size()));
229 EXPECT_TRUE(std::equal(expected2.data(),
230 expected2.data() + expected2.size(),
231 frame2->data->data()));
232 }
215 const WebSocketFrameHeader* header2 = frame2->header.get(); 233 const WebSocketFrameHeader* header2 = frame2->header.get();
216 EXPECT_TRUE(header2 == NULL); 234 EXPECT_TRUE(header2 == NULL);
217 } 235 }
218 } 236 }
219 237
220 TEST(WebSocketFrameParserTest, DecodePartialMaskedFrame) { 238 TEST(WebSocketFrameParserTest, DecodePartialMaskedFrame) {
221 static const size_t kFrameHeaderSize = 6; 239 static const size_t kFrameHeaderSize = 6;
222 240
223 for (size_t cutting_pos = 0; cutting_pos < kHelloLength; ++cutting_pos) { 241 for (size_t cutting_pos = 0; cutting_pos < kHelloLength; ++cutting_pos) {
224 std::vector<char> input1( 242 std::vector<char> input1(
(...skipping 11 matching lines...) Expand all
236 EXPECT_TRUE(parser.Decode(&input1.front(), input1.size(), &frames1)); 254 EXPECT_TRUE(parser.Decode(&input1.front(), input1.size(), &frames1));
237 EXPECT_FALSE(parser.failed()); 255 EXPECT_FALSE(parser.failed());
238 EXPECT_EQ(1u, frames1.size()); 256 EXPECT_EQ(1u, frames1.size());
239 if (frames1.size() != 1u) 257 if (frames1.size() != 1u)
240 continue; 258 continue;
241 WebSocketFrameChunk* frame1 = frames1[0]; 259 WebSocketFrameChunk* frame1 = frames1[0];
242 EXPECT_TRUE(frame1 != NULL); 260 EXPECT_TRUE(frame1 != NULL);
243 if (!frame1) 261 if (!frame1)
244 continue; 262 continue;
245 EXPECT_FALSE(frame1->final_chunk); 263 EXPECT_FALSE(frame1->final_chunk);
246 EXPECT_EQ(expected1, frame1->data); 264 if (expected1.size() == 0) {
265 EXPECT_EQ(NULL, frame1->data.get());
266 } else {
267 ASSERT_EQ(expected1.size(), static_cast<uint64>(frame1->data->size()));
268 EXPECT_TRUE(std::equal(expected1.data(),
269 expected1.data() + expected1.size(),
270 frame1->data->data()));
271 }
247 const WebSocketFrameHeader* header1 = frame1->header.get(); 272 const WebSocketFrameHeader* header1 = frame1->header.get();
248 EXPECT_TRUE(header1 != NULL); 273 EXPECT_TRUE(header1 != NULL);
249 if (!header1) 274 if (!header1)
250 continue; 275 continue;
251 EXPECT_TRUE(header1->final); 276 EXPECT_TRUE(header1->final);
252 EXPECT_FALSE(header1->reserved1); 277 EXPECT_FALSE(header1->reserved1);
253 EXPECT_FALSE(header1->reserved2); 278 EXPECT_FALSE(header1->reserved2);
254 EXPECT_FALSE(header1->reserved3); 279 EXPECT_FALSE(header1->reserved3);
255 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header1->opcode); 280 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header1->opcode);
256 EXPECT_TRUE(header1->masked); 281 EXPECT_TRUE(header1->masked);
257 EXPECT_EQ(kHelloLength, header1->payload_length); 282 EXPECT_EQ(kHelloLength, header1->payload_length);
258 283
259 ScopedVector<WebSocketFrameChunk> frames2; 284 ScopedVector<WebSocketFrameChunk> frames2;
260 EXPECT_TRUE(parser.Decode(&input2.front(), input2.size(), &frames2)); 285 EXPECT_TRUE(parser.Decode(&input2.front(), input2.size(), &frames2));
261 EXPECT_FALSE(parser.failed()); 286 EXPECT_FALSE(parser.failed());
262 EXPECT_EQ(1u, frames2.size()); 287 EXPECT_EQ(1u, frames2.size());
263 if (frames2.size() != 1u) 288 if (frames2.size() != 1u)
264 continue; 289 continue;
265 WebSocketFrameChunk* frame2 = frames2[0]; 290 WebSocketFrameChunk* frame2 = frames2[0];
266 EXPECT_TRUE(frame2 != NULL); 291 EXPECT_TRUE(frame2 != NULL);
267 if (!frame2) 292 if (!frame2)
268 continue; 293 continue;
269 EXPECT_TRUE(frame2->final_chunk); 294 EXPECT_TRUE(frame2->final_chunk);
270 EXPECT_EQ(expected2, frame2->data); 295 if (expected2.size() == 0) {
296 EXPECT_EQ(NULL, frame2->data.get());
297 } else {
298 ASSERT_EQ(expected2.size(), static_cast<uint64>(frame2->data->size()));
299 EXPECT_TRUE(std::equal(expected2.data(),
300 expected2.data() + expected2.size(),
301 frame2->data->data()));
302 }
271 const WebSocketFrameHeader* header2 = frame2->header.get(); 303 const WebSocketFrameHeader* header2 = frame2->header.get();
272 EXPECT_TRUE(header2 == NULL); 304 EXPECT_TRUE(header2 == NULL);
273 } 305 }
274 } 306 }
275 307
276 TEST(WebSocketFrameParserTest, DecodeFramesOfVariousLengths) { 308 TEST(WebSocketFrameParserTest, DecodeFramesOfVariousLengths) {
277 for (int i = 0; i < kNumFrameHeaderTests; ++i) { 309 for (int i = 0; i < kNumFrameHeaderTests; ++i) {
278 const char* frame_header = kFrameHeaderTests[i].frame_header; 310 const char* frame_header = kFrameHeaderTests[i].frame_header;
279 size_t frame_header_length = kFrameHeaderTests[i].frame_header_length; 311 size_t frame_header_length = kFrameHeaderTests[i].frame_header_length;
280 uint64 frame_length = kFrameHeaderTests[i].frame_length; 312 uint64 frame_length = kFrameHeaderTests[i].frame_length;
(...skipping 14 matching lines...) Expand all
295 continue; 327 continue;
296 WebSocketFrameChunk* frame = frames[0]; 328 WebSocketFrameChunk* frame = frames[0];
297 EXPECT_TRUE(frame != NULL); 329 EXPECT_TRUE(frame != NULL);
298 if (!frame) 330 if (!frame)
299 continue; 331 continue;
300 if (frame_length == input_payload_size) 332 if (frame_length == input_payload_size)
301 EXPECT_TRUE(frame->final_chunk); 333 EXPECT_TRUE(frame->final_chunk);
302 else 334 else
303 EXPECT_FALSE(frame->final_chunk); 335 EXPECT_FALSE(frame->final_chunk);
304 std::vector<char> expected_payload(input_payload_size, 'a'); 336 std::vector<char> expected_payload(input_payload_size, 'a');
305 EXPECT_EQ(expected_payload, frame->data); 337 if (expected_payload.size() == 0) {
338 EXPECT_EQ(NULL, frame->data.get());
339 } else {
340 ASSERT_EQ(expected_payload.size(),
341 static_cast<uint64>(frame->data->size()));
342 EXPECT_TRUE(std::equal(
343 expected_payload.data(),
344 expected_payload.data() + expected_payload.size(),
345 frame->data->data()));
346 }
306 const WebSocketFrameHeader* header = frame->header.get(); 347 const WebSocketFrameHeader* header = frame->header.get();
307 EXPECT_TRUE(header != NULL); 348 EXPECT_TRUE(header != NULL);
308 if (!header) 349 if (!header)
309 continue; 350 continue;
310 EXPECT_TRUE(header->final); 351 EXPECT_TRUE(header->final);
311 EXPECT_FALSE(header->reserved1); 352 EXPECT_FALSE(header->reserved1);
312 EXPECT_FALSE(header->reserved2); 353 EXPECT_FALSE(header->reserved2);
313 EXPECT_FALSE(header->reserved3); 354 EXPECT_FALSE(header->reserved3);
314 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode); 355 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode);
315 EXPECT_FALSE(header->masked); 356 EXPECT_FALSE(header->masked);
(...skipping 23 matching lines...) Expand all
339 if (frames.size() != 1u) 380 if (frames.size() != 1u)
340 continue; 381 continue;
341 WebSocketFrameChunk* frame = frames[0]; 382 WebSocketFrameChunk* frame = frames[0];
342 EXPECT_TRUE(frame != NULL); 383 EXPECT_TRUE(frame != NULL);
343 if (!frame) 384 if (!frame)
344 continue; 385 continue;
345 if (frame_length == 0u) 386 if (frame_length == 0u)
346 EXPECT_TRUE(frame->final_chunk); 387 EXPECT_TRUE(frame->final_chunk);
347 else 388 else
348 EXPECT_FALSE(frame->final_chunk); 389 EXPECT_FALSE(frame->final_chunk);
349 EXPECT_EQ(std::vector<char>(), frame->data); 390 EXPECT_EQ(NULL, frame->data.get());
350 const WebSocketFrameHeader* header = frame->header.get(); 391 const WebSocketFrameHeader* header = frame->header.get();
351 EXPECT_TRUE(header != NULL); 392 EXPECT_TRUE(header != NULL);
352 if (!header) 393 if (!header)
353 continue; 394 continue;
354 EXPECT_TRUE(header->final); 395 EXPECT_TRUE(header->final);
355 EXPECT_FALSE(header->reserved1); 396 EXPECT_FALSE(header->reserved1);
356 EXPECT_FALSE(header->reserved2); 397 EXPECT_FALSE(header->reserved2);
357 EXPECT_FALSE(header->reserved3); 398 EXPECT_FALSE(header->reserved3);
358 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode); 399 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode);
359 EXPECT_FALSE(header->masked); 400 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)); 478 EXPECT_TRUE(parser.Decode(frame_header, frame_header_length, &frames));
438 EXPECT_FALSE(parser.failed()); 479 EXPECT_FALSE(parser.failed());
439 EXPECT_EQ(1u, frames.size()); 480 EXPECT_EQ(1u, frames.size());
440 if (frames.size() != 1u) 481 if (frames.size() != 1u)
441 continue; 482 continue;
442 WebSocketFrameChunk* frame = frames[0]; 483 WebSocketFrameChunk* frame = frames[0];
443 EXPECT_TRUE(frame != NULL); 484 EXPECT_TRUE(frame != NULL);
444 if (!frame) 485 if (!frame)
445 continue; 486 continue;
446 EXPECT_TRUE(frame->final_chunk); 487 EXPECT_TRUE(frame->final_chunk);
447 EXPECT_EQ(std::vector<char>(), frame->data); 488 EXPECT_EQ(NULL, frame->data.get());
448 const WebSocketFrameHeader* header = frame->header.get(); 489 const WebSocketFrameHeader* header = frame->header.get();
449 EXPECT_TRUE(header != NULL); 490 EXPECT_TRUE(header != NULL);
450 if (!header) 491 if (!header)
451 continue; 492 continue;
452 EXPECT_TRUE(header->final); 493 EXPECT_TRUE(header->final);
453 EXPECT_FALSE(header->reserved1); 494 EXPECT_FALSE(header->reserved1);
454 EXPECT_FALSE(header->reserved2); 495 EXPECT_FALSE(header->reserved2);
455 EXPECT_FALSE(header->reserved3); 496 EXPECT_FALSE(header->reserved3);
456 EXPECT_EQ(opcode, header->opcode); 497 EXPECT_EQ(opcode, header->opcode);
457 EXPECT_FALSE(header->masked); 498 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)); 534 EXPECT_TRUE(parser.Decode(frame_header, frame_header_length, &frames));
494 EXPECT_FALSE(parser.failed()); 535 EXPECT_FALSE(parser.failed());
495 EXPECT_EQ(1u, frames.size()); 536 EXPECT_EQ(1u, frames.size());
496 if (frames.size() != 1u) 537 if (frames.size() != 1u)
497 continue; 538 continue;
498 WebSocketFrameChunk* frame = frames[0]; 539 WebSocketFrameChunk* frame = frames[0];
499 EXPECT_TRUE(frame != NULL); 540 EXPECT_TRUE(frame != NULL);
500 if (!frame) 541 if (!frame)
501 continue; 542 continue;
502 EXPECT_TRUE(frame->final_chunk); 543 EXPECT_TRUE(frame->final_chunk);
503 EXPECT_EQ(std::vector<char>(), frame->data); 544 EXPECT_EQ(NULL, frame->data.get());
504 const WebSocketFrameHeader* header = frame->header.get(); 545 const WebSocketFrameHeader* header = frame->header.get();
505 EXPECT_TRUE(header != NULL); 546 EXPECT_TRUE(header != NULL);
506 if (!header) 547 if (!header)
507 continue; 548 continue;
508 EXPECT_EQ(final, header->final); 549 EXPECT_EQ(final, header->final);
509 EXPECT_EQ(reserved1, header->reserved1); 550 EXPECT_EQ(reserved1, header->reserved1);
510 EXPECT_EQ(reserved2, header->reserved2); 551 EXPECT_EQ(reserved2, header->reserved2);
511 EXPECT_EQ(reserved3, header->reserved3); 552 EXPECT_EQ(reserved3, header->reserved3);
512 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode); 553 EXPECT_EQ(WebSocketFrameHeader::kOpCodeText, header->opcode);
513 EXPECT_FALSE(header->masked); 554 EXPECT_FALSE(header->masked);
514 EXPECT_EQ(0u, header->payload_length); 555 EXPECT_EQ(0u, header->payload_length);
515 } 556 }
516 } 557 }
517 558
518 } // namespace net 559 } // namespace net
OLDNEW
« net/websockets/websocket_frame_parser.cc ('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