diff options
Diffstat (limited to 'chrome/browser/debugger/devtools_manager_unittest.cc')
-rw-r--r-- | chrome/browser/debugger/devtools_manager_unittest.cc | 117 |
1 files changed, 57 insertions, 60 deletions
diff --git a/chrome/browser/debugger/devtools_manager_unittest.cc b/chrome/browser/debugger/devtools_manager_unittest.cc index a43f95a..6169f60 100644 --- a/chrome/browser/debugger/devtools_manager_unittest.cc +++ b/chrome/browser/debugger/devtools_manager_unittest.cc @@ -3,6 +3,7 @@ // found in the LICENSE file. #include "base/basictypes.h" +#include "chrome/browser/debugger/devtools_client_host.h" #include "chrome/browser/debugger/devtools_manager.h" #include "chrome/browser/debugger/devtools_window.h" #include "chrome/browser/renderer_host/test_render_view_host.h" @@ -11,68 +12,46 @@ namespace { -class TestDevToolsWindow : public DevToolsWindow { +class TestDevToolsClientHost : public DevToolsClientHost { public: - TestDevToolsWindow(DevToolsInstanceDescriptor* descriptor) - : descriptor_(descriptor), - shown_(false), + TestDevToolsClientHost() + : last_sent_message(NULL), closed_(false) { - descriptor->SetDevToolsWindow(this); } - virtual ~TestDevToolsWindow() { - EXPECT_EQ(shown_, closed_); - } - - virtual void Show() { - open_counter++; - shown_ = true; + virtual ~TestDevToolsClientHost() { + EXPECT_TRUE(closed_); } virtual void Close() { - EXPECT_TRUE(shown_); + EXPECT_FALSE(closed_); close_counter++; - descriptor_->Destroy(); + NotifyCloseListener(); closed_ = true; } + virtual void InspectedTabClosing() { + Close(); + } + + virtual void SendMessageToClient(const IPC::Message& message) { + last_sent_message = &message; + } static void ResetCounters() { - open_counter = 0; close_counter = 0; } - static int open_counter; static int close_counter; + const IPC::Message* last_sent_message; + private: - DevToolsInstanceDescriptor* descriptor_; - bool shown_; bool closed_; - DISALLOW_COPY_AND_ASSIGN(TestDevToolsWindow); + DISALLOW_COPY_AND_ASSIGN(TestDevToolsClientHost); }; -int TestDevToolsWindow::open_counter = 0; -int TestDevToolsWindow::close_counter = 0; - - -class TestDevToolsWindowFactory : public DevToolsWindowFactory { - public: - TestDevToolsWindowFactory() : DevToolsWindowFactory(), - last_created_window(NULL) {} - virtual ~TestDevToolsWindowFactory() {} - - virtual DevToolsWindow* CreateDevToolsWindow( - DevToolsInstanceDescriptor* descriptor) { - last_created_window = new TestDevToolsWindow(descriptor); - return last_created_window; - } - - DevToolsWindow* last_created_window; - - private: - DISALLOW_COPY_AND_ASSIGN(TestDevToolsWindowFactory); -}; +int TestDevToolsClientHost::close_counter = 0; } // namespace @@ -84,27 +63,45 @@ class DevToolsManagerTest : public RenderViewHostTestHarness { protected: virtual void SetUp() { RenderViewHostTestHarness::SetUp(); - TestDevToolsWindow::ResetCounters(); + TestDevToolsClientHost::ResetCounters(); } }; -TEST_F(DevToolsManagerTest, OpenAndManuallyCloseDevToolsWindow) { - TestDevToolsWindowFactory window_factory; - DevToolsManager manager(&window_factory); - - manager.ShowDevToolsForWebContents(contents()); - EXPECT_EQ(TestDevToolsWindow::open_counter, 1); - EXPECT_EQ(TestDevToolsWindow::close_counter, 0); - - DevToolsWindow* window = window_factory.last_created_window; - // Test that same devtools window is used. - manager.ShowDevToolsForWebContents(contents()); - // Check that no new windows were created. - EXPECT_TRUE(window == window_factory.last_created_window); - EXPECT_EQ(TestDevToolsWindow::open_counter, 2); - EXPECT_EQ(TestDevToolsWindow::close_counter, 0); - - window->Close(); - EXPECT_EQ(TestDevToolsWindow::open_counter, 2); - EXPECT_EQ(TestDevToolsWindow::close_counter, 1); +TEST_F(DevToolsManagerTest, OpenAndManuallyCloseDevToolsClientHost) { + DevToolsManager manager; + + DevToolsClientHost* host = manager.GetDevToolsClientHostFor(*contents()); + EXPECT_TRUE(NULL == host); + + TestDevToolsClientHost client_host; + manager.RegisterDevToolsClientHostFor(*contents(), &client_host); + // Test that just registered devtools host is returned. + host = manager.GetDevToolsClientHostFor(*contents()); + EXPECT_TRUE(&client_host == host); + EXPECT_EQ(0, TestDevToolsClientHost::close_counter); + + // Test that the same devtools host is returned. + host = manager.GetDevToolsClientHostFor(*contents()); + EXPECT_TRUE(&client_host == host); + EXPECT_EQ(0, TestDevToolsClientHost::close_counter); + + client_host.Close(); + EXPECT_EQ(1, TestDevToolsClientHost::close_counter); + host = manager.GetDevToolsClientHostFor(*contents()); + EXPECT_TRUE(NULL == host); +} + +TEST_F(DevToolsManagerTest, ForwardMessageToClient) { + DevToolsManager manager; + + TestDevToolsClientHost client_host; + manager.RegisterDevToolsClientHostFor(*contents(), &client_host); + EXPECT_EQ(0, TestDevToolsClientHost::close_counter); + + IPC::Message m; + manager.ForwardToDevToolsClient(*contents()->render_view_host(), m); + EXPECT_TRUE(&m == client_host.last_sent_message); + + client_host.Close(); + EXPECT_EQ(1, TestDevToolsClientHost::close_counter); } |