Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: chrome/browser/ui/webui/print_preview_handler_unittest.cc

Issue 8520011: Print Preview: Make print preview tab modal. (try 2) (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: disable tests in touch_ui, fix failing test Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/ui/browser_list.h" 11 #include "chrome/browser/ui/browser_list.h"
12 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 12 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
13 #include "chrome/browser/ui/webui/print_preview_handler.h" 13 #include "chrome/browser/ui/webui/print_preview_handler.h"
14 #include "chrome/browser/ui/webui/print_preview_ui.h" 14 #include "chrome/browser/ui/webui/print_preview_ui.h"
15 #include "chrome/common/chrome_switches.h" 15 #include "chrome/common/chrome_switches.h"
16 #include "chrome/test/base/browser_with_test_window_test.h" 16 #include "chrome/test/base/browser_with_test_window_test.h"
17 #include "printing/page_size_margins.h" 17 #include "printing/page_size_margins.h"
18 #include "printing/print_job_constants.h" 18 #include "printing/print_job_constants.h"
19 19
20 namespace { 20 namespace {
21 21
22 DictionaryValue* GetCustomMarginsDictionary( 22 DictionaryValue* GetCustomMarginsDictionary(
23 const double margin_top, const double margin_right, 23 const double margin_top, const double margin_right,
24 const double margin_bottom,const double margin_left) { 24 const double margin_bottom, const double margin_left) {
25 base::DictionaryValue* custom_settings = new base::DictionaryValue(); 25 base::DictionaryValue* custom_settings = new base::DictionaryValue();
26 custom_settings->SetDouble(printing::kSettingMarginTop, margin_top); 26 custom_settings->SetDouble(printing::kSettingMarginTop, margin_top);
27 custom_settings->SetDouble(printing::kSettingMarginRight, margin_right); 27 custom_settings->SetDouble(printing::kSettingMarginRight, margin_right);
28 custom_settings->SetDouble(printing::kSettingMarginBottom, margin_bottom); 28 custom_settings->SetDouble(printing::kSettingMarginBottom, margin_bottom);
29 custom_settings->SetDouble(printing::kSettingMarginLeft, margin_left); 29 custom_settings->SetDouble(printing::kSettingMarginLeft, margin_left);
30 return custom_settings; 30 return custom_settings;
31 } 31 }
32 32
33 } 33 } // namespace
34 34
35 class PrintPreviewHandlerTest : public BrowserWithTestWindowTest { 35 class PrintPreviewHandlerTest : public BrowserWithTestWindowTest {
36 protected: 36 protected:
37 void SetUp() { 37 void SetUp() {
38 BrowserWithTestWindowTest::SetUp(); 38 BrowserWithTestWindowTest::SetUp();
39 #if !defined(GOOGLE_CHROME_BUILD) || defined(OS_CHROMEOS) 39 #if !defined(GOOGLE_CHROME_BUILD) || defined(OS_CHROMEOS)
40 CommandLine::ForCurrentProcess()->AppendSwitch( 40 CommandLine::ForCurrentProcess()->AppendSwitch(
41 switches::kEnablePrintPreview); 41 switches::kEnablePrintPreview);
42 #endif 42 #endif
43 ASSERT_TRUE(browser()); 43 ASSERT_TRUE(browser());
(...skipping 14 matching lines...) Expand all
58 TabContentsWrapper* initiator_tab = 58 TabContentsWrapper* initiator_tab =
59 browser()->GetSelectedTabContentsWrapper(); 59 browser()->GetSelectedTabContentsWrapper();
60 ASSERT_TRUE(initiator_tab); 60 ASSERT_TRUE(initiator_tab);
61 61
62 scoped_refptr<printing::PrintPreviewTabController> 62 scoped_refptr<printing::PrintPreviewTabController>
63 controller(new printing::PrintPreviewTabController()); 63 controller(new printing::PrintPreviewTabController());
64 ASSERT_TRUE(controller.get()); 64 ASSERT_TRUE(controller.get());
65 65
66 preview_tab_ = controller->GetOrCreatePreviewTab(initiator_tab); 66 preview_tab_ = controller->GetOrCreatePreviewTab(initiator_tab);
67 ASSERT_TRUE(preview_tab_); 67 ASSERT_TRUE(preview_tab_);
68 EXPECT_EQ(2, browser()->tab_count());
69 68
70 preview_ui_ = static_cast<PrintPreviewUI*>(preview_tab_->web_ui()); 69 preview_ui_ = static_cast<PrintPreviewUI*>(preview_tab_->web_ui());
71 ASSERT_TRUE(preview_ui_); 70 ASSERT_TRUE(preview_ui_);
72 } 71 }
73 72
74 void DeletePrintPreviewTab() { 73 void DeletePrintPreviewTab() {
75 printing::BackgroundPrintingManager* bg_printing_manager = 74 printing::BackgroundPrintingManager* bg_printing_manager =
76 g_browser_process->background_printing_manager(); 75 g_browser_process->background_printing_manager();
77 ASSERT_TRUE(bg_printing_manager->HasPrintPreviewTab(preview_tab_)); 76 ASSERT_TRUE(bg_printing_manager->HasPrintPreviewTab(preview_tab_));
78 77
(...skipping 28 matching lines...) Expand all
107 // Put |settings| in to |args| as a JSON string. 106 // Put |settings| in to |args| as a JSON string.
108 std::string json_string; 107 std::string json_string;
109 base::JSONWriter::Write(&settings, false, &json_string); 108 base::JSONWriter::Write(&settings, false, &json_string);
110 ListValue args; 109 ListValue args;
111 args.Append(new base::StringValue(json_string)); // |args| takes ownership. 110 args.Append(new base::StringValue(json_string)); // |args| takes ownership.
112 preview_ui_->handler_->HandlePrint(&args); 111 preview_ui_->handler_->HandlePrint(&args);
113 } 112 }
114 113
115 void RequestPrintWithCustomMargins( 114 void RequestPrintWithCustomMargins(
116 const double margin_top, const double margin_right, 115 const double margin_top, const double margin_right,
117 const double margin_bottom,const double margin_left) { 116 const double margin_bottom, const double margin_left) {
118 // Set the minimal dummy settings to make the HandlePrint() code happy. 117 // Set the minimal dummy settings to make the HandlePrint() code happy.
119 DictionaryValue settings; 118 DictionaryValue settings;
120 settings.SetBoolean(printing::kSettingPreviewModifiable, true); 119 settings.SetBoolean(printing::kSettingPreviewModifiable, true);
121 settings.SetInteger(printing::kSettingColor, printing::COLOR); 120 settings.SetInteger(printing::kSettingColor, printing::COLOR);
122 settings.SetBoolean(printing::kSettingPrintToPDF, false); 121 settings.SetBoolean(printing::kSettingPrintToPDF, false);
123 settings.SetInteger(printing::kSettingMarginsType, 122 settings.SetInteger(printing::kSettingMarginsType,
124 printing::CUSTOM_MARGINS); 123 printing::CUSTOM_MARGINS);
125 124
126 // Creating custom margins dictionary and nesting it in |settings|. 125 // Creating custom margins dictionary and nesting it in |settings|.
127 DictionaryValue* custom_settings = GetCustomMarginsDictionary( 126 DictionaryValue* custom_settings = GetCustomMarginsDictionary(
(...skipping 11 matching lines...) Expand all
139 138
140 TabContentsWrapper* preview_tab_; 139 TabContentsWrapper* preview_tab_;
141 PrintPreviewUI* preview_ui_; 140 PrintPreviewUI* preview_ui_;
142 141
143 private: 142 private:
144 void ClearStickySettings() { 143 void ClearStickySettings() {
145 PrintPreviewHandler::last_used_margins_type_ = printing::DEFAULT_MARGINS; 144 PrintPreviewHandler::last_used_margins_type_ = printing::DEFAULT_MARGINS;
146 delete PrintPreviewHandler::last_used_page_size_margins_; 145 delete PrintPreviewHandler::last_used_page_size_margins_;
147 PrintPreviewHandler::last_used_page_size_margins_ = NULL; 146 PrintPreviewHandler::last_used_page_size_margins_ = NULL;
148 } 147 }
149
150 }; 148 };
151 149
150 // Test crashs on TouchUI due to initiator tab's native view having no parent.
151 // http://crbug.com/104284
152 #if defined(TOUCH_UI)
153 #define MAYBE_StickyMarginsCustom DISABLED_StickyMarginsCustom
154 #else
155 #define MAYBE_StickyMarginsCustom StickyMarginsCustom
156 #endif
152 // Tests that margin settings are saved correctly when printing with custom 157 // Tests that margin settings are saved correctly when printing with custom
153 // margins selected. 158 // margins selected.
154 TEST_F(PrintPreviewHandlerTest, StickyMarginsCustom) { 159 TEST_F(PrintPreviewHandlerTest, MAYBE_StickyMarginsCustom) {
155 const double kMarginTop = 25.5; 160 const double kMarginTop = 25.5;
156 const double kMarginRight = 26.5; 161 const double kMarginRight = 26.5;
157 const double kMarginBottom = 27.5; 162 const double kMarginBottom = 27.5;
158 const double kMarginLeft = 28.5; 163 const double kMarginLeft = 28.5;
159 RequestPrintWithCustomMargins( 164 RequestPrintWithCustomMargins(
160 kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); 165 kMarginTop, kMarginRight, kMarginBottom, kMarginLeft);
161 EXPECT_EQ(1, browser()->tab_count()); 166 EXPECT_EQ(1, browser()->tab_count());
162 167
163 // Checking that sticky settings were saved correctly. 168 // Checking that sticky settings were saved correctly.
164 EXPECT_EQ(PrintPreviewHandler::last_used_color_model_, printing::COLOR); 169 EXPECT_EQ(PrintPreviewHandler::last_used_color_model_, printing::COLOR);
165 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_, 170 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_,
166 printing::CUSTOM_MARGINS); 171 printing::CUSTOM_MARGINS);
167 ASSERT_TRUE(PrintPreviewHandler::last_used_page_size_margins_); 172 ASSERT_TRUE(PrintPreviewHandler::last_used_page_size_margins_);
168 CheckCustomMargins(kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); 173 CheckCustomMargins(kMarginTop, kMarginRight, kMarginBottom, kMarginLeft);
169 } 174 }
170 175
176 // http://crbug.com/104284
177 #if defined(TOUCH_UI)
178 #define MAYBE_StickyMarginsDefault DISABLED_StickyMarginsDefault
179 #else
180 #define MAYBE_StickyMarginsDefault StickyMarginsDefault
181 #endif
171 // Tests that margin settings are saved correctly when printing with default 182 // Tests that margin settings are saved correctly when printing with default
172 // margins selected. 183 // margins selected.
173 TEST_F(PrintPreviewHandlerTest, StickyMarginsDefault) { 184 TEST_F(PrintPreviewHandlerTest, MAYBE_StickyMarginsDefault) {
174 RequestPrintWithDefaultMargins(); 185 RequestPrintWithDefaultMargins();
175 EXPECT_EQ(1, browser()->tab_count()); 186 EXPECT_EQ(1, browser()->tab_count());
176 187
177 // Checking that sticky settings were saved correctly. 188 // Checking that sticky settings were saved correctly.
178 EXPECT_EQ(PrintPreviewHandler::last_used_color_model_, printing::COLOR); 189 EXPECT_EQ(PrintPreviewHandler::last_used_color_model_, printing::COLOR);
179 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_, 190 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_,
180 printing::DEFAULT_MARGINS); 191 printing::DEFAULT_MARGINS);
181 ASSERT_FALSE(PrintPreviewHandler::last_used_page_size_margins_); 192 ASSERT_FALSE(PrintPreviewHandler::last_used_page_size_margins_);
182 } 193 }
183 194
195 // http://crbug.com/104284
196 #if defined(TOUCH_UI)
197 #define MAYBE_StickyMarginsCustomThenDefault \
198 DISABLED_StickyMarginsCustomThenDefault
199 #else
200 #define MAYBE_StickyMarginsCustomThenDefault StickyMarginsCustomThenDefault
201 #endif
184 // Tests that margin settings are saved correctly when printing with custom 202 // Tests that margin settings are saved correctly when printing with custom
185 // margins selected and then again with default margins selected. 203 // margins selected and then again with default margins selected.
186 TEST_F(PrintPreviewHandlerTest, StickyMarginsCustomThenDefault) { 204 TEST_F(PrintPreviewHandlerTest, MAYBE_StickyMarginsCustomThenDefault) {
187 const double kMarginTop = 125.5; 205 const double kMarginTop = 125.5;
188 const double kMarginRight = 126.5; 206 const double kMarginRight = 126.5;
189 const double kMarginBottom = 127.5; 207 const double kMarginBottom = 127.5;
190 const double kMarginLeft = 128.5; 208 const double kMarginLeft = 128.5;
191 RequestPrintWithCustomMargins( 209 RequestPrintWithCustomMargins(
192 kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); 210 kMarginTop, kMarginRight, kMarginBottom, kMarginLeft);
193 EXPECT_EQ(1, browser()->tab_count()); 211 EXPECT_EQ(1, browser()->tab_count());
194 DeletePrintPreviewTab(); 212 DeletePrintPreviewTab();
195 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_, 213 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_,
196 printing::CUSTOM_MARGINS); 214 printing::CUSTOM_MARGINS);
197 ASSERT_TRUE(PrintPreviewHandler::last_used_page_size_margins_); 215 ASSERT_TRUE(PrintPreviewHandler::last_used_page_size_margins_);
198 CheckCustomMargins(kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); 216 CheckCustomMargins(kMarginTop, kMarginRight, kMarginBottom, kMarginLeft);
199 217
200 OpenPrintPreviewTab(); 218 OpenPrintPreviewTab();
201 EXPECT_EQ(2, browser()->tab_count());
202 RequestPrintWithDefaultMargins(); 219 RequestPrintWithDefaultMargins();
203 220
204 // Checking that sticky settings were saved correctly. 221 // Checking that sticky settings were saved correctly.
205 EXPECT_EQ(PrintPreviewHandler::last_used_color_model_, printing::COLOR); 222 EXPECT_EQ(PrintPreviewHandler::last_used_color_model_, printing::COLOR);
206 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_, 223 EXPECT_EQ(PrintPreviewHandler::last_used_margins_type_,
207 printing::DEFAULT_MARGINS); 224 printing::DEFAULT_MARGINS);
208 ASSERT_TRUE(PrintPreviewHandler::last_used_page_size_margins_); 225 ASSERT_TRUE(PrintPreviewHandler::last_used_page_size_margins_);
209 CheckCustomMargins(kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); 226 CheckCustomMargins(kMarginTop, kMarginRight, kMarginBottom, kMarginLeft);
210 } 227 }
211 228
229 // http://crbug.com/104284
230 #if defined(TOUCH_UI)
231 #define MAYBE_GetLastUsedMarginSettingsCustom \
232 DISABLED_GetLastUsedMarginSettingsCustom
233 #else
234 #define MAYBE_GetLastUsedMarginSettingsCustom GetLastUsedMarginSettingsCustom
235 #endif
212 // Tests that margin settings are retrieved correctly after printing with custom 236 // Tests that margin settings are retrieved correctly after printing with custom
213 // margins. 237 // margins.
214 TEST_F(PrintPreviewHandlerTest, GetLastUsedMarginSettingsCustom) { 238 TEST_F(PrintPreviewHandlerTest, MAYBE_GetLastUsedMarginSettingsCustom) {
215 const double kMarginTop = 125.5; 239 const double kMarginTop = 125.5;
216 const double kMarginRight = 126.5; 240 const double kMarginRight = 126.5;
217 const double kMarginBottom = 127.5; 241 const double kMarginBottom = 127.5;
218 const double kMarginLeft = 128.5; 242 const double kMarginLeft = 128.5;
219 RequestPrintWithCustomMargins( 243 RequestPrintWithCustomMargins(
220 kMarginTop, kMarginRight, kMarginBottom, kMarginLeft); 244 kMarginTop, kMarginRight, kMarginBottom, kMarginLeft);
221 base::DictionaryValue initial_settings; 245 base::DictionaryValue initial_settings;
222 preview_ui_->handler_->GetLastUsedMarginSettings(&initial_settings); 246 preview_ui_->handler_->GetLastUsedMarginSettings(&initial_settings);
223 int margins_type; 247 int margins_type;
224 EXPECT_TRUE(initial_settings.GetInteger(printing::kSettingMarginsType, 248 EXPECT_TRUE(initial_settings.GetInteger(printing::kSettingMarginsType,
225 &margins_type)); 249 &margins_type));
226 EXPECT_EQ(margins_type, printing::CUSTOM_MARGINS); 250 EXPECT_EQ(margins_type, printing::CUSTOM_MARGINS);
227 double margin_value; 251 double margin_value;
228 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginTop, 252 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginTop,
229 &margin_value)); 253 &margin_value));
230 EXPECT_EQ(kMarginTop, margin_value); 254 EXPECT_EQ(kMarginTop, margin_value);
231 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginRight, 255 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginRight,
232 &margin_value)); 256 &margin_value));
233 EXPECT_EQ(kMarginRight, margin_value); 257 EXPECT_EQ(kMarginRight, margin_value);
234 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginBottom, 258 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginBottom,
235 &margin_value)); 259 &margin_value));
236 EXPECT_EQ(kMarginBottom, margin_value); 260 EXPECT_EQ(kMarginBottom, margin_value);
237 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginLeft, 261 EXPECT_TRUE(initial_settings.GetDouble(printing::kSettingMarginLeft,
238 &margin_value)); 262 &margin_value));
239 EXPECT_EQ(kMarginLeft, margin_value); 263 EXPECT_EQ(kMarginLeft, margin_value);
240 } 264 }
241 265
266 // http://crbug.com/104284
267 #if defined(TOUCH_UI)
268 #define MAYBE_GetLastUsedMarginSettingsDefault \
269 DISABLED_GetLastUsedMarginSettingsDefault
270 #else
271 #define MAYBE_GetLastUsedMarginSettingsDefault GetLastUsedMarginSettingsDefault
272 #endif
242 // Tests that margin settings are retrieved correctly after printing with 273 // Tests that margin settings are retrieved correctly after printing with
243 // default margins. 274 // default margins.
244 TEST_F(PrintPreviewHandlerTest, GetLastUsedMarginSettingsDefault) { 275 TEST_F(PrintPreviewHandlerTest, MAYBE_GetLastUsedMarginSettingsDefault) {
245 RequestPrintWithDefaultMargins(); 276 RequestPrintWithDefaultMargins();
246 base::DictionaryValue initial_settings; 277 base::DictionaryValue initial_settings;
247 preview_ui_->handler_->GetLastUsedMarginSettings(&initial_settings); 278 preview_ui_->handler_->GetLastUsedMarginSettings(&initial_settings);
248 int margins_type; 279 int margins_type;
249 EXPECT_TRUE(initial_settings.GetInteger(printing::kSettingMarginsType, 280 EXPECT_TRUE(initial_settings.GetInteger(printing::kSettingMarginsType,
250 &margins_type)); 281 &margins_type));
251 EXPECT_EQ(margins_type, printing::DEFAULT_MARGINS); 282 EXPECT_EQ(margins_type, printing::DEFAULT_MARGINS);
252 double margin_value; 283 double margin_value;
253 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginTop, 284 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginTop,
254 &margin_value)); 285 &margin_value));
255 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginRight, 286 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginRight,
256 &margin_value)); 287 &margin_value));
257 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginBottom, 288 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginBottom,
258 &margin_value)); 289 &margin_value));
259 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginLeft, 290 EXPECT_FALSE(initial_settings.GetDouble(printing::kSettingMarginLeft,
260 &margin_value)); 291 &margin_value));
261 } 292 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698