os_exchange_data_provider_non_backed_unittest.cc 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "os_exchange_data_provider_non_backed.h"
  5. #include <memory>
  6. #include <string>
  7. #include "base/files/file_path.h"
  8. #include "base/logging.h"
  9. #include "base/strings/string_piece_forward.h"
  10. #include "base/strings/utf_string_conversions.h"
  11. #include "build/chromeos_buildflags.h"
  12. #include "testing/gtest/include/gtest/gtest.h"
  13. #include "ui/base/data_transfer_policy/data_transfer_endpoint.h"
  14. #include "url/gurl.h"
  15. namespace ui {
  16. namespace {
  17. const char16_t kTestString[] = u"Hello World!";
  18. const char kUrl[] = "https://example.com";
  19. const char16_t kUrlTitle[] = u"example";
  20. const char kFileName[] = "file.pdf";
  21. const base::FilePath::CharType kFileContentsFileName[] =
  22. FILE_PATH_LITERAL("file.jpg");
  23. const char kFileContents[] = "test data";
  24. const char16_t kHtml[] = u"<h1>Random Title</h1>";
  25. const char kBaseUrl[] = "www.example2.com";
  26. } // namespace
  27. // Tests that cloning OsExchangeDataProviderNonBacked object will clone all of
  28. // its data members.
  29. TEST(OSExchangeDataProviderNonBackedTest, CloneTest) {
  30. OSExchangeDataProviderNonBacked original;
  31. original.SetString(kTestString);
  32. original.SetURL(GURL(kUrl), kUrlTitle);
  33. base::Pickle original_pickle;
  34. original_pickle.WriteString16(kTestString);
  35. original.SetPickledData(ClipboardFormatType::PlainTextType(),
  36. original_pickle);
  37. original.SetFileContents(base::FilePath(kFileContentsFileName),
  38. std::string(kFileContents));
  39. original.SetHtml(kHtml, GURL(kBaseUrl));
  40. #if !BUILDFLAG(IS_CHROMEOS_ASH)
  41. original.MarkOriginatedFromRenderer();
  42. #endif // !BUILDFLAG(IS_CHROMEOS_ASH)
  43. GURL url("www.example.com");
  44. original.SetSource(std::make_unique<DataTransferEndpoint>(url));
  45. std::unique_ptr<OSExchangeDataProvider> copy = original.Clone();
  46. std::u16string copy_string;
  47. EXPECT_TRUE(copy->GetString(&copy_string));
  48. EXPECT_EQ(kTestString, copy_string);
  49. GURL copy_url;
  50. std::u16string copy_title;
  51. EXPECT_TRUE(copy->GetURLAndTitle(
  52. FilenameToURLPolicy::DO_NOT_CONVERT_FILENAMES, &copy_url, &copy_title));
  53. EXPECT_EQ(GURL(kUrl), copy_url);
  54. EXPECT_EQ(kUrlTitle, copy_title);
  55. base::Pickle copy_pickle;
  56. copy->GetPickledData(ClipboardFormatType::PlainTextType(), &copy_pickle);
  57. base::PickleIterator pickle_itr(copy_pickle);
  58. std::u16string copy_pickle_string;
  59. EXPECT_TRUE(pickle_itr.ReadString16(&copy_pickle_string));
  60. EXPECT_EQ(kTestString, copy_pickle_string);
  61. base::FilePath copy_file_contents_filename;
  62. std::string copy_file_contents;
  63. copy->GetFileContents(&copy_file_contents_filename, &copy_file_contents);
  64. EXPECT_EQ(base::FilePath(kFileContentsFileName), copy_file_contents_filename);
  65. EXPECT_EQ(std::string(kFileContents), copy_file_contents);
  66. std::u16string copy_html;
  67. GURL copy_base_url;
  68. EXPECT_TRUE(copy->GetHtml(&copy_html, &copy_base_url));
  69. EXPECT_EQ(kHtml, copy_html);
  70. EXPECT_EQ(GURL(kBaseUrl), copy_base_url);
  71. #if !BUILDFLAG(IS_CHROMEOS_ASH)
  72. EXPECT_TRUE(copy->DidOriginateFromRenderer());
  73. #endif // !BUILDFLAG(IS_CHROMEOS_ASH)
  74. DataTransferEndpoint* data_endpoint = copy->GetSource();
  75. EXPECT_TRUE(data_endpoint);
  76. EXPECT_TRUE(data_endpoint->IsUrlType());
  77. EXPECT_EQ(url, *data_endpoint->GetURL());
  78. }
  79. TEST(OSExchangeDataProviderNonBackedTest, FileNameCloneTest) {
  80. OSExchangeDataProviderNonBacked original;
  81. original.SetFilename(base::FilePath(kFileName));
  82. std::unique_ptr<OSExchangeDataProvider> copy = original.Clone();
  83. base::FilePath copy_file_path;
  84. EXPECT_TRUE(copy->GetFilename(&copy_file_path));
  85. EXPECT_EQ(base::FilePath(kFileName), copy_file_path);
  86. }
  87. } // namespace ui