OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/clipboard.h" | 8 #include "base/clipboard.h" |
9 #include "base/platform_test.h" | 9 #include "base/platform_test.h" |
10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 EXPECT_EQ(true, clipboard.IsFormatAvailable( | 35 EXPECT_EQ(true, clipboard.IsFormatAvailable( |
36 Clipboard::GetPlainTextWFormatType())); | 36 Clipboard::GetPlainTextWFormatType())); |
37 EXPECT_EQ(true, clipboard.IsFormatAvailable( | 37 EXPECT_EQ(true, clipboard.IsFormatAvailable( |
38 Clipboard::GetPlainTextFormatType())); | 38 Clipboard::GetPlainTextFormatType())); |
39 clipboard.ReadText(&text_result); | 39 clipboard.ReadText(&text_result); |
40 EXPECT_EQ(text, text_result); | 40 EXPECT_EQ(text, text_result); |
41 clipboard.ReadAsciiText(&ascii_text); | 41 clipboard.ReadAsciiText(&ascii_text); |
42 EXPECT_EQ(WideToUTF8(text), ascii_text); | 42 EXPECT_EQ(WideToUTF8(text), ascii_text); |
43 } | 43 } |
44 | 44 |
| 45 TEST_F(ClipboardTest, OverwriteTest) { |
| 46 Clipboard clipboard; |
| 47 |
| 48 std::wstring text1(L"first string"), text2(L"second string"), text_result; |
| 49 |
| 50 clipboard.Clear(); |
| 51 clipboard.WriteText(text1); |
| 52 clipboard.WriteText(text2); |
| 53 |
| 54 EXPECT_TRUE(clipboard.IsFormatAvailable( |
| 55 Clipboard::GetPlainTextWFormatType())); |
| 56 clipboard.ReadText(&text_result); |
| 57 EXPECT_EQ(text2, text_result); |
| 58 } |
| 59 |
45 TEST_F(ClipboardTest, HTMLTest) { | 60 TEST_F(ClipboardTest, HTMLTest) { |
46 Clipboard clipboard; | 61 Clipboard clipboard; |
47 | 62 |
48 std::wstring markup(L"<strong>Hi!</string>"), markup_result; | 63 std::wstring markup(L"<strong>Hi!</string>"), markup_result; |
49 std::string url("http://www.example.com/"), url_result; | 64 std::string url("http://www.example.com/"), url_result; |
50 | 65 |
51 clipboard.Clear(); | 66 clipboard.Clear(); |
52 clipboard.WriteHTML(markup, url); | 67 clipboard.WriteHTML(markup, url); |
53 EXPECT_EQ(true, clipboard.IsFormatAvailable( | 68 EXPECT_EQ(true, clipboard.IsFormatAvailable( |
54 Clipboard::GetHtmlFormatType())); | 69 Clipboard::GetHtmlFormatType())); |
55 clipboard.ReadHTML(&markup_result, &url_result); | 70 clipboard.ReadHTML(&markup_result, &url_result); |
56 EXPECT_EQ(markup, markup_result); | 71 EXPECT_EQ(markup, markup_result); |
57 #if defined(OS_WIN) | 72 #if defined(OS_WIN) |
58 // TODO(playmobil): It's not clear that non windows clipboards need to support | 73 // TODO(playmobil): It's not clear that non windows clipboards need to support |
59 // this. | 74 // this. |
60 EXPECT_EQ(url, url_result); | 75 EXPECT_EQ(url, url_result); |
61 #endif | 76 #endif |
62 } | 77 } |
63 | 78 |
64 // TODO(estade): Port the following tests. | |
65 #if !defined(OS_LINUX) | |
66 TEST_F(ClipboardTest, TrickyHTMLTest) { | 79 TEST_F(ClipboardTest, TrickyHTMLTest) { |
67 Clipboard clipboard; | 80 Clipboard clipboard; |
68 | 81 |
69 std::wstring markup(L"<em>Bye!<!--EndFragment --></em>"), markup_result; | 82 std::wstring markup(L"<em>Bye!<!--EndFragment --></em>"), markup_result; |
70 std::string url, url_result; | 83 std::string url, url_result; |
71 | 84 |
72 clipboard.Clear(); | 85 clipboard.Clear(); |
73 clipboard.WriteHTML(markup, url); | 86 clipboard.WriteHTML(markup, url); |
74 EXPECT_EQ(true, clipboard.IsFormatAvailable( | 87 EXPECT_EQ(true, clipboard.IsFormatAvailable( |
75 Clipboard::GetHtmlFormatType())); | 88 Clipboard::GetHtmlFormatType())); |
76 clipboard.ReadHTML(&markup_result, &url_result); | 89 clipboard.ReadHTML(&markup_result, &url_result); |
77 EXPECT_EQ(markup, markup_result); | 90 EXPECT_EQ(markup, markup_result); |
78 | 91 #if defined(OS_WIN) |
79 #if defined(OS_MACOSX) | 92 // TODO(playmobil): It's not clear that non windows clipboards need to support |
80 // TODO(playmobil): It's not clear that the OS X clipboard needs to support | |
81 // this. | 93 // this. |
82 #else | |
83 EXPECT_EQ(url, url_result); | 94 EXPECT_EQ(url, url_result); |
84 #endif | 95 #endif |
85 } | 96 } |
86 | 97 |
| 98 // TODO(estade): Port the following test (decide what target we use for urls) |
| 99 #if !defined(OS_LINUX) |
87 TEST_F(ClipboardTest, BookmarkTest) { | 100 TEST_F(ClipboardTest, BookmarkTest) { |
88 Clipboard clipboard; | 101 Clipboard clipboard; |
89 | 102 |
90 std::wstring title(L"The Example Company"), title_result; | 103 std::wstring title(L"The Example Company"), title_result; |
91 std::string url("http://www.example.com/"), url_result; | 104 std::string url("http://www.example.com/"), url_result; |
92 | 105 |
93 clipboard.Clear(); | 106 clipboard.Clear(); |
94 clipboard.WriteBookmark(title, url); | 107 clipboard.WriteBookmark(title, url); |
95 EXPECT_EQ(true, | 108 EXPECT_EQ(true, |
96 clipboard.IsFormatAvailable(Clipboard::GetUrlWFormatType())); | 109 clipboard.IsFormatAvailable(Clipboard::GetUrlWFormatType())); |
97 clipboard.ReadBookmark(&title_result, &url_result); | 110 clipboard.ReadBookmark(&title_result, &url_result); |
98 EXPECT_EQ(title, title_result); | 111 EXPECT_EQ(title, title_result); |
99 EXPECT_EQ(url, url_result); | 112 EXPECT_EQ(url, url_result); |
100 } | 113 } |
| 114 #endif |
101 | 115 |
102 TEST_F(ClipboardTest, MultiFormatTest) { | 116 TEST_F(ClipboardTest, MultiFormatTest) { |
103 Clipboard clipboard; | 117 Clipboard clipboard; |
104 | 118 |
105 std::wstring text(L"Hi!"), text_result; | 119 std::wstring text(L"Hi!"), text_result; |
106 std::wstring markup(L"<strong>Hi!</string>"), markup_result; | 120 std::wstring markup(L"<strong>Hi!</string>"), markup_result; |
107 std::string url("http://www.example.com/"), url_result; | 121 std::string url("http://www.example.com/"), url_result; |
108 std::string ascii_text; | 122 std::string ascii_text; |
109 | 123 |
110 clipboard.Clear(); | 124 clipboard.Clear(); |
111 clipboard.WriteHTML(markup, url); | 125 clipboard.WriteHTML(markup, url); |
112 clipboard.WriteText(text); | 126 clipboard.WriteText(text); |
113 EXPECT_EQ(true, | 127 EXPECT_EQ(true, |
114 clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType())); | 128 clipboard.IsFormatAvailable(Clipboard::GetHtmlFormatType())); |
115 EXPECT_EQ(true, clipboard.IsFormatAvailable( | 129 EXPECT_EQ(true, clipboard.IsFormatAvailable( |
116 Clipboard::GetPlainTextWFormatType())); | 130 Clipboard::GetPlainTextWFormatType())); |
117 EXPECT_EQ(true, clipboard.IsFormatAvailable( | 131 EXPECT_EQ(true, clipboard.IsFormatAvailable( |
118 Clipboard::GetPlainTextFormatType())); | 132 Clipboard::GetPlainTextFormatType())); |
119 clipboard.ReadHTML(&markup_result, &url_result); | 133 clipboard.ReadHTML(&markup_result, &url_result); |
120 EXPECT_EQ(markup, markup_result); | 134 EXPECT_EQ(markup, markup_result); |
121 #if defined(OS_MACOSX) | 135 #if defined(OS_WIN) |
122 // TODO(playmobil): It's not clear that the OS X clipboard needs to support | 136 // TODO(playmobil): It's not clear that non windows clipboards need to support |
123 // this. | 137 // this. |
124 #else | |
125 EXPECT_EQ(url, url_result); | 138 EXPECT_EQ(url, url_result); |
126 #endif | 139 #endif |
127 clipboard.ReadText(&text_result); | 140 clipboard.ReadText(&text_result); |
128 EXPECT_EQ(text, text_result); | 141 EXPECT_EQ(text, text_result); |
129 clipboard.ReadAsciiText(&ascii_text); | 142 clipboard.ReadAsciiText(&ascii_text); |
130 EXPECT_EQ(WideToUTF8(text), ascii_text); | 143 EXPECT_EQ(WideToUTF8(text), ascii_text); |
131 } | 144 } |
132 | 145 |
| 146 // TODO(estade): Port the following tests (decide what targets we use for files) |
| 147 #if !defined(OS_LINUX) |
133 // Files for this test don't actually need to exist on the file system, just | 148 // Files for this test don't actually need to exist on the file system, just |
134 // don't try to use a non-existent file you've retrieved from the clipboard. | 149 // don't try to use a non-existent file you've retrieved from the clipboard. |
135 TEST_F(ClipboardTest, FileTest) { | 150 TEST_F(ClipboardTest, FileTest) { |
136 Clipboard clipboard; | 151 Clipboard clipboard; |
137 clipboard.Clear(); | 152 clipboard.Clear(); |
138 #if defined(OS_WIN) | 153 #if defined(OS_WIN) |
139 std::wstring file = L"C:\\Downloads\\My Downloads\\A Special File.txt"; | 154 std::wstring file = L"C:\\Downloads\\My Downloads\\A Special File.txt"; |
140 #else | 155 #else |
141 // OS X will print a warning message if we stick a non-existant file on the | 156 // OS X will print a warning message if we stick a non-existant file on the |
142 // clipboard. | 157 // clipboard. |
(...skipping 26 matching lines...) Expand all Loading... |
169 files.push_back(file3); | 184 files.push_back(file3); |
170 clipboard.WriteFiles(files); | 185 clipboard.WriteFiles(files); |
171 | 186 |
172 std::vector<std::wstring> out_files; | 187 std::vector<std::wstring> out_files; |
173 clipboard.ReadFiles(&out_files); | 188 clipboard.ReadFiles(&out_files); |
174 | 189 |
175 EXPECT_EQ(files.size(), out_files.size()); | 190 EXPECT_EQ(files.size(), out_files.size()); |
176 for (size_t i = 0; i < out_files.size(); ++i) | 191 for (size_t i = 0; i < out_files.size(); ++i) |
177 EXPECT_EQ(files[i], out_files[i]); | 192 EXPECT_EQ(files[i], out_files[i]); |
178 } | 193 } |
| 194 #endif // !defined(OS_LINUX) |
179 | 195 |
180 #if defined(OS_WIN) // Windows only tests. | 196 #if defined(OS_WIN) // Windows only tests. |
181 TEST_F(ClipboardTest, HyperlinkTest) { | 197 TEST_F(ClipboardTest, HyperlinkTest) { |
182 Clipboard clipboard; | 198 Clipboard clipboard; |
183 | 199 |
184 std::wstring title(L"The Example Company"), title_result; | 200 std::wstring title(L"The Example Company"), title_result; |
185 std::string url("http://www.example.com/"), url_result; | 201 std::string url("http://www.example.com/"), url_result; |
186 std::wstring html(L"<a href=\"http://www.example.com/\">" | 202 std::wstring html(L"<a href=\"http://www.example.com/\">" |
187 L"The Example Company</a>"), html_result; | 203 L"The Example Company</a>"), html_result; |
188 | 204 |
(...skipping 28 matching lines...) Expand all Loading... |
217 }; | 233 }; |
218 | 234 |
219 Clipboard clipboard; | 235 Clipboard clipboard; |
220 | 236 |
221 clipboard.Clear(); | 237 clipboard.Clear(); |
222 clipboard.WriteBitmap(fake_bitmap, gfx::Size(3, 4)); | 238 clipboard.WriteBitmap(fake_bitmap, gfx::Size(3, 4)); |
223 EXPECT_EQ(true, clipboard.IsFormatAvailable( | 239 EXPECT_EQ(true, clipboard.IsFormatAvailable( |
224 Clipboard::GetBitmapFormatType())); | 240 Clipboard::GetBitmapFormatType())); |
225 } | 241 } |
226 #endif | 242 #endif |
227 #endif // !defined(OS_LINUX) | |
OLD | NEW |