# Pleroma: A lightweight social networking server
# Copyright © 2019 Pleroma Authors 
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.ActivityPub.MRF.NormalizeMarkupTest do
  use Pleroma.DataCase
  alias Pleroma.Web.ActivityPub.MRF.NormalizeMarkup
  @html_sample """
  this is in bold
  
this is a paragraph
  this is a linebreak
  this is a link with allowed "rel" attribute: example.com
  this is a link with not allowed "rel" attribute: example.com
  this is an image: 
  
  """
  test "it filter html tags" do
    expected = """
    this is in bold
    this is a paragraph
    this is a linebreak
    this is a link with allowed "rel" attribute: example.com
    this is a link with not allowed "rel" attribute: example.com
    this is an image: 
    alert('hacked')
    """
    message = %{"type" => "Create", "object" => %{"content" => @html_sample}}
    assert {:ok, res} = NormalizeMarkup.filter(message)
    assert res["object"]["content"] == expected
  end
  test "it skips filter if type isn't `Create`" do
    message = %{"type" => "Note", "object" => %{}}
    assert {:ok, res} = NormalizeMarkup.filter(message)
    assert res == message
  end
end