OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/printing/print_dialog_cloud.h" | 5 #include "chrome/browser/printing/print_dialog_cloud.h" |
6 #include "chrome/browser/printing/print_dialog_cloud_internal.h" | 6 #include "chrome/browser/printing/print_dialog_cloud_internal.h" |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 ) | 98 ) |
99 : CloudPrintFlowHandler(path, title, print_ticket, file_type, | 99 : CloudPrintFlowHandler(path, title, print_ticket, file_type, |
100 close_after_signin, callback) {} | 100 close_after_signin, callback) {} |
101 MOCK_METHOD0(DestructorCalled, void()); | 101 MOCK_METHOD0(DestructorCalled, void()); |
102 MOCK_METHOD0(RegisterMessages, void()); | 102 MOCK_METHOD0(RegisterMessages, void()); |
103 MOCK_METHOD3(Observe, | 103 MOCK_METHOD3(Observe, |
104 void(int type, | 104 void(int type, |
105 const content::NotificationSource& source, | 105 const content::NotificationSource& source, |
106 const content::NotificationDetails& details)); | 106 const content::NotificationDetails& details)); |
107 MOCK_METHOD1(SetDialogDelegate, | 107 MOCK_METHOD1(SetDialogDelegate, |
108 void(CloudPrintHtmlDialogDelegate* delegate)); | 108 void(CloudPrintWebDialogDelegate* delegate)); |
109 MOCK_METHOD0(CreateCloudPrintDataSender, | 109 MOCK_METHOD0(CreateCloudPrintDataSender, |
110 scoped_refptr<CloudPrintDataSender>()); | 110 scoped_refptr<CloudPrintDataSender>()); |
111 }; | 111 }; |
112 | 112 |
113 class MockCloudPrintHtmlDialogDelegate : public CloudPrintHtmlDialogDelegate { | 113 class MockCloudPrintWebDialogDelegate : public CloudPrintWebDialogDelegate { |
114 public: | 114 public: |
115 MOCK_CONST_METHOD0(GetDialogModalType, | 115 MOCK_CONST_METHOD0(GetDialogModalType, |
116 ui::ModalType()); | 116 ui::ModalType()); |
117 MOCK_CONST_METHOD0(GetDialogTitle, | 117 MOCK_CONST_METHOD0(GetDialogTitle, |
118 string16()); | 118 string16()); |
119 MOCK_CONST_METHOD0(GetDialogContentURL, | 119 MOCK_CONST_METHOD0(GetDialogContentURL, |
120 GURL()); | 120 GURL()); |
121 MOCK_CONST_METHOD1(GetWebUIMessageHandlers, | 121 MOCK_CONST_METHOD1(GetWebUIMessageHandlers, |
122 void(std::vector<WebUIMessageHandler*>* handlers)); | 122 void(std::vector<WebUIMessageHandler*>* handlers)); |
123 MOCK_CONST_METHOD1(GetDialogSize, | 123 MOCK_CONST_METHOD1(GetDialogSize, |
124 void(gfx::Size* size)); | 124 void(gfx::Size* size)); |
125 MOCK_CONST_METHOD0(GetDialogArgs, | 125 MOCK_CONST_METHOD0(GetDialogArgs, |
126 std::string()); | 126 std::string()); |
127 MOCK_METHOD1(OnDialogClosed, | 127 MOCK_METHOD1(OnDialogClosed, |
128 void(const std::string& json_retval)); | 128 void(const std::string& json_retval)); |
129 MOCK_METHOD2(OnCloseContents, | 129 MOCK_METHOD2(OnCloseContents, |
130 void(WebContents* source, bool *out_close_dialog)); | 130 void(WebContents* source, bool *out_close_dialog)); |
131 }; | 131 }; |
132 | 132 |
133 } // namespace internal_cloud_print_helpers | 133 } // namespace internal_cloud_print_helpers |
134 | 134 |
135 using internal_cloud_print_helpers::CloudPrintDataSenderHelper; | 135 using internal_cloud_print_helpers::CloudPrintDataSenderHelper; |
136 using internal_cloud_print_helpers::CloudPrintDataSender; | 136 using internal_cloud_print_helpers::CloudPrintDataSender; |
137 | 137 |
138 class MockExternalHtmlDialogUI : public ExternalHtmlDialogUI { | 138 class MockExternalWebDialogUI : public ExternalWebDialogUI { |
139 public: | 139 public: |
140 MOCK_METHOD1(RenderViewCreated, | 140 MOCK_METHOD1(RenderViewCreated, |
141 void(content::RenderViewHost* render_view_host)); | 141 void(content::RenderViewHost* render_view_host)); |
142 }; | 142 }; |
143 | 143 |
144 class MockCloudPrintDataSenderHelper : public CloudPrintDataSenderHelper { | 144 class MockCloudPrintDataSenderHelper : public CloudPrintDataSenderHelper { |
145 public: | 145 public: |
146 // TODO(scottbyer): At some point this probably wants to use a | 146 // TODO(scottbyer): At some point this probably wants to use a |
147 // MockTabContents instead of NULL, and to pre-load it with a bunch | 147 // MockTabContents instead of NULL, and to pre-load it with a bunch |
148 // of expects/results. | 148 // of expects/results. |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
282 | 282 |
283 FilePath empty_data_file_name = GetEmptyDataFileName(); | 283 FilePath empty_data_file_name = GetEmptyDataFileName(); |
284 BrowserThread::PostTask( | 284 BrowserThread::PostTask( |
285 BrowserThread::FILE, FROM_HERE, | 285 BrowserThread::FILE, FROM_HERE, |
286 base::Bind(&CloudPrintDataSender::ReadPrintDataFile, | 286 base::Bind(&CloudPrintDataSender::ReadPrintDataFile, |
287 print_data_sender_.get(), empty_data_file_name)); | 287 print_data_sender_.get(), empty_data_file_name)); |
288 MessageLoop::current()->RunAllPending(); | 288 MessageLoop::current()->RunAllPending(); |
289 } | 289 } |
290 | 290 |
291 // Testing for CloudPrintFlowHandler needs a mock | 291 // Testing for CloudPrintFlowHandler needs a mock |
292 // CloudPrintHtmlDialogDelegate, mock CloudPrintDataSender, and a mock | 292 // CloudPrintWebDialogDelegate, mock CloudPrintDataSender, and a mock |
293 // WebUI. | 293 // WebUI. |
294 | 294 |
295 // Testing for CloudPrintHtmlDialogDelegate needs a mock | 295 // Testing for CloudPrintWebDialogDelegate needs a mock |
296 // CloudPrintFlowHandler. | 296 // CloudPrintFlowHandler. |
297 | 297 |
298 using internal_cloud_print_helpers::MockCloudPrintFlowHandler; | 298 using internal_cloud_print_helpers::MockCloudPrintFlowHandler; |
299 using internal_cloud_print_helpers::CloudPrintHtmlDialogDelegate; | 299 using internal_cloud_print_helpers::CloudPrintWebDialogDelegate; |
300 | 300 |
301 class CloudPrintHtmlDialogDelegateTest : public testing::Test { | 301 class CloudPrintWebDialogDelegateTest : public testing::Test { |
302 public: | 302 public: |
303 CloudPrintHtmlDialogDelegateTest() | 303 CloudPrintWebDialogDelegateTest() |
304 : ui_thread_(BrowserThread::UI, &message_loop_) {} | 304 : ui_thread_(BrowserThread::UI, &message_loop_) {} |
305 | 305 |
306 protected: | 306 protected: |
307 virtual void SetUp() { | 307 virtual void SetUp() { |
308 FilePath mock_path; | 308 FilePath mock_path; |
309 string16 mock_title; | 309 string16 mock_title; |
310 string16 mock_print_ticket; | 310 string16 mock_print_ticket; |
311 std::string mock_file_type; | 311 std::string mock_file_type; |
312 MockCloudPrintFlowHandler* handler = | 312 MockCloudPrintFlowHandler* handler = |
313 new MockCloudPrintFlowHandler(mock_path, mock_print_ticket, | 313 new MockCloudPrintFlowHandler(mock_path, mock_print_ticket, |
314 mock_title, mock_file_type, | 314 mock_title, mock_file_type, |
315 false, base::Closure()); | 315 false, base::Closure()); |
316 mock_flow_handler_ = handler->AsWeakPtr(); | 316 mock_flow_handler_ = handler->AsWeakPtr(); |
317 EXPECT_CALL(*mock_flow_handler_.get(), SetDialogDelegate(_)); | 317 EXPECT_CALL(*mock_flow_handler_.get(), SetDialogDelegate(_)); |
318 EXPECT_CALL(*mock_flow_handler_.get(), SetDialogDelegate(NULL)); | 318 EXPECT_CALL(*mock_flow_handler_.get(), SetDialogDelegate(NULL)); |
319 delegate_.reset(new CloudPrintHtmlDialogDelegate( | 319 delegate_.reset(new CloudPrintWebDialogDelegate( |
320 mock_flow_handler_.get(), 100, 100, std::string(), true, false)); | 320 mock_flow_handler_.get(), 100, 100, std::string(), true, false)); |
321 } | 321 } |
322 | 322 |
323 virtual void TearDown() { | 323 virtual void TearDown() { |
324 delegate_.reset(); | 324 delegate_.reset(); |
325 if (mock_flow_handler_) | 325 if (mock_flow_handler_) |
326 delete mock_flow_handler_.get(); | 326 delete mock_flow_handler_.get(); |
327 } | 327 } |
328 | 328 |
329 MessageLoopForUI message_loop_; | 329 MessageLoopForUI message_loop_; |
330 content::TestBrowserThread ui_thread_; | 330 content::TestBrowserThread ui_thread_; |
331 base::WeakPtr<MockCloudPrintFlowHandler> mock_flow_handler_; | 331 base::WeakPtr<MockCloudPrintFlowHandler> mock_flow_handler_; |
332 scoped_ptr<CloudPrintHtmlDialogDelegate> delegate_; | 332 scoped_ptr<CloudPrintWebDialogDelegate> delegate_; |
333 }; | 333 }; |
334 | 334 |
335 TEST_F(CloudPrintHtmlDialogDelegateTest, BasicChecks) { | 335 TEST_F(CloudPrintWebDialogDelegateTest, BasicChecks) { |
336 EXPECT_EQ(ui::MODAL_TYPE_WINDOW, delegate_->GetDialogModalType()); | 336 EXPECT_EQ(ui::MODAL_TYPE_WINDOW, delegate_->GetDialogModalType()); |
337 EXPECT_THAT(delegate_->GetDialogContentURL().spec(), | 337 EXPECT_THAT(delegate_->GetDialogContentURL().spec(), |
338 StrEq(chrome::kChromeUICloudPrintResourcesURL)); | 338 StrEq(chrome::kChromeUICloudPrintResourcesURL)); |
339 EXPECT_TRUE(delegate_->GetDialogTitle().empty()); | 339 EXPECT_TRUE(delegate_->GetDialogTitle().empty()); |
340 | 340 |
341 bool close_dialog = false; | 341 bool close_dialog = false; |
342 delegate_->OnCloseContents(NULL, &close_dialog); | 342 delegate_->OnCloseContents(NULL, &close_dialog); |
343 EXPECT_TRUE(close_dialog); | 343 EXPECT_TRUE(close_dialog); |
344 } | 344 } |
345 | 345 |
346 TEST_F(CloudPrintHtmlDialogDelegateTest, OwnedFlowDestroyed) { | 346 TEST_F(CloudPrintWebDialogDelegateTest, OwnedFlowDestroyed) { |
347 delegate_.reset(); | 347 delegate_.reset(); |
348 EXPECT_THAT(mock_flow_handler_.get(), IsNull()); | 348 EXPECT_THAT(mock_flow_handler_.get(), IsNull()); |
349 } | 349 } |
350 | 350 |
351 TEST_F(CloudPrintHtmlDialogDelegateTest, UnownedFlowLetGo) { | 351 TEST_F(CloudPrintWebDialogDelegateTest, UnownedFlowLetGo) { |
352 std::vector<WebUIMessageHandler*> handlers; | 352 std::vector<WebUIMessageHandler*> handlers; |
353 delegate_->GetWebUIMessageHandlers(&handlers); | 353 delegate_->GetWebUIMessageHandlers(&handlers); |
354 delegate_.reset(); | 354 delegate_.reset(); |
355 EXPECT_THAT(mock_flow_handler_.get(), NotNull()); | 355 EXPECT_THAT(mock_flow_handler_.get(), NotNull()); |
356 } | 356 } |
357 | 357 |
358 // Testing for ExternalHtmlDialogUI needs a mock WebContents, mock | 358 // Testing for ExternalWebDialogUI needs a mock WebContents, mock |
359 // CloudPrintHtmlDialogDelegate (provided through the mock | 359 // CloudPrintWebDialogDelegate (provided through the mock |
360 // tab_contents) | 360 // tab_contents) |
361 | 361 |
362 // Testing for PrintDialogCloud needs a mock Browser. | 362 // Testing for PrintDialogCloud needs a mock Browser. |
OLD | NEW |