closes an open
*/
void test_htmlCheckAutoClose_div_closes_p(void) {
TEST_ASSERT_EQUAL_INT(1, test_htmlCheckAutoClose((const xmlChar *)"div",
(const xmlChar *)"p"));
}
/* Negative tests: non-auto-close cases */
/* Inline formatting elements typically don't auto-close themselves */
void test_htmlCheckAutoClose_b_does_not_close_b(void) {
TEST_ASSERT_EQUAL_INT(0, test_htmlCheckAutoClose((const xmlChar *)"b",
(const xmlChar *)"b"));
}
/* Inline element should not auto-close */
void test_htmlCheckAutoClose_span_does_not_close_p(void) {
TEST_ASSERT_EQUAL_INT(0, test_htmlCheckAutoClose((const xmlChar *)"span",
(const xmlChar *)"p"));
}
/* Unknown tags should not be in the auto-close table */
void test_htmlCheckAutoClose_unknown_tags_return_zero(void) {
TEST_ASSERT_EQUAL_INT(0, test_htmlCheckAutoClose((const xmlChar *)"customnew",
(const xmlChar *)"customold"));
TEST_ASSERT_EQUAL_INT(0, test_htmlCheckAutoClose((const xmlChar *)"custom",
(const xmlChar *)"p"));
}
/* Non-symmetric: starting
should not auto-close an open
*/
void test_htmlCheckAutoClose_p_does_not_close_div(void) {
TEST_ASSERT_EQUAL_INT(0, test_htmlCheckAutoClose((const xmlChar *)"p",
(const xmlChar *)"div"));
}
int main(void) {
UNITY_BEGIN();
RUN_TEST(test_htmlCheckAutoClose_p_closes_p);
RUN_TEST(test_htmlCheckAutoClose_li_closes_li);
RUN_TEST(test_htmlCheckAutoClose_option_closes_option);
RUN_TEST(test_htmlCheckAutoClose_tr_closes_tr);
RUN_TEST(test_htmlCheckAutoClose_td_closes_td);
RUN_TEST(test_htmlCheckAutoClose_th_closes_th);
RUN_TEST(test_htmlCheckAutoClose_td_closes_th_and_th_closes_td);
RUN_TEST(test_htmlCheckAutoClose_dt_dd_cross_closures);
RUN_TEST(test_htmlCheckAutoClose_div_closes_p);
RUN_TEST(test_htmlCheckAutoClose_b_does_not_close_b);
RUN_TEST(test_htmlCheckAutoClose_span_does_not_close_p);
RUN_TEST(test_htmlCheckAutoClose_unknown_tags_return_zero);
RUN_TEST(test_htmlCheckAutoClose_p_does_not_close_div);
return UNITY_END();
}