module html import strings fn test_parse_empty_string() { mut parser := Parser{} parser.parse_html('') assert parser.tags.len == 0 } fn test_parse_text() { mut parser := Parser{} text_content := 'test\nparse\ntext' parser.parse_html(text_content) assert parser.tags.len == 1 assert parser.tags.first().text() == text_content } fn test_parse_one_tag_with_text() { mut parser := Parser{} text_content := 'tag\nwith\ntext' p_tag := '

${text_content}

' parser.parse_html(p_tag) assert parser.tags.first().text() == text_content } fn test_split_parse() { mut parser := Parser{} parser.init() parser.split_parse(' Hum... ') parser.split_parse('A Tit') parser.split_parse('\nle') parser.split_parse('\t\t\t

') parser.split_parse('Nice Test!

') parser.split_parse('') parser.finalize() assert parser.tags.len == 11 assert parser.tags[3].content == ' Hum... A Tit\nle' } fn test_giant_string() { mut temp_html := strings.new_builder(200) mut parser := Parser{} temp_html.write_string('Giant String') for counter := 0; counter < 2000; counter++ { temp_html.write_string("
Look at ${counter}
") } temp_html.write_string('') parser.parse_html(temp_html.str()) assert parser.tags.len == 4009 } fn test_script_tag() { mut parser := Parser{} script_content := '\nvar googletag = googletag || {};\ngoogletag.cmd = googletag.cmd || [];if(3 > 5) {console.log("Quoted \'message\'");}\n' temp_html := '' parser.parse_html(temp_html) assert parser.tags[2].content.len == script_content.len }