summaryrefslogtreecommitdiffstats
path: root/chrome/browser/printing
diff options
context:
space:
mode:
authorscottbyer@chromium.org <scottbyer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-11 21:11:22 +0000
committerscottbyer@chromium.org <scottbyer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-11 21:11:22 +0000
commit3acba10eb98cd7c4e877f78537353d866b59e62f (patch)
tree9e0980c8aa0e88f6fb30c08366b99b62eabee4a9 /chrome/browser/printing
parent7074e6880ba3af4dcf35ec191704fe4342fc6d27 (diff)
downloadchromium_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.h2
-rw-r--r--chrome/browser/printing/print_dialog_cloud_uitest.cc62
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