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

Side by Side Diff: ui/base/clipboard/clipboard_unittest.cc

Issue 9232075: Have ScopedClipboardWriter and Clipboard::WriteObjects take a buffer parameter. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fix build error Created 8 years, 10 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
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 "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 const string16& actual_markup) { 47 const string16& actual_markup) {
48 return actual_markup.find(expected_markup) != string16::npos; 48 return actual_markup.find(expected_markup) != string16::npos;
49 } 49 }
50 50
51 } // namespace 51 } // namespace
52 52
53 TEST_F(ClipboardTest, ClearTest) { 53 TEST_F(ClipboardTest, ClearTest) {
54 Clipboard clipboard; 54 Clipboard clipboard;
55 55
56 { 56 {
57 ScopedClipboardWriter clipboard_writer(&clipboard); 57 ScopedClipboardWriter clipboard_writer(&clipboard,
58 Clipboard::BUFFER_STANDARD);
58 clipboard_writer.WriteText(ASCIIToUTF16("clear me")); 59 clipboard_writer.WriteText(ASCIIToUTF16("clear me"));
59 } 60 }
60 61
61 { 62 {
62 ScopedClipboardWriter clipboard_writer(&clipboard); 63 ScopedClipboardWriter clipboard_writer(&clipboard,
64 Clipboard::BUFFER_STANDARD);
63 clipboard_writer.WriteHTML(ASCIIToUTF16("<b>broom</b>"), ""); 65 clipboard_writer.WriteHTML(ASCIIToUTF16("<b>broom</b>"), "");
64 } 66 }
65 67
66 EXPECT_FALSE(clipboard.IsFormatAvailable( 68 EXPECT_FALSE(clipboard.IsFormatAvailable(
67 Clipboard::GetPlainTextWFormatType(), Clipboard::BUFFER_STANDARD)); 69 Clipboard::GetPlainTextWFormatType(), Clipboard::BUFFER_STANDARD));
68 EXPECT_FALSE(clipboard.IsFormatAvailable( 70 EXPECT_FALSE(clipboard.IsFormatAvailable(
69 Clipboard::GetPlainTextFormatType(), Clipboard::BUFFER_STANDARD)); 71 Clipboard::GetPlainTextFormatType(), Clipboard::BUFFER_STANDARD));
70 } 72 }
71 73
72 TEST_F(ClipboardTest, TextTest) { 74 TEST_F(ClipboardTest, TextTest) {
73 Clipboard clipboard; 75 Clipboard clipboard;
74 76
75 string16 text(ASCIIToUTF16("This is a string16!#$")), text_result; 77 string16 text(ASCIIToUTF16("This is a string16!#$")), text_result;
76 std::string ascii_text; 78 std::string ascii_text;
77 79
78 { 80 {
79 ScopedClipboardWriter clipboard_writer(&clipboard); 81 ScopedClipboardWriter clipboard_writer(&clipboard,
82 Clipboard::BUFFER_STANDARD);
80 clipboard_writer.WriteText(text); 83 clipboard_writer.WriteText(text);
81 } 84 }
82 85
83 EXPECT_TRUE(clipboard.IsFormatAvailable( 86 EXPECT_TRUE(clipboard.IsFormatAvailable(
84 Clipboard::GetPlainTextWFormatType(), Clipboard::BUFFER_STANDARD)); 87 Clipboard::GetPlainTextWFormatType(), Clipboard::BUFFER_STANDARD));
85 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetPlainTextFormatType(), 88 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetPlainTextFormatType(),
86 Clipboard::BUFFER_STANDARD)); 89 Clipboard::BUFFER_STANDARD));
87 clipboard.ReadText(Clipboard::BUFFER_STANDARD, &text_result); 90 clipboard.ReadText(Clipboard::BUFFER_STANDARD, &text_result);
88 91
89 EXPECT_EQ(text, text_result); 92 EXPECT_EQ(text, text_result);
90 clipboard.ReadAsciiText(Clipboard::BUFFER_STANDARD, &ascii_text); 93 clipboard.ReadAsciiText(Clipboard::BUFFER_STANDARD, &ascii_text);
91 EXPECT_EQ(UTF16ToUTF8(text), ascii_text); 94 EXPECT_EQ(UTF16ToUTF8(text), ascii_text);
92 } 95 }
93 96
94 TEST_F(ClipboardTest, HTMLTest) { 97 TEST_F(ClipboardTest, HTMLTest) {
95 Clipboard clipboard; 98 Clipboard clipboard;
96 99
97 string16 markup(ASCIIToUTF16("<string>Hi!</string>")), markup_result; 100 string16 markup(ASCIIToUTF16("<string>Hi!</string>")), markup_result;
98 std::string url("http://www.example.com/"), url_result; 101 std::string url("http://www.example.com/"), url_result;
99 102
100 { 103 {
101 ScopedClipboardWriter clipboard_writer(&clipboard); 104 ScopedClipboardWriter clipboard_writer(&clipboard,
105 Clipboard::BUFFER_STANDARD);
102 clipboard_writer.WriteHTML(markup, url); 106 clipboard_writer.WriteHTML(markup, url);
103 } 107 }
104 108
105 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType(), 109 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType(),
106 Clipboard::BUFFER_STANDARD)); 110 Clipboard::BUFFER_STANDARD));
107 uint32 ignored; 111 uint32 ignored;
108 clipboard.ReadHTML(Clipboard::BUFFER_STANDARD, &markup_result, &url_result, 112 clipboard.ReadHTML(Clipboard::BUFFER_STANDARD, &markup_result, &url_result,
109 &ignored, &ignored); 113 &ignored, &ignored);
110 EXPECT_PRED2(MarkupMatches, markup, markup_result); 114 EXPECT_PRED2(MarkupMatches, markup, markup_result);
111 #if defined(OS_WIN) 115 #if defined(OS_WIN)
112 // TODO(playmobil): It's not clear that non windows clipboards need to support 116 // TODO(playmobil): It's not clear that non windows clipboards need to support
113 // this. 117 // this.
114 EXPECT_EQ(url, url_result); 118 EXPECT_EQ(url, url_result);
115 #endif // defined(OS_WIN) 119 #endif // defined(OS_WIN)
116 } 120 }
117 121
122 #if defined(TOOLKIT_USES_GTK)
123 TEST_F(ClipboardTest, MultipleBufferTest) {
124 Clipboard clipboard;
125
126 string16 text(ASCIIToUTF16("Standard")), text_result;
127 string16 markup(ASCIIToUTF16("<string>Selection</string>")), markup_result;
128 std::string url("http://www.example.com/"), url_result;
129
130 {
131 ScopedClipboardWriter clipboard_writer(&clipboard,
132 Clipboard::BUFFER_STANDARD);
133 clipboard_writer.WriteText(text);
134 }
135
136 {
137 ScopedClipboardWriter clipboard_writer(&clipboard,
dcheng 2012/02/03 21:53:58 Should we write different strings to the primary s
peter1 2012/02/04 00:54:46 Well, that is essentially what this test is doing.
dcheng 2012/02/04 01:11:05 Do we have a test that DidWriteURL is correctly ca
peter1 2012/02/04 02:05:43 No, and it makes sense to add one. I'll do that.
138 Clipboard::BUFFER_SELECTION);
139 clipboard_writer.WriteHTML(markup, url);
140 }
141
142 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetPlainTextFormatType(),
143 Clipboard::BUFFER_STANDARD));
144 EXPECT_FALSE(clipboard.IsFormatAvailable(Clipboard::GetPlainTextFormatType(),
145 Clipboard::BUFFER_SELECTION));
146
147 EXPECT_FALSE(clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType(),
148 Clipboard::BUFFER_STANDARD));
149 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType(),
150 Clipboard::BUFFER_SELECTION));
151
152 clipboard.ReadText(Clipboard::BUFFER_STANDARD, &text_result);
153 EXPECT_EQ(text, text_result);
154
155 uint32 ignored;
156 clipboard.ReadHTML(Clipboard::BUFFER_SELECTION, &markup_result, &url_result,
157 &ignored, &ignored);
158 EXPECT_PRED2(MarkupMatches, markup, markup_result);
159 }
160 #endif
161
118 TEST_F(ClipboardTest, TrickyHTMLTest) { 162 TEST_F(ClipboardTest, TrickyHTMLTest) {
119 Clipboard clipboard; 163 Clipboard clipboard;
120 164
121 string16 markup(ASCIIToUTF16("<em>Bye!<!--EndFragment --></em>")), 165 string16 markup(ASCIIToUTF16("<em>Bye!<!--EndFragment --></em>")),
122 markup_result; 166 markup_result;
123 std::string url, url_result; 167 std::string url, url_result;
124 168
125 { 169 {
126 ScopedClipboardWriter clipboard_writer(&clipboard); 170 ScopedClipboardWriter clipboard_writer(&clipboard,
171 Clipboard::BUFFER_STANDARD);
127 clipboard_writer.WriteHTML(markup, url); 172 clipboard_writer.WriteHTML(markup, url);
128 } 173 }
129 174
130 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType(), 175 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType(),
131 Clipboard::BUFFER_STANDARD)); 176 Clipboard::BUFFER_STANDARD));
132 uint32 ignored; 177 uint32 ignored;
133 clipboard.ReadHTML(Clipboard::BUFFER_STANDARD, &markup_result, &url_result, 178 clipboard.ReadHTML(Clipboard::BUFFER_STANDARD, &markup_result, &url_result,
134 &ignored, &ignored); 179 &ignored, &ignored);
135 EXPECT_PRED2(MarkupMatches, markup, markup_result); 180 EXPECT_PRED2(MarkupMatches, markup, markup_result);
136 #if defined(OS_WIN) 181 #if defined(OS_WIN)
137 // TODO(playmobil): It's not clear that non windows clipboards need to support 182 // TODO(playmobil): It's not clear that non windows clipboards need to support
138 // this. 183 // this.
139 EXPECT_EQ(url, url_result); 184 EXPECT_EQ(url, url_result);
140 #endif // defined(OS_WIN) 185 #endif // defined(OS_WIN)
141 } 186 }
142 187
143 #if defined(OS_WIN) 188 #if defined(OS_WIN)
144 TEST_F(ClipboardTest, UniodeHTMLTest) { 189 TEST_F(ClipboardTest, UniodeHTMLTest) {
145 Clipboard clipboard; 190 Clipboard clipboard;
146 191
147 string16 markup(UTF8ToUTF16("<div>A \xc3\xb8 \xe6\xb0\xb4</div>")), 192 string16 markup(UTF8ToUTF16("<div>A \xc3\xb8 \xe6\xb0\xb4</div>")),
148 markup_result; 193 markup_result;
149 std::string url, url_result; 194 std::string url, url_result;
150 195
151 { 196 {
152 ScopedClipboardWriter clipboard_writer(&clipboard); 197 ScopedClipboardWriter clipboard_writer(&clipboard,
198 Clipboard::BUFFER_STANDARD);
153 clipboard_writer.WriteHTML(markup, url); 199 clipboard_writer.WriteHTML(markup, url);
154 } 200 }
155 201
156 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType(), 202 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType(),
157 Clipboard::BUFFER_STANDARD)); 203 Clipboard::BUFFER_STANDARD));
158 uint32 fragment_start; 204 uint32 fragment_start;
159 uint32 fragment_end; 205 uint32 fragment_end;
160 clipboard.ReadHTML(Clipboard::BUFFER_STANDARD, &markup_result, &url_result, 206 clipboard.ReadHTML(Clipboard::BUFFER_STANDARD, &markup_result, &url_result,
161 &fragment_start, &fragment_end); 207 &fragment_start, &fragment_end);
162 EXPECT_PRED2(MarkupMatches, markup, markup_result); 208 EXPECT_PRED2(MarkupMatches, markup, markup_result);
163 EXPECT_EQ(url, url_result); 209 EXPECT_EQ(url, url_result);
164 // Make sure that fragment indices were adjusted when converting. 210 // Make sure that fragment indices were adjusted when converting.
165 EXPECT_EQ(36, fragment_start); 211 EXPECT_EQ(36, fragment_start);
166 EXPECT_EQ(56, fragment_end); 212 EXPECT_EQ(56, fragment_end);
167 } 213 }
168 #endif // defined(OS_WIN) 214 #endif // defined(OS_WIN)
169 215
170 #if defined(TOOLKIT_USES_GTK) 216 #if defined(TOOLKIT_USES_GTK)
171 // Regression test for crbug.com/56298 (pasting empty HTML crashes Linux). 217 // Regression test for crbug.com/56298 (pasting empty HTML crashes Linux).
172 TEST_F(ClipboardTest, EmptyHTMLTest) { 218 TEST_F(ClipboardTest, EmptyHTMLTest) {
173 Clipboard clipboard; 219 Clipboard clipboard;
174 // ScopedClipboardWriter doesn't let us write empty data to the clipboard. 220 // ScopedClipboardWriter doesn't let us write empty data to the clipboard.
175 clipboard.clipboard_data_ = new Clipboard::TargetMap(); 221 clipboard.clipboard_data_ = new Clipboard::TargetMap();
176 // The 1 is so the compiler doesn't warn about allocating an empty array. 222 // The 1 is so the compiler doesn't warn about allocating an empty array.
177 char* empty = new char[1]; 223 char* empty = new char[1];
178 clipboard.InsertMapping("text/html", empty, 0U); 224 clipboard.InsertMapping("text/html", empty, 0U);
179 clipboard.SetGtkClipboard(); 225 clipboard.SetGtkClipboard(Clipboard::BUFFER_STANDARD);
180 226
181 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType(), 227 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType(),
182 Clipboard::BUFFER_STANDARD)); 228 Clipboard::BUFFER_STANDARD));
183 string16 markup_result; 229 string16 markup_result;
184 std::string url_result; 230 std::string url_result;
185 uint32 ignored; 231 uint32 ignored;
186 clipboard.ReadHTML(Clipboard::BUFFER_STANDARD, &markup_result, &url_result, 232 clipboard.ReadHTML(Clipboard::BUFFER_STANDARD, &markup_result, &url_result,
187 &ignored, &ignored); 233 &ignored, &ignored);
188 EXPECT_PRED2(MarkupMatches, string16(), markup_result); 234 EXPECT_PRED2(MarkupMatches, string16(), markup_result);
189 } 235 }
190 #endif 236 #endif
191 237
192 // TODO(estade): Port the following test (decide what target we use for urls) 238 // TODO(estade): Port the following test (decide what target we use for urls)
193 #if !defined(OS_POSIX) || defined(OS_MACOSX) 239 #if !defined(OS_POSIX) || defined(OS_MACOSX)
194 TEST_F(ClipboardTest, BookmarkTest) { 240 TEST_F(ClipboardTest, BookmarkTest) {
195 Clipboard clipboard; 241 Clipboard clipboard;
196 242
197 string16 title(ASCIIToUTF16("The Example Company")), title_result; 243 string16 title(ASCIIToUTF16("The Example Company")), title_result;
198 std::string url("http://www.example.com/"), url_result; 244 std::string url("http://www.example.com/"), url_result;
199 245
200 { 246 {
201 ScopedClipboardWriter clipboard_writer(&clipboard); 247 ScopedClipboardWriter clipboard_writer(&clipboard,
248 Clipboard::BUFFER_STANDARD);
202 clipboard_writer.WriteBookmark(title, url); 249 clipboard_writer.WriteBookmark(title, url);
203 } 250 }
204 251
205 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetUrlWFormatType(), 252 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetUrlWFormatType(),
206 Clipboard::BUFFER_STANDARD)); 253 Clipboard::BUFFER_STANDARD));
207 clipboard.ReadBookmark(&title_result, &url_result); 254 clipboard.ReadBookmark(&title_result, &url_result);
208 EXPECT_EQ(title, title_result); 255 EXPECT_EQ(title, title_result);
209 EXPECT_EQ(url, url_result); 256 EXPECT_EQ(url, url_result);
210 } 257 }
211 #endif // defined(OS_WIN) 258 #endif // defined(OS_WIN)
212 259
213 TEST_F(ClipboardTest, MultiFormatTest) { 260 TEST_F(ClipboardTest, MultiFormatTest) {
214 Clipboard clipboard; 261 Clipboard clipboard;
215 262
216 string16 text(ASCIIToUTF16("Hi!")), text_result; 263 string16 text(ASCIIToUTF16("Hi!")), text_result;
217 string16 markup(ASCIIToUTF16("<strong>Hi!</string>")), markup_result; 264 string16 markup(ASCIIToUTF16("<strong>Hi!</string>")), markup_result;
218 std::string url("http://www.example.com/"), url_result; 265 std::string url("http://www.example.com/"), url_result;
219 std::string ascii_text; 266 std::string ascii_text;
220 267
221 { 268 {
222 ScopedClipboardWriter clipboard_writer(&clipboard); 269 ScopedClipboardWriter clipboard_writer(&clipboard,
270 Clipboard::BUFFER_STANDARD);
223 clipboard_writer.WriteHTML(markup, url); 271 clipboard_writer.WriteHTML(markup, url);
224 clipboard_writer.WriteText(text); 272 clipboard_writer.WriteText(text);
225 } 273 }
226 274
227 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType(), 275 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType(),
228 Clipboard::BUFFER_STANDARD)); 276 Clipboard::BUFFER_STANDARD));
229 EXPECT_TRUE(clipboard.IsFormatAvailable( 277 EXPECT_TRUE(clipboard.IsFormatAvailable(
230 Clipboard::GetPlainTextWFormatType(), Clipboard::BUFFER_STANDARD)); 278 Clipboard::GetPlainTextWFormatType(), Clipboard::BUFFER_STANDARD));
231 EXPECT_TRUE(clipboard.IsFormatAvailable( 279 EXPECT_TRUE(clipboard.IsFormatAvailable(
232 Clipboard::GetPlainTextFormatType(), Clipboard::BUFFER_STANDARD)); 280 Clipboard::GetPlainTextFormatType(), Clipboard::BUFFER_STANDARD));
(...skipping 11 matching lines...) Expand all
244 clipboard.ReadAsciiText(Clipboard::BUFFER_STANDARD, &ascii_text); 292 clipboard.ReadAsciiText(Clipboard::BUFFER_STANDARD, &ascii_text);
245 EXPECT_EQ(UTF16ToUTF8(text), ascii_text); 293 EXPECT_EQ(UTF16ToUTF8(text), ascii_text);
246 } 294 }
247 295
248 TEST_F(ClipboardTest, URLTest) { 296 TEST_F(ClipboardTest, URLTest) {
249 Clipboard clipboard; 297 Clipboard clipboard;
250 298
251 string16 url(ASCIIToUTF16("http://www.google.com/")); 299 string16 url(ASCIIToUTF16("http://www.google.com/"));
252 300
253 { 301 {
254 ScopedClipboardWriter clipboard_writer(&clipboard); 302 ScopedClipboardWriter clipboard_writer(&clipboard,
303 Clipboard::BUFFER_STANDARD);
255 clipboard_writer.WriteURL(url); 304 clipboard_writer.WriteURL(url);
256 } 305 }
257 306
258 EXPECT_TRUE(clipboard.IsFormatAvailable( 307 EXPECT_TRUE(clipboard.IsFormatAvailable(
259 Clipboard::GetPlainTextWFormatType(), Clipboard::BUFFER_STANDARD)); 308 Clipboard::GetPlainTextWFormatType(), Clipboard::BUFFER_STANDARD));
260 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetPlainTextFormatType(), 309 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetPlainTextFormatType(),
261 Clipboard::BUFFER_STANDARD)); 310 Clipboard::BUFFER_STANDARD));
262 string16 text_result; 311 string16 text_result;
263 clipboard.ReadText(Clipboard::BUFFER_STANDARD, &text_result); 312 clipboard.ReadText(Clipboard::BUFFER_STANDARD, &text_result);
264 313
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 354
306 Clipboard::ObjectMapParams params; 355 Clipboard::ObjectMapParams params;
307 params.push_back(placeholder_param); 356 params.push_back(placeholder_param);
308 params.push_back(size_param); 357 params.push_back(size_param);
309 358
310 Clipboard::ObjectMap objects; 359 Clipboard::ObjectMap objects;
311 objects[Clipboard::CBF_SMBITMAP] = params; 360 objects[Clipboard::CBF_SMBITMAP] = params;
312 Clipboard::ReplaceSharedMemHandle(&objects, handle_to_share, current_process); 361 Clipboard::ReplaceSharedMemHandle(&objects, handle_to_share, current_process);
313 362
314 Clipboard clipboard; 363 Clipboard clipboard;
315 clipboard.WriteObjects(objects); 364 clipboard.WriteObjects(Clipboard::BUFFER_STANDARD, objects);
316 365
317 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetBitmapFormatType(), 366 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetBitmapFormatType(),
318 Clipboard::BUFFER_STANDARD)); 367 Clipboard::BUFFER_STANDARD));
319 } 368 }
320 369
321 // The following test somehow fails on GTK. The image when read back from the 370 // The following test somehow fails on GTK. The image when read back from the
322 // clipboard has the alpha channel set to 0xFF for some reason. The other 371 // clipboard has the alpha channel set to 0xFF for some reason. The other
323 // channels stay intact. So I am turning this on only for aura. 372 // channels stay intact. So I am turning this on only for aura.
324 #if defined(USE_AURA) 373 #if defined(USE_AURA)
325 TEST_F(ClipboardTest, MultipleBitmapReadWriteTest) { 374 TEST_F(ClipboardTest, MultipleBitmapReadWriteTest) {
326 Clipboard clipboard; 375 Clipboard clipboard;
327 376
328 // Test first bitmap 377 // Test first bitmap
329 unsigned int fake_bitmap_1[] = { 378 unsigned int fake_bitmap_1[] = {
330 0x46155189, 0xF6A55C8D, 0x79845674, 0xFA57BD89, 379 0x46155189, 0xF6A55C8D, 0x79845674, 0xFA57BD89,
331 0x78FD46AE, 0x87C64F5A, 0x36EDC5AF, 0x4378F568, 380 0x78FD46AE, 0x87C64F5A, 0x36EDC5AF, 0x4378F568,
332 0x91E9F63A, 0xC31EA14F, 0x69AB32DF, 0x643A3FD1, 381 0x91E9F63A, 0xC31EA14F, 0x69AB32DF, 0x643A3FD1,
333 }; 382 };
334 gfx::Size fake_bitmap_1_size(3, 4); 383 gfx::Size fake_bitmap_1_size(3, 4);
335 { 384 {
336 ScopedClipboardWriter clipboard_writer(&clipboard); 385 ScopedClipboardWriter clipboard_writer(&clipboard,
386 Clipboard::BUFFER_STANDARD);
337 clipboard_writer.WriteBitmapFromPixels(fake_bitmap_1, fake_bitmap_1_size); 387 clipboard_writer.WriteBitmapFromPixels(fake_bitmap_1, fake_bitmap_1_size);
338 } 388 }
339 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetBitmapFormatType(), 389 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetBitmapFormatType(),
340 Clipboard::BUFFER_STANDARD)); 390 Clipboard::BUFFER_STANDARD));
341 SkBitmap image_1 = clipboard.ReadImage(Clipboard::BUFFER_STANDARD); 391 SkBitmap image_1 = clipboard.ReadImage(Clipboard::BUFFER_STANDARD);
342 EXPECT_EQ(fake_bitmap_1_size, gfx::Size(image_1.width(), image_1.height())); 392 EXPECT_EQ(fake_bitmap_1_size, gfx::Size(image_1.width(), image_1.height()));
343 unsigned int* pixels_1 = reinterpret_cast<unsigned int*>(image_1.getPixels()); 393 unsigned int* pixels_1 = reinterpret_cast<unsigned int*>(image_1.getPixels());
344 for (int i = 0; i < fake_bitmap_1_size.width(); ++i) { 394 for (int i = 0; i < fake_bitmap_1_size.width(); ++i) {
345 for (int j = 0; j < fake_bitmap_1_size.height(); ++j) { 395 for (int j = 0; j < fake_bitmap_1_size.height(); ++j) {
346 int id = i * fake_bitmap_1_size.height() + j; 396 int id = i * fake_bitmap_1_size.height() + j;
347 EXPECT_EQ(fake_bitmap_1[id], pixels_1[id]); 397 EXPECT_EQ(fake_bitmap_1[id], pixels_1[id]);
348 } 398 }
349 } 399 }
350 400
351 // Test second bitmap 401 // Test second bitmap
352 unsigned int fake_bitmap_2[] = { 402 unsigned int fake_bitmap_2[] = {
353 0x46155189, 0xF6A55C8D, 403 0x46155189, 0xF6A55C8D,
354 0x79845674, 0xFA57BD89, 404 0x79845674, 0xFA57BD89,
355 0x78FD46AE, 0x87C64F5A, 405 0x78FD46AE, 0x87C64F5A,
356 0x36EDC5AF, 0x4378F568, 406 0x36EDC5AF, 0x4378F568,
357 0x91E9F63A, 0xC31EA14F, 407 0x91E9F63A, 0xC31EA14F,
358 0x69AB32DF, 0x643A3FD1, 408 0x69AB32DF, 0x643A3FD1,
359 0xA6DF041D, 0x83046278, 409 0xA6DF041D, 0x83046278,
360 }; 410 };
361 gfx::Size fake_bitmap_2_size(7, 2); 411 gfx::Size fake_bitmap_2_size(7, 2);
362 { 412 {
363 ScopedClipboardWriter clipboard_writer(&clipboard); 413 ScopedClipboardWriter clipboard_writer(&clipboard,
414 Clipboard::BUFFER_STANDARD);
364 clipboard_writer.WriteBitmapFromPixels(fake_bitmap_2, fake_bitmap_2_size); 415 clipboard_writer.WriteBitmapFromPixels(fake_bitmap_2, fake_bitmap_2_size);
365 } 416 }
366 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetBitmapFormatType(), 417 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetBitmapFormatType(),
367 Clipboard::BUFFER_STANDARD)); 418 Clipboard::BUFFER_STANDARD));
368 SkBitmap image_2 = clipboard.ReadImage(Clipboard::BUFFER_STANDARD); 419 SkBitmap image_2 = clipboard.ReadImage(Clipboard::BUFFER_STANDARD);
369 EXPECT_EQ(fake_bitmap_2_size, gfx::Size(image_2.width(), image_2.height())); 420 EXPECT_EQ(fake_bitmap_2_size, gfx::Size(image_2.width(), image_2.height()));
370 unsigned int* pixels_2 = reinterpret_cast<unsigned int*>(image_2.getPixels()); 421 unsigned int* pixels_2 = reinterpret_cast<unsigned int*>(image_2.getPixels());
371 for (int i = 0; i < fake_bitmap_2_size.width(); ++i) { 422 for (int i = 0; i < fake_bitmap_2_size.width(); ++i) {
372 for (int j = 0; j < fake_bitmap_2_size.height(); ++j) { 423 for (int j = 0; j < fake_bitmap_2_size.height(); ++j) {
373 int id = i * fake_bitmap_2_size.height() + j; 424 int id = i * fake_bitmap_2_size.height() + j;
374 EXPECT_EQ(fake_bitmap_2[id], pixels_2[id]); 425 EXPECT_EQ(fake_bitmap_2[id], pixels_2[id]);
375 } 426 }
376 } 427 }
377 } 428 }
378 #endif 429 #endif
379 430
380 TEST_F(ClipboardTest, DataTest) { 431 TEST_F(ClipboardTest, DataTest) {
381 Clipboard clipboard; 432 Clipboard clipboard;
382 const ui::Clipboard::FormatType kFormat = 433 const ui::Clipboard::FormatType kFormat =
383 ui::Clipboard::GetFormatType("chromium/x-test-format"); 434 ui::Clipboard::GetFormatType("chromium/x-test-format");
384 std::string payload("test string"); 435 std::string payload("test string");
385 Pickle write_pickle; 436 Pickle write_pickle;
386 write_pickle.WriteString(payload); 437 write_pickle.WriteString(payload);
387 438
388 { 439 {
389 ScopedClipboardWriter clipboard_writer(&clipboard); 440 ScopedClipboardWriter clipboard_writer(&clipboard,
441 Clipboard::BUFFER_STANDARD);
390 clipboard_writer.WritePickledData(write_pickle, kFormat); 442 clipboard_writer.WritePickledData(write_pickle, kFormat);
391 } 443 }
392 444
393 ASSERT_TRUE(clipboard.IsFormatAvailable( 445 ASSERT_TRUE(clipboard.IsFormatAvailable(
394 kFormat, Clipboard::BUFFER_STANDARD)); 446 kFormat, Clipboard::BUFFER_STANDARD));
395 std::string output; 447 std::string output;
396 clipboard.ReadData(kFormat, &output); 448 clipboard.ReadData(kFormat, &output);
397 ASSERT_FALSE(output.empty()); 449 ASSERT_FALSE(output.empty());
398 450
399 Pickle read_pickle(output.data(), output.size()); 451 Pickle read_pickle(output.data(), output.size());
(...skipping 11 matching lines...) Expand all
411 Pickle write_pickle1; 463 Pickle write_pickle1;
412 write_pickle1.WriteString(payload1); 464 write_pickle1.WriteString(payload1);
413 465
414 const ui::Clipboard::FormatType kFormat2 = 466 const ui::Clipboard::FormatType kFormat2 =
415 ui::Clipboard::GetFormatType("chromium/x-test-format2"); 467 ui::Clipboard::GetFormatType("chromium/x-test-format2");
416 std::string payload2("test string2"); 468 std::string payload2("test string2");
417 Pickle write_pickle2; 469 Pickle write_pickle2;
418 write_pickle2.WriteString(payload2); 470 write_pickle2.WriteString(payload2);
419 471
420 { 472 {
421 ScopedClipboardWriter clipboard_writer(&clipboard); 473 ScopedClipboardWriter clipboard_writer(&clipboard,
474 Clipboard::BUFFER_STANDARD);
422 clipboard_writer.WritePickledData(write_pickle1, kFormat1); 475 clipboard_writer.WritePickledData(write_pickle1, kFormat1);
423 // overwrite the previous pickle for fun 476 // overwrite the previous pickle for fun
424 clipboard_writer.WritePickledData(write_pickle2, kFormat2); 477 clipboard_writer.WritePickledData(write_pickle2, kFormat2);
425 } 478 }
426 479
427 ASSERT_TRUE(clipboard.IsFormatAvailable( 480 ASSERT_TRUE(clipboard.IsFormatAvailable(
428 kFormat2, Clipboard::BUFFER_STANDARD)); 481 kFormat2, Clipboard::BUFFER_STANDARD));
429 482
430 // Check string 2. 483 // Check string 2.
431 std::string output2; 484 std::string output2;
432 clipboard.ReadData(kFormat2, &output2); 485 clipboard.ReadData(kFormat2, &output2);
433 ASSERT_FALSE(output2.empty()); 486 ASSERT_FALSE(output2.empty());
434 487
435 Pickle read_pickle2(output2.data(), output2.size()); 488 Pickle read_pickle2(output2.data(), output2.size());
436 void* iter2 = NULL; 489 void* iter2 = NULL;
437 std::string unpickled_string2; 490 std::string unpickled_string2;
438 ASSERT_TRUE(read_pickle2.ReadString(&iter2, &unpickled_string2)); 491 ASSERT_TRUE(read_pickle2.ReadString(&iter2, &unpickled_string2));
439 EXPECT_EQ(payload2, unpickled_string2); 492 EXPECT_EQ(payload2, unpickled_string2);
440 493
441 { 494 {
442 ScopedClipboardWriter clipboard_writer(&clipboard); 495 ScopedClipboardWriter clipboard_writer(&clipboard,
496 Clipboard::BUFFER_STANDARD);
443 clipboard_writer.WritePickledData(write_pickle2, kFormat2); 497 clipboard_writer.WritePickledData(write_pickle2, kFormat2);
444 // overwrite the previous pickle for fun 498 // overwrite the previous pickle for fun
445 clipboard_writer.WritePickledData(write_pickle1, kFormat1); 499 clipboard_writer.WritePickledData(write_pickle1, kFormat1);
446 } 500 }
447 501
448 ASSERT_TRUE(clipboard.IsFormatAvailable( 502 ASSERT_TRUE(clipboard.IsFormatAvailable(
449 kFormat1, Clipboard::BUFFER_STANDARD)); 503 kFormat1, Clipboard::BUFFER_STANDARD));
450 504
451 // Check string 1. 505 // Check string 1.
452 std::string output1; 506 std::string output1;
(...skipping 12 matching lines...) Expand all
465 Clipboard clipboard; 519 Clipboard clipboard;
466 520
467 const std::string kTitle("The Example Company"); 521 const std::string kTitle("The Example Company");
468 const std::string kUrl("http://www.example.com/"); 522 const std::string kUrl("http://www.example.com/");
469 const std::string kExpectedHtml("<a href=\"http://www.example.com/\">" 523 const std::string kExpectedHtml("<a href=\"http://www.example.com/\">"
470 "The Example Company</a>"); 524 "The Example Company</a>");
471 std::string url_result; 525 std::string url_result;
472 string16 html_result; 526 string16 html_result;
473 527
474 { 528 {
475 ScopedClipboardWriter clipboard_writer(&clipboard); 529 ScopedClipboardWriter clipboard_writer(&clipboard,
530 Clipboard::BUFFER_STANDARD);
476 clipboard_writer.WriteHyperlink(ASCIIToUTF16(kTitle), kUrl); 531 clipboard_writer.WriteHyperlink(ASCIIToUTF16(kTitle), kUrl);
477 } 532 }
478 533
479 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType(), 534 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType(),
480 Clipboard::BUFFER_STANDARD)); 535 Clipboard::BUFFER_STANDARD));
481 uint32 ignored; 536 uint32 ignored;
482 clipboard.ReadHTML(Clipboard::BUFFER_STANDARD, &html_result, &url_result, 537 clipboard.ReadHTML(Clipboard::BUFFER_STANDARD, &html_result, &url_result,
483 &ignored, &ignored); 538 &ignored, &ignored);
484 EXPECT_PRED2(MarkupMatches, ASCIIToUTF16(kExpectedHtml), html_result); 539 EXPECT_PRED2(MarkupMatches, ASCIIToUTF16(kExpectedHtml), html_result);
485 } 540 }
486 541
487 TEST_F(ClipboardTest, WebSmartPasteTest) { 542 TEST_F(ClipboardTest, WebSmartPasteTest) {
488 Clipboard clipboard; 543 Clipboard clipboard;
489 544
490 { 545 {
491 ScopedClipboardWriter clipboard_writer(&clipboard); 546 ScopedClipboardWriter clipboard_writer(&clipboard,
547 Clipboard::BUFFER_STANDARD);
492 clipboard_writer.WriteWebSmartPaste(); 548 clipboard_writer.WriteWebSmartPaste();
493 } 549 }
494 550
495 EXPECT_TRUE(clipboard.IsFormatAvailable( 551 EXPECT_TRUE(clipboard.IsFormatAvailable(
496 Clipboard::GetWebKitSmartPasteFormatType(), Clipboard::BUFFER_STANDARD)); 552 Clipboard::GetWebKitSmartPasteFormatType(), Clipboard::BUFFER_STANDARD));
497 } 553 }
498 554
499 TEST_F(ClipboardTest, BitmapTest) { 555 TEST_F(ClipboardTest, BitmapTest) {
500 unsigned int fake_bitmap[] = { 556 unsigned int fake_bitmap[] = {
501 0x46155189, 0xF6A55C8D, 0x79845674, 0xFA57BD89, 557 0x46155189, 0xF6A55C8D, 0x79845674, 0xFA57BD89,
502 0x78FD46AE, 0x87C64F5A, 0x36EDC5AF, 0x4378F568, 558 0x78FD46AE, 0x87C64F5A, 0x36EDC5AF, 0x4378F568,
503 0x91E9F63A, 0xC31EA14F, 0x69AB32DF, 0x643A3FD1, 559 0x91E9F63A, 0xC31EA14F, 0x69AB32DF, 0x643A3FD1,
504 }; 560 };
505 561
506 Clipboard clipboard; 562 Clipboard clipboard;
507 563
508 { 564 {
509 ScopedClipboardWriter clipboard_writer(&clipboard); 565 ScopedClipboardWriter clipboard_writer(&clipboard,
566 Clipboard::BUFFER_STANDARD);
510 clipboard_writer.WriteBitmapFromPixels(fake_bitmap, gfx::Size(3, 4)); 567 clipboard_writer.WriteBitmapFromPixels(fake_bitmap, gfx::Size(3, 4));
511 } 568 }
512 569
513 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetBitmapFormatType(), 570 EXPECT_TRUE(clipboard.IsFormatAvailable(Clipboard::GetBitmapFormatType(),
514 Clipboard::BUFFER_STANDARD)); 571 Clipboard::BUFFER_STANDARD));
515 } 572 }
516 573
517 void HtmlTestHelper(const std::string& cf_html, 574 void HtmlTestHelper(const std::string& cf_html,
518 const std::string& expected_html) { 575 const std::string& expected_html) {
519 std::string html; 576 std::string html;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 "</html>\r\n\r\n", 612 "</html>\r\n\r\n",
556 "<p>Foo</p>"); 613 "<p>Foo</p>");
557 } 614 }
558 #endif // defined(OS_WIN) 615 #endif // defined(OS_WIN)
559 616
560 // Test writing all formats we have simultaneously. 617 // Test writing all formats we have simultaneously.
561 TEST_F(ClipboardTest, WriteEverything) { 618 TEST_F(ClipboardTest, WriteEverything) {
562 Clipboard clipboard; 619 Clipboard clipboard;
563 620
564 { 621 {
565 ScopedClipboardWriter writer(&clipboard); 622 ScopedClipboardWriter writer(&clipboard, Clipboard::BUFFER_STANDARD);
566 writer.WriteText(UTF8ToUTF16("foo")); 623 writer.WriteText(UTF8ToUTF16("foo"));
567 writer.WriteURL(UTF8ToUTF16("foo")); 624 writer.WriteURL(UTF8ToUTF16("foo"));
568 writer.WriteHTML(UTF8ToUTF16("foo"), "bar"); 625 writer.WriteHTML(UTF8ToUTF16("foo"), "bar");
569 writer.WriteBookmark(UTF8ToUTF16("foo"), "bar"); 626 writer.WriteBookmark(UTF8ToUTF16("foo"), "bar");
570 writer.WriteHyperlink(ASCIIToUTF16("foo"), "bar"); 627 writer.WriteHyperlink(ASCIIToUTF16("foo"), "bar");
571 writer.WriteWebSmartPaste(); 628 writer.WriteWebSmartPaste();
572 // Left out: WriteFile, WriteFiles, WriteBitmapFromPixels, WritePickledData. 629 // Left out: WriteFile, WriteFiles, WriteBitmapFromPixels, WritePickledData.
573 } 630 }
574 631
575 // Passes if we don't crash. 632 // Passes if we don't crash.
576 } 633 }
577 634
578 } // namespace ui 635 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698