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

Unified Diff: net/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc

Issue 2615383002: Implement StringPieceHasSubstrMatcher. (Closed)
Patch Set: Rebase. Created 3 years, 11 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 | « no previous file | net/test/gtest_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc
diff --git a/net/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc b/net/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc
index e0620466430a1702c5f70bcfb18bed5db0ca3d89..0b5564ff8e6c843ae9dbf7e9a62cda8c2a4e1bdd 100644
--- a/net/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc
+++ b/net/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc
@@ -7,6 +7,8 @@
// Tests of HpackWholeEntryBuffer: does it buffer correctly, and does it
// detect Huffman decoding errors and oversize string errors?
+#include "net/test/gtest_util.h"
+#include "testing/gmock/include/gmock/gmock-matchers.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -15,7 +17,6 @@ using ::testing::AllOf;
using ::testing::HasSubstr;
using ::testing::InSequence;
using ::testing::Property;
-using ::testing::SaveArg;
using ::testing::StrictMock;
using ::testing::_;
@@ -25,6 +26,15 @@ namespace {
constexpr size_t kMaxStringSize = 20;
+// Define HasSubstr() for base::StringPiece arguments.
+// This shadows ::testing::HasSubstr(), which only works on argument types
+// that can be implicilty converted to a std::string.
+inline ::testing::PolymorphicMatcher<StringPieceHasSubstrMatcher> HasSubstr(
+ const std::string& substring) {
+ return ::testing::MakePolymorphicMatcher(
+ StringPieceHasSubstrMatcher(substring));
+}
+
class MockHpackWholeEntryListener : public HpackWholeEntryListener {
public:
~MockHpackWholeEntryListener() override {}
@@ -157,21 +167,15 @@ TEST_F(HpackWholeEntryBufferTest, OnLiteralNameAndValue) {
// Verify that a name longer than the allowed size generates an error.
TEST_F(HpackWholeEntryBufferTest, NameTooLong) {
entry_buffer_.OnStartLiteralHeader(HpackEntryType::kIndexedLiteralHeader, 0);
- StringPiece error_message;
- EXPECT_CALL(listener_, OnHpackDecodeError(_))
- .WillOnce(SaveArg<0>(&error_message));
+ EXPECT_CALL(listener_, OnHpackDecodeError(HasSubstr("HPACK entry name")));
entry_buffer_.OnNameStart(false, kMaxStringSize + 1);
- EXPECT_THAT(error_message.as_string(), HasSubstr("HPACK entry name"));
}
// Verify that a name longer than the allowed size generates an error.
TEST_F(HpackWholeEntryBufferTest, ValueTooLong) {
entry_buffer_.OnStartLiteralHeader(HpackEntryType::kIndexedLiteralHeader, 1);
- StringPiece error_message;
- EXPECT_CALL(listener_, OnHpackDecodeError(_))
- .WillOnce(SaveArg<0>(&error_message));
+ EXPECT_CALL(listener_, OnHpackDecodeError(HasSubstr("HPACK entry value")));
entry_buffer_.OnValueStart(false, kMaxStringSize + 1);
- EXPECT_THAT(error_message.as_string(), HasSubstr("HPACK entry value"));
}
// Verify that a Huffman encoded name with an explicit EOS generates an error
@@ -183,12 +187,9 @@ TEST_F(HpackWholeEntryBufferTest, NameHuffmanError) {
entry_buffer_.OnNameStart(true, 4);
entry_buffer_.OnNameData(data, 3);
- StringPiece error_message;
- EXPECT_CALL(listener_, OnHpackDecodeError(_))
- .WillOnce(SaveArg<0>(&error_message));
+ EXPECT_CALL(listener_, OnHpackDecodeError(HasSubstr("HPACK entry name")));
entry_buffer_.OnNameData(data, 1);
- EXPECT_THAT(error_message.as_string(), HasSubstr("HPACK entry name"));
// After an error is reported, the listener is not called again.
EXPECT_CALL(listener_, OnDynamicTableSizeUpdate(8096)).Times(0);
@@ -204,12 +205,9 @@ TEST_F(HpackWholeEntryBufferTest, ValueeHuffmanError) {
entry_buffer_.OnValueStart(true, 3);
entry_buffer_.OnValueData(data, 3);
- StringPiece error_message;
- EXPECT_CALL(listener_, OnHpackDecodeError(_))
- .WillOnce(SaveArg<0>(&error_message));
+ EXPECT_CALL(listener_, OnHpackDecodeError(HasSubstr("HPACK entry value")));
entry_buffer_.OnValueEnd();
- EXPECT_THAT(error_message.as_string(), HasSubstr("HPACK entry value"));
// After an error is reported, the listener is not called again.
EXPECT_CALL(listener_, OnIndexedHeader(17)).Times(0);
« no previous file with comments | « no previous file | net/test/gtest_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698