diff options
author | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-29 02:16:06 +0000 |
---|---|---|
committer | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-29 02:16:06 +0000 |
commit | b46442d7e2e8cccf5f9bcafb2e1e3b7cf23d424b (patch) | |
tree | e1e0f0d2fc3653d71e93b4cca71cce5ea2cb7223 /content/browser/debugger/devtools_manager_unittest.cc | |
parent | 75a4e77f6c2c21706c09948269c45d98db28757b (diff) | |
download | chromium_src-b46442d7e2e8cccf5f9bcafb2e1e3b7cf23d424b.zip chromium_src-b46442d7e2e8cccf5f9bcafb2e1e3b7cf23d424b.tar.gz chromium_src-b46442d7e2e8cccf5f9bcafb2e1e3b7cf23d424b.tar.bz2 |
Wholesale move of debugger sources to content.
Other references are modified only to point to the new
location. Follow-up changes will move build rules for the debugger
into content.
This adds a somewhat permissive DEPS file to
content/browser/debugger. Follow-up work will whittle that down to
zero dependencies on chrome/.
BUG=84078
TEST=existing
Review URL: http://codereview.chromium.org/7274031
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90912 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/debugger/devtools_manager_unittest.cc')
-rw-r--r-- | content/browser/debugger/devtools_manager_unittest.cc | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/content/browser/debugger/devtools_manager_unittest.cc b/content/browser/debugger/devtools_manager_unittest.cc new file mode 100644 index 0000000..6eb70a2 --- /dev/null +++ b/content/browser/debugger/devtools_manager_unittest.cc @@ -0,0 +1,115 @@ +// 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 "base/basictypes.h" +#include "chrome/common/render_messages.h" +#include "content/browser/debugger/devtools_client_host.h" +#include "content/browser/debugger/devtools_manager.h" +#include "content/browser/debugger/devtools_window.h" +#include "content/browser/renderer_host/test_render_view_host.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace { + +class TestDevToolsClientHost : public DevToolsClientHost { + public: + TestDevToolsClientHost() + : last_sent_message(NULL), + closed_(false) { + } + + virtual ~TestDevToolsClientHost() { + EXPECT_TRUE(closed_); + } + + virtual void Close() { + EXPECT_FALSE(closed_); + close_counter++; + NotifyCloseListener(); + closed_ = true; + } + virtual void InspectedTabClosing() { + Close(); + } + + virtual void SetInspectedTabUrl(const std::string& url) { + } + + virtual void SendMessageToClient(const IPC::Message& message) { + last_sent_message = &message; + } + + virtual void TabReplaced(TabContentsWrapper* new_tab) { + } + + static void ResetCounters() { + close_counter = 0; + } + + static int close_counter; + + const IPC::Message* last_sent_message; + + private: + bool closed_; + + virtual void FrameNavigating(const std::string& url) {} + + DISALLOW_COPY_AND_ASSIGN(TestDevToolsClientHost); +}; + +int TestDevToolsClientHost::close_counter = 0; + +} // namespace + +class DevToolsManagerTest : public RenderViewHostTestHarness { + public: + DevToolsManagerTest() : RenderViewHostTestHarness() { + } + + protected: + virtual void SetUp() { + RenderViewHostTestHarness::SetUp(); + TestDevToolsClientHost::ResetCounters(); + } +}; + +TEST_F(DevToolsManagerTest, OpenAndManuallyCloseDevToolsClientHost) { + scoped_refptr<DevToolsManager> manager(new DevToolsManager()); + + DevToolsClientHost* host = manager->GetDevToolsClientHostFor(rvh()); + EXPECT_TRUE(NULL == host); + + TestDevToolsClientHost client_host; + manager->RegisterDevToolsClientHostFor(rvh(), &client_host); + // Test that just registered devtools host is returned. + host = manager->GetDevToolsClientHostFor(rvh()); + EXPECT_TRUE(&client_host == host); + EXPECT_EQ(0, TestDevToolsClientHost::close_counter); + + // Test that the same devtools host is returned. + host = manager->GetDevToolsClientHostFor(rvh()); + EXPECT_TRUE(&client_host == host); + EXPECT_EQ(0, TestDevToolsClientHost::close_counter); + + client_host.Close(); + EXPECT_EQ(1, TestDevToolsClientHost::close_counter); + host = manager->GetDevToolsClientHostFor(rvh()); + EXPECT_TRUE(NULL == host); +} + +TEST_F(DevToolsManagerTest, ForwardMessageToClient) { + scoped_refptr<DevToolsManager> manager(new DevToolsManager()); + + TestDevToolsClientHost client_host; + manager->RegisterDevToolsClientHostFor(rvh(), &client_host); + EXPECT_EQ(0, TestDevToolsClientHost::close_counter); + + IPC::Message m; + manager->ForwardToDevToolsClient(rvh(), m); + EXPECT_TRUE(&m == client_host.last_sent_message); + + client_host.Close(); + EXPECT_EQ(1, TestDevToolsClientHost::close_counter); +} |