Chromium Code Reviews| Index: ui/base/clipboard/clipboard_test_template.h |
| diff --git a/ui/base/clipboard/clipboard_test_template.h b/ui/base/clipboard/clipboard_test_template.h |
| index 844266bcf6bc7cb761cfa770701e09eaae71102e..0bfd8e8d419a45d12bedb21083ca0fe39beabca9 100644 |
| --- a/ui/base/clipboard/clipboard_test_template.h |
| +++ b/ui/base/clipboard/clipboard_test_template.h |
| @@ -23,6 +23,7 @@ |
| #include "base/run_loop.h" |
| #include "base/strings/string_util.h" |
| #include "base/strings/utf_string_conversions.h" |
| +#include "testing/gmock/include/gmock/gmock-matchers.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| #include "testing/platform_test.h" |
| #include "third_party/skia/include/core/SkBitmap.h" |
| @@ -46,6 +47,8 @@ using base::ASCIIToUTF16; |
| using base::UTF8ToUTF16; |
| using base::UTF16ToUTF8; |
| +using testing::Contains; |
| + |
| namespace ui { |
| template <typename ClipboardTraits> |
| @@ -64,6 +67,13 @@ class ClipboardTest : public PlatformTest { |
| protected: |
| Clipboard& clipboard() { return *clipboard_; } |
| + std::vector<base::string16> GetAvailableTypes(ClipboardType type) { |
| + bool contains_filenames; |
| + std::vector<base::string16> types; |
| + clipboard().ReadAvailableTypes(type, &types, &contains_filenames); |
| + return types; |
| + } |
| + |
| private: |
| base::MessageLoopForUI message_loop_; |
| #if defined(USE_AURA) |
| @@ -89,6 +99,7 @@ TYPED_TEST(ClipboardTest, ClearTest) { |
| this->clipboard().Clear(CLIPBOARD_TYPE_COPY_PASTE); |
| + EXPECT_TRUE(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE).empty()); |
| EXPECT_FALSE(this->clipboard().IsFormatAvailable( |
| Clipboard::GetPlainTextWFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); |
| EXPECT_FALSE(this->clipboard().IsFormatAvailable( |
| @@ -104,6 +115,8 @@ TYPED_TEST(ClipboardTest, TextTest) { |
| clipboard_writer.WriteText(text); |
| } |
| + EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), |
| + Contains(base::string16(ASCIIToUTF16(Clipboard::kMimeTypeText)))); |
|
dcheng
2015/07/16 06:10:00
Here and elsewhere, the explicit invocation of bas
|
| EXPECT_TRUE(this->clipboard().IsFormatAvailable( |
| Clipboard::GetPlainTextWFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); |
| EXPECT_TRUE(this->clipboard().IsFormatAvailable( |
| @@ -126,6 +139,8 @@ TYPED_TEST(ClipboardTest, HTMLTest) { |
| clipboard_writer.WriteHTML(markup, url); |
| } |
| + EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), |
| + Contains(base::string16(ASCIIToUTF16(Clipboard::kMimeTypeHTML)))); |
| EXPECT_TRUE(this->clipboard().IsFormatAvailable( |
| Clipboard::GetHtmlFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); |
| uint32 fragment_start; |
| @@ -153,6 +168,8 @@ TYPED_TEST(ClipboardTest, RTFTest) { |
| clipboard_writer.WriteRTF(rtf); |
| } |
| + EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), |
| + Contains(base::string16(ASCIIToUTF16(Clipboard::kMimeTypeRTF)))); |
| EXPECT_TRUE(this->clipboard().IsFormatAvailable(Clipboard::GetRtfFormatType(), |
| CLIPBOARD_TYPE_COPY_PASTE)); |
| std::string result; |
| @@ -178,6 +195,11 @@ TYPED_TEST(ClipboardTest, MultipleBufferTest) { |
| clipboard_writer.WriteHTML(markup, url); |
| } |
| + EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), |
| + Contains(base::string16(ASCIIToUTF16(Clipboard::kMimeTypeText)))); |
| + EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_SELECTION), |
| + Contains(base::string16(ASCIIToUTF16(Clipboard::kMimeTypeHTML)))); |
| + |
| EXPECT_TRUE(this->clipboard().IsFormatAvailable( |
| Clipboard::GetPlainTextFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); |
| EXPECT_FALSE(this->clipboard().IsFormatAvailable( |
| @@ -214,6 +236,8 @@ TYPED_TEST(ClipboardTest, TrickyHTMLTest) { |
| clipboard_writer.WriteHTML(markup, url); |
| } |
| + EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), |
| + Contains(base::string16(ASCIIToUTF16(Clipboard::kMimeTypeHTML)))); |
| EXPECT_TRUE(this->clipboard().IsFormatAvailable( |
| Clipboard::GetHtmlFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); |
| uint32 fragment_start; |
| @@ -242,6 +266,8 @@ TYPED_TEST(ClipboardTest, UnicodeHTMLTest) { |
| clipboard_writer.WriteHTML(markup, url); |
| } |
| + EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), |
| + Contains(base::string16(ASCIIToUTF16(Clipboard::kMimeTypeHTML)))); |
| EXPECT_TRUE(this->clipboard().IsFormatAvailable( |
| Clipboard::GetHtmlFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); |
| uint32 fragment_start; |
| @@ -249,8 +275,8 @@ TYPED_TEST(ClipboardTest, UnicodeHTMLTest) { |
| this->clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result, |
| &url_result, &fragment_start, &fragment_end); |
| EXPECT_LE(markup.size(), fragment_end - fragment_start); |
| - EXPECT_EQ(markup, |
| - markup_result.substr(fragment_end - markup.size(), markup.size())); |
| + EXPECT_EQ(markup, markup_result.substr(fragment_start, |
| + fragment_end - fragment_start)); |
| #if defined(OS_WIN) |
| EXPECT_EQ(url, url_result); |
| #endif |
| @@ -287,6 +313,10 @@ TYPED_TEST(ClipboardTest, MultiFormatTest) { |
| clipboard_writer.WriteText(text); |
| } |
| + EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), |
| + Contains(base::string16(ASCIIToUTF16(Clipboard::kMimeTypeHTML)))); |
| + EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), |
| + Contains(base::string16(ASCIIToUTF16(Clipboard::kMimeTypeText)))); |
| EXPECT_TRUE(this->clipboard().IsFormatAvailable( |
| Clipboard::GetHtmlFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); |
| EXPECT_TRUE(this->clipboard().IsFormatAvailable( |
| @@ -298,8 +328,8 @@ TYPED_TEST(ClipboardTest, MultiFormatTest) { |
| this->clipboard().ReadHTML(CLIPBOARD_TYPE_COPY_PASTE, &markup_result, |
| &url_result, &fragment_start, &fragment_end); |
| EXPECT_LE(markup.size(), fragment_end - fragment_start); |
| - EXPECT_EQ(markup, |
| - markup_result.substr(fragment_end - markup.size(), markup.size())); |
| + EXPECT_EQ(markup, markup_result.substr(fragment_start, |
| + fragment_end - fragment_start)); |
| #if defined(OS_WIN) |
| // TODO(playmobil): It's not clear that non windows clipboards need to support |
| // this. |
| @@ -319,6 +349,8 @@ TYPED_TEST(ClipboardTest, URLTest) { |
| clipboard_writer.WriteURL(url); |
| } |
| + EXPECT_THAT(this->GetAvailableTypes(CLIPBOARD_TYPE_COPY_PASTE), |
| + Contains(base::string16(ASCIIToUTF16(Clipboard::kMimeTypeText)))); |
| EXPECT_TRUE(this->clipboard().IsFormatAvailable( |
| Clipboard::GetPlainTextWFormatType(), CLIPBOARD_TYPE_COPY_PASTE)); |
| EXPECT_TRUE(this->clipboard().IsFormatAvailable( |