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