// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include <string> #include "base/memory/scoped_ptr.h" #include "base/string_number_conversions.h" #include "chrome/browser/debugger/devtools_remote.h" #include "chrome/browser/debugger/devtools_remote_message.h" #include "testing/gtest/include/gtest/gtest.h" class DevToolsRemoteMessageTest : public testing::Test { public: DevToolsRemoteMessageTest() : testing::Test() {} protected: virtual void SetUp() { testing::Test::SetUp(); } }; TEST_F(DevToolsRemoteMessageTest, ConstructInstanceManually) { DevToolsRemoteMessage::HeaderMap headers; std::string content = "{\"command\":\"ping\"}"; headers[DevToolsRemoteMessageHeaders::kTool] = "DevToolsService"; headers[DevToolsRemoteMessageHeaders::kContentLength] = base::IntToString(content.size()); DevToolsRemoteMessage message(headers, content); ASSERT_STREQ("DevToolsService", message.GetHeaderWithEmptyDefault( DevToolsRemoteMessageHeaders::kTool).c_str()); ASSERT_STREQ("DevToolsService", message.tool().c_str()); ASSERT_STREQ(content.c_str(), message.content().c_str()); ASSERT_EQ(content.size(), static_cast<std::string::size_type>(message.content_length())); ASSERT_EQ(static_cast<DevToolsRemoteMessage::HeaderMap::size_type>(2), message.headers().size()); } TEST_F(DevToolsRemoteMessageTest, ConstructWithBuilder) { std::string content = "Responsecontent"; scoped_ptr<DevToolsRemoteMessage> message( DevToolsRemoteMessageBuilder::instance().Create( "V8Debugger", // tool "2", // destination content)); // content ASSERT_EQ(static_cast<DevToolsRemoteMessage::HeaderMap::size_type>(3), message->headers().size()); ASSERT_STREQ( "V8Debugger", message->GetHeaderWithEmptyDefault( DevToolsRemoteMessageHeaders::kTool).c_str()); ASSERT_STREQ( "V8Debugger", message->tool().c_str()); ASSERT_STREQ( "2", message->GetHeaderWithEmptyDefault( DevToolsRemoteMessageHeaders::kDestination).c_str()); ASSERT_STREQ( "2", message->destination().c_str()); ASSERT_EQ(content.size(), static_cast<DevToolsRemoteMessage::HeaderMap::size_type>( message->content_length())); ASSERT_STREQ(content.c_str(), message->content().c_str()); }