module html import strings fn generate_temp_html() string { mut temp_html := strings.new_builder(200) temp_html.write_string('Giant String') for counter := 0; counter < 4; counter++ { temp_html.write_string("
Look at ${counter}
") } temp_html.write_string('') return temp_html.str() } fn test_search_by_tag_type() { dom := parse(generate_temp_html()) assert dom.get_tags(name: 'div').len == 4 assert dom.get_tags(name: 'head').len == 1 assert dom.get_tags(name: 'body').len == 1 } fn test_search_by_attribute_value() { mut dom := parse(generate_temp_html()) // println(temp_html) print('Amount ') println(dom.get_tags_by_attribute_value('id', 'name_0')) assert dom.get_tags_by_attribute_value('id', 'name_0').len == 1 } fn test_access_parent() { mut dom := parse(generate_temp_html()) div_tags := dom.get_tags(name: 'div') parent := div_tags[0].parent assert unsafe { parent != 0 } for div_tag in div_tags { assert div_tag.parent == parent } } fn test_search_by_attributes() { dom := parse(generate_temp_html()) assert dom.get_tags_by_attribute('id').len == 4 } fn test_tags_used() { dom := parse(generate_temp_html()) assert dom.get_tags().len == 9 } fn test_access_tag_fields() { dom := parse(generate_temp_html()) id_tags := dom.get_tags_by_attribute('id') assert id_tags[0].name == 'div' assert id_tags[1].attributes['class'] == 'several-1' } fn generate_temp_html_with_classes() string { mut temp_html := strings.new_builder(400) temp_html.write_string('Giant String') temp_html.write_string("
Single
") for counter := 0; counter < 4; counter++ { temp_html.write_string("
Common No. ${counter}
") } temp_html.write_string("
Complex
") temp_html.write_string("
Partial
") temp_html.write_string('') return temp_html.str() } fn test_search_by_class() { dom := parse(generate_temp_html_with_classes()) single_class_tags := dom.get_tags_by_class_name('single') common_class_tags := dom.get_tags_by_class_name('common') complex_class_tags := dom.get_tags_by_class_name('complex-0', 'complex-1', 'complex-2') partial_class_tags := dom.get_tags_by_class_name('complex-0', 'complex-2') shuffled_class_tags := dom.get_tags_by_class_name('complex-2', 'complex-0', 'complex-1') assert single_class_tags.len == 1 assert common_class_tags.len == 4 assert complex_class_tags.len == 1 assert complex_class_tags[0].attributes['class'] == 'complex-0 complex-1 complex-2' assert partial_class_tags.len == 2 assert shuffled_class_tags.len == 1 assert shuffled_class_tags[0].attributes['class'] == 'complex-0 complex-1 complex-2' }