From 7fa832df7a78528795d7cea4c241ab7996830ecf Mon Sep 17 00:00:00 2001 From: konn Date: Wed, 9 Apr 2008 09:08:49 +0000 Subject: [PATCH] * Added
tag to CHTML2.0 converter. * Added test code of the
tag for the CHTML2.0 converter git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/modchxj/mod_chxj/branches/RELEASE_0_11_0@2055 1a406e8e-add9-4483-a2c8-d8cac5b7c224 --- src/chxj_chtml20.c | 47 ++++++++++++- test/chxj_chtml10/test_chxj_chtml10.c | 4 ++ test/chxj_chtml20/test_chxj_chtml20.c | 125 ++++++++++++++++++++++++++++++++++ 3 files changed, 174 insertions(+), 2 deletions(-) diff --git a/src/chxj_chtml20.c b/src/chxj_chtml20.c index a66d2533..81fdcb2e 100644 --- a/src/chxj_chtml20.c +++ b/src/chxj_chtml20.c @@ -89,6 +89,8 @@ static char *s_chtml20_start_option_tag (void *pdoc, Node *node); static char *s_chtml20_end_option_tag (void *pdoc, Node *node); static char *s_chtml20_start_div_tag (void *pdoc, Node *node); static char *s_chtml20_end_div_tag (void *pdoc, Node *node); +static char *s_chtml20_start_blockquote_tag (void *pdoc, Node *node); +static char *s_chtml20_end_blockquote_tag (void *pdoc, Node *node); static void s_init_chtml20(chtml20_t *chtml, Doc *doc, request_rec *r, device_table *spec); @@ -326,8 +328,8 @@ tag_handler chtml20_handler[] = { }, /* tagBLOCKQUOTE */ { - NULL, - NULL, + s_chtml20_start_blockquote_tag, + s_chtml20_end_blockquote_tag, }, /* tagDIR */ { @@ -2958,6 +2960,47 @@ s_chtml20_text_tag(void *pdoc, Node *child) W20_V(tdst); return chtml20->out; } + + +/** + * It is a handler who processes the BLOCKQUOTE tag. + * + * @param pdoc [i/o] The pointer to the CHTML structure at the output + * destination is specified. + * @param node [i] The BLOCKQUOTE tag node is specified. + * @return The conversion result is returned. + */ +static char * +s_chtml20_start_blockquote_tag(void *pdoc, Node *UNUSED(child)) +{ + chtml20_t *chtml20; + Doc *doc; + chtml20 = GET_CHTML20(pdoc); + doc = chtml20->doc; + W20_L("
"); + return chtml20->out; +} + + +/** + * It is a handler who processes the BLOCKQUOTE tag. + * + * @param pdoc [i/o] The pointer to the CHTML structure at the output + * destination is specified. + * @param node [i] The BLOCKQUOTE tag node is specified. + * @return The conversion result is returned. + */ +static char * +s_chtml20_end_blockquote_tag(void *pdoc, Node *UNUSED(child)) +{ + chtml20_t *chtml20; + Doc *doc; + + chtml20 = GET_CHTML20(pdoc); + doc = chtml20->doc; + W20_L("
"); + return chtml20->out; +} /* * vim:ts=2 et */ diff --git a/test/chxj_chtml10/test_chxj_chtml10.c b/test/chxj_chtml10/test_chxj_chtml10.c index 7194d6c0..440e8bdf 100644 --- a/test/chxj_chtml10/test_chxj_chtml10.c +++ b/test/chxj_chtml10/test_chxj_chtml10.c @@ -373,6 +373,7 @@ main() CU_add_test(chtml10_suite, "test void src1", test_chtml10_001); CU_add_test(chtml10_suite, "test void src2", test_chtml10_002); CU_add_test(chtml10_suite, "test comment tag1", test_chtml10_comment_tag_001); + CU_add_test(chtml10_suite, "test a tag name attr1", test_chtml10_a_tag_name_attribute_001); CU_add_test(chtml10_suite, "test a tag name attr2", test_chtml10_a_tag_name_attribute_002); CU_add_test(chtml10_suite, "test a tag name attr3 with japanese.", test_chtml10_a_tag_name_attribute_003); @@ -386,15 +387,18 @@ main() CU_add_test(chtml10_suite, "test a tag accesskey attribute.", test_chtml10_a_tag_accesskey_attribute_001); CU_add_test(chtml10_suite, "test a tag accesskey attribute with void char.", test_chtml10_a_tag_accesskey_attribute_002); CU_add_test(chtml10_suite, "test a tag accesskey attribute with no value", test_chtml10_a_tag_accesskey_attribute_003); + CU_add_test(chtml10_suite, "test base tag no attribute.", test_chtml10_base_tag_001); CU_add_test(chtml10_suite, "test base tag href attribute with no value.", test_chtml10_base_tag_href_attribute_001); CU_add_test(chtml10_suite, "test base tag href attribute with void value.", test_chtml10_base_tag_href_attribute_002); CU_add_test(chtml10_suite, "test base tag href attribute with normal value.", test_chtml10_base_tag_href_attribute_003); CU_add_test(chtml10_suite, "test base tag href attribute with normal value.", test_chtml10_base_tag_href_attribute_004); + CU_add_test(chtml10_suite, "test
with void value.", test_chtml10_blockquote_tag_001); CU_add_test(chtml10_suite, "test
with value.", test_chtml10_blockquote_tag_002); CU_add_test(chtml10_suite, "test
with japanese value.", test_chtml10_blockquote_tag_003); CU_add_test(chtml10_suite, "test
with hankaku kana value.", test_chtml10_blockquote_tag_004); + CU_add_test(chtml10_suite, "test .", test_chtml10_body_tag_001); CU_add_test(chtml10_suite, "test with bgcolor attribute.", test_chtml10_body_tag_002); CU_add_test(chtml10_suite, "test with text attribute.", test_chtml10_body_tag_003); diff --git a/test/chxj_chtml20/test_chxj_chtml20.c b/test/chxj_chtml20/test_chxj_chtml20.c index 7632db5b..49c73400 100644 --- a/test/chxj_chtml20/test_chxj_chtml20.c +++ b/test/chxj_chtml20/test_chxj_chtml20.c @@ -57,6 +57,11 @@ void test_chtml20_base_tag_href_attribute_001(); void test_chtml20_base_tag_href_attribute_002(); void test_chtml20_base_tag_href_attribute_003(); void test_chtml20_base_tag_href_attribute_004(); + +void test_chtml20_blockquote_tag_001(); +void test_chtml20_blockquote_tag_002(); +void test_chtml20_blockquote_tag_003(); +void test_chtml20_blockquote_tag_004(); /* pend */ int @@ -88,6 +93,11 @@ main() CU_add_test(chtml20_suite, "test base tag href attribute with void value.", test_chtml20_base_tag_href_attribute_002); CU_add_test(chtml20_suite, "test base tag href attribute with normal value.", test_chtml20_base_tag_href_attribute_003); CU_add_test(chtml20_suite, "test base tag href attribute with normal value.", test_chtml20_base_tag_href_attribute_004); + + CU_add_test(chtml20_suite, "test
with void value.", test_chtml20_blockquote_tag_001); + CU_add_test(chtml20_suite, "test
with value.", test_chtml20_blockquote_tag_002); + CU_add_test(chtml20_suite, "test
with japanese value.", test_chtml20_blockquote_tag_003); + CU_add_test(chtml20_suite, "test
with hankaku kana value.", test_chtml20_blockquote_tag_004); /* aend */ CU_basic_run_tests(); @@ -753,6 +763,121 @@ void test_chtml20_base_tag_href_attribute_004() #undef TEST_STRING #undef RESULT_STRING } +/*============================================================================*/ +/*
*/ +/*============================================================================*/ +void test_chtml20_blockquote_tag_001() +{ +#define TEST_STRING "
" +#define RESULT_STRING "
" + char *ret; + char *tmp; + device_table spec; + chxjconvrule_entry entry; + cookie_t cookie; + apr_size_t destlen; + APR_INIT; + + COOKIE_INIT(cookie); + + SPEC_INIT(spec); + destlen = sizeof(TEST_STRING)-1; + + tmp = chxj_encoding(&r, TEST_STRING, &destlen); + ret = chxj_exchange_chtml20(&r, &spec, tmp, destlen, &destlen, &entry, &cookie); + ret = chxj_rencoding(&r, ret, &destlen); + CU_ASSERT(ret != NULL); + CU_ASSERT(strcmp(RESULT_STRING, ret) == 0); + CU_ASSERT(destlen == sizeof(RESULT_STRING)-1); + + APR_TERM; +#undef TEST_STRING +#undef RESULT_STRING +} +void test_chtml20_blockquote_tag_002() +{ +#define TEST_STRING "
abc
" +#define RESULT_STRING "
abc
" + char *ret; + char *tmp; + device_table spec; + chxjconvrule_entry entry; + cookie_t cookie; + apr_size_t destlen; + APR_INIT; + + COOKIE_INIT(cookie); + + SPEC_INIT(spec); + destlen = sizeof(TEST_STRING)-1; + + tmp = chxj_encoding(&r, TEST_STRING, &destlen); + ret = chxj_exchange_chtml20(&r, &spec, tmp, destlen, &destlen, &entry, &cookie); + ret = chxj_rencoding(&r, ret, &destlen); + CU_ASSERT(ret != NULL); + CU_ASSERT(strcmp(RESULT_STRING, ret) == 0); + CU_ASSERT(destlen == sizeof(RESULT_STRING)-1); + + APR_TERM; +#undef TEST_STRING +#undef RESULT_STRING +} +void test_chtml20_blockquote_tag_003() +{ +#define TEST_STRING "
亀さん
" +#define RESULT_STRING "
亀さん
" + char *ret; + char *tmp; + device_table spec; + chxjconvrule_entry entry; + cookie_t cookie; + apr_size_t destlen; + APR_INIT; + + COOKIE_INIT(cookie); + + SPEC_INIT(spec); + destlen = sizeof(TEST_STRING)-1; + + tmp = chxj_encoding(&r, TEST_STRING, &destlen); + ret = chxj_exchange_chtml20(&r, &spec, tmp, destlen, &destlen, &entry, &cookie); + ret = chxj_rencoding(&r, ret, &destlen); + CU_ASSERT(ret != NULL); + CU_ASSERT(strcmp(RESULT_STRING, ret) == 0); + CU_ASSERT(destlen == sizeof(RESULT_STRING)-1); + + APR_TERM; +#undef TEST_STRING +#undef RESULT_STRING +} +void test_chtml20_blockquote_tag_004() +{ +#define TEST_STRING "
ハンカク
" +#define RESULT_STRING "
ハンカク
" + char *ret; + char *tmp; + device_table spec; + chxjconvrule_entry entry; + cookie_t cookie; + apr_size_t destlen; + APR_INIT; + + COOKIE_INIT(cookie); + + SPEC_INIT(spec); + destlen = sizeof(TEST_STRING)-1; + + tmp = chxj_encoding(&r, TEST_STRING, &destlen); + ret = chxj_exchange_chtml20(&r, &spec, tmp, destlen, &destlen, &entry, &cookie); + ret = chxj_rencoding(&r, ret, &destlen); + CU_ASSERT(ret != NULL); + CU_ASSERT(strcmp(RESULT_STRING, ret) == 0); + CU_ASSERT(destlen == sizeof(RESULT_STRING)-1); + + APR_TERM; +#undef TEST_STRING +#undef RESULT_STRING +} /* * vim:ts=2 et */ -- 2.11.0