23
23
#include " base/run_loop.h"
24
24
#include " base/strings/string_util.h"
25
25
#include " base/strings/utf_string_conversions.h"
26
+ #include " testing/gmock/include/gmock/gmock-matchers.h"
26
27
#include " testing/gtest/include/gtest/gtest.h"
27
28
#include " testing/platform_test.h"
28
29
#include " third_party/skia/include/core/SkBitmap.h"
@@ -46,6 +47,8 @@ using base::ASCIIToUTF16;
46
47
using base::UTF8ToUTF16;
47
48
using base::UTF16ToUTF8;
48
49
50
+ using testing::Contains;
51
+
49
52
namespace ui {
50
53
51
54
template <typename ClipboardTraits>
@@ -64,6 +67,13 @@ class ClipboardTest : public PlatformTest {
64
67
protected:
65
68
Clipboard& clipboard () { return *clipboard_; }
66
69
70
+ std::vector<base::string16> GetAvailableTypes (ClipboardType type) {
71
+ bool contains_filenames;
72
+ std::vector<base::string16> types;
73
+ clipboard ().ReadAvailableTypes (type, &types, &contains_filenames);
74
+ return types;
75
+ }
76
+
67
77
private:
68
78
base::MessageLoopForUI message_loop_;
69
79
#if defined(USE_AURA)
@@ -89,6 +99,7 @@ TYPED_TEST(ClipboardTest, ClearTest) {
89
99
90
100
this ->clipboard ().Clear (CLIPBOARD_TYPE_COPY_PASTE);
91
101
102
+ EXPECT_TRUE (this ->GetAvailableTypes (CLIPBOARD_TYPE_COPY_PASTE).empty ());
92
103
EXPECT_FALSE (this ->clipboard ().IsFormatAvailable (
93
104
Clipboard::GetPlainTextWFormatType (), CLIPBOARD_TYPE_COPY_PASTE));
94
105
EXPECT_FALSE (this ->clipboard ().IsFormatAvailable (
@@ -104,6 +115,8 @@ TYPED_TEST(ClipboardTest, TextTest) {
104
115
clipboard_writer.WriteText (text);
105
116
}
106
117
118
+ EXPECT_THAT (this ->GetAvailableTypes (CLIPBOARD_TYPE_COPY_PASTE),
119
+ Contains (ASCIIToUTF16 (Clipboard::kMimeTypeText )));
107
120
EXPECT_TRUE (this ->clipboard ().IsFormatAvailable (
108
121
Clipboard::GetPlainTextWFormatType (), CLIPBOARD_TYPE_COPY_PASTE));
109
122
EXPECT_TRUE (this ->clipboard ().IsFormatAvailable (
@@ -126,6 +139,8 @@ TYPED_TEST(ClipboardTest, HTMLTest) {
126
139
clipboard_writer.WriteHTML (markup, url);
127
140
}
128
141
142
+ EXPECT_THAT (this ->GetAvailableTypes (CLIPBOARD_TYPE_COPY_PASTE),
143
+ Contains (ASCIIToUTF16 (Clipboard::kMimeTypeHTML )));
129
144
EXPECT_TRUE (this ->clipboard ().IsFormatAvailable (
130
145
Clipboard::GetHtmlFormatType (), CLIPBOARD_TYPE_COPY_PASTE));
131
146
uint32 fragment_start;
@@ -153,6 +168,8 @@ TYPED_TEST(ClipboardTest, RTFTest) {
153
168
clipboard_writer.WriteRTF (rtf);
154
169
}
155
170
171
+ EXPECT_THAT (this ->GetAvailableTypes (CLIPBOARD_TYPE_COPY_PASTE),
172
+ Contains (ASCIIToUTF16 (Clipboard::kMimeTypeRTF )));
156
173
EXPECT_TRUE (this ->clipboard ().IsFormatAvailable (Clipboard::GetRtfFormatType (),
157
174
CLIPBOARD_TYPE_COPY_PASTE));
158
175
std::string result;
@@ -178,6 +195,11 @@ TYPED_TEST(ClipboardTest, MultipleBufferTest) {
178
195
clipboard_writer.WriteHTML (markup, url);
179
196
}
180
197
198
+ EXPECT_THAT (this ->GetAvailableTypes (CLIPBOARD_TYPE_COPY_PASTE),
199
+ Contains (ASCIIToUTF16 (Clipboard::kMimeTypeText )));
200
+ EXPECT_THAT (this ->GetAvailableTypes (CLIPBOARD_TYPE_SELECTION),
201
+ Contains (ASCIIToUTF16 (Clipboard::kMimeTypeHTML )));
202
+
181
203
EXPECT_TRUE (this ->clipboard ().IsFormatAvailable (
182
204
Clipboard::GetPlainTextFormatType (), CLIPBOARD_TYPE_COPY_PASTE));
183
205
EXPECT_FALSE (this ->clipboard ().IsFormatAvailable (
@@ -214,6 +236,8 @@ TYPED_TEST(ClipboardTest, TrickyHTMLTest) {
214
236
clipboard_writer.WriteHTML (markup, url);
215
237
}
216
238
239
+ EXPECT_THAT (this ->GetAvailableTypes (CLIPBOARD_TYPE_COPY_PASTE),
240
+ Contains (ASCIIToUTF16 (Clipboard::kMimeTypeHTML )));
217
241
EXPECT_TRUE (this ->clipboard ().IsFormatAvailable (
218
242
Clipboard::GetHtmlFormatType (), CLIPBOARD_TYPE_COPY_PASTE));
219
243
uint32 fragment_start;
@@ -242,6 +266,8 @@ TYPED_TEST(ClipboardTest, UnicodeHTMLTest) {
242
266
clipboard_writer.WriteHTML (markup, url);
243
267
}
244
268
269
+ EXPECT_THAT (this ->GetAvailableTypes (CLIPBOARD_TYPE_COPY_PASTE),
270
+ Contains (ASCIIToUTF16 (Clipboard::kMimeTypeHTML )));
245
271
EXPECT_TRUE (this ->clipboard ().IsFormatAvailable (
246
272
Clipboard::GetHtmlFormatType (), CLIPBOARD_TYPE_COPY_PASTE));
247
273
uint32 fragment_start;
@@ -287,6 +313,10 @@ TYPED_TEST(ClipboardTest, MultiFormatTest) {
287
313
clipboard_writer.WriteText (text);
288
314
}
289
315
316
+ EXPECT_THAT (this ->GetAvailableTypes (CLIPBOARD_TYPE_COPY_PASTE),
317
+ Contains (ASCIIToUTF16 (Clipboard::kMimeTypeHTML )));
318
+ EXPECT_THAT (this ->GetAvailableTypes (CLIPBOARD_TYPE_COPY_PASTE),
319
+ Contains (ASCIIToUTF16 (Clipboard::kMimeTypeText )));
290
320
EXPECT_TRUE (this ->clipboard ().IsFormatAvailable (
291
321
Clipboard::GetHtmlFormatType (), CLIPBOARD_TYPE_COPY_PASTE));
292
322
EXPECT_TRUE (this ->clipboard ().IsFormatAvailable (
@@ -319,6 +349,8 @@ TYPED_TEST(ClipboardTest, URLTest) {
319
349
clipboard_writer.WriteURL (url);
320
350
}
321
351
352
+ EXPECT_THAT (this ->GetAvailableTypes (CLIPBOARD_TYPE_COPY_PASTE),
353
+ Contains (ASCIIToUTF16 (Clipboard::kMimeTypeText )));
322
354
EXPECT_TRUE (this ->clipboard ().IsFormatAvailable (
323
355
Clipboard::GetPlainTextWFormatType (), CLIPBOARD_TYPE_COPY_PASTE));
324
356
EXPECT_TRUE (this ->clipboard ().IsFormatAvailable (
0 commit comments