HtmlToolsTests.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using System.Linq;
  2. using Masuit.Tools.Html;
  3. using Xunit;
  4. namespace Masuit.Tools.Abstractions.Test.Html;
  5. public class HtmlToolsTests
  6. {
  7. [Fact]
  8. public void HtmlSanitizerStandard_ShouldSanitizeHtml()
  9. {
  10. var html = "<div><script>alert('xss');</script><p>Test</p></div>";
  11. var sanitizedHtml = html.HtmlSanitizerStandard();
  12. Assert.DoesNotContain("<script>", sanitizedHtml);
  13. Assert.Contains("<p>Test</p>", sanitizedHtml);
  14. }
  15. [Fact]
  16. public void HtmlSanitizerCustom_ShouldSanitizeHtmlWithCustomSettings()
  17. {
  18. var html = "<div><script>alert('xss');</script><p>Test</p></div>";
  19. var sanitizedHtml = html.HtmlSanitizerCustom(new[] { "script" });
  20. Assert.DoesNotContain("<script>", sanitizedHtml);
  21. Assert.Contains("<p>Test</p>", sanitizedHtml);
  22. }
  23. [Fact]
  24. public void RemoveHtmlTag_ShouldRemoveHtmlTags()
  25. {
  26. var html = "<div><p>Test</p></div>";
  27. var result = html.RemoveHtmlTag();
  28. Assert.Equal("Test", result);
  29. }
  30. [Fact]
  31. public void RemoveHtmlTag_ShouldRemoveHtmlTagsAndTruncate()
  32. {
  33. var html = "<div><p>Test</p></div>";
  34. var result = html.RemoveHtmlTag(2);
  35. Assert.Equal("Te", result);
  36. }
  37. [Fact]
  38. public void ReplaceHtmlImgSource_ShouldReplaceImgSrc()
  39. {
  40. var html = "<img src=\"image.jpg\">";
  41. var result = html.ReplaceHtmlImgSource("http://example.com");
  42. Assert.Equal("<img src=\"http://example.com/image.jpg\">", result);
  43. }
  44. [Fact]
  45. public void ConvertImgSrcToRelativePath_ShouldConvertToRelativePath()
  46. {
  47. var html = "<img src=\"http://example.com/image.jpg\">";
  48. var result = html.ConvertImgSrcToRelativePath();
  49. Assert.Equal("<img src=\"/image.jpg\">", result);
  50. }
  51. [Fact]
  52. public void MatchImgTags_ShouldReturnImgTags()
  53. {
  54. var html = "<div><img src=\"image1.jpg\"><img src=\"image2.jpg\"></div>";
  55. var result = html.MatchImgTags();
  56. Assert.Equal(2, result.Length);
  57. }
  58. [Fact]
  59. public void MatchImgSrcs_ShouldReturnImgSrcs()
  60. {
  61. var html = "<div><img src=\"image1.jpg\"><img src=\"image2.jpg\"></div>";
  62. var result = html.MatchImgSrcs();
  63. Assert.Equal(2, result.Count());
  64. Assert.Contains("image1.jpg", result);
  65. Assert.Contains("image2.jpg", result);
  66. }
  67. [Fact]
  68. public void MatchFirstImgSrc_ShouldReturnFirstImgSrc()
  69. {
  70. var html = "<div><img src=\"image1.jpg\"><img src=\"image2.jpg\"></div>";
  71. var result = html.MatchFirstImgSrc();
  72. Assert.Equal("image1.jpg", result);
  73. }
  74. [Fact]
  75. public void MatchRandomImgSrc_ShouldReturnRandomImgSrc()
  76. {
  77. var html = "<div><img src=\"image1.jpg\"><img src=\"image2.jpg\"></div>";
  78. var result = html.MatchRandomImgSrc();
  79. Assert.Contains(result, new[] { "image1.jpg", "image2.jpg" });
  80. }
  81. [Fact]
  82. public void EncodeHtml_ShouldEncodeHtml()
  83. {
  84. var html = "Hello, World!";
  85. var result = html.EncodeHtml();
  86. Assert.Equal("Hello&def World!", result);
  87. }
  88. }