Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(93)

Side by Side Diff: chrome/browser/debugger/devtools_manager_unittest.cc

Issue 42233: Add unit tests for DevToolsManager (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/debugger/devtools_manager.cc ('k') | chrome/browser/debugger/devtools_window.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/basictypes.h"
6 #include "chrome/browser/debugger/devtools_manager.h"
7 #include "chrome/browser/debugger/devtools_window.h"
8 #include "chrome/browser/renderer_host/test_render_view_host.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "chrome/common/render_messages.h"
11
12 namespace {
13
14 class TestDevToolsWindow : public DevToolsWindow {
15 public:
16 TestDevToolsWindow(DevToolsInstanceDescriptor* descriptor)
17 : descriptor_(descriptor),
18 shown_(false),
19 closed_(false) {
20 descriptor->SetDevToolsWindow(this);
21 }
22
23 virtual ~TestDevToolsWindow() {
24 EXPECT_EQ(shown_, closed_);
25 }
26
27 virtual void Show() {
28 open_counter++;
29 shown_ = true;
30 }
31
32 virtual void Close() {
33 EXPECT_TRUE(shown_);
34 close_counter++;
35 descriptor_->Destroy();
36 closed_ = true;
37 }
38
39 static void ResetCounters() {
40 open_counter = 0;
41 close_counter = 0;
42 }
43
44 static int open_counter;
45 static int close_counter;
46
47 private:
48 DevToolsInstanceDescriptor* descriptor_;
49 bool shown_;
50 bool closed_;
51
52 DISALLOW_COPY_AND_ASSIGN(TestDevToolsWindow);
53 };
54
55 int TestDevToolsWindow::open_counter = 0;
56 int TestDevToolsWindow::close_counter = 0;
57
58
59 class TestDevToolsWindowFactory : public DevToolsWindowFactory {
60 public:
61 TestDevToolsWindowFactory() : DevToolsWindowFactory(),
62 last_created_window(NULL) {}
63 virtual ~TestDevToolsWindowFactory() {}
64
65 virtual DevToolsWindow* CreateDevToolsWindow(
66 DevToolsInstanceDescriptor* descriptor) {
67 last_created_window = new TestDevToolsWindow(descriptor);
68 return last_created_window;
69 }
70
71 DevToolsWindow* last_created_window;
72
73 private:
74 DISALLOW_COPY_AND_ASSIGN(TestDevToolsWindowFactory);
75 };
76
77 } // namespace
78
79 class DevToolsManagerTest : public RenderViewHostTestHarness {
80 public:
81 DevToolsManagerTest() : RenderViewHostTestHarness() {
82 }
83
84 protected:
85 virtual void SetUp() {
86 RenderViewHostTestHarness::SetUp();
87 TestDevToolsWindow::ResetCounters();
88 }
89 };
90
91 TEST_F(DevToolsManagerTest, OpenAndManuallyCloseDevToolsWindow) {
92 TestDevToolsWindowFactory window_factory;
93 DevToolsManager manager(&window_factory);
94
95 manager.ShowDevToolsForWebContents(contents());
96 EXPECT_EQ(TestDevToolsWindow::open_counter, 1);
97 EXPECT_EQ(TestDevToolsWindow::close_counter, 0);
98
99 DevToolsWindow* window = window_factory.last_created_window;
100 // Test that same devtools window is used.
101 manager.ShowDevToolsForWebContents(contents());
102 // Check that no new windows were created.
103 EXPECT_TRUE(window == window_factory.last_created_window);
104 EXPECT_EQ(TestDevToolsWindow::open_counter, 2);
105 EXPECT_EQ(TestDevToolsWindow::close_counter, 0);
106
107 window->Close();
108 EXPECT_EQ(TestDevToolsWindow::open_counter, 2);
109 EXPECT_EQ(TestDevToolsWindow::close_counter, 1);
110 }
OLDNEW
« no previous file with comments | « chrome/browser/debugger/devtools_manager.cc ('k') | chrome/browser/debugger/devtools_window.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698