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

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

Issue 171883002: Clear reserved flags on synthetic continuations. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 6 years, 10 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 // Tests for WebSocketBasicStream. Note that we do not attempt to verify that 5 // Tests for WebSocketBasicStream. Note that we do not attempt to verify that
6 // frame parsing itself functions correctly, as that is covered by the 6 // frame parsing itself functions correctly, as that is covered by the
7 // WebSocketFrameParser tests. 7 // WebSocketFrameParser tests.
8 8
9 #include "net/websockets/websocket_basic_stream.h" 9 #include "net/websockets/websocket_basic_stream.h"
10 10
(...skipping 810 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 size_t expected_payload_size = kReadBufferSize; 821 size_t expected_payload_size = kReadBufferSize;
822 if (frame == 0) { 822 if (frame == 0) {
823 expected_payload_size = kReadBufferSize - kLargeFrameHeaderSize; 823 expected_payload_size = kReadBufferSize - kLargeFrameHeaderSize;
824 } else if (frame == kExpectedFrameCount - 1) { 824 } else if (frame == kExpectedFrameCount - 1) {
825 expected_payload_size = kLargeFrameHeaderSize; 825 expected_payload_size = kLargeFrameHeaderSize;
826 } 826 }
827 EXPECT_EQ(expected_payload_size, frames_[0]->header.payload_length); 827 EXPECT_EQ(expected_payload_size, frames_[0]->header.payload_length);
828 } 828 }
829 } 829 }
830 830
831 // A frame with reserved flag(s) set that arrives in chunks should only have the
832 // reserved flag(s) set on the first chunk when split.
833 TEST_F(WebSocketBasicStreamSocketChunkedReadTest, ReservedFlagCleared) {
834 static const char kReservedFlagFrame[] = "\x41\x05Hello";
835 const size_t kReservedFlagFrameSize = arraysize(kReservedFlagFrame) - 1;
836 const size_t kChunkSize = 5;
837
838 CreateChunkedRead(ASYNC,
839 kReservedFlagFrame,
840 kReservedFlagFrameSize,
841 kChunkSize,
842 2,
843 LAST_FRAME_BIG);
844
845 TestCompletionCallback cb[2];
846 ASSERT_EQ(ERR_IO_PENDING, stream_->ReadFrames(&frames_, cb[0].callback()));
847 EXPECT_EQ(OK, cb[0].WaitForResult());
848 ASSERT_EQ(1U, frames_.size());
849 EXPECT_TRUE(frames_[0]->header.reserved1);
850
851 frames_.clear();
852 ASSERT_EQ(ERR_IO_PENDING, stream_->ReadFrames(&frames_, cb[1].callback()));
853 EXPECT_EQ(OK, cb[1].WaitForResult());
854 ASSERT_EQ(1U, frames_.size());
855 EXPECT_FALSE(frames_[0]->header.reserved1);
856 }
857
831 // Check that writing a frame all at once works. 858 // Check that writing a frame all at once works.
832 TEST_F(WebSocketBasicStreamSocketWriteTest, WriteAtOnce) { 859 TEST_F(WebSocketBasicStreamSocketWriteTest, WriteAtOnce) {
833 MockWrite writes[] = {MockWrite(SYNCHRONOUS, kWriteFrame, kWriteFrameSize)}; 860 MockWrite writes[] = {MockWrite(SYNCHRONOUS, kWriteFrame, kWriteFrameSize)};
834 CreateWriteOnly(writes); 861 CreateWriteOnly(writes);
835 862
836 EXPECT_EQ(OK, stream_->WriteFrames(&frames_, cb_.callback())); 863 EXPECT_EQ(OK, stream_->WriteFrames(&frames_, cb_.callback()));
837 } 864 }
838 865
839 // Check that completely async writing works. 866 // Check that completely async writing works.
840 TEST_F(WebSocketBasicStreamSocketWriteTest, AsyncWriteAtOnce) { 867 TEST_F(WebSocketBasicStreamSocketWriteTest, AsyncWriteAtOnce) {
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
909 936
910 TEST_F(WebSocketBasicStreamSocketTest, GetSubProtocolWorks) { 937 TEST_F(WebSocketBasicStreamSocketTest, GetSubProtocolWorks) {
911 sub_protocol_ = "cyberchat"; 938 sub_protocol_ = "cyberchat";
912 CreateNullStream(); 939 CreateNullStream();
913 940
914 EXPECT_EQ("cyberchat", stream_->GetSubProtocol()); 941 EXPECT_EQ("cyberchat", stream_->GetSubProtocol());
915 } 942 }
916 943
917 } // namespace 944 } // namespace
918 } // namespace net 945 } // namespace net
OLDNEW
« net/websockets/websocket_basic_stream.cc ('K') | « net/websockets/websocket_basic_stream.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698