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 <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/memory/ref_counted_memory.h" | 7 #include "base/memory/ref_counted_memory.h" |
8 #include "chrome/browser/prefs/pref_service.h" | 8 #include "chrome/browser/prefs/pref_service.h" |
9 #include "chrome/browser/printing/print_preview_tab_controller.h" | 9 #include "chrome/browser/printing/print_preview_tab_controller.h" |
10 #include "chrome/browser/printing/print_view_manager.h" | 10 #include "chrome/browser/printing/print_view_manager.h" |
11 #include "chrome/browser/ui/browser_commands.h" | 11 #include "chrome/browser/ui/browser_commands.h" |
12 #include "chrome/browser/ui/browser_tabstrip.h" | 12 #include "chrome/browser/ui/browser_tabstrip.h" |
13 #include "chrome/browser/ui/constrained_window_tab_helper.h" | 13 #include "chrome/browser/ui/constrained_window_tab_helper.h" |
14 #include "chrome/browser/ui/tab_contents/tab_contents.h" | 14 #include "chrome/browser/ui/tab_contents/tab_contents.h" |
15 #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h" | 15 #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h" |
16 #include "chrome/common/pref_names.h" | 16 #include "chrome/common/pref_names.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 "content/public/browser/site_instance.h" | 18 #include "content/public/browser/site_instance.h" |
19 #include "content/public/browser/web_contents.h" | 19 #include "content/public/browser/web_contents.h" |
20 #include "content/public/test/web_contents_tester.h" | 20 #include "content/public/test/web_contents_tester.h" |
21 #include "printing/print_job_constants.h" | 21 #include "printing/print_job_constants.h" |
22 | 22 |
23 using content::WebContents; | 23 using content::WebContents; |
24 using content::WebContentsTester; | 24 using content::WebContentsTester; |
25 | 25 |
26 namespace { | 26 namespace { |
27 | 27 |
28 const unsigned char blob1[] = | 28 base::RefCountedBytes* CreateTestData() { |
29 "12346102356120394751634516591348710478123649165419234519234512349134"; | 29 const unsigned char blob1[] = |
| 30 "12346102356120394751634516591348710478123649165419234519234512349134"; |
| 31 std::vector<unsigned char> preview_data(blob1, blob1 + sizeof(blob1)); |
| 32 return new base::RefCountedBytes(preview_data); |
| 33 } |
30 | 34 |
31 size_t GetConstrainedWindowCount(TabContents* tab) { | 35 size_t GetConstrainedWindowCount(TabContents* tab) { |
32 return tab->constrained_window_tab_helper()->constrained_window_count(); | 36 return tab->constrained_window_tab_helper()->constrained_window_count(); |
33 } | 37 } |
34 | 38 |
35 } // namespace | 39 } // namespace |
36 | 40 |
37 class PrintPreviewUIUnitTest : public BrowserWithTestWindowTest { | 41 class PrintPreviewUIUnitTest : public BrowserWithTestWindowTest { |
38 public: | 42 public: |
39 PrintPreviewUIUnitTest() {} | 43 PrintPreviewUIUnitTest() {} |
(...skipping 29 matching lines...) Expand all Loading... |
69 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( | 73 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( |
70 preview_tab->web_contents()->GetWebUI()->GetController()); | 74 preview_tab->web_contents()->GetWebUI()->GetController()); |
71 ASSERT_TRUE(preview_ui != NULL); | 75 ASSERT_TRUE(preview_ui != NULL); |
72 | 76 |
73 scoped_refptr<base::RefCountedBytes> data; | 77 scoped_refptr<base::RefCountedBytes> data; |
74 preview_ui->GetPrintPreviewDataForIndex( | 78 preview_ui->GetPrintPreviewDataForIndex( |
75 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX, | 79 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX, |
76 &data); | 80 &data); |
77 EXPECT_EQ(NULL, data.get()); | 81 EXPECT_EQ(NULL, data.get()); |
78 | 82 |
79 std::vector<unsigned char> preview_data(blob1, blob1 + sizeof(blob1)); | 83 scoped_refptr<base::RefCountedBytes> dummy_data = CreateTestData(); |
80 scoped_refptr<base::RefCountedBytes> dummy_data = | |
81 new base::RefCountedBytes(preview_data); | |
82 | 84 |
83 preview_ui->SetPrintPreviewDataForIndex( | 85 preview_ui->SetPrintPreviewDataForIndex( |
84 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX, | 86 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX, |
85 dummy_data.get()); | 87 dummy_data.get()); |
86 preview_ui->GetPrintPreviewDataForIndex( | 88 preview_ui->GetPrintPreviewDataForIndex( |
87 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX, | 89 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX, |
88 &data); | 90 &data); |
89 EXPECT_EQ(dummy_data->size(), data->size()); | 91 EXPECT_EQ(dummy_data->size(), data->size()); |
90 EXPECT_EQ(dummy_data.get(), data.get()); | 92 EXPECT_EQ(dummy_data.get(), data.get()); |
91 | 93 |
(...skipping 28 matching lines...) Expand all Loading... |
120 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab)); | 122 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab)); |
121 | 123 |
122 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( | 124 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( |
123 preview_tab->web_contents()->GetWebUI()->GetController()); | 125 preview_tab->web_contents()->GetWebUI()->GetController()); |
124 ASSERT_TRUE(preview_ui != NULL); | 126 ASSERT_TRUE(preview_ui != NULL); |
125 | 127 |
126 scoped_refptr<base::RefCountedBytes> data; | 128 scoped_refptr<base::RefCountedBytes> data; |
127 preview_ui->GetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX, &data); | 129 preview_ui->GetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX, &data); |
128 EXPECT_EQ(NULL, data.get()); | 130 EXPECT_EQ(NULL, data.get()); |
129 | 131 |
130 std::vector<unsigned char> preview_data(blob1, blob1 + sizeof(blob1)); | 132 scoped_refptr<base::RefCountedBytes> dummy_data = CreateTestData(); |
131 scoped_refptr<base::RefCountedBytes> dummy_data = | |
132 new base::RefCountedBytes(preview_data); | |
133 | 133 |
134 preview_ui->SetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX, | 134 preview_ui->SetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX, |
135 dummy_data.get()); | 135 dummy_data.get()); |
136 preview_ui->GetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX, &data); | 136 preview_ui->GetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX, &data); |
137 EXPECT_EQ(dummy_data->size(), data->size()); | 137 EXPECT_EQ(dummy_data->size(), data->size()); |
138 EXPECT_EQ(dummy_data.get(), data.get()); | 138 EXPECT_EQ(dummy_data.get(), data.get()); |
139 | 139 |
140 // Set and get the third page data. | 140 // Set and get the third page data. |
141 preview_ui->SetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX + 2, | 141 preview_ui->SetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX + 2, |
142 dummy_data.get()); | 142 dummy_data.get()); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 EXPECT_NE(initiator_tab, preview_tab); | 178 EXPECT_NE(initiator_tab, preview_tab); |
179 EXPECT_EQ(1, browser()->tab_count()); | 179 EXPECT_EQ(1, browser()->tab_count()); |
180 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab)); | 180 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab)); |
181 | 181 |
182 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( | 182 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( |
183 preview_tab->web_contents()->GetWebUI()->GetController()); | 183 preview_tab->web_contents()->GetWebUI()->GetController()); |
184 ASSERT_TRUE(preview_ui != NULL); | 184 ASSERT_TRUE(preview_ui != NULL); |
185 | 185 |
186 // Test with invalid |preview_ui_addr|. | 186 // Test with invalid |preview_ui_addr|. |
187 bool cancel = false; | 187 bool cancel = false; |
188 preview_ui->GetCurrentPrintPreviewStatus("invalid", 0, &cancel); | 188 const int32 kInvalidId = -5; |
| 189 preview_ui->GetCurrentPrintPreviewStatus(kInvalidId, 0, &cancel); |
189 EXPECT_TRUE(cancel); | 190 EXPECT_TRUE(cancel); |
190 | 191 |
191 const int kFirstRequestId = 1000; | 192 const int kFirstRequestId = 1000; |
192 const int kSecondRequestId = 1001; | 193 const int kSecondRequestId = 1001; |
193 const std::string preview_ui_addr = preview_ui->GetPrintPreviewUIAddress(); | 194 const int32 preview_ui_addr = preview_ui->GetIDForPrintPreviewUI(); |
194 | 195 |
195 // Test with kFirstRequestId. | 196 // Test with kFirstRequestId. |
196 preview_ui->OnPrintPreviewRequest(kFirstRequestId); | 197 preview_ui->OnPrintPreviewRequest(kFirstRequestId); |
197 cancel = true; | 198 cancel = true; |
198 preview_ui->GetCurrentPrintPreviewStatus(preview_ui_addr, kFirstRequestId, | 199 preview_ui->GetCurrentPrintPreviewStatus(preview_ui_addr, kFirstRequestId, |
199 &cancel); | 200 &cancel); |
200 EXPECT_FALSE(cancel); | 201 EXPECT_FALSE(cancel); |
201 | 202 |
202 cancel = false; | 203 cancel = false; |
203 preview_ui->GetCurrentPrintPreviewStatus(preview_ui_addr, kSecondRequestId, | 204 preview_ui->GetCurrentPrintPreviewStatus(preview_ui_addr, kSecondRequestId, |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( | 246 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( |
246 preview_tab->web_contents()->GetWebUI()->GetController()); | 247 preview_tab->web_contents()->GetWebUI()->GetController()); |
247 ASSERT_TRUE(preview_ui != NULL); | 248 ASSERT_TRUE(preview_ui != NULL); |
248 | 249 |
249 preview_ui->OnPrintPreviewTabClosed(); | 250 preview_ui->OnPrintPreviewTabClosed(); |
250 | 251 |
251 EXPECT_EQ(2, browser()->tab_count()); | 252 EXPECT_EQ(2, browser()->tab_count()); |
252 EXPECT_EQ(0U, GetConstrainedWindowCount(initiator_tab)); | 253 EXPECT_EQ(0U, GetConstrainedWindowCount(initiator_tab)); |
253 EXPECT_EQ(1, initiator_tester->GetNumberOfFocusCalls()); | 254 EXPECT_EQ(1, initiator_tester->GetNumberOfFocusCalls()); |
254 } | 255 } |
OLD | NEW |