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 "base/message_loop.h" | 5 #include "base/message_loop.h" |
6 #include "base/string16.h" | 6 #include "base/string16.h" |
7 #include "chrome/browser/printing/print_job.h" | 7 #include "chrome/browser/printing/print_job.h" |
8 #include "chrome/browser/printing/print_job_worker.h" | 8 #include "chrome/browser/printing/print_job_worker.h" |
9 #include "chrome/common/chrome_notification_types.h" | 9 #include "chrome/common/chrome_notification_types.h" |
10 #include "content/public/browser/notification_registrar.h" | 10 #include "content/public/browser/notification_registrar.h" |
(...skipping 28 matching lines...) Expand all Loading... |
39 virtual printing::PrintJobWorker* DetachWorker( | 39 virtual printing::PrintJobWorker* DetachWorker( |
40 printing::PrintJobWorkerOwner* new_owner) OVERRIDE { | 40 printing::PrintJobWorkerOwner* new_owner) OVERRIDE { |
41 // We're screwing up here since we're calling worker from the main thread. | 41 // We're screwing up here since we're calling worker from the main thread. |
42 // That's fine for testing. It is actually simulating PrinterQuery behavior. | 42 // That's fine for testing. It is actually simulating PrinterQuery behavior. |
43 TestPrintJobWorker* worker(new TestPrintJobWorker(new_owner)); | 43 TestPrintJobWorker* worker(new TestPrintJobWorker(new_owner)); |
44 EXPECT_TRUE(worker->Start()); | 44 EXPECT_TRUE(worker->Start()); |
45 worker->printing_context()->UseDefaultSettings(); | 45 worker->printing_context()->UseDefaultSettings(); |
46 settings_ = worker->printing_context()->settings(); | 46 settings_ = worker->printing_context()->settings(); |
47 return worker; | 47 return worker; |
48 } | 48 } |
49 virtual MessageLoop* message_loop() OVERRIDE { | 49 virtual base::MessageLoop* message_loop() OVERRIDE { |
50 EXPECT_FALSE(true); | 50 EXPECT_FALSE(true); |
51 return NULL; | 51 return NULL; |
52 } | 52 } |
53 virtual const printing::PrintSettings& settings() const OVERRIDE { | 53 virtual const printing::PrintSettings& settings() const OVERRIDE { |
54 return settings_; | 54 return settings_; |
55 } | 55 } |
56 virtual int cookie() const OVERRIDE { | 56 virtual int cookie() const OVERRIDE { |
57 return 42; | 57 return 42; |
58 } | 58 } |
59 | 59 |
(...skipping 26 matching lines...) Expand all Loading... |
86 | 86 |
87 } // namespace | 87 } // namespace |
88 | 88 |
89 typedef testing::Test PrintJobTest; | 89 typedef testing::Test PrintJobTest; |
90 | 90 |
91 TEST_F(PrintJobTest, SimplePrint) { | 91 TEST_F(PrintJobTest, SimplePrint) { |
92 // Test the multi-threaded nature of PrintJob to make sure we can use it with | 92 // Test the multi-threaded nature of PrintJob to make sure we can use it with |
93 // known lifetime. | 93 // known lifetime. |
94 | 94 |
95 // This message loop is actually never run. | 95 // This message loop is actually never run. |
96 MessageLoop current; | 96 base::MessageLoop current; |
97 | 97 |
98 content::NotificationRegistrar registrar_; | 98 content::NotificationRegistrar registrar_; |
99 TestPrintNotifObserv observ; | 99 TestPrintNotifObserv observ; |
100 registrar_.Add(&observ, content::NOTIFICATION_ALL, | 100 registrar_.Add(&observ, content::NOTIFICATION_ALL, |
101 content::NotificationService::AllSources()); | 101 content::NotificationService::AllSources()); |
102 volatile bool check = false; | 102 volatile bool check = false; |
103 scoped_refptr<printing::PrintJob> job(new TestPrintJob(&check)); | 103 scoped_refptr<printing::PrintJob> job(new TestPrintJob(&check)); |
104 EXPECT_EQ(MessageLoop::current(), job->message_loop()); | 104 EXPECT_EQ(base::MessageLoop::current(), job->message_loop()); |
105 scoped_refptr<TestOwner> owner(new TestOwner); | 105 scoped_refptr<TestOwner> owner(new TestOwner); |
106 TestSource source; | 106 TestSource source; |
107 job->Initialize(owner, &source, 1); | 107 job->Initialize(owner, &source, 1); |
108 job->Stop(); | 108 job->Stop(); |
109 EXPECT_FALSE(job->is_stopped()); | 109 EXPECT_FALSE(job->is_stopped()); |
110 EXPECT_TRUE(job->is_stopping()); | 110 EXPECT_TRUE(job->is_stopping()); |
111 while (!job->is_stopped()) | 111 while (!job->is_stopped()) |
112 { | 112 { |
113 current.RunUntilIdle(); | 113 current.RunUntilIdle(); |
114 } | 114 } |
115 EXPECT_TRUE(job->is_stopped()); | 115 EXPECT_TRUE(job->is_stopped()); |
116 EXPECT_FALSE(job->is_stopping()); | 116 EXPECT_FALSE(job->is_stopping()); |
117 job = NULL; | 117 job = NULL; |
118 EXPECT_TRUE(check); | 118 EXPECT_TRUE(check); |
119 } | 119 } |
120 | 120 |
121 TEST_F(PrintJobTest, SimplePrintLateInit) { | 121 TEST_F(PrintJobTest, SimplePrintLateInit) { |
122 volatile bool check = false; | 122 volatile bool check = false; |
123 MessageLoop current; | 123 base::MessageLoop current; |
124 scoped_refptr<printing::PrintJob> job(new TestPrintJob(&check)); | 124 scoped_refptr<printing::PrintJob> job(new TestPrintJob(&check)); |
125 job = NULL; | 125 job = NULL; |
126 EXPECT_TRUE(check); | 126 EXPECT_TRUE(check); |
127 /* TODO(maruel): Test these. | 127 /* TODO(maruel): Test these. |
128 job->Initialize() | 128 job->Initialize() |
129 job->Observe(); | 129 job->Observe(); |
130 job->GetSettingsDone(); | 130 job->GetSettingsDone(); |
131 job->DetachWorker(); | 131 job->DetachWorker(); |
132 job->message_loop(); | 132 job->message_loop(); |
133 job->settings(); | 133 job->settings(); |
134 job->cookie(); | 134 job->cookie(); |
135 job->GetSettings(printing::DEFAULTS, printing::ASK_USER, NULL); | 135 job->GetSettings(printing::DEFAULTS, printing::ASK_USER, NULL); |
136 job->StartPrinting(); | 136 job->StartPrinting(); |
137 job->Stop(); | 137 job->Stop(); |
138 job->Cancel(); | 138 job->Cancel(); |
139 job->RequestMissingPages(); | 139 job->RequestMissingPages(); |
140 job->FlushJob(timeout); | 140 job->FlushJob(timeout); |
141 job->DisconnectSource(); | 141 job->DisconnectSource(); |
142 job->is_job_pending(); | 142 job->is_job_pending(); |
143 job->document(); | 143 job->document(); |
144 // Private | 144 // Private |
145 job->UpdatePrintedDocument(NULL); | 145 job->UpdatePrintedDocument(NULL); |
146 scoped_refptr<printing::JobEventDetails> event_details; | 146 scoped_refptr<printing::JobEventDetails> event_details; |
147 job->OnNotifyPrintJobEvent(event_details); | 147 job->OnNotifyPrintJobEvent(event_details); |
148 job->OnDocumentDone(); | 148 job->OnDocumentDone(); |
149 job->ControlledWorkerShutdown(); | 149 job->ControlledWorkerShutdown(); |
150 */ | 150 */ |
151 } | 151 } |
OLD | NEW |