diff options
author | scottbyer@chromium.org <scottbyer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-11 21:11:22 +0000 |
---|---|---|
committer | scottbyer@chromium.org <scottbyer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-11 21:11:22 +0000 |
commit | 3acba10eb98cd7c4e877f78537353d866b59e62f (patch) | |
tree | 9e0980c8aa0e88f6fb30c08366b99b62eabee4a9 /chrome/browser/printing | |
parent | 7074e6880ba3af4dcf35ec191704fe4342fc6d27 (diff) | |
download | chromium_src-3acba10eb98cd7c4e877f78537353d866b59e62f.zip chromium_src-3acba10eb98cd7c4e877f78537353d866b59e62f.tar.gz chromium_src-3acba10eb98cd7c4e877f78537353d866b59e62f.tar.bz2 |
Tweaks to the test.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49593 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/printing')
-rw-r--r-- | chrome/browser/printing/print_dialog_cloud.h | 2 | ||||
-rw-r--r-- | chrome/browser/printing/print_dialog_cloud_uitest.cc | 62 |
2 files changed, 42 insertions, 22 deletions
diff --git a/chrome/browser/printing/print_dialog_cloud.h b/chrome/browser/printing/print_dialog_cloud.h index a9736bd..6dacc66 100644 --- a/chrome/browser/printing/print_dialog_cloud.h +++ b/chrome/browser/printing/print_dialog_cloud.h @@ -20,7 +20,7 @@ class PrintDialogCloud { static void CreatePrintDialogForPdf(const FilePath& path_to_pdf); private: - FRIEND_TEST(PrintDialogCloudTest, HandlersRegistered); + friend class PrintDialogCloudTest; explicit PrintDialogCloud(const FilePath& path_to_pdf); ~PrintDialogCloud(); diff --git a/chrome/browser/printing/print_dialog_cloud_uitest.cc b/chrome/browser/printing/print_dialog_cloud_uitest.cc index ec8da96..6b6f3eb 100644 --- a/chrome/browser/printing/print_dialog_cloud_uitest.cc +++ b/chrome/browser/printing/print_dialog_cloud_uitest.cc @@ -25,6 +25,9 @@ namespace { +// Default delay for the time-out at which we stop message loop. +const int kTimeoutInMS = 200000; + class TestData { public: TestData() {} @@ -74,19 +77,19 @@ class SimpleTestJob : public URLRequestTestJob { ~SimpleTestJob() {} }; -class TestResult { +class TestController { public: - TestResult() : result_(false) {} - void SetResult(bool value) { + TestController() : result_(false), use_autoquit_delegate_(false) {} + void set_result(bool value) { result_ = value; } - bool GetResult() { + bool result() { return result_; } - void SetExpectedUrl(const GURL& url) { + void set_expected_url(const GURL& url) { expected_url_ = url; } - const GURL GetExpectedUrl() { + const GURL expected_url() { return expected_url_; } void set_delegate(TestDelegate* delegate) { @@ -95,8 +98,15 @@ class TestResult { TestDelegate* delegate() { return delegate_; } + void set_use_autoquit_delegate(bool value) { + use_autoquit_delegate_ = value; + } + bool use_autoquit_delegate() { + return use_autoquit_delegate_; + } private: bool result_; + bool use_autoquit_delegate_; GURL expected_url_; TestDelegate* delegate_; }; @@ -123,7 +133,7 @@ class PrintDialogCloudTest : public InProcessBrowserTest { }; virtual void SetUp() { - Singleton<TestResult>()->SetResult(false); + Singleton<TestController>()->set_result(false); InProcessBrowserTest::SetUp(); } @@ -132,7 +142,7 @@ class PrintDialogCloudTest : public InProcessBrowserTest { URLRequestFilter* filter = URLRequestFilter::GetInstance(); filter->RemoveHostnameHandler(scheme_, host_name_); handler_added_ = false; - Singleton<TestResult>()->set_delegate(NULL); + Singleton<TestController>()->set_delegate(NULL); } InProcessBrowserTest::TearDown(); } @@ -156,9 +166,19 @@ class PrintDialogCloudTest : public InProcessBrowserTest { GURL cloud_print_dialog_url = internal_cloud_print_helpers::CloudPrintService(browser()->profile()). GetCloudPrintServiceDialogURL(); - Singleton<TestResult>()->SetExpectedUrl(cloud_print_dialog_url); - Singleton<TestResult>()->set_delegate(&delegate_); + Singleton<TestController>()->set_expected_url(cloud_print_dialog_url); + Singleton<TestController>()->set_delegate(&delegate_); } + + CreateDialogForTest(); + } + + void CreateDialogForTest() { + FilePath path_to_pdf = + test_data_directory_.AppendASCII("printing/cloud_print_uitest.pdf"); + ChromeThread::PostTask( + ChromeThread::UI, FROM_HERE, + NewRunnableFunction(&PrintDialogCloud::CreateDialogImpl, path_to_pdf)); } bool handler_added_; @@ -170,9 +190,12 @@ class PrintDialogCloudTest : public InProcessBrowserTest { URLRequestJob* PrintDialogCloudTest::Factory(URLRequest* request, const std::string& scheme) { - request->set_delegate(Singleton<TestResult>()->delegate()); - if (request && (request->url() == Singleton<TestResult>()->GetExpectedUrl())) - Singleton<TestResult>()->SetResult(true); + if (Singleton<TestController>()->use_autoquit_delegate()) + request->set_delegate(Singleton<TestController>()->delegate()); + if (request && + (request->url() == Singleton<TestController>()->expected_url())) { + Singleton<TestController>()->set_result(true); + } return new SimpleTestJob(request); } @@ -182,15 +205,12 @@ IN_PROC_BROWSER_TEST_F(PrintDialogCloudTest, HandlersRegistered) { AddTestHandlers(); - FilePath pdf_file = - test_data_directory_.AppendASCII("printing/cloud_print_uitest.pdf"); + Singleton<TestController>()->set_use_autoquit_delegate(true); - { - PrintDialogCloud dialog (pdf_file); - ui_test_utils::RunMessageLoop(); - } + ui_test_utils::TimedMessageLoopRunner timed_loop(MessageLoop::current()); + timed_loop.RunFor(kTimeoutInMS); - ASSERT_TRUE(Singleton<TestResult>()->GetResult()); + ASSERT_TRUE(Singleton<TestController>()->result()); } #if defined(OS_CHROMEOS) @@ -213,6 +233,6 @@ IN_PROC_BROWSER_TEST_F(PrintDialogCloudTest, DISABLED_DialogGrabbed) { ui_test_utils::RunMessageLoop(); - ASSERT_TRUE(Singleton<TestResult>()->GetResult()); + ASSERT_TRUE(Singleton<TestController>()->result()); } #endif |