foxygit / Torlinkc Log in
commits tags

/tests/test_rss.cpp · 945 B

raw
#include <doctest/doctest.h>

#include "torlinkc/sources/rss.hpp"

using namespace torlinkc;

TEST_CASE("unescapeEntities decodes the entities RSS feeds actually use") {
  CHECK(unescapeEntities("Tom &amp; Jerry") == "Tom & Jerry");
  CHECK(unescapeEntities("Tom &#38; Jerry") == "Tom & Jerry");
  CHECK(unescapeEntities("2024 &#8211; Remastered") == "2024 - Remastered");
  CHECK(unescapeEntities("2024 &#8212; Remastered") == "2024 - Remastered");
  CHECK(unescapeEntities("Rock &#8217;n&#8217; Roll") == "Rock 'n' Roll");
  CHECK(unescapeEntities("Rock &apos;n&apos; Roll") == "Rock 'n' Roll");
  CHECK(unescapeEntities("&#8220;Quoted&#8221;") == "\"Quoted\"");
  CHECK(unescapeEntities("&quot;Quoted&quot;") == "\"Quoted\"");
  CHECK(unescapeEntities("a &lt; b &gt; c") == "a < b > c");
}

TEST_CASE("unescapeEntities leaves plain text untouched") {
  CHECK(unescapeEntities("Ordinary.Torrent.Name.2024") == "Ordinary.Torrent.Name.2024");
}