| 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 |