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

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

Issue 9114062: Move chrome/browser/ui/webui/print_preview* to chrome/browser/ui/webui/print_preview/ (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: rebase Created 8 years, 11 months 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
« no previous file with comments | « chrome/browser/ui/webui/print_preview_ui_uitest.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include <vector>
6
7 #include "base/memory/ref_counted_memory.h"
8 #include "chrome/browser/printing/print_preview_tab_controller.h"
9 #include "chrome/browser/printing/print_preview_unit_test_base.h"
10 #include "chrome/browser/printing/print_view_manager.h"
11 #include "chrome/browser/ui/browser_list.h"
12 #include "chrome/browser/ui/constrained_window_tab_helper.h"
13 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
14 #include "chrome/browser/ui/webui/print_preview_ui.h"
15 #include "content/public/browser/web_contents.h"
16 #include "printing/print_job_constants.h"
17
18 namespace {
19
20 const unsigned char blob1[] =
21 "12346102356120394751634516591348710478123649165419234519234512349134";
22
23 size_t GetConstrainedWindowCount(TabContentsWrapper* tab) {
24 return tab->constrained_window_tab_helper()->constrained_window_count();
25 }
26
27 } // namespace
28
29 class PrintPreviewUIUnitTest : public PrintPreviewUnitTestBase {
30 public:
31 PrintPreviewUIUnitTest() {}
32 virtual ~PrintPreviewUIUnitTest() {}
33
34 protected:
35 virtual void SetUp() OVERRIDE {
36 PrintPreviewUnitTestBase::SetUp();
37
38 browser()->NewTab();
39 }
40 };
41
42 // Create/Get a preview tab for initiator tab.
43 TEST_F(PrintPreviewUIUnitTest, PrintPreviewData) {
44 TabContentsWrapper* initiator_tab =
45 browser()->GetSelectedTabContentsWrapper();
46 ASSERT_TRUE(initiator_tab);
47 EXPECT_EQ(0U, GetConstrainedWindowCount(initiator_tab));
48
49 printing::PrintPreviewTabController* controller =
50 printing::PrintPreviewTabController::GetInstance();
51 ASSERT_TRUE(controller);
52
53 initiator_tab->print_view_manager()->PrintPreviewNow();
54 TabContentsWrapper* preview_tab =
55 controller->GetOrCreatePreviewTab(initiator_tab);
56
57 EXPECT_NE(initiator_tab, preview_tab);
58 EXPECT_EQ(1, browser()->tab_count());
59 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab));
60
61 PrintPreviewUI* preview_ui = reinterpret_cast<PrintPreviewUI*>(
62 preview_tab->web_contents()->GetWebUI());
63 ASSERT_TRUE(preview_ui != NULL);
64
65 scoped_refptr<RefCountedBytes> data;
66 preview_ui->GetPrintPreviewDataForIndex(
67 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX,
68 &data);
69 EXPECT_EQ(NULL, data.get());
70
71 std::vector<unsigned char> preview_data(blob1, blob1 + sizeof(blob1));
72 scoped_refptr<RefCountedBytes> dummy_data(new RefCountedBytes(preview_data));
73
74 preview_ui->SetPrintPreviewDataForIndex(
75 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX,
76 dummy_data.get());
77 preview_ui->GetPrintPreviewDataForIndex(
78 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX,
79 &data);
80 EXPECT_EQ(dummy_data->size(), data->size());
81 EXPECT_EQ(dummy_data.get(), data.get());
82
83 // This should not cause any memory leaks.
84 dummy_data = new RefCountedBytes();
85 preview_ui->SetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX,
86 dummy_data);
87
88 // Clear the preview data.
89 preview_ui->ClearAllPreviewData();
90
91 preview_ui->GetPrintPreviewDataForIndex(
92 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX,
93 &data);
94 EXPECT_EQ(NULL, data.get());
95 }
96
97 // Set and get the individual draft pages.
98 TEST_F(PrintPreviewUIUnitTest, PrintPreviewDraftPages) {
99 TabContentsWrapper* initiator_tab =
100 browser()->GetSelectedTabContentsWrapper();
101 ASSERT_TRUE(initiator_tab);
102
103 printing::PrintPreviewTabController* controller =
104 printing::PrintPreviewTabController::GetInstance();
105 ASSERT_TRUE(controller);
106
107 initiator_tab->print_view_manager()->PrintPreviewNow();
108 TabContentsWrapper* preview_tab =
109 controller->GetOrCreatePreviewTab(initiator_tab);
110
111 EXPECT_NE(initiator_tab, preview_tab);
112 EXPECT_EQ(1, browser()->tab_count());
113 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab));
114
115 PrintPreviewUI* preview_ui = reinterpret_cast<PrintPreviewUI*>(
116 preview_tab->web_contents()->GetWebUI());
117 ASSERT_TRUE(preview_ui != NULL);
118
119 scoped_refptr<RefCountedBytes> data;
120 preview_ui->GetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX, &data);
121 EXPECT_EQ(NULL, data.get());
122
123 std::vector<unsigned char> preview_data(blob1, blob1 + sizeof(blob1));
124 scoped_refptr<RefCountedBytes> dummy_data(new RefCountedBytes(preview_data));
125
126 preview_ui->SetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX,
127 dummy_data.get());
128 preview_ui->GetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX, &data);
129 EXPECT_EQ(dummy_data->size(), data->size());
130 EXPECT_EQ(dummy_data.get(), data.get());
131
132 // Set and get the third page data.
133 preview_ui->SetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX + 2,
134 dummy_data.get());
135 preview_ui->GetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX + 2,
136 &data);
137 EXPECT_EQ(dummy_data->size(), data->size());
138 EXPECT_EQ(dummy_data.get(), data.get());
139
140 // Get the second page data.
141 preview_ui->GetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX + 1,
142 &data);
143 EXPECT_EQ(NULL, data.get());
144
145 preview_ui->SetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX + 1,
146 dummy_data.get());
147 preview_ui->GetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX + 1,
148 &data);
149 EXPECT_EQ(dummy_data->size(), data->size());
150 EXPECT_EQ(dummy_data.get(), data.get());
151
152 // Clear the preview data.
153 preview_ui->ClearAllPreviewData();
154 preview_ui->GetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX, &data);
155 EXPECT_EQ(NULL, data.get());
156 }
157
158 // Test the browser-side print preview cancellation functionality.
159 TEST_F(PrintPreviewUIUnitTest, GetCurrentPrintPreviewStatus) {
160 TabContentsWrapper* initiator_tab =
161 browser()->GetSelectedTabContentsWrapper();
162 ASSERT_TRUE(initiator_tab);
163
164 printing::PrintPreviewTabController* controller =
165 printing::PrintPreviewTabController::GetInstance();
166 ASSERT_TRUE(controller);
167
168 initiator_tab->print_view_manager()->PrintPreviewNow();
169 TabContentsWrapper* preview_tab =
170 controller->GetOrCreatePreviewTab(initiator_tab);
171
172 EXPECT_NE(initiator_tab, preview_tab);
173 EXPECT_EQ(1, browser()->tab_count());
174 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab));
175
176 PrintPreviewUI* preview_ui = reinterpret_cast<PrintPreviewUI*>(
177 preview_tab->web_contents()->GetWebUI());
178 ASSERT_TRUE(preview_ui != NULL);
179
180 // Test with invalid |preview_ui_addr|.
181 bool cancel = false;
182 preview_ui->GetCurrentPrintPreviewStatus("invalid", 0, &cancel);
183 EXPECT_TRUE(cancel);
184
185 const int kFirstRequestId = 1000;
186 const int kSecondRequestId = 1001;
187 const std::string preview_ui_addr = preview_ui->GetPrintPreviewUIAddress();
188
189 // Test with kFirstRequestId.
190 preview_ui->OnPrintPreviewRequest(kFirstRequestId);
191 cancel = true;
192 preview_ui->GetCurrentPrintPreviewStatus(preview_ui_addr, kFirstRequestId,
193 &cancel);
194 EXPECT_FALSE(cancel);
195
196 cancel = false;
197 preview_ui->GetCurrentPrintPreviewStatus(preview_ui_addr, kSecondRequestId,
198 &cancel);
199 EXPECT_TRUE(cancel);
200
201 // Test with kSecondRequestId.
202 preview_ui->OnPrintPreviewRequest(kSecondRequestId);
203 cancel = false;
204 preview_ui->GetCurrentPrintPreviewStatus(preview_ui_addr, kFirstRequestId,
205 &cancel);
206 EXPECT_TRUE(cancel);
207
208 cancel = true;
209 preview_ui->GetCurrentPrintPreviewStatus(preview_ui_addr, kSecondRequestId,
210 &cancel);
211 EXPECT_FALSE(cancel);
212 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/print_preview_ui_uitest.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698