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

Unified Diff: net/websockets/websocket_frame_unittest.cc

Issue 14850012: Add missing status codes to WebSocketError enum. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Remove other mux status codes. Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/websockets/websocket_frame_parser_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/websockets/websocket_frame_unittest.cc
diff --git a/net/websockets/websocket_frame_unittest.cc b/net/websockets/websocket_frame_unittest.cc
index 59f4719e31ab08ebf038a718ba607025cdc937b1..a790af8c476f47b52b55b680ad2b734f513ee87c 100644
--- a/net/websockets/websocket_frame_unittest.cc
+++ b/net/websockets/websocket_frame_unittest.cc
@@ -45,13 +45,8 @@ TEST(WebSocketFrameHeaderTest, FrameLengths) {
static const int kNumTests = ARRAYSIZE_UNSAFE(kTests);
for (int i = 0; i < kNumTests; ++i) {
- WebSocketFrameHeader header;
+ WebSocketFrameHeader header(WebSocketFrameHeader::kOpCodeText);
header.final = true;
- header.reserved1 = false;
- header.reserved2 = false;
- header.reserved3 = false;
- header.opcode = WebSocketFrameHeader::kOpCodeText;
- header.masked = false;
header.payload_length = kTests[i].frame_length;
std::vector<char> expected_output(
@@ -93,12 +88,8 @@ TEST(WebSocketFrameHeaderTest, FrameLengthsWithMasking) {
masking_key.key);
for (int i = 0; i < kNumTests; ++i) {
- WebSocketFrameHeader header;
+ WebSocketFrameHeader header(WebSocketFrameHeader::kOpCodeText);
header.final = true;
- header.reserved1 = false;
- header.reserved2 = false;
- header.reserved3 = false;
- header.opcode = WebSocketFrameHeader::kOpCodeText;
header.masked = true;
header.payload_length = kTests[i].frame_length;
@@ -141,13 +132,8 @@ TEST(WebSocketFrameHeaderTest, FrameOpCodes) {
static const int kNumTests = ARRAYSIZE_UNSAFE(kTests);
for (int i = 0; i < kNumTests; ++i) {
- WebSocketFrameHeader header;
+ WebSocketFrameHeader header(kTests[i].opcode);
header.final = true;
- header.reserved1 = false;
- header.reserved2 = false;
- header.reserved3 = false;
- header.opcode = kTests[i].opcode;
- header.masked = false;
header.payload_length = 0;
std::vector<char> expected_output(
@@ -182,13 +168,11 @@ TEST(WebSocketFrameHeaderTest, FinalBitAndReservedBits) {
static const int kNumTests = ARRAYSIZE_UNSAFE(kTests);
for (int i = 0; i < kNumTests; ++i) {
- WebSocketFrameHeader header;
+ WebSocketFrameHeader header(WebSocketFrameHeader::kOpCodeText);
header.final = kTests[i].final;
header.reserved1 = kTests[i].reserved1;
header.reserved2 = kTests[i].reserved2;
header.reserved3 = kTests[i].reserved3;
- header.opcode = WebSocketFrameHeader::kOpCodeText;
- header.masked = false;
header.payload_length = 0;
std::vector<char> expected_output(
@@ -225,11 +209,8 @@ TEST(WebSocketFrameHeaderTest, InsufficientBufferSize) {
static const int kNumTests = ARRAYSIZE_UNSAFE(kTests);
for (int i = 0; i < kNumTests; ++i) {
- WebSocketFrameHeader header;
+ WebSocketFrameHeader header(WebSocketFrameHeader::kOpCodeText);
header.final = true;
- header.reserved1 = false;
- header.reserved2 = false;
- header.reserved3 = false;
header.opcode = WebSocketFrameHeader::kOpCodeText;
header.masked = kTests[i].masked;
header.payload_length = kTests[i].payload_length;
@@ -423,4 +404,62 @@ TEST_F(WebSocketFrameTestMaskBenchmark, BenchmarkMaskLongPayload) {
Benchmark(payload.get(), kLongPayloadSize);
}
+// "IsKnownDataOpCode" is implemented using bit-mangling for efficiency, so we
+// need to check that the results match the actual op-codes defined.
+TEST(WebSocketFrameHeaderTest, IsKnownDataOpCode) {
+ // Make the test less verbose.
+ typedef WebSocketFrameHeader Frame;
+
+ // Known opcode, is used for data frames
+ EXPECT_TRUE(Frame::IsKnownDataOpCode(Frame::kOpCodeContinuation));
+ EXPECT_TRUE(Frame::IsKnownDataOpCode(Frame::kOpCodeText));
+ EXPECT_TRUE(Frame::IsKnownDataOpCode(Frame::kOpCodeBinary));
+
+ // Known opcode, is used for control frames
+ EXPECT_FALSE(Frame::IsKnownDataOpCode(Frame::kOpCodeClose));
+ EXPECT_FALSE(Frame::IsKnownDataOpCode(Frame::kOpCodePing));
+ EXPECT_FALSE(Frame::IsKnownDataOpCode(Frame::kOpCodePong));
+
+ // Check that unused opcodes return false
+ EXPECT_FALSE(Frame::IsKnownDataOpCode(Frame::kOpCodeDataUnused));
+ EXPECT_FALSE(Frame::IsKnownDataOpCode(Frame::kOpCodeControlUnused));
+
+ // Check that opcodes with the 4 bit set return false
+ EXPECT_FALSE(Frame::IsKnownDataOpCode(0x6));
+ EXPECT_FALSE(Frame::IsKnownDataOpCode(0xF));
+
+ // Check that out-of-range opcodes return false
+ EXPECT_FALSE(Frame::IsKnownDataOpCode(-1));
+ EXPECT_FALSE(Frame::IsKnownDataOpCode(0xFF));
+}
+
+// "IsKnownControlOpCode" is implemented using bit-mangling as with
+// "IsKnownDataOpCode".
+TEST(WebSocketFrameHeaderTest, IsKnownControlOpCode) {
+ // Make the test less verbose.
+ typedef WebSocketFrameHeader Frame;
+
+ // Known opcode, is used for data frames
+ EXPECT_FALSE(Frame::IsKnownControlOpCode(Frame::kOpCodeContinuation));
+ EXPECT_FALSE(Frame::IsKnownControlOpCode(Frame::kOpCodeText));
+ EXPECT_FALSE(Frame::IsKnownControlOpCode(Frame::kOpCodeBinary));
+
+ // Known opcode, is used for control frames
+ EXPECT_TRUE(Frame::IsKnownControlOpCode(Frame::kOpCodeClose));
+ EXPECT_TRUE(Frame::IsKnownControlOpCode(Frame::kOpCodePing));
+ EXPECT_TRUE(Frame::IsKnownControlOpCode(Frame::kOpCodePong));
+
+ // Check that unused opcodes return false
+ EXPECT_FALSE(Frame::IsKnownControlOpCode(Frame::kOpCodeDataUnused));
+ EXPECT_FALSE(Frame::IsKnownControlOpCode(Frame::kOpCodeControlUnused));
+
+ // Check that opcodes with the 4 bit set return false
+ EXPECT_FALSE(Frame::IsKnownControlOpCode(0x6));
+ EXPECT_FALSE(Frame::IsKnownControlOpCode(0xF));
+
+ // Check that out-of-range opcodes return false
+ EXPECT_FALSE(Frame::IsKnownControlOpCode(-1));
+ EXPECT_FALSE(Frame::IsKnownControlOpCode(0xFF));
+}
+
} // namespace net
« no previous file with comments | « net/websockets/websocket_frame_parser_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698