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

Side by Side Diff: chrome/browser/ui/webui/sync_internals_ui_unittest.cc

Issue 7892007: Add ChromeRenderViewHostTestHarness to get rid of the dependency from RVHTH to profile (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix mac Created 9 years, 3 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/sync_internals_ui.h" 5 #include "chrome/browser/ui/webui/sync_internals_ui.h"
6 6
7 #include <cstddef> 7 #include <cstddef>
8 #include <string> 8 #include <string>
9 9
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
11 #include "base/utf_string_conversions.h" 11 #include "base/utf_string_conversions.h"
12 #include "base/values.h" 12 #include "base/values.h"
13 #include "chrome/browser/sync/js/js_arg_list.h" 13 #include "chrome/browser/sync/js/js_arg_list.h"
14 #include "chrome/browser/sync/js/js_event_details.h" 14 #include "chrome/browser/sync/js/js_event_details.h"
15 #include "chrome/browser/sync/js/js_test_util.h" 15 #include "chrome/browser/sync/js/js_test_util.h"
16 #include "chrome/browser/sync/profile_sync_service_mock.h" 16 #include "chrome/browser/sync/profile_sync_service_mock.h"
17 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
17 #include "chrome/test/base/profile_mock.h" 18 #include "chrome/test/base/profile_mock.h"
18 #include "content/browser/browser_thread.h" 19 #include "content/browser/browser_thread.h"
19 #include "content/browser/renderer_host/test_render_view_host.h"
20 #include "content/browser/tab_contents/test_tab_contents.h" 20 #include "content/browser/tab_contents/test_tab_contents.h"
21 #include "testing/gmock/include/gmock/gmock.h" 21 #include "testing/gmock/include/gmock/gmock.h"
22 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
23 23
24 namespace { 24 namespace {
25 25
26 using browser_sync::HasArgsAsList; 26 using browser_sync::HasArgsAsList;
27 using browser_sync::JsArgList; 27 using browser_sync::JsArgList;
28 using browser_sync::JsEventDetails; 28 using browser_sync::JsEventDetails;
29 using testing::_; 29 using testing::_;
30 using testing::Mock; 30 using testing::Mock;
31 using testing::NiceMock; 31 using testing::NiceMock;
32 using testing::Return; 32 using testing::Return;
33 using testing::StrictMock; 33 using testing::StrictMock;
34 34
35 // Subclass of SyncInternalsUI to mock out ExecuteJavascript. 35 // Subclass of SyncInternalsUI to mock out ExecuteJavascript.
36 class TestSyncInternalsUI : public SyncInternalsUI { 36 class TestSyncInternalsUI : public SyncInternalsUI {
37 public: 37 public:
38 explicit TestSyncInternalsUI(TabContents* contents) 38 explicit TestSyncInternalsUI(TabContents* contents)
39 : SyncInternalsUI(contents) {} 39 : SyncInternalsUI(contents) {}
40 virtual ~TestSyncInternalsUI() {} 40 virtual ~TestSyncInternalsUI() {}
41 41
42 MOCK_METHOD1(ExecuteJavascript, void(const string16&)); 42 MOCK_METHOD1(ExecuteJavascript, void(const string16&));
43 }; 43 };
44 44
45 // Tests with non-NULL ProfileSyncService. 45 // Tests with non-NULL ProfileSyncService.
46 class SyncInternalsUITestWithService : public RenderViewHostTestHarness { 46 class SyncInternalsUITestWithService : public ChromeRenderViewHostTestHarness {
47 protected: 47 protected:
48 SyncInternalsUITestWithService() {} 48 SyncInternalsUITestWithService() {}
49 49
50 virtual ~SyncInternalsUITestWithService() {} 50 virtual ~SyncInternalsUITestWithService() {}
51 51
52 virtual void SetUp() { 52 virtual void SetUp() {
53 NiceMock<ProfileMock>* profile_mock = new NiceMock<ProfileMock>(); 53 NiceMock<ProfileMock>* profile_mock = new NiceMock<ProfileMock>();
54 StrictMock<ProfileSyncServiceMock> profile_sync_service_mock; 54 StrictMock<ProfileSyncServiceMock> profile_sync_service_mock;
55 EXPECT_CALL(*profile_mock, GetProfileSyncService()) 55 EXPECT_CALL(*profile_mock, GetProfileSyncService())
56 .WillOnce(Return(&profile_sync_service_mock)); 56 .WillOnce(Return(&profile_sync_service_mock));
57 profile_.reset(profile_mock); 57 browser_context_.reset(profile_mock);
58 58
59 RenderViewHostTestHarness::SetUp(); 59 ChromeRenderViewHostTestHarness::SetUp();
60 60
61 EXPECT_CALL(profile_sync_service_mock, GetJsController()) 61 EXPECT_CALL(profile_sync_service_mock, GetJsController())
62 .WillOnce(Return(mock_js_controller_.AsWeakPtr())); 62 .WillOnce(Return(mock_js_controller_.AsWeakPtr()));
63 63
64 EXPECT_CALL(mock_js_controller_, AddJsEventHandler(_)); 64 EXPECT_CALL(mock_js_controller_, AddJsEventHandler(_));
65 65
66 { 66 {
67 // Needed by |test_sync_internals_ui_|'s constructor. The 67 // Needed by |test_sync_internals_ui_|'s constructor. The
68 // message loop is provided by RenderViewHostTestHarness. 68 // message loop is provided by ChromeRenderViewHostTestHarness.
69 BrowserThread ui_thread_(BrowserThread::UI, 69 BrowserThread ui_thread_(BrowserThread::UI,
70 MessageLoopForUI::current()); 70 MessageLoopForUI::current());
71 // |test_sync_internals_ui_|'s constructor triggers all the 71 // |test_sync_internals_ui_|'s constructor triggers all the
72 // expectations above. 72 // expectations above.
73 test_sync_internals_ui_.reset(new TestSyncInternalsUI(contents())); 73 test_sync_internals_ui_.reset(new TestSyncInternalsUI(contents()));
74 } 74 }
75 75
76 Mock::VerifyAndClearExpectations(profile_mock); 76 Mock::VerifyAndClearExpectations(profile_mock);
77 Mock::VerifyAndClearExpectations(&mock_js_controller_); 77 Mock::VerifyAndClearExpectations(&mock_js_controller_);
78 } 78 }
79 79
80 virtual void TearDown() { 80 virtual void TearDown() {
81 Mock::VerifyAndClearExpectations(&mock_js_controller_); 81 Mock::VerifyAndClearExpectations(&mock_js_controller_);
82 82
83 // Called by |test_sync_internals_ui_|'s destructor. 83 // Called by |test_sync_internals_ui_|'s destructor.
84 EXPECT_CALL(mock_js_controller_, 84 EXPECT_CALL(mock_js_controller_,
85 RemoveJsEventHandler(test_sync_internals_ui_.get())); 85 RemoveJsEventHandler(test_sync_internals_ui_.get()));
86 test_sync_internals_ui_.reset(); 86 test_sync_internals_ui_.reset();
87 87
88 RenderViewHostTestHarness::TearDown(); 88 ChromeRenderViewHostTestHarness::TearDown();
89 } 89 }
90 90
91 StrictMock<browser_sync::MockJsController> mock_js_controller_; 91 StrictMock<browser_sync::MockJsController> mock_js_controller_;
92 scoped_ptr<TestSyncInternalsUI> test_sync_internals_ui_; 92 scoped_ptr<TestSyncInternalsUI> test_sync_internals_ui_;
93 }; 93 };
94 94
95 TEST_F(SyncInternalsUITestWithService, HandleJsEvent) { 95 TEST_F(SyncInternalsUITestWithService, HandleJsEvent) {
96 EXPECT_CALL(*test_sync_internals_ui_, 96 EXPECT_CALL(*test_sync_internals_ui_,
97 ExecuteJavascript( 97 ExecuteJavascript(
98 ASCIIToUTF16("chrome.sync.testMessage.fire({});"))); 98 ASCIIToUTF16("chrome.sync.testMessage.fire({});")));
(...skipping 18 matching lines...) Expand all
117 ListValue args; 117 ListValue args;
118 args.Append(Value::CreateIntegerValue(10)); 118 args.Append(Value::CreateIntegerValue(10));
119 119
120 EXPECT_CALL(mock_js_controller_, 120 EXPECT_CALL(mock_js_controller_,
121 ProcessJsMessage(name, HasArgsAsList(args), _)); 121 ProcessJsMessage(name, HasArgsAsList(args), _));
122 122
123 test_sync_internals_ui_->OnWebUISend(GURL(), name, args); 123 test_sync_internals_ui_->OnWebUISend(GURL(), name, args);
124 } 124 }
125 125
126 // Tests with NULL ProfileSyncService. 126 // Tests with NULL ProfileSyncService.
127 class SyncInternalsUITestWithoutService : public RenderViewHostTestHarness { 127 class SyncInternalsUITestWithoutService
128 : public ChromeRenderViewHostTestHarness {
128 protected: 129 protected:
129 SyncInternalsUITestWithoutService() {} 130 SyncInternalsUITestWithoutService() {}
130 131
131 virtual ~SyncInternalsUITestWithoutService() {} 132 virtual ~SyncInternalsUITestWithoutService() {}
132 133
133 virtual void SetUp() { 134 virtual void SetUp() {
134 NiceMock<ProfileMock>* profile_mock = new NiceMock<ProfileMock>(); 135 NiceMock<ProfileMock>* profile_mock = new NiceMock<ProfileMock>();
135 EXPECT_CALL(*profile_mock, GetProfileSyncService()) 136 EXPECT_CALL(*profile_mock, GetProfileSyncService())
136 .WillOnce(Return(static_cast<ProfileSyncService*>(NULL))); 137 .WillOnce(Return(static_cast<ProfileSyncService*>(NULL)));
137 profile_.reset(profile_mock); 138 browser_context_.reset(profile_mock);
138 139
139 RenderViewHostTestHarness::SetUp(); 140 ChromeRenderViewHostTestHarness::SetUp();
140 141
141 { 142 {
142 // Needed by |test_sync_internals_ui_|'s constructor. The 143 // Needed by |test_sync_internals_ui_|'s constructor. The
143 // message loop is provided by RenderViewHostTestHarness. 144 // message loop is provided by ChromeRenderViewHostTestHarness.
144 BrowserThread ui_thread_(BrowserThread::UI, 145 BrowserThread ui_thread_(BrowserThread::UI,
145 MessageLoopForUI::current()); 146 MessageLoopForUI::current());
146 // |test_sync_internals_ui_|'s constructor triggers all the 147 // |test_sync_internals_ui_|'s constructor triggers all the
147 // expectations above. 148 // expectations above.
148 test_sync_internals_ui_.reset(new TestSyncInternalsUI(contents())); 149 test_sync_internals_ui_.reset(new TestSyncInternalsUI(contents()));
149 } 150 }
150 151
151 Mock::VerifyAndClearExpectations(profile_mock); 152 Mock::VerifyAndClearExpectations(profile_mock);
152 } 153 }
153 154
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 const char kAboutInfoCall[] = 191 const char kAboutInfoCall[] =
191 "chrome.sync.getAboutInfo.handleReply({\"summary\":\"SYNC DISABLED\"});"; 192 "chrome.sync.getAboutInfo.handleReply({\"summary\":\"SYNC DISABLED\"});";
192 EXPECT_CALL(*test_sync_internals_ui_, 193 EXPECT_CALL(*test_sync_internals_ui_,
193 ExecuteJavascript(ASCIIToUTF16(kAboutInfoCall))); 194 ExecuteJavascript(ASCIIToUTF16(kAboutInfoCall)));
194 195
195 ListValue args; 196 ListValue args;
196 test_sync_internals_ui_->OnWebUISend(GURL(), "getAboutInfo", args); 197 test_sync_internals_ui_->OnWebUISend(GURL(), "getAboutInfo", args);
197 } 198 }
198 199
199 } // namespace 200 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/ui/toolbar/back_forward_menu_model_unittest.cc ('k') | chrome/browser/ui/webui/web_ui_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698