summaryrefslogtreecommitdiffstats
path: root/content/browser/debugger/devtools_manager_unittest.cc
diff options
context:
space:
mode:
authorjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-29 02:16:06 +0000
committerjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-29 02:16:06 +0000
commitb46442d7e2e8cccf5f9bcafb2e1e3b7cf23d424b (patch)
treee1e0f0d2fc3653d71e93b4cca71cce5ea2cb7223 /content/browser/debugger/devtools_manager_unittest.cc
parent75a4e77f6c2c21706c09948269c45d98db28757b (diff)
downloadchromium_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.cc115
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);
+}