defmodule MyhtmlexSharedTests do defmacro __using__(opts) do module = Keyword.fetch!(opts, :module) quote do use ExUnit.Case doctest Myhtmlex setup_all(_) do Application.put_env(:myhtmlex, :mode, unquote(module)) :ok end test "builds a tree, formatted like mochiweb by default" do assert {"html", [], [ {"head", [], []}, {"body", [], [ {"br", [], []} ]} ]} = Myhtmlex.decode("
") end test "builds a tree, html tags as atoms" do assert {:html, [], [ {:head, [], []}, {:body, [], [ {:br, [], []} ]} ]} = Myhtmlex.decode("
", format: [:html_atoms]) end test "builds a tree, nil self closing" do assert {"html", [], [ {"head", [], []}, {"body", [], [ {"br", [], nil}, {"esi:include", [], nil} ]} ]} = Myhtmlex.decode("
", format: [:nil_self_closing]) end test "builds a tree, multiple format options" do assert {:html, [], [ {:head, [], []}, {:body, [], [ {:br, [], nil} ]} ]} = Myhtmlex.decode("
", format: [:html_atoms, :nil_self_closing]) end test "attributes" do assert {:html, [], [ {:head, [], []}, {:body, [], [ {:span, [{"id", "test"}, {"class", "foo garble"}], []} ]} ]} = Myhtmlex.decode(~s'', format: [:html_atoms]) end test "single attributes" do assert {:html, [], [ {:head, [], []}, {:body, [], [ {:button, [{"disabled", "disabled"}, {"class", "foo garble"}], []} ]} ]} = Myhtmlex.decode(~s'