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 "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 Loading... |
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, |
| 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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |