MCPcopy Create free account
hub / github.com/aria2/aria2 / testTransform

Method testTransform

test/ChunkedDecodingStreamFilterTest.cc:56–207  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

54CPPUNIT_TEST_SUITE_REGISTRATION(ChunkedDecodingStreamFilterTest);
55
56void ChunkedDecodingStreamFilterTest::testTransform()
57{
58 try {
59 std::basic_string<unsigned char> msg =
60 reinterpret_cast<const unsigned char*>("a\r\n1234567890\r\n");
61 ssize_t r = filter_->transform(writer_, segment_, msg.data(), msg.size());
62 CPPUNIT_ASSERT_EQUAL((ssize_t)10, r);
63 CPPUNIT_ASSERT_EQUAL(std::string("1234567890"), writer_->getString());
64 CPPUNIT_ASSERT_EQUAL((size_t)15, filter_->getBytesProcessed());
65 }
66 catch (DlAbortEx& e) {
67 CPPUNIT_FAIL(e.stackTrace());
68 }
69 clearWriter();
70 try {
71 // Feed extension; see it is ignored.
72 std::basic_string<unsigned char> msg =
73 reinterpret_cast<const unsigned char*>("3;extensionIgnored\r\n123\r\n");
74 ssize_t r = filter_->transform(writer_, segment_, msg.data(), msg.size());
75 CPPUNIT_ASSERT_EQUAL((ssize_t)3, r);
76 CPPUNIT_ASSERT_EQUAL(std::string("123"), writer_->getString());
77 CPPUNIT_ASSERT_EQUAL((size_t)25, filter_->getBytesProcessed());
78 }
79 catch (DlAbortEx& e) {
80 CPPUNIT_FAIL(e.stackTrace());
81 }
82
83 clearWriter();
84 // Feed 2extensions; see it is ignored.
85 try {
86 std::basic_string<unsigned char> msg =
87 reinterpret_cast<const unsigned char*>(
88 "3;extension1;extension2;\r\n123\r\n");
89 ssize_t r = filter_->transform(writer_, segment_, msg.data(), msg.size());
90 CPPUNIT_ASSERT_EQUAL((ssize_t)3, r);
91 CPPUNIT_ASSERT_EQUAL(std::string("123"), writer_->getString());
92 }
93 catch (DlAbortEx& e) {
94 CPPUNIT_FAIL(e.stackTrace());
95 }
96 clearWriter();
97 // Not all chunk size is available
98 try {
99 std::basic_string<unsigned char> msg =
100 reinterpret_cast<const unsigned char*>("1");
101 ssize_t r = filter_->transform(writer_, segment_, msg.data(), msg.size());
102 CPPUNIT_ASSERT_EQUAL((ssize_t)0, r);
103 }
104 catch (DlAbortEx& e) {
105 CPPUNIT_FAIL(e.stackTrace());
106 }
107 clearWriter();
108 try {
109 std::basic_string<unsigned char> msg =
110 reinterpret_cast<const unsigned char*>("0\r\n1234567890123456\r\n");
111 ssize_t r = filter_->transform(writer_, segment_, msg.data(), msg.size());
112 CPPUNIT_ASSERT_EQUAL((ssize_t)16, r);
113 CPPUNIT_ASSERT_EQUAL(std::string("1234567890123456"), writer_->getString());

Callers

nothing calls this directly

Calls 7

dataMethod · 0.80
getStringMethod · 0.80
stackTraceMethod · 0.80
transformMethod · 0.45
sizeMethod · 0.45
getBytesProcessedMethod · 0.45
finishedMethod · 0.45

Tested by

no test coverage detected