OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/command_line.h" | 5 #include "base/command_line.h" |
6 #include "base/json/json_writer.h" | 6 #include "base/json/json_writer.h" |
7 #include "base/values.h" | 7 #include "base/values.h" |
8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
9 #include "chrome/browser/printing/background_printing_manager.h" | 9 #include "chrome/browser/printing/background_printing_manager.h" |
10 #include "chrome/browser/printing/print_preview_tab_controller.h" | 10 #include "chrome/browser/printing/print_preview_tab_controller.h" |
11 #include "chrome/browser/printing/print_view_manager.h" | 11 #include "chrome/browser/printing/print_view_manager.h" |
12 #include "chrome/browser/ui/browser_list.h" | 12 #include "chrome/browser/ui/browser_list.h" |
13 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 13 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
14 #include "chrome/browser/ui/webui/print_preview_handler.h" | 14 #include "chrome/browser/ui/webui/print_preview_handler.h" |
15 #include "chrome/browser/ui/webui/print_preview_ui.h" | 15 #include "chrome/browser/ui/webui/print_preview_ui.h" |
16 #include "chrome/common/chrome_switches.h" | 16 #include "chrome/common/chrome_switches.h" |
17 #include "chrome/test/base/browser_with_test_window_test.h" | 17 #include "chrome/test/base/browser_with_test_window_test.h" |
18 #include "printing/page_size_margins.h" | 18 #include "printing/page_size_margins.h" |
19 #include "printing/print_job_constants.h" | 19 #include "printing/print_job_constants.h" |
20 | 20 |
21 // Test crashes on Aura due to initiator tab's native view having no parent. | |
22 // http://crbug.com/104284 | |
23 #if defined(USE_AURA) | |
24 #define MAYBE_StickyMarginsCustom DISABLED_StickyMarginsCustom | |
25 #define MAYBE_StickyMarginsDefault DISABLED_StickyMarginsDefault | |
26 #define MAYBE_StickyMarginsCustomThenDefault \ | |
27 DISABLED_StickyMarginsCustomThenDefault | |
28 #define MAYBE_GetLastUsedMarginSettingsCustom \ | |
29 DISABLED_GetLastUsedMarginSettingsCustom | |
30 #define MAYBE_GetLastUsedMarginSettingsDefault \ | |
31 DISABLED_GetLastUsedMarginSettingsDefault | |
32 #else | |
33 #define MAYBE_StickyMarginsCustom StickyMarginsCustom | |
34 #define MAYBE_StickyMarginsDefault StickyMarginsDefault | |
35 #define MAYBE_StickyMarginsCustomThenDefault StickyMarginsCustomThenDefault | |
36 #define MAYBE_GetLastUsedMarginSettingsCustom GetLastUsedMarginSettingsCustom | |
37 #define MAYBE_GetLastUsedMarginSettingsDefault GetLastUsedMarginSettingsDefault | |
38 #endif | |
39 | |
40 namespace { | 21 namespace { |
41 | 22 |
42 DictionaryValue* GetCustomMarginsDictionary( | 23 DictionaryValue* GetCustomMarginsDictionary( |
43 const double margin_top, const double margin_right, | 24 const double margin_top, const double margin_right, |
44 const double margin_bottom, const double margin_left) { | 25 const double margin_bottom, const double margin_left) { |
45 base::DictionaryValue* custom_settings = new base::DictionaryValue(); | 26 base::DictionaryValue* custom_settings = new base::DictionaryValue(); |
46 custom_settings->SetDouble(printing::kSettingMarginTop, margin_top); | 27 custom_settings->SetDouble(printing::kSettingMarginTop, margin_top); |
47 custom_settings->SetDouble(printing::kSettingMarginRight, margin_right); | 28 custom_settings->SetDouble(printing::kSettingMarginRight, margin_right); |
48 custom_settings->SetDouble(printing::kSettingMarginBottom, margin_bottom); | 29 custom_settings->SetDouble(printing::kSettingMarginBottom, margin_bottom); |
49 custom_settings->SetDouble(printing::kSettingMarginLeft, margin_left); | 30 custom_settings->SetDouble(printing::kSettingMarginLeft, margin_left); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 private: | 144 private: |
164 void ClearStickySettings() { | 145 void ClearStickySettings() { |
165 PrintPreviewHandler::last_used_margins_type_ = printing::DEFAULT_MARGINS; | 146 PrintPreviewHandler::last_used_margins_type_ = printing::DEFAULT_MARGINS; |
166 delete PrintPreviewHandler::last_used_page_size_margins_; | 147 delete PrintPreviewHandler::last_used_page_size_margins_; |
167 PrintPreviewHandler::last_used_page_size_margins_ = NULL; | 148 PrintPreviewHandler::last_used_page_size_margins_ = NULL; |
168 } | 149 } |
169 }; | 150 }; |
170 | 151 |
171 // Tests that margin settings are saved correctly when printing with custom | 152 // Tests that margin settings are saved correctly when printing with custom |
172 // margins selected. | 153 // margins selected. |
173 TEST_F(PrintPreviewHandlerTest, MAYBE_StickyMarginsCustom) { | 154 TEST_F(PrintPreviewHandlerTest, StickyMarginsCustom) { |
174 const double kMarginTop = 25.5; | 155 const double kMarginTop = 25.5; |
175 const double kMarginRight = 26.5; | 156 const double kMarginRight = 26.5; |
176 const double kMarginBottom = 27.5; | 157 const double kMarginBottom = 27.5; |
177 const double kMarginLeft = 28.5; | 158 const double kMarginLeft = 28.5; |
178 RequestPrintWithCustomMargins( | 159 RequestPrintWithCustomMargins( |
179 kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); | 160 kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); |
180 EXPECT_EQ(1, browser()->tab_count()); | 161 EXPECT_EQ(1, browser()->tab_count()); |
181 | 162 |
182 // Checking that sticky settings were saved correctly. | 163 // Checking that sticky settings were saved correctly. |
183 EXPECT_EQ(PrintPreviewHandler::last_used_color_model_, printing::COLOR); | 164 EXPECT_EQ(PrintPreviewHandler::last_used_color_model_, printing::COLOR); |
184 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_, | 165 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_, |
185 printing::CUSTOM_MARGINS); | 166 printing::CUSTOM_MARGINS); |
186 ASSERT_TRUE(PrintPreviewHandler::last_used_page_size_margins_); | 167 ASSERT_TRUE(PrintPreviewHandler::last_used_page_size_margins_); |
187 CheckCustomMargins(kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); | 168 CheckCustomMargins(kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); |
188 } | 169 } |
189 | 170 |
190 // Tests that margin settings are saved correctly when printing with default | 171 // Tests that margin settings are saved correctly when printing with default |
191 // margins selected. | 172 // margins selected. |
192 TEST_F(PrintPreviewHandlerTest, MAYBE_StickyMarginsDefault) { | 173 TEST_F(PrintPreviewHandlerTest, StickyMarginsDefault) { |
193 RequestPrintWithDefaultMargins(); | 174 RequestPrintWithDefaultMargins(); |
194 EXPECT_EQ(1, browser()->tab_count()); | 175 EXPECT_EQ(1, browser()->tab_count()); |
195 | 176 |
196 // Checking that sticky settings were saved correctly. | 177 // Checking that sticky settings were saved correctly. |
197 EXPECT_EQ(PrintPreviewHandler::last_used_color_model_, printing::COLOR); | 178 EXPECT_EQ(PrintPreviewHandler::last_used_color_model_, printing::COLOR); |
198 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_, | 179 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_, |
199 printing::DEFAULT_MARGINS); | 180 printing::DEFAULT_MARGINS); |
200 ASSERT_FALSE(PrintPreviewHandler::last_used_page_size_margins_); | 181 ASSERT_FALSE(PrintPreviewHandler::last_used_page_size_margins_); |
201 } | 182 } |
202 | 183 |
203 // Tests that margin settings are saved correctly when printing with custom | 184 // Tests that margin settings are saved correctly when printing with custom |
204 // margins selected and then again with default margins selected. | 185 // margins selected and then again with default margins selected. |
205 TEST_F(PrintPreviewHandlerTest, MAYBE_StickyMarginsCustomThenDefault) { | 186 TEST_F(PrintPreviewHandlerTest, StickyMarginsCustomThenDefault) { |
206 const double kMarginTop = 125.5; | 187 const double kMarginTop = 125.5; |
207 const double kMarginRight = 126.5; | 188 const double kMarginRight = 126.5; |
208 const double kMarginBottom = 127.5; | 189 const double kMarginBottom = 127.5; |
209 const double kMarginLeft = 128.5; | 190 const double kMarginLeft = 128.5; |
210 RequestPrintWithCustomMargins( | 191 RequestPrintWithCustomMargins( |
211 kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); | 192 kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); |
212 EXPECT_EQ(1, browser()->tab_count()); | 193 EXPECT_EQ(1, browser()->tab_count()); |
213 DeletePrintPreviewTab(); | 194 DeletePrintPreviewTab(); |
214 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_, | 195 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_, |
215 printing::CUSTOM_MARGINS); | 196 printing::CUSTOM_MARGINS); |
216 ASSERT_TRUE(PrintPreviewHandler::last_used_page_size_margins_); | 197 ASSERT_TRUE(PrintPreviewHandler::last_used_page_size_margins_); |
217 CheckCustomMargins(kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); | 198 CheckCustomMargins(kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); |
218 | 199 |
219 OpenPrintPreviewTab(); | 200 OpenPrintPreviewTab(); |
220 RequestPrintWithDefaultMargins(); | 201 RequestPrintWithDefaultMargins(); |
221 | 202 |
222 // Checking that sticky settings were saved correctly. | 203 // Checking that sticky settings were saved correctly. |
223 EXPECT_EQ(PrintPreviewHandler::last_used_color_model_, printing::COLOR); | 204 EXPECT_EQ(PrintPreviewHandler::last_used_color_model_, printing::COLOR); |
224 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_, | 205 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_, |
225 printing::DEFAULT_MARGINS); | 206 printing::DEFAULT_MARGINS); |
226 ASSERT_TRUE(PrintPreviewHandler::last_used_page_size_margins_); | 207 ASSERT_TRUE(PrintPreviewHandler::last_used_page_size_margins_); |
227 CheckCustomMargins(kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); | 208 CheckCustomMargins(kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); |
228 } | 209 } |
229 | 210 |
230 // Tests that margin settings are retrieved correctly after printing with custom | 211 // Tests that margin settings are retrieved correctly after printing with custom |
231 // margins. | 212 // margins. |
232 TEST_F(PrintPreviewHandlerTest, MAYBE_GetLastUsedMarginSettingsCustom) { | 213 TEST_F(PrintPreviewHandlerTest, GetLastUsedMarginSettingsCustom) { |
233 const double kMarginTop = 125.5; | 214 const double kMarginTop = 125.5; |
234 const double kMarginRight = 126.5; | 215 const double kMarginRight = 126.5; |
235 const double kMarginBottom = 127.5; | 216 const double kMarginBottom = 127.5; |
236 const double kMarginLeft = 128.5; | 217 const double kMarginLeft = 128.5; |
237 RequestPrintWithCustomMargins( | 218 RequestPrintWithCustomMargins( |
238 kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); | 219 kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); |
239 base::DictionaryValue initial_settings; | 220 base::DictionaryValue initial_settings; |
240 preview_ui_->handler_->GetLastUsedMarginSettings(&initial_settings); | 221 preview_ui_->handler_->GetLastUsedMarginSettings(&initial_settings); |
241 int margins_type; | 222 int margins_type; |
242 EXPECT_TRUE(initial_settings.GetInteger(printing::kSettingMarginsType, | 223 EXPECT_TRUE(initial_settings.GetInteger(printing::kSettingMarginsType, |
243 &margins_type)); | 224 &margins_type)); |
244 EXPECT_EQ(margins_type, printing::CUSTOM_MARGINS); | 225 EXPECT_EQ(margins_type, printing::CUSTOM_MARGINS); |
245 double margin_value; | 226 double margin_value; |
246 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginTop, | 227 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginTop, |
247 &margin_value)); | 228 &margin_value)); |
248 EXPECT_EQ(kMarginTop, margin_value); | 229 EXPECT_EQ(kMarginTop, margin_value); |
249 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginRight, | 230 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginRight, |
250 &margin_value)); | 231 &margin_value)); |
251 EXPECT_EQ(kMarginRight, margin_value); | 232 EXPECT_EQ(kMarginRight, margin_value); |
252 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginBottom, | 233 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginBottom, |
253 &margin_value)); | 234 &margin_value)); |
254 EXPECT_EQ(kMarginBottom, margin_value); | 235 EXPECT_EQ(kMarginBottom, margin_value); |
255 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginLeft, | 236 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginLeft, |
256 &margin_value)); | 237 &margin_value)); |
257 EXPECT_EQ(kMarginLeft, margin_value); | 238 EXPECT_EQ(kMarginLeft, margin_value); |
258 } | 239 } |
259 | 240 |
260 // Tests that margin settings are retrieved correctly after printing with | 241 // Tests that margin settings are retrieved correctly after printing with |
261 // default margins. | 242 // default margins. |
262 TEST_F(PrintPreviewHandlerTest, MAYBE_GetLastUsedMarginSettingsDefault) { | 243 TEST_F(PrintPreviewHandlerTest, GetLastUsedMarginSettingsDefault) { |
263 RequestPrintWithDefaultMargins(); | 244 RequestPrintWithDefaultMargins(); |
264 base::DictionaryValue initial_settings; | 245 base::DictionaryValue initial_settings; |
265 preview_ui_->handler_->GetLastUsedMarginSettings(&initial_settings); | 246 preview_ui_->handler_->GetLastUsedMarginSettings(&initial_settings); |
266 int margins_type; | 247 int margins_type; |
267 EXPECT_TRUE(initial_settings.GetInteger(printing::kSettingMarginsType, | 248 EXPECT_TRUE(initial_settings.GetInteger(printing::kSettingMarginsType, |
268 &margins_type)); | 249 &margins_type)); |
269 EXPECT_EQ(margins_type, printing::DEFAULT_MARGINS); | 250 EXPECT_EQ(margins_type, printing::DEFAULT_MARGINS); |
270 double margin_value; | 251 double margin_value; |
271 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginTop, | 252 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginTop, |
272 &margin_value)); | 253 &margin_value)); |
273 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginRight, | 254 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginRight, |
274 &margin_value)); | 255 &margin_value)); |
275 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginBottom, | 256 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginBottom, |
276 &margin_value)); | 257 &margin_value)); |
277 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginLeft, | 258 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginLeft, |
278 &margin_value)); | 259 &margin_value)); |
279 } | 260 } |
OLD | NEW |