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

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

Issue 558913003: Remove clipboard argument from ScopedClipboardWriter constructor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 6 years, 3 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
OLDNEW
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 "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 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 74
75 bool MarkupMatches(const base::string16& expected_markup, 75 bool MarkupMatches(const base::string16& expected_markup,
76 const base::string16& actual_markup) { 76 const base::string16& actual_markup) {
77 return actual_markup.find(expected_markup) != base::string16::npos; 77 return actual_markup.find(expected_markup) != base::string16::npos;
78 } 78 }
79 79
80 } // namespace 80 } // namespace
81 81
82 TEST_F(ClipboardTest, ClearTest) { 82 TEST_F(ClipboardTest, ClearTest) {
83 { 83 {
84 ScopedClipboardWriter clipboard_writer(&clipboard(), 84 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
85 CLIPBOARD_TYPE_COPY_PASTE);
86 clipboard_writer.WriteText(ASCIIToUTF16("clear me")); 85 clipboard_writer.WriteText(ASCIIToUTF16("clear me"));
87 } 86 }
88 87
89 clipboard().Clear(CLIPBOARD_TYPE_COPY_PASTE); 88 clipboard().Clear(CLIPBOARD_TYPE_COPY_PASTE);
90 89
91 EXPECT_FALSE(clipboard().IsFormatAvailable( 90 EXPECT_FALSE(clipboard().IsFormatAvailable(
92 Clipboard::GetPlainTextWFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); 91 Clipboard::GetPlainTextWFormatType(), CLIPBOARD_TYPE_COPY_PASTE));
93 EXPECT_FALSE(clipboard().IsFormatAvailable( 92 EXPECT_FALSE(clipboard().IsFormatAvailable(
94 Clipboard::GetPlainTextFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); 93 Clipboard::GetPlainTextFormatType(), CLIPBOARD_TYPE_COPY_PASTE));
95 } 94 }
96 95
97 TEST_F(ClipboardTest, TextTest) { 96 TEST_F(ClipboardTest, TextTest) {
98 base::string16 text(ASCIIToUTF16("This is a base::string16!#$")), text_result; 97 base::string16 text(ASCIIToUTF16("This is a base::string16!#$")), text_result;
99 std::string ascii_text; 98 std::string ascii_text;
100 99
101 { 100 {
102 ScopedClipboardWriter clipboard_writer(&clipboard(), 101 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
103 CLIPBOARD_TYPE_COPY_PASTE);
104 clipboard_writer.WriteText(text); 102 clipboard_writer.WriteText(text);
105 } 103 }
106 104
107 EXPECT_TRUE(clipboard().IsFormatAvailable( 105 EXPECT_TRUE(clipboard().IsFormatAvailable(
108 Clipboard::GetPlainTextWFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); 106 Clipboard::GetPlainTextWFormatType(), CLIPBOARD_TYPE_COPY_PASTE));
109 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetPlainTextFormatType(), 107 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetPlainTextFormatType(),
110 CLIPBOARD_TYPE_COPY_PASTE)); 108 CLIPBOARD_TYPE_COPY_PASTE));
111 clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &text_result); 109 clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &text_result);
112 110
113 EXPECT_EQ(text, text_result); 111 EXPECT_EQ(text, text_result);
114 clipboard().ReadAsciiText(CLIPBOARD_TYPE_COPY_PASTE, &ascii_text); 112 clipboard().ReadAsciiText(CLIPBOARD_TYPE_COPY_PASTE, &ascii_text);
115 EXPECT_EQ(UTF16ToUTF8(text), ascii_text); 113 EXPECT_EQ(UTF16ToUTF8(text), ascii_text);
116 } 114 }
117 115
118 TEST_F(ClipboardTest, HTMLTest) { 116 TEST_F(ClipboardTest, HTMLTest) {
119 base::string16 markup(ASCIIToUTF16("<string>Hi!</string>")), markup_result; 117 base::string16 markup(ASCIIToUTF16("<string>Hi!</string>")), markup_result;
120 base::string16 plain(ASCIIToUTF16("Hi!")), plain_result; 118 base::string16 plain(ASCIIToUTF16("Hi!")), plain_result;
121 std::string url("http://www.example.com/"), url_result; 119 std::string url("http://www.example.com/"), url_result;
122 120
123 { 121 {
124 ScopedClipboardWriter clipboard_writer(&clipboard(), 122 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
125 CLIPBOARD_TYPE_COPY_PASTE);
126 clipboard_writer.WriteText(plain); 123 clipboard_writer.WriteText(plain);
127 clipboard_writer.WriteHTML(markup, url); 124 clipboard_writer.WriteHTML(markup, url);
128 } 125 }
129 126
130 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetHtmlFormatType(), 127 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetHtmlFormatType(),
131 CLIPBOARD_TYPE_COPY_PASTE)); 128 CLIPBOARD_TYPE_COPY_PASTE));
132 uint32 ignored; 129 uint32 ignored;
133 clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result, &url_result, 130 clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result, &url_result,
134 &ignored, &ignored); 131 &ignored, &ignored);
135 EXPECT_PRED2(MarkupMatches, markup, markup_result); 132 EXPECT_PRED2(MarkupMatches, markup, markup_result);
136 #if defined(OS_WIN) 133 #if defined(OS_WIN)
137 // TODO(playmobil): It's not clear that non windows clipboards need to support 134 // TODO(playmobil): It's not clear that non windows clipboards need to support
138 // this. 135 // this.
139 EXPECT_EQ(url, url_result); 136 EXPECT_EQ(url, url_result);
140 #endif // defined(OS_WIN) 137 #endif // defined(OS_WIN)
141 } 138 }
142 139
143 TEST_F(ClipboardTest, RTFTest) { 140 TEST_F(ClipboardTest, RTFTest) {
144 std::string rtf = 141 std::string rtf =
145 "{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\f0\\pard\n" 142 "{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\f0\\pard\n"
146 "This is some {\\b bold} text.\\par\n" 143 "This is some {\\b bold} text.\\par\n"
147 "}"; 144 "}";
148 145
149 { 146 {
150 ScopedClipboardWriter clipboard_writer(&clipboard(), 147 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
151 CLIPBOARD_TYPE_COPY_PASTE);
152 clipboard_writer.WriteRTF(rtf); 148 clipboard_writer.WriteRTF(rtf);
153 } 149 }
154 150
155 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetRtfFormatType(), 151 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetRtfFormatType(),
156 CLIPBOARD_TYPE_COPY_PASTE)); 152 CLIPBOARD_TYPE_COPY_PASTE));
157 std::string result; 153 std::string result;
158 clipboard().ReadRTF(CLIPBOARD_TYPE_COPY_PASTE, &result); 154 clipboard().ReadRTF(CLIPBOARD_TYPE_COPY_PASTE, &result);
159 EXPECT_EQ(rtf, result); 155 EXPECT_EQ(rtf, result);
160 } 156 }
161 157
162 // TODO(dnicoara) Enable test once Ozone implements clipboard support: 158 // TODO(dnicoara) Enable test once Ozone implements clipboard support:
163 // crbug.com/361707 159 // crbug.com/361707
164 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(USE_OZONE) 160 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(USE_OZONE)
165 TEST_F(ClipboardTest, MultipleBufferTest) { 161 TEST_F(ClipboardTest, MultipleBufferTest) {
166 base::string16 text(ASCIIToUTF16("Standard")), text_result; 162 base::string16 text(ASCIIToUTF16("Standard")), text_result;
167 base::string16 markup(ASCIIToUTF16("<string>Selection</string>")); 163 base::string16 markup(ASCIIToUTF16("<string>Selection</string>"));
168 std::string url("http://www.example.com/"), url_result; 164 std::string url("http://www.example.com/"), url_result;
169 165
170 { 166 {
171 ScopedClipboardWriter clipboard_writer(&clipboard(), 167 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
172 CLIPBOARD_TYPE_COPY_PASTE);
173 clipboard_writer.WriteText(text); 168 clipboard_writer.WriteText(text);
174 } 169 }
175 170
176 { 171 {
177 ScopedClipboardWriter clipboard_writer(&clipboard(), 172 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_SELECTION);
178 CLIPBOARD_TYPE_SELECTION);
179 clipboard_writer.WriteHTML(markup, url); 173 clipboard_writer.WriteHTML(markup, url);
180 } 174 }
181 175
182 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetPlainTextFormatType(), 176 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetPlainTextFormatType(),
183 CLIPBOARD_TYPE_COPY_PASTE)); 177 CLIPBOARD_TYPE_COPY_PASTE));
184 EXPECT_FALSE(clipboard().IsFormatAvailable( 178 EXPECT_FALSE(clipboard().IsFormatAvailable(
185 Clipboard::GetPlainTextFormatType(), 179 Clipboard::GetPlainTextFormatType(),
186 CLIPBOARD_TYPE_SELECTION)); 180 CLIPBOARD_TYPE_SELECTION));
187 181
188 EXPECT_FALSE(clipboard().IsFormatAvailable(Clipboard::GetHtmlFormatType(), 182 EXPECT_FALSE(clipboard().IsFormatAvailable(Clipboard::GetHtmlFormatType(),
(...skipping 15 matching lines...) Expand all
204 } 198 }
205 #endif 199 #endif
206 200
207 TEST_F(ClipboardTest, TrickyHTMLTest) { 201 TEST_F(ClipboardTest, TrickyHTMLTest) {
208 base::string16 markup(ASCIIToUTF16("<em>Bye!<!--EndFragment --></em>")), 202 base::string16 markup(ASCIIToUTF16("<em>Bye!<!--EndFragment --></em>")),
209 markup_result; 203 markup_result;
210 std::string url, url_result; 204 std::string url, url_result;
211 base::string16 plain(ASCIIToUTF16("Bye!")), plain_result; 205 base::string16 plain(ASCIIToUTF16("Bye!")), plain_result;
212 206
213 { 207 {
214 ScopedClipboardWriter clipboard_writer(&clipboard(), 208 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
215 CLIPBOARD_TYPE_COPY_PASTE);
216 clipboard_writer.WriteText(plain); 209 clipboard_writer.WriteText(plain);
217 clipboard_writer.WriteHTML(markup, url); 210 clipboard_writer.WriteHTML(markup, url);
218 } 211 }
219 212
220 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetHtmlFormatType(), 213 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetHtmlFormatType(),
221 CLIPBOARD_TYPE_COPY_PASTE)); 214 CLIPBOARD_TYPE_COPY_PASTE));
222 uint32 ignored; 215 uint32 ignored;
223 clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result, &url_result, 216 clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result, &url_result,
224 &ignored, &ignored); 217 &ignored, &ignored);
225 EXPECT_PRED2(MarkupMatches, markup, markup_result); 218 EXPECT_PRED2(MarkupMatches, markup, markup_result);
226 #if defined(OS_WIN) 219 #if defined(OS_WIN)
227 // TODO(playmobil): It's not clear that non windows clipboards need to support 220 // TODO(playmobil): It's not clear that non windows clipboards need to support
228 // this. 221 // this.
229 EXPECT_EQ(url, url_result); 222 EXPECT_EQ(url, url_result);
230 #endif // defined(OS_WIN) 223 #endif // defined(OS_WIN)
231 } 224 }
232 225
233 #if defined(OS_WIN) 226 #if defined(OS_WIN)
234 TEST_F(ClipboardTest, UniodeHTMLTest) { 227 TEST_F(ClipboardTest, UniodeHTMLTest) {
235 base::string16 markup(UTF8ToUTF16("<div>A \xc3\xb8 \xe6\xb0\xb4</div>")), 228 base::string16 markup(UTF8ToUTF16("<div>A \xc3\xb8 \xe6\xb0\xb4</div>")),
236 markup_result; 229 markup_result;
237 std::string url, url_result; 230 std::string url, url_result;
238 231
239 { 232 {
240 ScopedClipboardWriter clipboard_writer(&clipboard(), 233 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
241 CLIPBOARD_TYPE_COPY_PASTE);
242 clipboard_writer.WriteHTML(markup, url); 234 clipboard_writer.WriteHTML(markup, url);
243 } 235 }
244 236
245 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetHtmlFormatType(), 237 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetHtmlFormatType(),
246 CLIPBOARD_TYPE_COPY_PASTE)); 238 CLIPBOARD_TYPE_COPY_PASTE));
247 uint32 fragment_start; 239 uint32 fragment_start;
248 uint32 fragment_end; 240 uint32 fragment_end;
249 clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result, &url_result, 241 clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result, &url_result,
250 &fragment_start, &fragment_end); 242 &fragment_start, &fragment_end);
251 EXPECT_PRED2(MarkupMatches, markup, markup_result); 243 EXPECT_PRED2(MarkupMatches, markup, markup_result);
252 EXPECT_EQ(url, url_result); 244 EXPECT_EQ(url, url_result);
253 // Make sure that fragment indices were adjusted when converting. 245 // Make sure that fragment indices were adjusted when converting.
254 EXPECT_EQ(36, fragment_start); 246 EXPECT_EQ(36, fragment_start);
255 EXPECT_EQ(52, fragment_end); 247 EXPECT_EQ(52, fragment_end);
256 } 248 }
257 #endif // defined(OS_WIN) 249 #endif // defined(OS_WIN)
258 250
259 // TODO(estade): Port the following test (decide what target we use for urls) 251 // TODO(estade): Port the following test (decide what target we use for urls)
260 #if !defined(OS_POSIX) || defined(OS_MACOSX) 252 #if !defined(OS_POSIX) || defined(OS_MACOSX)
261 TEST_F(ClipboardTest, BookmarkTest) { 253 TEST_F(ClipboardTest, BookmarkTest) {
262 base::string16 title(ASCIIToUTF16("The Example Company")), title_result; 254 base::string16 title(ASCIIToUTF16("The Example Company")), title_result;
263 std::string url("http://www.example.com/"), url_result; 255 std::string url("http://www.example.com/"), url_result;
264 256
265 { 257 {
266 ScopedClipboardWriter clipboard_writer(&clipboard(), 258 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
267 CLIPBOARD_TYPE_COPY_PASTE);
268 clipboard_writer.WriteBookmark(title, url); 259 clipboard_writer.WriteBookmark(title, url);
269 } 260 }
270 261
271 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetUrlWFormatType(), 262 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetUrlWFormatType(),
272 CLIPBOARD_TYPE_COPY_PASTE)); 263 CLIPBOARD_TYPE_COPY_PASTE));
273 clipboard().ReadBookmark(&title_result, &url_result); 264 clipboard().ReadBookmark(&title_result, &url_result);
274 EXPECT_EQ(title, title_result); 265 EXPECT_EQ(title, title_result);
275 EXPECT_EQ(url, url_result); 266 EXPECT_EQ(url, url_result);
276 } 267 }
277 #endif // defined(OS_WIN) 268 #endif // defined(OS_WIN)
278 269
279 TEST_F(ClipboardTest, MultiFormatTest) { 270 TEST_F(ClipboardTest, MultiFormatTest) {
280 base::string16 text(ASCIIToUTF16("Hi!")), text_result; 271 base::string16 text(ASCIIToUTF16("Hi!")), text_result;
281 base::string16 markup(ASCIIToUTF16("<strong>Hi!</string>")), markup_result; 272 base::string16 markup(ASCIIToUTF16("<strong>Hi!</string>")), markup_result;
282 std::string url("http://www.example.com/"), url_result; 273 std::string url("http://www.example.com/"), url_result;
283 std::string ascii_text; 274 std::string ascii_text;
284 275
285 { 276 {
286 ScopedClipboardWriter clipboard_writer(&clipboard(), 277 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
287 CLIPBOARD_TYPE_COPY_PASTE);
288 clipboard_writer.WriteHTML(markup, url); 278 clipboard_writer.WriteHTML(markup, url);
289 clipboard_writer.WriteText(text); 279 clipboard_writer.WriteText(text);
290 } 280 }
291 281
292 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetHtmlFormatType(), 282 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetHtmlFormatType(),
293 CLIPBOARD_TYPE_COPY_PASTE)); 283 CLIPBOARD_TYPE_COPY_PASTE));
294 EXPECT_TRUE(clipboard().IsFormatAvailable( 284 EXPECT_TRUE(clipboard().IsFormatAvailable(
295 Clipboard::GetPlainTextWFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); 285 Clipboard::GetPlainTextWFormatType(), CLIPBOARD_TYPE_COPY_PASTE));
296 EXPECT_TRUE(clipboard().IsFormatAvailable( 286 EXPECT_TRUE(clipboard().IsFormatAvailable(
297 Clipboard::GetPlainTextFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); 287 Clipboard::GetPlainTextFormatType(), CLIPBOARD_TYPE_COPY_PASTE));
298 uint32 ignored; 288 uint32 ignored;
299 clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result, &url_result, 289 clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result, &url_result,
300 &ignored, &ignored); 290 &ignored, &ignored);
301 EXPECT_PRED2(MarkupMatches, markup, markup_result); 291 EXPECT_PRED2(MarkupMatches, markup, markup_result);
302 #if defined(OS_WIN) 292 #if defined(OS_WIN)
303 // TODO(playmobil): It's not clear that non windows clipboards need to support 293 // TODO(playmobil): It's not clear that non windows clipboards need to support
304 // this. 294 // this.
305 EXPECT_EQ(url, url_result); 295 EXPECT_EQ(url, url_result);
306 #endif // defined(OS_WIN) 296 #endif // defined(OS_WIN)
307 clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &text_result); 297 clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &text_result);
308 EXPECT_EQ(text, text_result); 298 EXPECT_EQ(text, text_result);
309 clipboard().ReadAsciiText(CLIPBOARD_TYPE_COPY_PASTE, &ascii_text); 299 clipboard().ReadAsciiText(CLIPBOARD_TYPE_COPY_PASTE, &ascii_text);
310 EXPECT_EQ(UTF16ToUTF8(text), ascii_text); 300 EXPECT_EQ(UTF16ToUTF8(text), ascii_text);
311 } 301 }
312 302
313 TEST_F(ClipboardTest, URLTest) { 303 TEST_F(ClipboardTest, URLTest) {
314 base::string16 url(ASCIIToUTF16("http://www.google.com/")); 304 base::string16 url(ASCIIToUTF16("http://www.google.com/"));
315 305
316 { 306 {
317 ScopedClipboardWriter clipboard_writer(&clipboard(), 307 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
318 CLIPBOARD_TYPE_COPY_PASTE);
319 clipboard_writer.WriteURL(url); 308 clipboard_writer.WriteURL(url);
320 } 309 }
321 310
322 EXPECT_TRUE(clipboard().IsFormatAvailable( 311 EXPECT_TRUE(clipboard().IsFormatAvailable(
323 Clipboard::GetPlainTextWFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); 312 Clipboard::GetPlainTextWFormatType(), CLIPBOARD_TYPE_COPY_PASTE));
324 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetPlainTextFormatType(), 313 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetPlainTextFormatType(),
325 CLIPBOARD_TYPE_COPY_PASTE)); 314 CLIPBOARD_TYPE_COPY_PASTE));
326 base::string16 text_result; 315 base::string16 text_result;
327 clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &text_result); 316 clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &text_result);
328 317
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 } 524 }
536 525
537 TEST_F(ClipboardTest, DataTest) { 526 TEST_F(ClipboardTest, DataTest) {
538 const ui::Clipboard::FormatType kFormat = 527 const ui::Clipboard::FormatType kFormat =
539 ui::Clipboard::GetFormatType("chromium/x-test-format"); 528 ui::Clipboard::GetFormatType("chromium/x-test-format");
540 std::string payload("test string"); 529 std::string payload("test string");
541 Pickle write_pickle; 530 Pickle write_pickle;
542 write_pickle.WriteString(payload); 531 write_pickle.WriteString(payload);
543 532
544 { 533 {
545 ScopedClipboardWriter clipboard_writer(&clipboard(), 534 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
546 CLIPBOARD_TYPE_COPY_PASTE);
547 clipboard_writer.WritePickledData(write_pickle, kFormat); 535 clipboard_writer.WritePickledData(write_pickle, kFormat);
548 } 536 }
549 537
550 ASSERT_TRUE(clipboard().IsFormatAvailable( 538 ASSERT_TRUE(clipboard().IsFormatAvailable(
551 kFormat, CLIPBOARD_TYPE_COPY_PASTE)); 539 kFormat, CLIPBOARD_TYPE_COPY_PASTE));
552 std::string output; 540 std::string output;
553 clipboard().ReadData(kFormat, &output); 541 clipboard().ReadData(kFormat, &output);
554 ASSERT_FALSE(output.empty()); 542 ASSERT_FALSE(output.empty());
555 543
556 Pickle read_pickle(output.data(), output.size()); 544 Pickle read_pickle(output.data(), output.size());
(...skipping 10 matching lines...) Expand all
567 Pickle write_pickle1; 555 Pickle write_pickle1;
568 write_pickle1.WriteString(payload1); 556 write_pickle1.WriteString(payload1);
569 557
570 const ui::Clipboard::FormatType kFormat2 = 558 const ui::Clipboard::FormatType kFormat2 =
571 ui::Clipboard::GetFormatType("chromium/x-test-format2"); 559 ui::Clipboard::GetFormatType("chromium/x-test-format2");
572 std::string payload2("test string2"); 560 std::string payload2("test string2");
573 Pickle write_pickle2; 561 Pickle write_pickle2;
574 write_pickle2.WriteString(payload2); 562 write_pickle2.WriteString(payload2);
575 563
576 { 564 {
577 ScopedClipboardWriter clipboard_writer(&clipboard(), 565 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
578 CLIPBOARD_TYPE_COPY_PASTE);
579 clipboard_writer.WritePickledData(write_pickle1, kFormat1); 566 clipboard_writer.WritePickledData(write_pickle1, kFormat1);
580 // overwrite the previous pickle for fun 567 // overwrite the previous pickle for fun
581 clipboard_writer.WritePickledData(write_pickle2, kFormat2); 568 clipboard_writer.WritePickledData(write_pickle2, kFormat2);
582 } 569 }
583 570
584 ASSERT_TRUE(clipboard().IsFormatAvailable( 571 ASSERT_TRUE(clipboard().IsFormatAvailable(
585 kFormat2, CLIPBOARD_TYPE_COPY_PASTE)); 572 kFormat2, CLIPBOARD_TYPE_COPY_PASTE));
586 573
587 // Check string 2. 574 // Check string 2.
588 std::string output2; 575 std::string output2;
589 clipboard().ReadData(kFormat2, &output2); 576 clipboard().ReadData(kFormat2, &output2);
590 ASSERT_FALSE(output2.empty()); 577 ASSERT_FALSE(output2.empty());
591 578
592 Pickle read_pickle2(output2.data(), output2.size()); 579 Pickle read_pickle2(output2.data(), output2.size());
593 PickleIterator iter2(read_pickle2); 580 PickleIterator iter2(read_pickle2);
594 std::string unpickled_string2; 581 std::string unpickled_string2;
595 ASSERT_TRUE(read_pickle2.ReadString(&iter2, &unpickled_string2)); 582 ASSERT_TRUE(read_pickle2.ReadString(&iter2, &unpickled_string2));
596 EXPECT_EQ(payload2, unpickled_string2); 583 EXPECT_EQ(payload2, unpickled_string2);
597 584
598 { 585 {
599 ScopedClipboardWriter clipboard_writer(&clipboard(), 586 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
600 CLIPBOARD_TYPE_COPY_PASTE);
601 clipboard_writer.WritePickledData(write_pickle2, kFormat2); 587 clipboard_writer.WritePickledData(write_pickle2, kFormat2);
602 // overwrite the previous pickle for fun 588 // overwrite the previous pickle for fun
603 clipboard_writer.WritePickledData(write_pickle1, kFormat1); 589 clipboard_writer.WritePickledData(write_pickle1, kFormat1);
604 } 590 }
605 591
606 ASSERT_TRUE(clipboard().IsFormatAvailable( 592 ASSERT_TRUE(clipboard().IsFormatAvailable(
607 kFormat1, CLIPBOARD_TYPE_COPY_PASTE)); 593 kFormat1, CLIPBOARD_TYPE_COPY_PASTE));
608 594
609 // Check string 1. 595 // Check string 1.
610 std::string output1; 596 std::string output1;
(...skipping 11 matching lines...) Expand all
622 TEST_F(ClipboardTest, HyperlinkTest) { 608 TEST_F(ClipboardTest, HyperlinkTest) {
623 const std::string kTitle("The <Example> Company's \"home page\""); 609 const std::string kTitle("The <Example> Company's \"home page\"");
624 const std::string kUrl("http://www.example.com?x=3&lt=3#\"'<>"); 610 const std::string kUrl("http://www.example.com?x=3&lt=3#\"'<>");
625 const std::string kExpectedHtml( 611 const std::string kExpectedHtml(
626 "<a href=\"http://www.example.com?x=3&amp;lt=3#&quot;&#39;&lt;&gt;\">" 612 "<a href=\"http://www.example.com?x=3&amp;lt=3#&quot;&#39;&lt;&gt;\">"
627 "The &lt;Example&gt; Company&#39;s &quot;home page&quot;</a>"); 613 "The &lt;Example&gt; Company&#39;s &quot;home page&quot;</a>");
628 614
629 std::string url_result; 615 std::string url_result;
630 base::string16 html_result; 616 base::string16 html_result;
631 { 617 {
632 ScopedClipboardWriter clipboard_writer(&clipboard(), 618 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
633 CLIPBOARD_TYPE_COPY_PASTE);
634 clipboard_writer.WriteHyperlink(ASCIIToUTF16(kTitle), kUrl); 619 clipboard_writer.WriteHyperlink(ASCIIToUTF16(kTitle), kUrl);
635 } 620 }
636 621
637 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetHtmlFormatType(), 622 EXPECT_TRUE(clipboard().IsFormatAvailable(Clipboard::GetHtmlFormatType(),
638 CLIPBOARD_TYPE_COPY_PASTE)); 623 CLIPBOARD_TYPE_COPY_PASTE));
639 uint32 ignored; 624 uint32 ignored;
640 clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &html_result, &url_result, 625 clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &html_result, &url_result,
641 &ignored, &ignored); 626 &ignored, &ignored);
642 EXPECT_PRED2(MarkupMatches, ASCIIToUTF16(kExpectedHtml), html_result); 627 EXPECT_PRED2(MarkupMatches, ASCIIToUTF16(kExpectedHtml), html_result);
643 } 628 }
644 #endif 629 #endif
645 630
646 #if defined(OS_WIN) // Windows only tests. 631 #if defined(OS_WIN) // Windows only tests.
647 TEST_F(ClipboardTest, WebSmartPasteTest) { 632 TEST_F(ClipboardTest, WebSmartPasteTest) {
648 { 633 {
649 ScopedClipboardWriter clipboard_writer(&clipboard(), 634 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
650 CLIPBOARD_TYPE_COPY_PASTE);
651 clipboard_writer.WriteWebSmartPaste(); 635 clipboard_writer.WriteWebSmartPaste();
652 } 636 }
653 637
654 EXPECT_TRUE(clipboard().IsFormatAvailable( 638 EXPECT_TRUE(clipboard().IsFormatAvailable(
655 Clipboard::GetWebKitSmartPasteFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); 639 Clipboard::GetWebKitSmartPasteFormatType(), CLIPBOARD_TYPE_COPY_PASTE));
656 } 640 }
657 641
658 void HtmlTestHelper(const std::string& cf_html, 642 void HtmlTestHelper(const std::string& cf_html,
659 const std::string& expected_html) { 643 const std::string& expected_html) {
660 std::string html; 644 std::string html;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
694 "<p>Foo</p>\r\n" 678 "<p>Foo</p>\r\n"
695 "</body>\r\n" 679 "</body>\r\n"
696 "</html>\r\n\r\n", 680 "</html>\r\n\r\n",
697 "<p>Foo</p>"); 681 "<p>Foo</p>");
698 } 682 }
699 #endif // defined(OS_WIN) 683 #endif // defined(OS_WIN)
700 684
701 // Test writing all formats we have simultaneously. 685 // Test writing all formats we have simultaneously.
702 TEST_F(ClipboardTest, WriteEverything) { 686 TEST_F(ClipboardTest, WriteEverything) {
703 { 687 {
704 ScopedClipboardWriter writer(&clipboard(), CLIPBOARD_TYPE_COPY_PASTE); 688 ScopedClipboardWriter writer(CLIPBOARD_TYPE_COPY_PASTE);
705 writer.WriteText(UTF8ToUTF16("foo")); 689 writer.WriteText(UTF8ToUTF16("foo"));
706 writer.WriteURL(UTF8ToUTF16("foo")); 690 writer.WriteURL(UTF8ToUTF16("foo"));
707 writer.WriteHTML(UTF8ToUTF16("foo"), "bar"); 691 writer.WriteHTML(UTF8ToUTF16("foo"), "bar");
708 writer.WriteBookmark(UTF8ToUTF16("foo"), "bar"); 692 writer.WriteBookmark(UTF8ToUTF16("foo"), "bar");
709 writer.WriteHyperlink(ASCIIToUTF16("foo"), "bar"); 693 writer.WriteHyperlink(ASCIIToUTF16("foo"), "bar");
710 writer.WriteWebSmartPaste(); 694 writer.WriteWebSmartPaste();
711 // Left out: WriteFile, WriteFiles, WriteBitmapFromPixels, WritePickledData. 695 // Left out: WriteFile, WriteFiles, WriteBitmapFromPixels, WritePickledData.
712 } 696 }
713 697
714 // Passes if we don't crash. 698 // Passes if we don't crash.
715 } 699 }
716 700
717 // TODO(dcheng): Fix this test for Android. It's rather involved, since the 701 // TODO(dcheng): Fix this test for Android. It's rather involved, since the
718 // clipboard change listener is posted to the Java message loop, and spinning 702 // clipboard change listener is posted to the Java message loop, and spinning
719 // that loop from C++ to trigger the callback in the test requires a non-trivial 703 // that loop from C++ to trigger the callback in the test requires a non-trivial
720 // amount of additional work. 704 // amount of additional work.
721 #if !defined(OS_ANDROID) 705 #if !defined(OS_ANDROID)
722 // Simple test that the sequence number appears to change when the clipboard is 706 // Simple test that the sequence number appears to change when the clipboard is
723 // written to. 707 // written to.
724 // TODO(dcheng): Add a version to test CLIPBOARD_TYPE_SELECTION. 708 // TODO(dcheng): Add a version to test CLIPBOARD_TYPE_SELECTION.
725 TEST_F(ClipboardTest, GetSequenceNumber) { 709 TEST_F(ClipboardTest, GetSequenceNumber) {
726 const uint64 first_sequence_number = 710 const uint64 first_sequence_number =
727 clipboard().GetSequenceNumber(CLIPBOARD_TYPE_COPY_PASTE); 711 clipboard().GetSequenceNumber(CLIPBOARD_TYPE_COPY_PASTE);
728 712
729 { 713 {
730 ScopedClipboardWriter writer(&clipboard(), CLIPBOARD_TYPE_COPY_PASTE); 714 ScopedClipboardWriter writer(CLIPBOARD_TYPE_COPY_PASTE);
731 writer.WriteText(UTF8ToUTF16("World")); 715 writer.WriteText(UTF8ToUTF16("World"));
732 } 716 }
733 717
734 // On some platforms, the sequence number is updated by a UI callback so pump 718 // On some platforms, the sequence number is updated by a UI callback so pump
735 // the message loop to make sure we get the notification. 719 // the message loop to make sure we get the notification.
736 base::RunLoop().RunUntilIdle(); 720 base::RunLoop().RunUntilIdle();
737 721
738 const uint64 second_sequence_number = 722 const uint64 second_sequence_number =
739 clipboard().GetSequenceNumber(CLIPBOARD_TYPE_COPY_PASTE); 723 clipboard().GetSequenceNumber(CLIPBOARD_TYPE_COPY_PASTE);
740 724
741 EXPECT_NE(first_sequence_number, second_sequence_number); 725 EXPECT_NE(first_sequence_number, second_sequence_number);
742 } 726 }
743 #endif 727 #endif
744 728
745 #if defined(OS_ANDROID) 729 #if defined(OS_ANDROID)
746 730
747 // Test that if another application writes some text to the pasteboard the 731 // Test that if another application writes some text to the pasteboard the
748 // clipboard properly invalidates other types. 732 // clipboard properly invalidates other types.
749 TEST_F(ClipboardTest, InternalClipboardInvalidation) { 733 TEST_F(ClipboardTest, InternalClipboardInvalidation) {
750 // Write a Webkit smart paste tag to our clipboard. 734 // Write a Webkit smart paste tag to our clipboard.
751 { 735 {
752 ScopedClipboardWriter clipboard_writer(&clipboard(), 736 ScopedClipboardWriter clipboard_writer(CLIPBOARD_TYPE_COPY_PASTE);
753 CLIPBOARD_TYPE_COPY_PASTE);
754 clipboard_writer.WriteWebSmartPaste(); 737 clipboard_writer.WriteWebSmartPaste();
755 } 738 }
756 EXPECT_TRUE(clipboard().IsFormatAvailable( 739 EXPECT_TRUE(clipboard().IsFormatAvailable(
757 Clipboard::GetWebKitSmartPasteFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); 740 Clipboard::GetWebKitSmartPasteFormatType(), CLIPBOARD_TYPE_COPY_PASTE));
758 741
759 // 742 //
760 // Simulate that another application copied something in the Clipboard 743 // Simulate that another application copied something in the Clipboard
761 // 744 //
762 std::string new_value("Some text copied by some other app"); 745 std::string new_value("Some text copied by some other app");
763 using base::android::ConvertUTF8ToJavaString; 746 using base::android::ConvertUTF8ToJavaString;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 EXPECT_TRUE(clipboard().IsFormatAvailable( 788 EXPECT_TRUE(clipboard().IsFormatAvailable(
806 Clipboard::GetPlainTextWFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); 789 Clipboard::GetPlainTextWFormatType(), CLIPBOARD_TYPE_COPY_PASTE));
807 790
808 // Make sure the text is what we inserted while simulating the other app 791 // Make sure the text is what we inserted while simulating the other app
809 std::string contents; 792 std::string contents;
810 clipboard().ReadAsciiText(CLIPBOARD_TYPE_COPY_PASTE, &contents); 793 clipboard().ReadAsciiText(CLIPBOARD_TYPE_COPY_PASTE, &contents);
811 EXPECT_EQ(contents, new_value); 794 EXPECT_EQ(contents, new_value);
812 } 795 }
813 #endif 796 #endif
814 } // namespace ui 797 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698