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

Side by Side Diff: net/spdy/spdy_framer_test.cc

Issue 246123005: SPDY cleanups: remove extraneous 'net::' & obsolete TODO (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Also include cr/64909678 Created 6 years, 8 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
« no previous file with comments | « net/spdy/spdy_framer.cc ('k') | net/spdy/spdy_protocol_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <algorithm> 5 #include <algorithm>
6 #include <iostream> 6 #include <iostream>
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 1471 matching lines...) Expand 10 before | Expand all | Expand 10 after
1482 const char kValue1[] = "value1"; 1482 const char kValue1[] = "value1";
1483 const char kValue2[] = "value2"; 1483 const char kValue2[] = "value2";
1484 1484
1485 SpdySynStreamIR syn_stream(1); 1485 SpdySynStreamIR syn_stream(1);
1486 syn_stream.SetHeader(kHeader1, kValue1); 1486 syn_stream.SetHeader(kHeader1, kValue1);
1487 syn_stream.SetHeader(kHeader2, kValue2); 1487 syn_stream.SetHeader(kHeader2, kValue2);
1488 scoped_ptr<SpdyFrame> syn_frame(send_framer.SerializeSynStream(syn_stream)); 1488 scoped_ptr<SpdyFrame> syn_frame(send_framer.SerializeSynStream(syn_stream));
1489 EXPECT_TRUE(syn_frame.get() != NULL); 1489 EXPECT_TRUE(syn_frame.get() != NULL);
1490 1490
1491 StringPiece bytes = "this is a test test test test test!"; 1491 StringPiece bytes = "this is a test test test test test!";
1492 net::SpdyDataIR data_ir(1, bytes); 1492 SpdyDataIR data_ir(1, bytes);
1493 data_ir.set_fin(true); 1493 data_ir.set_fin(true);
1494 scoped_ptr<SpdyFrame> send_frame(send_framer.SerializeData(data_ir)); 1494 scoped_ptr<SpdyFrame> send_frame(send_framer.SerializeData(data_ir));
1495 EXPECT_TRUE(send_frame.get() != NULL); 1495 EXPECT_TRUE(send_frame.get() != NULL);
1496 1496
1497 // Run the inputs through the framer. 1497 // Run the inputs through the framer.
1498 TestSpdyVisitor visitor(spdy_version_); 1498 TestSpdyVisitor visitor(spdy_version_);
1499 visitor.use_compression_ = true; 1499 visitor.use_compression_ = true;
1500 const unsigned char* data; 1500 const unsigned char* data;
1501 data = reinterpret_cast<const unsigned char*>(syn_frame->data()); 1501 data = reinterpret_cast<const unsigned char*>(syn_frame->data());
1502 visitor.SimulateInFramer(data, syn_frame->size()); 1502 visitor.SimulateInFramer(data, syn_frame->size());
(...skipping 23 matching lines...) Expand all
1526 const char kValue1[] = "value1"; 1526 const char kValue1[] = "value1";
1527 const char kValue2[] = "value2"; 1527 const char kValue2[] = "value2";
1528 1528
1529 SpdySynStreamIR syn_stream(1); 1529 SpdySynStreamIR syn_stream(1);
1530 syn_stream.SetHeader(kHeader1, kValue1); 1530 syn_stream.SetHeader(kHeader1, kValue1);
1531 syn_stream.SetHeader(kHeader2, kValue2); 1531 syn_stream.SetHeader(kHeader2, kValue2);
1532 scoped_ptr<SpdyFrame> syn_frame(send_framer.SerializeSynStream(syn_stream)); 1532 scoped_ptr<SpdyFrame> syn_frame(send_framer.SerializeSynStream(syn_stream));
1533 EXPECT_TRUE(syn_frame.get() != NULL); 1533 EXPECT_TRUE(syn_frame.get() != NULL);
1534 1534
1535 const char bytes[] = "this is a test test test test test!"; 1535 const char bytes[] = "this is a test test test test test!";
1536 net::SpdyDataIR data_ir(1, StringPiece(bytes, arraysize(bytes))); 1536 SpdyDataIR data_ir(1, StringPiece(bytes, arraysize(bytes)));
1537 data_ir.set_fin(true); 1537 data_ir.set_fin(true);
1538 scoped_ptr<SpdyFrame> send_frame(send_framer.SerializeData(data_ir)); 1538 scoped_ptr<SpdyFrame> send_frame(send_framer.SerializeData(data_ir));
1539 EXPECT_TRUE(send_frame.get() != NULL); 1539 EXPECT_TRUE(send_frame.get() != NULL);
1540 1540
1541 // Run the inputs through the framer. 1541 // Run the inputs through the framer.
1542 TestSpdyVisitor visitor(spdy_version_); 1542 TestSpdyVisitor visitor(spdy_version_);
1543 visitor.use_compression_ = true; 1543 visitor.use_compression_ = true;
1544 const unsigned char* data; 1544 const unsigned char* data;
1545 data = reinterpret_cast<const unsigned char*>(syn_frame->data()); 1545 data = reinterpret_cast<const unsigned char*>(syn_frame->data());
1546 for (size_t idx = 0; idx < syn_frame->size(); ++idx) { 1546 for (size_t idx = 0; idx < syn_frame->size(); ++idx) {
(...skipping 13 matching lines...) Expand all
1560 EXPECT_EQ(arraysize(bytes), static_cast<unsigned>(visitor.data_bytes_)); 1560 EXPECT_EQ(arraysize(bytes), static_cast<unsigned>(visitor.data_bytes_));
1561 EXPECT_EQ(0, visitor.fin_frame_count_); 1561 EXPECT_EQ(0, visitor.fin_frame_count_);
1562 EXPECT_EQ(0, visitor.fin_flag_count_); 1562 EXPECT_EQ(0, visitor.fin_flag_count_);
1563 EXPECT_EQ(1, visitor.zero_length_data_frame_count_); 1563 EXPECT_EQ(1, visitor.zero_length_data_frame_count_);
1564 EXPECT_EQ(1, visitor.data_frame_count_); 1564 EXPECT_EQ(1, visitor.data_frame_count_);
1565 } 1565 }
1566 1566
1567 TEST_P(SpdyFramerTest, WindowUpdateFrame) { 1567 TEST_P(SpdyFramerTest, WindowUpdateFrame) {
1568 SpdyFramer framer(spdy_version_); 1568 SpdyFramer framer(spdy_version_);
1569 scoped_ptr<SpdyFrame> frame(framer.SerializeWindowUpdate( 1569 scoped_ptr<SpdyFrame> frame(framer.SerializeWindowUpdate(
1570 net::SpdyWindowUpdateIR(1, 0x12345678))); 1570 SpdyWindowUpdateIR(1, 0x12345678)));
1571 1571
1572 const char kDescription[] = "WINDOW_UPDATE frame, stream 1, delta 0x12345678"; 1572 const char kDescription[] = "WINDOW_UPDATE frame, stream 1, delta 0x12345678";
1573 const unsigned char kV3FrameData[] = { // Also applies for V2. 1573 const unsigned char kV3FrameData[] = { // Also applies for V2.
1574 0x80, spdy_version_ch_, 0x00, 0x09, 1574 0x80, spdy_version_ch_, 0x00, 0x09,
1575 0x00, 0x00, 0x00, 0x08, 1575 0x00, 0x00, 0x00, 0x08,
1576 0x00, 0x00, 0x00, 0x01, 1576 0x00, 0x00, 0x00, 0x01,
1577 0x12, 0x34, 0x56, 0x78 1577 0x12, 0x34, 0x56, 0x78
1578 }; 1578 };
1579 const unsigned char kV4FrameData[] = { 1579 const unsigned char kV4FrameData[] = {
1580 0x00, 0x04, 0x08, 0x00, 1580 0x00, 0x04, 0x08, 0x00,
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
1778 const unsigned char kV3FrameData[] = { // Also applies for V2. 1778 const unsigned char kV3FrameData[] = { // Also applies for V2.
1779 0x00, 0x00, 0x00, 0x01, 1779 0x00, 0x00, 0x00, 0x01,
1780 0x00, 0x00, 0x00, 0x01, 1780 0x00, 0x00, 0x00, 0x01,
1781 0xff 1781 0xff
1782 }; 1782 };
1783 const unsigned char kV4FrameData[] = { 1783 const unsigned char kV4FrameData[] = {
1784 0x00, 0x01, 0x00, 0x00, 1784 0x00, 0x01, 0x00, 0x00,
1785 0x00, 0x00, 0x00, 0x01, 1785 0x00, 0x00, 0x00, 0x01,
1786 0xff 1786 0xff
1787 }; 1787 };
1788 net::SpdyDataIR data_ir(1, StringPiece("\xff", 1)); 1788 SpdyDataIR data_ir(1, StringPiece("\xff", 1));
1789 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir)); 1789 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir));
1790 if (IsSpdy4()) { 1790 if (IsSpdy4()) {
1791 CompareFrame( 1791 CompareFrame(
1792 kDescription, *frame, kV4FrameData, arraysize(kV4FrameData)); 1792 kDescription, *frame, kV4FrameData, arraysize(kV4FrameData));
1793 } else { 1793 } else {
1794 CompareFrame( 1794 CompareFrame(
1795 kDescription, *frame, kV3FrameData, arraysize(kV3FrameData)); 1795 kDescription, *frame, kV3FrameData, arraysize(kV3FrameData));
1796 } 1796 }
1797 } 1797 }
1798 1798
1799 { 1799 {
1800 const char kDescription[] = "'hello' data frame, with FIN"; 1800 const char kDescription[] = "'hello' data frame, with FIN";
1801 const unsigned char kV3FrameData[] = { // Also applies for V2. 1801 const unsigned char kV3FrameData[] = { // Also applies for V2.
1802 0x00, 0x00, 0x00, 0x01, 1802 0x00, 0x00, 0x00, 0x01,
1803 0x01, 0x00, 0x00, 0x05, 1803 0x01, 0x00, 0x00, 0x05,
1804 'h', 'e', 'l', 'l', 1804 'h', 'e', 'l', 'l',
1805 'o' 1805 'o'
1806 }; 1806 };
1807 const unsigned char kV4FrameData[] = { 1807 const unsigned char kV4FrameData[] = {
1808 0x00, 0x05, 0x00, 0x01, 1808 0x00, 0x05, 0x00, 0x01,
1809 0x00, 0x00, 0x00, 0x01, 1809 0x00, 0x00, 0x00, 0x01,
1810 'h', 'e', 'l', 'l', 1810 'h', 'e', 'l', 'l',
1811 'o' 1811 'o'
1812 }; 1812 };
1813 net::SpdyDataIR data_ir(1, StringPiece("hello", 5)); 1813 SpdyDataIR data_ir(1, StringPiece("hello", 5));
1814 data_ir.set_fin(true); 1814 data_ir.set_fin(true);
1815 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir)); 1815 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir));
1816 if (IsSpdy4()) { 1816 if (IsSpdy4()) {
1817 CompareFrame( 1817 CompareFrame(
1818 kDescription, *frame, kV4FrameData, arraysize(kV4FrameData)); 1818 kDescription, *frame, kV4FrameData, arraysize(kV4FrameData));
1819 } else { 1819 } else {
1820 CompareFrame( 1820 CompareFrame(
1821 kDescription, *frame, kV3FrameData, arraysize(kV3FrameData)); 1821 kDescription, *frame, kV3FrameData, arraysize(kV3FrameData));
1822 } 1822 }
1823 } 1823 }
1824 1824
1825 { 1825 {
1826 const char kDescription[] = "Empty data frame"; 1826 const char kDescription[] = "Empty data frame";
1827 const unsigned char kV3FrameData[] = { // Also applies for V2. 1827 const unsigned char kV3FrameData[] = { // Also applies for V2.
1828 0x00, 0x00, 0x00, 0x01, 1828 0x00, 0x00, 0x00, 0x01,
1829 0x00, 0x00, 0x00, 0x00, 1829 0x00, 0x00, 0x00, 0x00,
1830 }; 1830 };
1831 const unsigned char kV4FrameData[] = { 1831 const unsigned char kV4FrameData[] = {
1832 0x00, 0x00, 0x00, 0x00, 1832 0x00, 0x00, 0x00, 0x00,
1833 0x00, 0x00, 0x00, 0x01, 1833 0x00, 0x00, 0x00, 0x01,
1834 }; 1834 };
1835 net::SpdyDataIR data_ir(1, StringPiece()); 1835 SpdyDataIR data_ir(1, StringPiece());
1836 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir)); 1836 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir));
1837 if (IsSpdy4()) { 1837 if (IsSpdy4()) {
1838 CompareFrame( 1838 CompareFrame(
1839 kDescription, *frame, kV4FrameData, arraysize(kV4FrameData)); 1839 kDescription, *frame, kV4FrameData, arraysize(kV4FrameData));
1840 } else { 1840 } else {
1841 CompareFrame( 1841 CompareFrame(
1842 kDescription, *frame, kV3FrameData, arraysize(kV3FrameData)); 1842 kDescription, *frame, kV3FrameData, arraysize(kV3FrameData));
1843 } 1843 }
1844 } 1844 }
1845 1845
1846 { 1846 {
1847 const char kDescription[] = "Data frame with max stream ID"; 1847 const char kDescription[] = "Data frame with max stream ID";
1848 const unsigned char kV3FrameData[] = { // Also applies for V2. 1848 const unsigned char kV3FrameData[] = { // Also applies for V2.
1849 0x7f, 0xff, 0xff, 0xff, 1849 0x7f, 0xff, 0xff, 0xff,
1850 0x01, 0x00, 0x00, 0x05, 1850 0x01, 0x00, 0x00, 0x05,
1851 'h', 'e', 'l', 'l', 1851 'h', 'e', 'l', 'l',
1852 'o' 1852 'o'
1853 }; 1853 };
1854 const unsigned char kV4FrameData[] = { 1854 const unsigned char kV4FrameData[] = {
1855 0x00, 0x05, 0x00, 0x01, 1855 0x00, 0x05, 0x00, 0x01,
1856 0x7f, 0xff, 0xff, 0xff, 1856 0x7f, 0xff, 0xff, 0xff,
1857 'h', 'e', 'l', 'l', 1857 'h', 'e', 'l', 'l',
1858 'o' 1858 'o'
1859 }; 1859 };
1860 net::SpdyDataIR data_ir(0x7fffffff, "hello"); 1860 SpdyDataIR data_ir(0x7fffffff, "hello");
1861 data_ir.set_fin(true); 1861 data_ir.set_fin(true);
1862 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir)); 1862 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir));
1863 if (IsSpdy4()) { 1863 if (IsSpdy4()) {
1864 CompareFrame( 1864 CompareFrame(
1865 kDescription, *frame, kV4FrameData, arraysize(kV4FrameData)); 1865 kDescription, *frame, kV4FrameData, arraysize(kV4FrameData));
1866 } else { 1866 } else {
1867 CompareFrame( 1867 CompareFrame(
1868 kDescription, *frame, kV3FrameData, arraysize(kV3FrameData)); 1868 kDescription, *frame, kV3FrameData, arraysize(kV3FrameData));
1869 } 1869 }
1870 } 1870 }
1871 1871
1872 if (!IsSpdy4()) { 1872 if (!IsSpdy4()) {
1873 // This test does not apply to SPDY 4 because the max frame size is smaller 1873 // This test does not apply to SPDY 4 because the max frame size is smaller
1874 // than 4MB. 1874 // than 4MB.
1875 const char kDescription[] = "Large data frame"; 1875 const char kDescription[] = "Large data frame";
1876 const int kDataSize = 4 * 1024 * 1024; // 4 MB 1876 const int kDataSize = 4 * 1024 * 1024; // 4 MB
1877 const string kData(kDataSize, 'A'); 1877 const string kData(kDataSize, 'A');
1878 const unsigned char kFrameHeader[] = { 1878 const unsigned char kFrameHeader[] = {
1879 0x00, 0x00, 0x00, 0x01, 1879 0x00, 0x00, 0x00, 0x01,
1880 0x01, 0x40, 0x00, 0x00, 1880 0x01, 0x40, 0x00, 0x00,
1881 }; 1881 };
1882 1882
1883 const int kFrameSize = arraysize(kFrameHeader) + kDataSize; 1883 const int kFrameSize = arraysize(kFrameHeader) + kDataSize;
1884 scoped_ptr<unsigned char[]> expected_frame_data( 1884 scoped_ptr<unsigned char[]> expected_frame_data(
1885 new unsigned char[kFrameSize]); 1885 new unsigned char[kFrameSize]);
1886 memcpy(expected_frame_data.get(), kFrameHeader, arraysize(kFrameHeader)); 1886 memcpy(expected_frame_data.get(), kFrameHeader, arraysize(kFrameHeader));
1887 memset(expected_frame_data.get() + arraysize(kFrameHeader), 'A', kDataSize); 1887 memset(expected_frame_data.get() + arraysize(kFrameHeader), 'A', kDataSize);
1888 1888
1889 net::SpdyDataIR data_ir(1, StringPiece(kData.data(), kData.size())); 1889 SpdyDataIR data_ir(1, StringPiece(kData.data(), kData.size()));
1890 data_ir.set_fin(true); 1890 data_ir.set_fin(true);
1891 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir)); 1891 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir));
1892 CompareFrame(kDescription, *frame, expected_frame_data.get(), kFrameSize); 1892 CompareFrame(kDescription, *frame, expected_frame_data.get(), kFrameSize);
1893 } 1893 }
1894 } 1894 }
1895 1895
1896 TEST_P(SpdyFramerTest, CreateSynStreamUncompressed) { 1896 TEST_P(SpdyFramerTest, CreateSynStreamUncompressed) {
1897 SpdyFramer framer(spdy_version_); 1897 SpdyFramer framer(spdy_version_);
1898 framer.set_enable_compression(false); 1898 framer.set_enable_compression(false);
1899 1899
(...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after
2353 0x00, 0x00, 0x00, 0x08, 2353 0x00, 0x00, 0x00, 0x08,
2354 0x00, 0x00, 0x00, 0x01, 2354 0x00, 0x00, 0x00, 0x01,
2355 0x00, 0x00, 0x00, 0x01, 2355 0x00, 0x00, 0x00, 0x01,
2356 }; 2356 };
2357 const unsigned char kV4FrameData[] = { 2357 const unsigned char kV4FrameData[] = {
2358 0x00, 0x07, 0x03, 0x00, 2358 0x00, 0x07, 0x03, 0x00,
2359 0x00, 0x00, 0x00, 0x01, 2359 0x00, 0x00, 0x00, 0x01,
2360 0x00, 0x00, 0x00, 0x01, 2360 0x00, 0x00, 0x00, 0x01,
2361 0x52, 0x53, 0x54 2361 0x52, 0x53, 0x54
2362 }; 2362 };
2363 net::SpdyRstStreamIR rst_stream(1, RST_STREAM_PROTOCOL_ERROR, "RST"); 2363 SpdyRstStreamIR rst_stream(1, RST_STREAM_PROTOCOL_ERROR, "RST");
2364 scoped_ptr<SpdyFrame> frame(framer.SerializeRstStream(rst_stream)); 2364 scoped_ptr<SpdyFrame> frame(framer.SerializeRstStream(rst_stream));
2365 if (IsSpdy4()) { 2365 if (IsSpdy4()) {
2366 CompareFrame(kDescription, *frame, kV4FrameData, arraysize(kV4FrameData)); 2366 CompareFrame(kDescription, *frame, kV4FrameData, arraysize(kV4FrameData));
2367 } else { 2367 } else {
2368 CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData)); 2368 CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData));
2369 } 2369 }
2370 } 2370 }
2371 2371
2372 { 2372 {
2373 const char kDescription[] = "RST_STREAM frame with max stream ID"; 2373 const char kDescription[] = "RST_STREAM frame with max stream ID";
2374 const unsigned char kV3FrameData[] = { // Also applies for V2. 2374 const unsigned char kV3FrameData[] = { // Also applies for V2.
2375 0x80, spdy_version_ch_, 0x00, 0x03, 2375 0x80, spdy_version_ch_, 0x00, 0x03,
2376 0x00, 0x00, 0x00, 0x08, 2376 0x00, 0x00, 0x00, 0x08,
2377 0x7f, 0xff, 0xff, 0xff, 2377 0x7f, 0xff, 0xff, 0xff,
2378 0x00, 0x00, 0x00, 0x01, 2378 0x00, 0x00, 0x00, 0x01,
2379 }; 2379 };
2380 const unsigned char kV4FrameData[] = { 2380 const unsigned char kV4FrameData[] = {
2381 0x00, 0x04, 0x03, 0x00, 2381 0x00, 0x04, 0x03, 0x00,
2382 0x7f, 0xff, 0xff, 0xff, 2382 0x7f, 0xff, 0xff, 0xff,
2383 0x00, 0x00, 0x00, 0x01, 2383 0x00, 0x00, 0x00, 0x01,
2384 }; 2384 };
2385 net::SpdyRstStreamIR rst_stream(0x7FFFFFFF, 2385 SpdyRstStreamIR rst_stream(0x7FFFFFFF,
2386 RST_STREAM_PROTOCOL_ERROR, 2386 RST_STREAM_PROTOCOL_ERROR,
2387 ""); 2387 "");
2388 scoped_ptr<SpdyFrame> frame(framer.SerializeRstStream(rst_stream)); 2388 scoped_ptr<SpdyFrame> frame(framer.SerializeRstStream(rst_stream));
2389 if (IsSpdy4()) { 2389 if (IsSpdy4()) {
2390 CompareFrame(kDescription, *frame, kV4FrameData, arraysize(kV4FrameData)); 2390 CompareFrame(kDescription, *frame, kV4FrameData, arraysize(kV4FrameData));
2391 } else { 2391 } else {
2392 CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData)); 2392 CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData));
2393 } 2393 }
2394 } 2394 }
2395 2395
2396 { 2396 {
2397 const char kDescription[] = "RST_STREAM frame with max status code"; 2397 const char kDescription[] = "RST_STREAM frame with max status code";
2398 const unsigned char kV3FrameData[] = { // Also applies for V2. 2398 const unsigned char kV3FrameData[] = { // Also applies for V2.
2399 0x80, spdy_version_ch_, 0x00, 0x03, 2399 0x80, spdy_version_ch_, 0x00, 0x03,
2400 0x00, 0x00, 0x00, 0x08, 2400 0x00, 0x00, 0x00, 0x08,
2401 0x7f, 0xff, 0xff, 0xff, 2401 0x7f, 0xff, 0xff, 0xff,
2402 0x00, 0x00, 0x00, 0x06, 2402 0x00, 0x00, 0x00, 0x06,
2403 }; 2403 };
2404 const unsigned char kV4FrameData[] = { 2404 const unsigned char kV4FrameData[] = {
2405 0x00, 0x04, 0x03, 0x00, 2405 0x00, 0x04, 0x03, 0x00,
2406 0x7f, 0xff, 0xff, 0xff, 2406 0x7f, 0xff, 0xff, 0xff,
2407 0x00, 0x00, 0x00, 0x06, 2407 0x00, 0x00, 0x00, 0x06,
2408 }; 2408 };
2409 net::SpdyRstStreamIR rst_stream(0x7FFFFFFF, 2409 SpdyRstStreamIR rst_stream(0x7FFFFFFF,
2410 RST_STREAM_INTERNAL_ERROR, 2410 RST_STREAM_INTERNAL_ERROR,
2411 ""); 2411 "");
2412 scoped_ptr<SpdyFrame> frame(framer.SerializeRstStream(rst_stream)); 2412 scoped_ptr<SpdyFrame> frame(framer.SerializeRstStream(rst_stream));
2413 if (IsSpdy4()) { 2413 if (IsSpdy4()) {
2414 CompareFrame(kDescription, *frame, kV4FrameData, arraysize(kV4FrameData)); 2414 CompareFrame(kDescription, *frame, kV4FrameData, arraysize(kV4FrameData));
2415 } else { 2415 } else {
2416 CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData)); 2416 CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData));
2417 } 2417 }
2418 } 2418 }
2419 } 2419 }
2420 2420
2421 TEST_P(SpdyFramerTest, CreateSettings) { 2421 TEST_P(SpdyFramerTest, CreateSettings) {
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
2897 0x00, 0x00, 0x00, 0x08, 2897 0x00, 0x00, 0x00, 0x08,
2898 0x00, 0x00, 0x00, 0x01, 2898 0x00, 0x00, 0x00, 0x01,
2899 0x00, 0x00, 0x00, 0x01, 2899 0x00, 0x00, 0x00, 0x01,
2900 }; 2900 };
2901 const unsigned char kV4FrameData[] = { 2901 const unsigned char kV4FrameData[] = {
2902 0x00, 0x04, 0x08, 0x00, 2902 0x00, 0x04, 0x08, 0x00,
2903 0x00, 0x00, 0x00, 0x01, 2903 0x00, 0x00, 0x00, 0x01,
2904 0x00, 0x00, 0x00, 0x01, 2904 0x00, 0x00, 0x00, 0x01,
2905 }; 2905 };
2906 scoped_ptr<SpdyFrame> frame( 2906 scoped_ptr<SpdyFrame> frame(
2907 framer.SerializeWindowUpdate(net::SpdyWindowUpdateIR(1, 1))); 2907 framer.SerializeWindowUpdate(SpdyWindowUpdateIR(1, 1)));
2908 if (IsSpdy4()) { 2908 if (IsSpdy4()) {
2909 CompareFrame(kDescription, *frame, kV4FrameData, arraysize(kV4FrameData)); 2909 CompareFrame(kDescription, *frame, kV4FrameData, arraysize(kV4FrameData));
2910 } else { 2910 } else {
2911 CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData)); 2911 CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData));
2912 } 2912 }
2913 } 2913 }
2914 2914
2915 { 2915 {
2916 const char kDescription[] = "WINDOW_UPDATE frame with max stream ID"; 2916 const char kDescription[] = "WINDOW_UPDATE frame with max stream ID";
2917 const unsigned char kV3FrameData[] = { // Also applies for V2. 2917 const unsigned char kV3FrameData[] = { // Also applies for V2.
2918 0x80, spdy_version_ch_, 0x00, 0x09, 2918 0x80, spdy_version_ch_, 0x00, 0x09,
2919 0x00, 0x00, 0x00, 0x08, 2919 0x00, 0x00, 0x00, 0x08,
2920 0x7f, 0xff, 0xff, 0xff, 2920 0x7f, 0xff, 0xff, 0xff,
2921 0x00, 0x00, 0x00, 0x01, 2921 0x00, 0x00, 0x00, 0x01,
2922 }; 2922 };
2923 const unsigned char kV4FrameData[] = { 2923 const unsigned char kV4FrameData[] = {
2924 0x00, 0x04, 0x08, 0x00, 2924 0x00, 0x04, 0x08, 0x00,
2925 0x7f, 0xff, 0xff, 0xff, 2925 0x7f, 0xff, 0xff, 0xff,
2926 0x00, 0x00, 0x00, 0x01, 2926 0x00, 0x00, 0x00, 0x01,
2927 }; 2927 };
2928 scoped_ptr<SpdyFrame> frame(framer.SerializeWindowUpdate( 2928 scoped_ptr<SpdyFrame> frame(framer.SerializeWindowUpdate(
2929 net::SpdyWindowUpdateIR(0x7FFFFFFF, 1))); 2929 SpdyWindowUpdateIR(0x7FFFFFFF, 1)));
2930 if (IsSpdy4()) { 2930 if (IsSpdy4()) {
2931 CompareFrame(kDescription, *frame, kV4FrameData, arraysize(kV4FrameData)); 2931 CompareFrame(kDescription, *frame, kV4FrameData, arraysize(kV4FrameData));
2932 } else { 2932 } else {
2933 CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData)); 2933 CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData));
2934 } 2934 }
2935 } 2935 }
2936 2936
2937 { 2937 {
2938 const char kDescription[] = "WINDOW_UPDATE frame with max window delta"; 2938 const char kDescription[] = "WINDOW_UPDATE frame with max window delta";
2939 const unsigned char kV3FrameData[] = { // Also applies for V2. 2939 const unsigned char kV3FrameData[] = { // Also applies for V2.
2940 0x80, spdy_version_ch_, 0x00, 0x09, 2940 0x80, spdy_version_ch_, 0x00, 0x09,
2941 0x00, 0x00, 0x00, 0x08, 2941 0x00, 0x00, 0x00, 0x08,
2942 0x00, 0x00, 0x00, 0x01, 2942 0x00, 0x00, 0x00, 0x01,
2943 0x7f, 0xff, 0xff, 0xff, 2943 0x7f, 0xff, 0xff, 0xff,
2944 }; 2944 };
2945 const unsigned char kV4FrameData[] = { 2945 const unsigned char kV4FrameData[] = {
2946 0x00, 0x04, 0x08, 0x00, 2946 0x00, 0x04, 0x08, 0x00,
2947 0x00, 0x00, 0x00, 0x01, 2947 0x00, 0x00, 0x00, 0x01,
2948 0x7f, 0xff, 0xff, 0xff, 2948 0x7f, 0xff, 0xff, 0xff,
2949 }; 2949 };
2950 scoped_ptr<SpdyFrame> frame(framer.SerializeWindowUpdate( 2950 scoped_ptr<SpdyFrame> frame(framer.SerializeWindowUpdate(
2951 net::SpdyWindowUpdateIR(1, 0x7FFFFFFF))); 2951 SpdyWindowUpdateIR(1, 0x7FFFFFFF)));
2952 if (IsSpdy4()) { 2952 if (IsSpdy4()) {
2953 CompareFrame(kDescription, *frame, kV4FrameData, arraysize(kV4FrameData)); 2953 CompareFrame(kDescription, *frame, kV4FrameData, arraysize(kV4FrameData));
2954 } else { 2954 } else {
2955 CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData)); 2955 CompareFrame(kDescription, *frame, kV3FrameData, arraysize(kV3FrameData));
2956 } 2956 }
2957 } 2957 }
2958 } 2958 }
2959 2959
2960 TEST_P(SpdyFramerTest, SerializeBlocked) { 2960 TEST_P(SpdyFramerTest, SerializeBlocked) {
2961 if (spdy_version_ < SPDY4) { 2961 if (spdy_version_ < SPDY4) {
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
3181 EXPECT_FALSE(visitor.header_buffer_valid_); 3181 EXPECT_FALSE(visitor.header_buffer_valid_);
3182 EXPECT_EQ(1, visitor.error_count_); 3182 EXPECT_EQ(1, visitor.error_count_);
3183 EXPECT_EQ(SpdyFramer::SPDY_CONTROL_PAYLOAD_TOO_LARGE, 3183 EXPECT_EQ(SpdyFramer::SPDY_CONTROL_PAYLOAD_TOO_LARGE,
3184 visitor.framer_.error_code()) 3184 visitor.framer_.error_code())
3185 << SpdyFramer::ErrorCodeToString(framer.error_code()); 3185 << SpdyFramer::ErrorCodeToString(framer.error_code());
3186 EXPECT_EQ(0, visitor.syn_frame_count_); 3186 EXPECT_EQ(0, visitor.syn_frame_count_);
3187 EXPECT_EQ(0u, visitor.header_buffer_length_); 3187 EXPECT_EQ(0u, visitor.header_buffer_length_);
3188 } 3188 }
3189 3189
3190 TEST_P(SpdyFramerTest, TooLargeHeadersFrameUsesContinuation) { 3190 TEST_P(SpdyFramerTest, TooLargeHeadersFrameUsesContinuation) {
3191 if (spdy_version_ < net::SPDY4) { 3191 if (spdy_version_ < SPDY4) {
3192 return; 3192 return;
3193 } 3193 }
3194 SpdyFramer framer(spdy_version_); 3194 SpdyFramer framer(spdy_version_);
3195 framer.set_enable_compression(false); 3195 framer.set_enable_compression(false);
3196 SpdyHeadersIR headers(1); 3196 SpdyHeadersIR headers(1);
3197 3197
3198 // Exact payload length will change with HPACK, but this should be long 3198 // Exact payload length will change with HPACK, but this should be long
3199 // enough to cause an overflow. 3199 // enough to cause an overflow.
3200 const size_t kBigValueSize = framer.GetControlFrameBufferMaxSize(); 3200 const size_t kBigValueSize = framer.GetControlFrameBufferMaxSize();
3201 string big_value(kBigValueSize, 'x'); 3201 string big_value(kBigValueSize, 'x');
3202 headers.SetHeader("aa", big_value.c_str()); 3202 headers.SetHeader("aa", big_value.c_str());
3203 scoped_ptr<SpdyFrame> control_frame(framer.SerializeHeaders(headers)); 3203 scoped_ptr<SpdyFrame> control_frame(framer.SerializeHeaders(headers));
3204 EXPECT_TRUE(control_frame.get() != NULL); 3204 EXPECT_TRUE(control_frame.get() != NULL);
3205 EXPECT_GT(control_frame->size(), framer.GetControlFrameBufferMaxSize()); 3205 EXPECT_GT(control_frame->size(), framer.GetControlFrameBufferMaxSize());
3206 3206
3207 TestSpdyVisitor visitor(spdy_version_); 3207 TestSpdyVisitor visitor(spdy_version_);
3208 visitor.SimulateInFramer( 3208 visitor.SimulateInFramer(
3209 reinterpret_cast<unsigned char*>(control_frame->data()), 3209 reinterpret_cast<unsigned char*>(control_frame->data()),
3210 control_frame->size()); 3210 control_frame->size());
3211 EXPECT_TRUE(visitor.header_buffer_valid_); 3211 EXPECT_TRUE(visitor.header_buffer_valid_);
3212 EXPECT_EQ(0, visitor.error_count_); 3212 EXPECT_EQ(0, visitor.error_count_);
3213 EXPECT_EQ(1, visitor.headers_frame_count_); 3213 EXPECT_EQ(1, visitor.headers_frame_count_);
3214 EXPECT_EQ(1, visitor.continuation_count_); 3214 EXPECT_EQ(1, visitor.continuation_count_);
3215 EXPECT_EQ(1, visitor.zero_length_control_frame_header_data_count_); 3215 EXPECT_EQ(1, visitor.zero_length_control_frame_header_data_count_);
3216 } 3216 }
3217 3217
3218 TEST_P(SpdyFramerTest, TooLargePushPromiseFrameUsesContinuation) { 3218 TEST_P(SpdyFramerTest, TooLargePushPromiseFrameUsesContinuation) {
3219 if (spdy_version_ < net::SPDY4) { 3219 if (spdy_version_ < SPDY4) {
3220 return; 3220 return;
3221 } 3221 }
3222 SpdyFramer framer(spdy_version_); 3222 SpdyFramer framer(spdy_version_);
3223 framer.set_enable_compression(false); 3223 framer.set_enable_compression(false);
3224 SpdyPushPromiseIR push_promise(1, 2); 3224 SpdyPushPromiseIR push_promise(1, 2);
3225 3225
3226 // Exact payload length will change with HPACK, but this should be long 3226 // Exact payload length will change with HPACK, but this should be long
3227 // enough to cause an overflow. 3227 // enough to cause an overflow.
3228 const size_t kBigValueSize = framer.GetControlFrameBufferMaxSize(); 3228 const size_t kBigValueSize = framer.GetControlFrameBufferMaxSize();
3229 string big_value(kBigValueSize, 'x'); 3229 string big_value(kBigValueSize, 'x');
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
3654 // Send rest of the padding payload. 3654 // Send rest of the padding payload.
3655 EXPECT_CALL(visitor, OnStreamFrameData(1, NULL, 410, false)); 3655 EXPECT_CALL(visitor, OnStreamFrameData(1, NULL, 410, false));
3656 CHECK_EQ(410u, framer.ProcessInput(frame->data() + bytes_consumed, 410)); 3656 CHECK_EQ(410u, framer.ProcessInput(frame->data() + bytes_consumed, 410));
3657 CHECK_EQ(framer.state(), SpdyFramer::SPDY_RESET); 3657 CHECK_EQ(framer.state(), SpdyFramer::SPDY_RESET);
3658 CHECK_EQ(framer.error_code(), SpdyFramer::SPDY_NO_ERROR); 3658 CHECK_EQ(framer.error_code(), SpdyFramer::SPDY_NO_ERROR);
3659 } 3659 }
3660 3660
3661 TEST_P(SpdyFramerTest, ReadWindowUpdate) { 3661 TEST_P(SpdyFramerTest, ReadWindowUpdate) {
3662 SpdyFramer framer(spdy_version_); 3662 SpdyFramer framer(spdy_version_);
3663 scoped_ptr<SpdyFrame> control_frame( 3663 scoped_ptr<SpdyFrame> control_frame(
3664 framer.SerializeWindowUpdate(net::SpdyWindowUpdateIR(1, 2))); 3664 framer.SerializeWindowUpdate(SpdyWindowUpdateIR(1, 2)));
3665 TestSpdyVisitor visitor(spdy_version_); 3665 TestSpdyVisitor visitor(spdy_version_);
3666 visitor.SimulateInFramer( 3666 visitor.SimulateInFramer(
3667 reinterpret_cast<unsigned char*>(control_frame->data()), 3667 reinterpret_cast<unsigned char*>(control_frame->data()),
3668 control_frame->size()); 3668 control_frame->size());
3669 EXPECT_EQ(1u, visitor.last_window_update_stream_); 3669 EXPECT_EQ(1u, visitor.last_window_update_stream_);
3670 EXPECT_EQ(2u, visitor.last_window_update_delta_); 3670 EXPECT_EQ(2u, visitor.last_window_update_delta_);
3671 } 3671 }
3672 3672
3673 TEST_P(SpdyFramerTest, ReceiveCredentialFrame) { 3673 TEST_P(SpdyFramerTest, ReceiveCredentialFrame) {
3674 if (!IsSpdy3()) { 3674 if (!IsSpdy3()) {
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
3718 't', 0x00, 0x00, 0x00, 3718 't', 0x00, 0x00, 0x00,
3719 0x0A, 'f', 'i', 'n', 3719 0x0A, 'f', 'i', 'n',
3720 'a', 'l', ' ', 'c', 3720 'a', 'l', ' ', 'c',
3721 'e', 'r', 't', 3721 'e', 'r', 't',
3722 }; 3722 };
3723 TestSpdyVisitor visitor(spdy_version_); 3723 TestSpdyVisitor visitor(spdy_version_);
3724 visitor.use_compression_ = false; 3724 visitor.use_compression_ = false;
3725 string multiple_frame_data(reinterpret_cast<const char*>(kV3FrameData), 3725 string multiple_frame_data(reinterpret_cast<const char*>(kV3FrameData),
3726 arraysize(kV3FrameData)); 3726 arraysize(kV3FrameData));
3727 scoped_ptr<SpdyFrame> control_frame( 3727 scoped_ptr<SpdyFrame> control_frame(
3728 framer.SerializeWindowUpdate(net::SpdyWindowUpdateIR(1, 2))); 3728 framer.SerializeWindowUpdate(SpdyWindowUpdateIR(1, 2)));
3729 multiple_frame_data.append(string(control_frame->data(), 3729 multiple_frame_data.append(string(control_frame->data(),
3730 control_frame->size())); 3730 control_frame->size()));
3731 visitor.SimulateInFramer( 3731 visitor.SimulateInFramer(
3732 reinterpret_cast<unsigned const char*>(multiple_frame_data.data()), 3732 reinterpret_cast<unsigned const char*>(multiple_frame_data.data()),
3733 multiple_frame_data.length()); 3733 multiple_frame_data.length());
3734 EXPECT_EQ(0, visitor.error_count_); 3734 EXPECT_EQ(0, visitor.error_count_);
3735 EXPECT_EQ(1u, visitor.last_window_update_stream_); 3735 EXPECT_EQ(1u, visitor.last_window_update_stream_);
3736 EXPECT_EQ(2u, visitor.last_window_update_delta_); 3736 EXPECT_EQ(2u, visitor.last_window_update_delta_);
3737 } 3737 }
3738 3738
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after
4282 return; 4282 return;
4283 } 4283 }
4284 4284
4285 for (int flags = 0; flags < 256; ++flags) { 4285 for (int flags = 0; flags < 256; ++flags) {
4286 SCOPED_TRACE(testing::Message() << "Flags " << flags); 4286 SCOPED_TRACE(testing::Message() << "Flags " << flags);
4287 4287
4288 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 4288 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
4289 SpdyFramer framer(spdy_version_); 4289 SpdyFramer framer(spdy_version_);
4290 framer.set_visitor(&visitor); 4290 framer.set_visitor(&visitor);
4291 4291
4292 net::SpdyDataIR data_ir(1, StringPiece("hello", 5)); 4292 SpdyDataIR data_ir(1, StringPiece("hello", 5));
4293 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir)); 4293 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir));
4294 SetFrameFlags(frame.get(), flags, spdy_version_); 4294 SetFrameFlags(frame.get(), flags, spdy_version_);
4295 4295
4296 if (flags & ~DATA_FLAG_FIN) { 4296 if (flags & ~DATA_FLAG_FIN) {
4297 EXPECT_CALL(visitor, OnError(_)); 4297 EXPECT_CALL(visitor, OnError(_));
4298 } else { 4298 } else {
4299 EXPECT_CALL(visitor, OnDataFrameHeader(1, 5, flags & DATA_FLAG_FIN)); 4299 EXPECT_CALL(visitor, OnDataFrameHeader(1, 5, flags & DATA_FLAG_FIN));
4300 EXPECT_CALL(visitor, OnStreamFrameData(_, _, 5, false)); 4300 EXPECT_CALL(visitor, OnStreamFrameData(_, _, 5, false));
4301 if (flags & DATA_FLAG_FIN) { 4301 if (flags & DATA_FLAG_FIN) {
4302 EXPECT_CALL(visitor, OnStreamFrameData(_, _, 0, true)); 4302 EXPECT_CALL(visitor, OnStreamFrameData(_, _, 0, true));
(...skipping 22 matching lines...) Expand all
4325 uint8 valid_data_flags = DATA_FLAG_FIN | DATA_FLAG_END_SEGMENT | 4325 uint8 valid_data_flags = DATA_FLAG_FIN | DATA_FLAG_END_SEGMENT |
4326 DATA_FLAG_PAD_LOW | DATA_FLAG_PAD_HIGH; 4326 DATA_FLAG_PAD_LOW | DATA_FLAG_PAD_HIGH;
4327 4327
4328 for (int flags = 0; flags < 256; ++flags) { 4328 for (int flags = 0; flags < 256; ++flags) {
4329 SCOPED_TRACE(testing::Message() << "Flags " << flags); 4329 SCOPED_TRACE(testing::Message() << "Flags " << flags);
4330 4330
4331 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 4331 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
4332 SpdyFramer framer(spdy_version_); 4332 SpdyFramer framer(spdy_version_);
4333 framer.set_visitor(&visitor); 4333 framer.set_visitor(&visitor);
4334 4334
4335 net::SpdyDataIR data_ir(1, StringPiece("hello", 5)); 4335 SpdyDataIR data_ir(1, StringPiece("hello", 5));
4336 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir)); 4336 scoped_ptr<SpdyFrame> frame(framer.SerializeData(data_ir));
4337 SetFrameFlags(frame.get(), flags, spdy_version_); 4337 SetFrameFlags(frame.get(), flags, spdy_version_);
4338 4338
4339 if (flags & ~valid_data_flags) { 4339 if (flags & ~valid_data_flags) {
4340 EXPECT_CALL(visitor, OnError(_)); 4340 EXPECT_CALL(visitor, OnError(_));
4341 } else { 4341 } else {
4342 EXPECT_CALL(visitor, OnDataFrameHeader(1, 5, flags & DATA_FLAG_FIN)); 4342 EXPECT_CALL(visitor, OnDataFrameHeader(1, 5, flags & DATA_FLAG_FIN));
4343 if ((flags & DATA_FLAG_PAD_LOW) || (flags & DATA_FLAG_PAD_HIGH)) { 4343 if ((flags & DATA_FLAG_PAD_LOW) || (flags & DATA_FLAG_PAD_HIGH)) {
4344 // Expect Error since we don't set pad_high and pad_low in payload. 4344 // Expect Error since we don't set pad_high and pad_low in payload.
4345 EXPECT_CALL(visitor, OnError(_)); 4345 EXPECT_CALL(visitor, OnError(_));
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
4484 } 4484 }
4485 4485
4486 TEST_P(SpdyFramerTest, RstStreamFrameFlags) { 4486 TEST_P(SpdyFramerTest, RstStreamFrameFlags) {
4487 for (int flags = 0; flags < 256; ++flags) { 4487 for (int flags = 0; flags < 256; ++flags) {
4488 SCOPED_TRACE(testing::Message() << "Flags " << flags); 4488 SCOPED_TRACE(testing::Message() << "Flags " << flags);
4489 4489
4490 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 4490 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
4491 SpdyFramer framer(spdy_version_); 4491 SpdyFramer framer(spdy_version_);
4492 framer.set_visitor(&visitor); 4492 framer.set_visitor(&visitor);
4493 4493
4494 net::SpdyRstStreamIR rst_stream(13, RST_STREAM_CANCEL, ""); 4494 SpdyRstStreamIR rst_stream(13, RST_STREAM_CANCEL, "");
4495 scoped_ptr<SpdyFrame> frame(framer.SerializeRstStream(rst_stream)); 4495 scoped_ptr<SpdyFrame> frame(framer.SerializeRstStream(rst_stream));
4496 SetFrameFlags(frame.get(), flags, spdy_version_); 4496 SetFrameFlags(frame.get(), flags, spdy_version_);
4497 4497
4498 if (flags != 0) { 4498 if (flags != 0) {
4499 EXPECT_CALL(visitor, OnError(_)); 4499 EXPECT_CALL(visitor, OnError(_));
4500 } else { 4500 } else {
4501 EXPECT_CALL(visitor, OnRstStream(13, RST_STREAM_CANCEL)); 4501 EXPECT_CALL(visitor, OnRstStream(13, RST_STREAM_CANCEL));
4502 } 4502 }
4503 4503
4504 framer.ProcessInput(frame->data(), frame->size()); 4504 framer.ProcessInput(frame->data(), frame->size());
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
4729 4729
4730 TEST_P(SpdyFramerTest, WindowUpdateFrameFlags) { 4730 TEST_P(SpdyFramerTest, WindowUpdateFrameFlags) {
4731 for (int flags = 0; flags < 256; ++flags) { 4731 for (int flags = 0; flags < 256; ++flags) {
4732 SCOPED_TRACE(testing::Message() << "Flags " << flags); 4732 SCOPED_TRACE(testing::Message() << "Flags " << flags);
4733 4733
4734 testing::StrictMock<test::MockSpdyFramerVisitor> visitor; 4734 testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
4735 SpdyFramer framer(spdy_version_); 4735 SpdyFramer framer(spdy_version_);
4736 framer.set_visitor(&visitor); 4736 framer.set_visitor(&visitor);
4737 4737
4738 scoped_ptr<SpdyFrame> frame(framer.SerializeWindowUpdate( 4738 scoped_ptr<SpdyFrame> frame(framer.SerializeWindowUpdate(
4739 net::SpdyWindowUpdateIR(4, 1024))); 4739 SpdyWindowUpdateIR(4, 1024)));
4740 SetFrameFlags(frame.get(), flags, spdy_version_); 4740 SetFrameFlags(frame.get(), flags, spdy_version_);
4741 4741
4742 if (flags != 0) { 4742 if (flags != 0) {
4743 EXPECT_CALL(visitor, OnError(_)); 4743 EXPECT_CALL(visitor, OnError(_));
4744 } else { 4744 } else {
4745 EXPECT_CALL(visitor, OnWindowUpdate(4, 1024)); 4745 EXPECT_CALL(visitor, OnWindowUpdate(4, 1024));
4746 } 4746 }
4747 4747
4748 framer.ProcessInput(frame->data(), frame->size()); 4748 framer.ProcessInput(frame->data(), frame->size());
4749 if (flags != 0) { 4749 if (flags != 0) {
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
5028 SpdyBlockedIR blocked_ir(0); 5028 SpdyBlockedIR blocked_ir(0);
5029 scoped_ptr<SpdySerializedFrame> frame(framer.SerializeFrame(blocked_ir)); 5029 scoped_ptr<SpdySerializedFrame> frame(framer.SerializeFrame(blocked_ir));
5030 framer.ProcessInput(frame->data(), framer.GetBlockedSize()); 5030 framer.ProcessInput(frame->data(), framer.GetBlockedSize());
5031 5031
5032 EXPECT_EQ(SpdyFramer::SPDY_RESET, framer.state()); 5032 EXPECT_EQ(SpdyFramer::SPDY_RESET, framer.state());
5033 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code()) 5033 EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.error_code())
5034 << SpdyFramer::ErrorCodeToString(framer.error_code()); 5034 << SpdyFramer::ErrorCodeToString(framer.error_code());
5035 } 5035 }
5036 5036
5037 } // namespace net 5037 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_framer.cc ('k') | net/spdy/spdy_protocol_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698