chromium/ui/base/clipboard/clipboard_util_win_unittest.cc

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ui/base/clipboard/clipboard_util_win.h"

#include "testing/platform_test.h"

namespace ui {
namespace {

using ClipboardUtilWinTest = PlatformTest;

TEST_F(ClipboardUtilWinTest, EmptyHtmlToCFHtml) {
  const std::string result_cfhtml =
      clipboard_util::HtmlToCFHtml(std::string(), "www.example.com");
  EXPECT_TRUE(result_cfhtml.empty());
  EXPECT_TRUE(result_cfhtml.empty());
}

TEST_F(ClipboardUtilWinTest, ConversionFromWellFormedHtmlToCFHtml) {
  const std::string well_formed_html =
      "<html><head><style>p {color:blue}</style></head><body><p>Hello "
      "World</p></body></html>";
  const std::string url = "www.example.com";
  const std::string expected_cfhtml =
      "Version:0.9\r\n"
      "StartHTML:0000000132\r\n"
      "EndHTML:0000000290\r\n"
      "StartFragment:0000000168\r\n"
      "EndFragment:0000000254\r\n"
      "SourceURL:" +
      url +
      "\r\n"
      "<html>\r\n"
      "<body>\r\n"
      "<!--StartFragment-->" +
      well_formed_html + "<!--EndFragment-->" + "\r\n</body>\r\n</html>";
  const std::string actual_cfhtml =
      clipboard_util::HtmlToCFHtml(well_formed_html, url);
  EXPECT_EQ(expected_cfhtml, actual_cfhtml);
}

}  // namespace
}  // namespace ui