summaryrefslogtreecommitdiffstats
path: root/chromium/ui/base/dragdrop/os_exchange_data_provider_aurax11_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/base/dragdrop/os_exchange_data_provider_aurax11_unittest.cc')
-rw-r--r--chromium/ui/base/dragdrop/os_exchange_data_provider_aurax11_unittest.cc93
1 files changed, 88 insertions, 5 deletions
diff --git a/chromium/ui/base/dragdrop/os_exchange_data_provider_aurax11_unittest.cc b/chromium/ui/base/dragdrop/os_exchange_data_provider_aurax11_unittest.cc
index 0f5a914d75b..457ba6b41f7 100644
--- a/chromium/ui/base/dragdrop/os_exchange_data_provider_aurax11_unittest.cc
+++ b/chromium/ui/base/dragdrop/os_exchange_data_provider_aurax11_unittest.cc
@@ -12,34 +12,117 @@
#include "base/strings/string16.h"
#include "base/strings/utf_string_conversions.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/base/dragdrop/file_info.h"
+#include "ui/events/platform/x11/x11_event_source.h"
#include "url/gurl.h"
+const char kFileURL[] = "file:///home/user/file.txt";
+const char kFileName[] = "/home/user/file.txt";
const char kGoogleTitle[] = "Google";
const char kGoogleURL[] = "http://www.google.com/";
-TEST(OSExchangeDataProviderAuraX11Test, MozillaURL) {
+namespace ui {
+
+class OSExchangeDataProviderAuraX11Test : public testing::Test {
+ public:
+ OSExchangeDataProviderAuraX11Test() : event_source(gfx::GetXDisplay()) {}
+
+ void AddURLList(const std::string& list_contents) {
+ std::string contents_copy = list_contents;
+ scoped_refptr<base::RefCountedMemory> mem(
+ base::RefCountedString::TakeString(&contents_copy));
+
+ provider.format_map_.Insert(
+ provider.atom_cache_.GetAtom(ui::Clipboard::kMimeTypeURIList),
+ mem);
+ }
+
+ protected:
base::MessageLoopForUI message_loop;
+ X11EventSource event_source;
ui::OSExchangeDataProviderAuraX11 provider;
+};
+TEST_F(OSExchangeDataProviderAuraX11Test, MozillaURL) {
// Check that we can get titled entries.
- provider.SetURL(GURL(kGoogleURL), ASCIIToUTF16(kGoogleTitle));
+ provider.SetURL(GURL(kGoogleURL), base::ASCIIToUTF16(kGoogleTitle));
{
GURL out_gurl;
base::string16 out_str;
EXPECT_TRUE(provider.GetURLAndTitle(
OSExchangeData::DO_NOT_CONVERT_FILENAMES, &out_gurl, &out_str));
- EXPECT_EQ(ASCIIToUTF16(kGoogleTitle), out_str);
+ EXPECT_EQ(base::ASCIIToUTF16(kGoogleTitle), out_str);
EXPECT_EQ(kGoogleURL, out_gurl.spec());
}
// Check that we can get non-titled entries.
- provider.SetURL(GURL(kGoogleURL), string16());
+ provider.SetURL(GURL(kGoogleURL), base::string16());
{
GURL out_gurl;
base::string16 out_str;
EXPECT_TRUE(provider.GetURLAndTitle(
OSExchangeData::DO_NOT_CONVERT_FILENAMES, &out_gurl, &out_str));
- EXPECT_EQ(string16(), out_str);
+ EXPECT_EQ(base::string16(), out_str);
EXPECT_EQ(kGoogleURL, out_gurl.spec());
}
}
+
+TEST_F(OSExchangeDataProviderAuraX11Test, FilesArentURLs) {
+ AddURLList(kFileURL);
+
+ EXPECT_TRUE(provider.HasFile());
+ EXPECT_TRUE(provider.HasURL(ui::OSExchangeData::CONVERT_FILENAMES));
+ EXPECT_FALSE(provider.HasURL(ui::OSExchangeData::DO_NOT_CONVERT_FILENAMES));
+}
+
+TEST_F(OSExchangeDataProviderAuraX11Test, HTTPURLsArentFiles) {
+ AddURLList(kGoogleURL);
+
+ EXPECT_FALSE(provider.HasFile());
+ EXPECT_TRUE(provider.HasURL(ui::OSExchangeData::CONVERT_FILENAMES));
+ EXPECT_TRUE(provider.HasURL(ui::OSExchangeData::DO_NOT_CONVERT_FILENAMES));
+}
+
+TEST_F(OSExchangeDataProviderAuraX11Test, URIListWithBoth) {
+ AddURLList("file:///home/user/file.txt\nhttp://www.google.com");
+
+ EXPECT_TRUE(provider.HasFile());
+ EXPECT_TRUE(provider.HasURL(ui::OSExchangeData::CONVERT_FILENAMES));
+ EXPECT_TRUE(provider.HasURL(ui::OSExchangeData::DO_NOT_CONVERT_FILENAMES));
+
+ // We should only receive the file from GetFilenames().
+ std::vector<FileInfo> filenames;
+ EXPECT_TRUE(provider.GetFilenames(&filenames));
+ ASSERT_EQ(1u, filenames.size());
+ EXPECT_EQ(kFileName, filenames[0].path.value());
+
+ // We should only receive the URL here.
+ GURL out_gurl;
+ base::string16 out_str;
+ EXPECT_TRUE(provider.GetURLAndTitle(
+ OSExchangeData::DO_NOT_CONVERT_FILENAMES, &out_gurl, &out_str));
+ EXPECT_EQ(base::string16(), out_str);
+ EXPECT_EQ(kGoogleURL, out_gurl.spec());
+}
+
+TEST_F(OSExchangeDataProviderAuraX11Test, OnlyStringURLIsUnfiltered) {
+ const base::string16 file_url = base::UTF8ToUTF16(kFileURL);
+ provider.SetString(file_url);
+
+ EXPECT_TRUE(provider.HasString());
+ EXPECT_FALSE(provider.HasURL(ui::OSExchangeData::DO_NOT_CONVERT_FILENAMES));
+}
+
+TEST_F(OSExchangeDataProviderAuraX11Test, StringAndURIListFilterString) {
+ const base::string16 file_url = base::UTF8ToUTF16(kFileURL);
+ provider.SetString(file_url);
+ AddURLList(kFileURL);
+
+ EXPECT_FALSE(provider.HasString());
+ base::string16 out_str;
+ EXPECT_FALSE(provider.GetString(&out_str));
+
+ EXPECT_TRUE(provider.HasFile());
+}
+
+} // namespace ui