diff --git a/libcef/browser/devtools/devtools_util.cc b/libcef/browser/devtools/devtools_util.cc index 7b60a5c75..d0d7799a5 100644 --- a/libcef/browser/devtools/devtools_util.cc +++ b/libcef/browser/devtools/devtools_util.cc @@ -30,7 +30,7 @@ bool ParseEvent(const base::StringPiece& message, const size_t method_start = sizeof(kMethodStart) - 1; const size_t method_end = message.find(kMethodEnd, method_start); - if (method_end < 0U) + if (method_end == base::StringPiece::npos) return false; method = message.substr(method_start, method_end - method_start); if (method.empty()) @@ -77,7 +77,7 @@ bool ParseResult(const base::StringPiece& message, const size_t id_start = sizeof(kIdStart) - 1; const size_t id_end = message.find(kIdEnd, id_start); - if (id_end < 0U) + if (id_end == base::StringPiece::npos) return false; const base::StringPiece& id_str = message.substr(id_start, id_end - id_start); if (id_str.empty() || !base::StringToInt(id_str, &message_id)) diff --git a/libcef/browser/devtools/devtools_util_unittest.cc b/libcef/browser/devtools/devtools_util_unittest.cc index 9617f9445..ec41edef2 100644 --- a/libcef/browser/devtools/devtools_util_unittest.cc +++ b/libcef/browser/devtools/devtools_util_unittest.cc @@ -83,7 +83,7 @@ TEST(DevToolsUtil, ProtocolParser_Initialize_IsEvent) { EXPECT_TRUE(parser.Initialize(message)); EXPECT_TRUE(parser.IsInitialized()); EXPECT_TRUE(parser.IsEvent()); - EXPECT_STREQ("Test.myMethod", parser.method_.data()); + EXPECT_EQ("Test.myMethod", parser.method_); EXPECT_TRUE(parser.params_.empty()); parser.Reset(); @@ -94,8 +94,8 @@ TEST(DevToolsUtil, ProtocolParser_Initialize_IsEvent) { EXPECT_TRUE(parser.Initialize(message)); EXPECT_TRUE(parser.IsInitialized()); EXPECT_TRUE(parser.IsEvent()); - EXPECT_STREQ("Test.myMethod2", parser.method_.data()); - EXPECT_STREQ("{}", parser.params_.data()); + EXPECT_EQ("Test.myMethod2", parser.method_); + EXPECT_EQ("{}", parser.params_); parser.Reset(); EXPECT_FALSE(parser.IsInitialized()); @@ -105,8 +105,8 @@ TEST(DevToolsUtil, ProtocolParser_Initialize_IsEvent) { EXPECT_TRUE(parser.Initialize(message)); EXPECT_TRUE(parser.IsInitialized()); EXPECT_TRUE(parser.IsEvent()); - EXPECT_STREQ("Test.myMethod3", parser.method_.data()); - EXPECT_STREQ("{\"foo\":\"bar\"}", parser.params_.data()); + EXPECT_EQ("Test.myMethod3", parser.method_); + EXPECT_EQ("{\"foo\":\"bar\"}", parser.params_); } TEST(DevToolsUtil, ProtocolParser_Initialize_IsFailure_ResultMalformed) { @@ -162,7 +162,7 @@ TEST(DevToolsUtil, ProtocolParser_Initialize_IsResult_Result) { EXPECT_TRUE(parser.IsResult()); EXPECT_EQ(1, parser.message_id_); EXPECT_TRUE(parser.success_); - EXPECT_STREQ("{}", parser.params_.data()); + EXPECT_EQ("{}", parser.params_); parser.Reset(); EXPECT_FALSE(parser.IsInitialized()); @@ -174,7 +174,7 @@ TEST(DevToolsUtil, ProtocolParser_Initialize_IsResult_Result) { EXPECT_TRUE(parser.IsResult()); EXPECT_EQ(2, parser.message_id_); EXPECT_TRUE(parser.success_); - EXPECT_STREQ("{\"foo\":\"bar\"}", parser.params_.data()); + EXPECT_EQ("{\"foo\":\"bar\"}", parser.params_); } TEST(DevToolsUtil, ProtocolParser_Initialize_IsResult_Error) { @@ -188,7 +188,7 @@ TEST(DevToolsUtil, ProtocolParser_Initialize_IsResult_Error) { EXPECT_TRUE(parser.IsResult()); EXPECT_EQ(1, parser.message_id_); EXPECT_FALSE(parser.success_); - EXPECT_STREQ("{}", parser.params_.data()); + EXPECT_EQ("{}", parser.params_); parser.Reset(); EXPECT_FALSE(parser.IsInitialized()); @@ -200,5 +200,21 @@ TEST(DevToolsUtil, ProtocolParser_Initialize_IsResult_Error) { EXPECT_TRUE(parser.IsResult()); EXPECT_EQ(2, parser.message_id_); EXPECT_FALSE(parser.success_); - EXPECT_STREQ("{\"foo\":\"bar\"}", parser.params_.data()); + EXPECT_EQ("{\"foo\":\"bar\"}", parser.params_); +} + +TEST(DevToolsUtil, ProtocolParser_Can_Handle_MissingQuote) { + ProtocolParser parser; + + const auto message = "{\"method\":\"Test.myMethod}"; + EXPECT_TRUE(parser.Initialize(message)); + EXPECT_TRUE(parser.IsFailure()); +} + +TEST(DevToolsUtil, ProtocolParser_Can_Handle_MissingComma) { + ProtocolParser parser; + + const auto message = "{\"id\":1\"error\":{}}"; + EXPECT_TRUE(parser.Initialize(message)); + EXPECT_TRUE(parser.IsFailure()); }