#include "common.hh" #include "tag.hh" #include TEST(tag, empty) { auto tag = Tag::create("br"); std::string out; tag->render(&out); EXPECT_EQ("
", out); } TEST(tag, text) { auto tag = Tag::create("p"); tag->add("Hello World!"); std::string out; tag->render(&out); EXPECT_EQ("

Hello <b>World</b>!

", out); } TEST(tag, tags_and_text) { auto tag = Tag::create("p"); tag->add("Hello "); tag->add_tag("b", "World"); tag->add("!"); EXPECT_FALSE(tag->empty()); std::string out; tag->render(&out); EXPECT_EQ("

Hello World!

", out); tag->clear_content(); EXPECT_TRUE(tag->empty()); tag->add("Goodbye"); out.clear(); tag->render(&out); EXPECT_EQ("

Goodbye

", out); } TEST(tag, onclick) { auto tag = Tag::create("a"); tag->add("Link"); tag->attr("href", "http://example.org"); tag->attr("onclick", "alert('Hello World');"); std::string out; tag->render(&out); EXPECT_EQ("Link", out); } TEST(tag, script_with_content) { auto tag = Tag::create("script"); tag->add("alert('Hello World');"); std::string out; tag->render(&out); EXPECT_EQ("", out); } TEST(tag, script_with_src) { auto tag = Tag::create("script"); tag->attr("src", "/js/helloworld.js"); std::string out; tag->render(&out); EXPECT_EQ("", out); }