From d05bfca07bcc3f12faaa4b67bd0e8a8c27e5f1b1 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Thu, 1 May 2014 07:12:07 +0530 Subject: Dlist element --- src/html/html_document.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/html/html_document.c') diff --git a/src/html/html_document.c b/src/html/html_document.c index 0da16bb..a77901f 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -25,6 +25,7 @@ #include "html/html_option_element.h" #include "html/html_select_element.h" #include "html/html_hr_element.h" +#include "html/html_dlist_element.h" #include "core/attr.h" #include "core/string.h" @@ -224,6 +225,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_HR])) { exc = _dom_html_hr_element_create(html, namespace, prefix, (dom_html_hr_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_DL])) { + exc = _dom_html_d_list_element_create(html, namespace, prefix, + (dom_html_d_list_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); -- cgit v1.2.3 From f15dc7a2bbf364bbea0ba5df2fa1b10dcd476c3c Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Thu, 1 May 2014 07:57:54 +0530 Subject: Directory Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_directory_element.h | 16 +++ src/html/Makefile | 4 +- src/html/TODO | 4 +- src/html/html_directory_element.c | 140 +++++++++++++++++++++ src/html/html_directory_element.h | 45 +++++++ src/html/html_document.c | 4 + src/html/html_document_strings.h | 2 +- .../tests/level1/html/HTMLDirectoryElement01.xml | 43 +++++++ .../level1/html/HTMLDirectoryElement01.xml.notimpl | 43 ------- 11 files changed, 255 insertions(+), 48 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLDirectoryElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLDirectoryElement01.xml.notimpl (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 4c6906f..1914637 100644 --- a/Makefile +++ b/Makefile @@ -98,6 +98,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_opt_group_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_options_collection.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_hr_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_dlist_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_directory_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 12245c2..0b727af 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -57,6 +57,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_directory_element.h b/include/dom/html/html_directory_element.h index 2e182d5..67fa269 100644 --- a/include/dom/html/html_directory_element.h +++ b/include/dom/html/html_directory_element.h @@ -3,5 +3,21 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_directory_element_h_ +#define dom_html_directory_element_h_ +#include +#include +#include + +typedef struct dom_html_directory_element dom_html_directory_element; + +dom_exception dom_html_directory_element_get_compact( + dom_html_directory_element *ele, bool *compact); + +dom_exception dom_html_directory_element_set_compact( + dom_html_directory_element *ele, bool compact); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 25e99f4..def64dd 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -7,12 +7,12 @@ DIR_SOURCES := \ html_body_element.c html_form_element.c html_select_element.c \ html_button_element.c html_input_element.c html_text_area_element.c \ html_opt_group_element.c html_option_element.c html_hr_element.c \ - html_dlist_element.c + html_dlist_element.c html_directory_element.c UNINMPLEMENTED_SOURCES := \ html_label_element.c html_fieldset_element.c \ html_legend_element.c html_ulist_element.c html_olist_element.c \ - html_directory_element.c html_menu_element.c \ + html_menu_element.c \ html_li_element.c html_div_element.c html_paragraph_element.c \ html_heading_element.c html_quote_element.c html_pre_element.c \ html_br_element.c html_basefont_element.c html_font_element.c \ diff --git a/src/html/TODO b/src/html/TODO index 37ade2c..307505a 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -23,8 +23,8 @@ HTMLFieldSetElement html_fieldset_element MISSING HTMLLegendElement html_legend_element MISSING HTMLUListElement html_ulist_element MISSING HTMLOListElement html_olist_element MISSING -HTMLDListElement html_dlist_element MISSING -HTMLDirectoryElement html_directory_element MISSING +HTMLDListElement html_dlist_element DONE +HTMLDirectoryElement html_directory_element DONE HTMLMenuElement html_menu_element MISSING HTMLLIElement html_li_element MISSING HTMLBlockquoteElement html_blockquote_element MISSING diff --git a/src/html/html_directory_element.c b/src/html/html_directory_element.c index 2e182d5..4e0d9e0 100644 --- a/src/html/html_directory_element.c +++ b/src/html/html_directory_element.c @@ -3,5 +3,145 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_directory_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_DIRECTORY_ELEMENT + }, + DOM_HTML_DIRECTORY_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_directory_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_directory_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_directory_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_directory_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_directory_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_directory_element object + * + * \param doc The document object + * \param ele The dom_html_directory_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_directory_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_directory_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_DIRECTORY], + namespace, prefix); +} + +/** + * Finalise a dom_html_directory_element object + * + * \param ele The dom_html_directory_element object + */ +void _dom_html_directory_element_finalise(struct dom_html_directory_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_directory_element object + * + * \param ele The dom_html_directory_element object + */ +void _dom_html_directory_element_destroy(struct dom_html_directory_element *ele) +{ + _dom_html_directory_element_finalise(ele); + free(ele); +} + +/** + * Get the compact property + * + * \param ele The dom_html_directory_element object + * \param compact The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_directory_element_get_compact(dom_html_directory_element *ele, + bool *compact) +{ + return dom_html_element_get_bool_property(&ele->base, "compact", + SLEN("compact"), compact); +} + +/** + * Set the compact property + * + * \param ele The dom_html_directory_element object + * \param compact The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_directory_element_set_compact(dom_html_directory_element *ele, + bool compact) +{ + return dom_html_element_set_bool_property(&ele->base, "compact", + SLEN("compact"), compact); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_directory_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_directory_element_destroy(dom_node_internal *node) +{ + _dom_html_directory_element_destroy((struct dom_html_directory_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_directory_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} diff --git a/src/html/html_directory_element.h b/src/html/html_directory_element.h index 2e182d5..9f3fe2b 100644 --- a/src/html/html_directory_element.h +++ b/src/html/html_directory_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_directory_element_h_ +#define dom_internal_html_directory_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_directory_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_directory_element object */ +dom_exception _dom_html_directory_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_directory_element **ele); + +/* Initialise a dom_html_directory_element object */ +dom_exception _dom_html_directory_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_directory_element *ele); + +/* Finalise a dom_html_directory_element object */ +void _dom_html_directory_element_finalise(struct dom_html_directory_element *ele); + +/* Destroy a dom_html_directory_element object */ +void _dom_html_directory_element_destroy(struct dom_html_directory_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_directory_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_directory_element_destroy(dom_node_internal *node); +dom_exception _dom_html_directory_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_DIRECTORY_ELEMENT_PROTECT_VTABLE \ + _dom_html_directory_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_DIRECTORY_ELEMENT \ + _dom_virtual_html_directory_element_destroy, \ + _dom_html_directory_element_copy + +#endif diff --git a/src/html/html_document.c b/src/html/html_document.c index a77901f..5a6e72e 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -26,6 +26,7 @@ #include "html/html_select_element.h" #include "html/html_hr_element.h" #include "html/html_dlist_element.h" +#include "html/html_directory_element.h" #include "core/attr.h" #include "core/string.h" @@ -228,6 +229,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_DL])) { exc = _dom_html_d_list_element_create(html, namespace, prefix, (dom_html_d_list_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_DIRECTORY])) { + exc = _dom_html_directory_element_create(html, namespace, prefix, + (dom_html_directory_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index f484cb3..9de497f 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -127,7 +127,7 @@ HTML_DOCUMENT_STRINGS_ACTION1(LEGEND) HTML_DOCUMENT_STRINGS_ACTION1(UL) HTML_DOCUMENT_STRINGS_ACTION1(OL) HTML_DOCUMENT_STRINGS_ACTION1(DL) -HTML_DOCUMENT_STRINGS_ACTION1(DIR) +HTML_DOCUMENT_STRINGS_ACTION1(DIRECTORY) HTML_DOCUMENT_STRINGS_ACTION1(MENU) HTML_DOCUMENT_STRINGS_ACTION1(LI) HTML_DOCUMENT_STRINGS_ACTION1(BLOCKQUOTE) diff --git a/test/testcases/tests/level1/html/HTMLDirectoryElement01.xml b/test/testcases/tests/level1/html/HTMLDirectoryElement01.xml new file mode 100644 index 0000000..4b1b402 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDirectoryElement01.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLDirectoryElement01 +NIST + + The compact attribute specifies a boolean value on whether to display + the list more compactly. + + Retrieve the compact attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDirectoryElement01.xml.notimpl b/test/testcases/tests/level1/html/HTMLDirectoryElement01.xml.notimpl deleted file mode 100644 index 4b1b402..0000000 --- a/test/testcases/tests/level1/html/HTMLDirectoryElement01.xml.notimpl +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLDirectoryElement01 -NIST - - The compact attribute specifies a boolean value on whether to display - the list more compactly. - - Retrieve the compact attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From 23349bc58f238d7b1ecb28d9d344c06fae6650fa Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Thu, 1 May 2014 08:14:33 +0530 Subject: Menu Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_menu_element.h | 16 +++ src/html/Makefile | 3 +- src/html/TODO | 2 +- src/html/html_document.c | 4 + src/html/html_menu_element.c | 140 +++++++++++++++++++++ src/html/html_menu_element.h | 45 +++++++ .../tests/level1/html/HTMLMenuElement01.xml | 43 +++++++ .../tests/level1/html/HTMLMenuElement01.xml.kfail | 43 ------- 10 files changed, 252 insertions(+), 46 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLMenuElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLMenuElement01.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 1914637..19c239f 100644 --- a/Makefile +++ b/Makefile @@ -99,6 +99,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_options_collection.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_hr_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_dlist_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_directory_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_menu_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 0b727af..38bb996 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -58,6 +58,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_menu_element.h b/include/dom/html/html_menu_element.h index 2e182d5..f4dad74 100644 --- a/include/dom/html/html_menu_element.h +++ b/include/dom/html/html_menu_element.h @@ -3,5 +3,21 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_menu_element_h_ +#define dom_html_menu_element_h_ +#include +#include +#include + +typedef struct dom_html_menu_element dom_html_menu_element; + +dom_exception dom_html_menu_element_get_compact( + dom_html_menu_element *ele, bool *compact); + +dom_exception dom_html_menu_element_set_compact( + dom_html_menu_element *ele, bool compact); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index def64dd..ed27c07 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -7,12 +7,11 @@ DIR_SOURCES := \ html_body_element.c html_form_element.c html_select_element.c \ html_button_element.c html_input_element.c html_text_area_element.c \ html_opt_group_element.c html_option_element.c html_hr_element.c \ - html_dlist_element.c html_directory_element.c + html_dlist_element.c html_directory_element.c html_menu_element.c UNINMPLEMENTED_SOURCES := \ html_label_element.c html_fieldset_element.c \ html_legend_element.c html_ulist_element.c html_olist_element.c \ - html_menu_element.c \ html_li_element.c html_div_element.c html_paragraph_element.c \ html_heading_element.c html_quote_element.c html_pre_element.c \ html_br_element.c html_basefont_element.c html_font_element.c \ diff --git a/src/html/TODO b/src/html/TODO index 307505a..5cdf641 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -25,7 +25,7 @@ HTMLUListElement html_ulist_element MISSING HTMLOListElement html_olist_element MISSING HTMLDListElement html_dlist_element DONE HTMLDirectoryElement html_directory_element DONE -HTMLMenuElement html_menu_element MISSING +HTMLMenuElement html_menu_element DONE HTMLLIElement html_li_element MISSING HTMLBlockquoteElement html_blockquote_element MISSING HTMLDivElement html_div_element MISSING diff --git a/src/html/html_document.c b/src/html/html_document.c index 5a6e72e..7a10f2a 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -27,6 +27,7 @@ #include "html/html_hr_element.h" #include "html/html_dlist_element.h" #include "html/html_directory_element.h" +#include "html/html_menu_element.h" #include "core/attr.h" #include "core/string.h" @@ -232,6 +233,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_DIRECTORY])) { exc = _dom_html_directory_element_create(html, namespace, prefix, (dom_html_directory_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_MENU])) { + exc = _dom_html_menu_element_create(html, namespace, prefix, + (dom_html_menu_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_menu_element.c b/src/html/html_menu_element.c index 2e182d5..af0f34c 100644 --- a/src/html/html_menu_element.c +++ b/src/html/html_menu_element.c @@ -3,5 +3,145 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_menu_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_MENU_ELEMENT + }, + DOM_HTML_MENU_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_menu_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_menu_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_menu_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_menu_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_menu_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_menu_element object + * + * \param doc The document object + * \param ele The dom_html_menu_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_menu_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_menu_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_MENU], + namespace, prefix); +} + +/** + * Finalise a dom_html_menu_element object + * + * \param ele The dom_html_menu_element object + */ +void _dom_html_menu_element_finalise(struct dom_html_menu_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_menu_element object + * + * \param ele The dom_html_menu_element object + */ +void _dom_html_menu_element_destroy(struct dom_html_menu_element *ele) +{ + _dom_html_menu_element_finalise(ele); + free(ele); +} + +/** + * Get the compact property + * + * \param ele The dom_html_menu_element object + * \param compact The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_menu_element_get_compact(dom_html_menu_element *ele, + bool *compact) +{ + return dom_html_element_get_bool_property(&ele->base, "compact", + SLEN("compact"), compact); +} + +/** + * Set the compact property + * + * \param ele The dom_html_menu_element object + * \param compact The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_menu_element_set_compact(dom_html_menu_element *ele, + bool compact) +{ + return dom_html_element_set_bool_property(&ele->base, "compact", + SLEN("compact"), compact); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_menu_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_menu_element_destroy(dom_node_internal *node) +{ + _dom_html_menu_element_destroy((struct dom_html_menu_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_menu_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} diff --git a/src/html/html_menu_element.h b/src/html/html_menu_element.h index 2e182d5..cb84e3d 100644 --- a/src/html/html_menu_element.h +++ b/src/html/html_menu_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_menu_element_h_ +#define dom_internal_html_menu_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_menu_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_menu_element object */ +dom_exception _dom_html_menu_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_menu_element **ele); + +/* Initialise a dom_html_menu_element object */ +dom_exception _dom_html_menu_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_menu_element *ele); + +/* Finalise a dom_html_menu_element object */ +void _dom_html_menu_element_finalise(struct dom_html_menu_element *ele); + +/* Destroy a dom_html_menu_element object */ +void _dom_html_menu_element_destroy(struct dom_html_menu_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_menu_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_menu_element_destroy(dom_node_internal *node); +dom_exception _dom_html_menu_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_MENU_ELEMENT_PROTECT_VTABLE \ + _dom_html_menu_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_MENU_ELEMENT \ + _dom_virtual_html_menu_element_destroy, \ + _dom_html_menu_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLMenuElement01.xml b/test/testcases/tests/level1/html/HTMLMenuElement01.xml new file mode 100644 index 0000000..509a114 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLMenuElement01.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLMenuElement01 +NIST + + The compact attribute specifies a boolean value on whether to display + the list more compactly. + + Retrieve the compact attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLMenuElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLMenuElement01.xml.kfail deleted file mode 100644 index 509a114..0000000 --- a/test/testcases/tests/level1/html/HTMLMenuElement01.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLMenuElement01 -NIST - - The compact attribute specifies a boolean value on whether to display - the list more compactly. - - Retrieve the compact attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From 1e595d6e27a62568241afd4db558d2947f92bf43 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Fri, 2 May 2014 08:42:01 +0530 Subject: Fieldset & Legend Elements --- Makefile | 2 + include/dom/dom.h | 2 + include/dom/html/html_fieldset_element.h | 17 ++ include/dom/html/html_legend_element.h | 27 +++ src/html/Makefile | 6 +- src/html/TODO | 4 +- src/html/html_document.c | 8 + src/html/html_fieldset_element.c | 146 +++++++++++++++ src/html/html_fieldset_element.h | 46 +++++ src/html/html_form_element.c | 2 +- src/html/html_legend_element.c | 208 +++++++++++++++++++++ src/html/html_legend_element.h | 46 +++++ .../tests/level1/html/HTMLFieldSetElement01.xml | 44 +++++ .../level1/html/HTMLFieldSetElement01.xml.kfail | 44 ----- .../tests/level1/html/HTMLFieldSetElement02.xml | 43 +++++ .../level1/html/HTMLFieldSetElement02.xml.kfail | 43 ----- .../tests/level1/html/HTMLLegendElement01.xml | 45 +++++ .../level1/html/HTMLLegendElement01.xml.kfail | 45 ----- .../tests/level1/html/HTMLLegendElement02.xml | 43 +++++ .../level1/html/HTMLLegendElement02.xml.kfail | 43 ----- .../tests/level1/html/HTMLLegendElement03.xml | 43 +++++ .../level1/html/HTMLLegendElement03.xml.kfail | 43 ----- .../tests/level1/html/HTMLLegendElement04.xml | 42 +++++ .../level1/html/HTMLLegendElement04.xml.kfail | 42 ----- 24 files changed, 768 insertions(+), 266 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLFieldSetElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLFieldSetElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLFieldSetElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLFieldSetElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLLegendElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLLegendElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLLegendElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLLegendElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLLegendElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLLegendElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLLegendElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLLegendElement04.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 19c239f..950a560 100644 --- a/Makefile +++ b/Makefile @@ -100,6 +100,8 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_hr_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_dlist_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_directory_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_menu_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_fieldset_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_legend_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 38bb996..fb5e2f1 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -59,6 +59,8 @@ #include #include #include +#include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_fieldset_element.h b/include/dom/html/html_fieldset_element.h index 2e182d5..26383b3 100644 --- a/include/dom/html/html_fieldset_element.h +++ b/include/dom/html/html_fieldset_element.h @@ -3,5 +3,22 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_field_set_element_h_ +#define dom_html_field_set_element_h_ + +#include + +#include + +#include + +typedef struct dom_html_field_set_element dom_html_field_set_element; + +struct dom_html_element; +dom_exception dom_html_field_set_element_get_form( + dom_html_field_set_element *ele, dom_html_form_element **form); +#endif + diff --git a/include/dom/html/html_legend_element.h b/include/dom/html/html_legend_element.h index 2e182d5..caf34a6 100644 --- a/include/dom/html/html_legend_element.h +++ b/include/dom/html/html_legend_element.h @@ -3,5 +3,32 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_legend_element_h_ +#define dom_html_legend_element_h_ +#include +#include +#include + +#include + +typedef struct dom_html_legend_element dom_html_legend_element; + +dom_exception dom_html_legend_element_get_form( + dom_html_legend_element *ele, dom_html_form_element **form); + +dom_exception dom_html_legend_element_get_access_key( + dom_html_legend_element *element, dom_string **access_key); + +dom_exception dom_html_legend_element_set_access_key( + dom_html_legend_element *element, dom_string *access_key); + +dom_exception dom_html_legend_element_get_align( + dom_html_legend_element *element, dom_string **align); + +dom_exception dom_html_legend_element_set_align( + dom_html_legend_element *ele, dom_string *align); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index ed27c07..98aa094 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -7,11 +7,11 @@ DIR_SOURCES := \ html_body_element.c html_form_element.c html_select_element.c \ html_button_element.c html_input_element.c html_text_area_element.c \ html_opt_group_element.c html_option_element.c html_hr_element.c \ - html_dlist_element.c html_directory_element.c html_menu_element.c + html_dlist_element.c html_directory_element.c html_menu_element.c \ + html_fieldset_element.c html_legend_element.c UNINMPLEMENTED_SOURCES := \ - html_label_element.c html_fieldset_element.c \ - html_legend_element.c html_ulist_element.c html_olist_element.c \ + html_label_element.c html_ulist_element.c html_olist_element.c \ html_li_element.c html_div_element.c html_paragraph_element.c \ html_heading_element.c html_quote_element.c html_pre_element.c \ html_br_element.c html_basefont_element.c html_font_element.c \ diff --git a/src/html/TODO b/src/html/TODO index 5cdf641..b6ed604 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -19,8 +19,8 @@ HTMLInputElement html_input_element MISSING HTMLTextAreaElement html_textarea_element MISSING HTMLButtonElement html_button_element MISSING HTMLLabelElement html_label_element MISSING -HTMLFieldSetElement html_fieldset_element MISSING -HTMLLegendElement html_legend_element MISSING +HTMLFieldSetElement html_fieldset_element DONE +HTMLLegendElement html_legend_element DONE HTMLUListElement html_ulist_element MISSING HTMLOListElement html_olist_element MISSING HTMLDListElement html_dlist_element DONE diff --git a/src/html/html_document.c b/src/html/html_document.c index 7a10f2a..27016ef 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -28,6 +28,8 @@ #include "html/html_dlist_element.h" #include "html/html_directory_element.h" #include "html/html_menu_element.h" +#include "html/html_fieldset_element.h" +#include "html/html_legend_element.h" #include "core/attr.h" #include "core/string.h" @@ -236,6 +238,12 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_MENU])) { exc = _dom_html_menu_element_create(html, namespace, prefix, (dom_html_menu_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_FIELDSET])) { + exc = _dom_html_field_set_element_create(html, namespace, prefix, + (dom_html_field_set_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_LEGEND])) { + exc = _dom_html_legend_element_create(html, namespace, prefix, + (dom_html_legend_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_fieldset_element.c b/src/html/html_fieldset_element.c index 2e182d5..2ab873e 100644 --- a/src/html/html_fieldset_element.c +++ b/src/html/html_fieldset_element.c @@ -3,5 +3,151 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_fieldset_element.h" + +#include "core/node.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_FIELDSET_ELEMENT + }, + DOM_HTML_FIELDSET_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_field_set_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_field_set_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_field_set_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_field_set_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_field_set_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_field_set_element object + * + * \param doc The document object + * \param ele The dom_html_field_set_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_field_set_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_field_set_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_FIELDSET], + namespace, prefix); +} + +/** + * Finalise a dom_html_field_set_element object + * + * \param ele The dom_html_field_set_element object + */ +void _dom_html_field_set_element_finalise(struct dom_html_field_set_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_field_set_element object + * + * \param ele The dom_html_field_set_element object + */ +void _dom_html_field_set_element_destroy(struct dom_html_field_set_element *ele) +{ + _dom_html_field_set_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_field_set_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_field_set_element_destroy(dom_node_internal *node) +{ + _dom_html_field_set_element_destroy((struct dom_html_field_set_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_field_set_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/** + * Get the dom_html_form_element object + * + * \param field_set The dom_html_legend_element object + * \param form The returned dom_html_form_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ + +dom_exception dom_html_field_set_element_get_form( + dom_html_field_set_element *field_set, dom_html_form_element **form) +{ + dom_html_document *doc = + (dom_html_document *) ((dom_node_internal *) field_set)->owner; + dom_node_internal *form_tmp = ((dom_node_internal *) field_set)->parent; + + /* Search ancestor chain for FIELDSET element */ + while (form_tmp != NULL) { + if (form_tmp->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(form_tmp->name, + doc->memoised[hds_FORM])) + break; + + form_tmp = form_tmp->parent; + } + + if (form_tmp != NULL) { + *form = (dom_html_form_element *) form_tmp; + return DOM_NO_ERR; + } + + *form = NULL; + + return DOM_NO_ERR; +} diff --git a/src/html/html_fieldset_element.h b/src/html/html_fieldset_element.h index 2e182d5..8ae1d59 100644 --- a/src/html/html_fieldset_element.h +++ b/src/html/html_fieldset_element.h @@ -3,5 +3,51 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_field_set_element_h_ +#define dom_internal_html_field_set_element_h_ + +#include + +#include "html/html_element.h" + +struct dom_html_field_set_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_field_set_element object */ +dom_exception _dom_html_field_set_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_field_set_element **ele); + +/* Initialise a dom_html_field_set_element object */ +dom_exception _dom_html_field_set_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_field_set_element *ele); + +/* Finalise a dom_html_field_set_element object */ +void _dom_html_field_set_element_finalise(struct dom_html_field_set_element *ele); + +/* Destroy a dom_html_field_set_element object */ +void _dom_html_field_set_element_destroy(struct dom_html_field_set_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_field_set_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_field_set_element_destroy(dom_node_internal *node); +dom_exception _dom_html_field_set_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_FIELDSET_ELEMENT_PROTECT_VTABLE \ + _dom_html_field_set_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_FIELDSET_ELEMENT \ + _dom_virtual_html_field_set_element_destroy, \ + _dom_html_field_set_element_copy + +#endif + diff --git a/src/html/html_form_element.c b/src/html/html_form_element.c index 333cf74..0606ba6 100644 --- a/src/html/html_form_element.c +++ b/src/html/html_form_element.c @@ -281,7 +281,7 @@ static bool _dom_is_form_control(struct dom_node_internal *node, void *ctx) assert(node->type == DOM_ELEMENT_NODE); - /* Form controls are INPUT TEXTAREA SELECT and BUTTON */ + /* Form controls are INPUT TEXTAREA SELECT and BUTTON*/ if (dom_string_caseless_isequal(node->name, doc->memoised[hds_INPUT])) return ((dom_html_input_element *)node)->form == form; diff --git a/src/html/html_legend_element.c b/src/html/html_legend_element.c index 2e182d5..2d0e939 100644 --- a/src/html/html_legend_element.c +++ b/src/html/html_legend_element.c @@ -3,5 +3,213 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include +#include + +#include "html/html_document.h" +#include "html/html_legend_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_LEGEND_ELEMENT + }, + DOM_HTML_LEGEND_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_legend_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_legend_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_legend_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_legend_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_legend_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_legend_element object + * + * \param doc The document object + * \param ele The dom_html_legend_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_legend_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_legend_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_LEGEND], + namespace, prefix); +} + +/** + * Finalise a dom_html_legend_element object + * + * \param ele The dom_html_legend_element object + */ +void _dom_html_legend_element_finalise(struct dom_html_legend_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_legend_element object + * + * \param ele The dom_html_legend_element object + */ +void _dom_html_legend_element_destroy(struct dom_html_legend_element *ele) +{ + _dom_html_legend_element_finalise(ele); + free(ele); +} + +/** + * Get the dom_html_form_element object + * + * \param legend The dom_html_legend_element object + * \param form The returned dom_html_form_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_legend_element_get_form( + dom_html_legend_element *legend, dom_html_form_element **form) +{ + dom_html_document *doc + = (dom_html_document *) ((dom_node_internal *) legend)->owner; + dom_node_internal *field_set = ((dom_node_internal *) legend)->parent; + + /* Search ancestor chain for FIELDSET element */ + while (field_set != NULL) { + if (field_set->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(field_set->name, + doc->memoised[hds_FIELDSET])) + break; + + field_set = field_set->parent; + } + + if (field_set != NULL) { + return dom_html_field_set_element_get_form((dom_html_field_set_element *) field_set, + form); + } + + *form = NULL; + + return DOM_NO_ERR; +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_legend_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_legend_element_destroy(dom_node_internal *node) +{ + _dom_html_legend_element_destroy((struct dom_html_legend_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_legend_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_legend_element_get_##attr( \ + dom_html_legend_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_legend_element_set_##attr( \ + dom_html_legend_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(access_key); +SIMPLE_SET(align); + +dom_exception dom_html_legend_element_get_align( + dom_html_legend_element *legend, dom_string **align) +{ + dom_exception err; + dom_html_document *doc = (dom_html_document *) + ((dom_node_internal *)legend)->owner; + err = dom_element_get_attribute(legend, + doc->memoised[hds_align], align); + if (err != DOM_NO_ERR) + return err; + + if (*align == NULL) { + err = dom_string_create((const uint8_t *) "none", SLEN("none"), align); + } + + return err; +} + diff --git a/src/html/html_legend_element.h b/src/html/html_legend_element.h index 2e182d5..a656ae4 100644 --- a/src/html/html_legend_element.h +++ b/src/html/html_legend_element.h @@ -3,5 +3,51 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_legend_element_h_ +#define dom_internal_html_legend_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_legend_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_legend_element object */ +dom_exception _dom_html_legend_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_legend_element **ele); + +/* Initialise a dom_html_legend_element object */ +dom_exception _dom_html_legend_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_legend_element *ele); + +/* Finalise a dom_html_legend_element object */ +void _dom_html_legend_element_finalise(struct dom_html_legend_element *ele); + +/* Destroy a dom_html_legend_element object */ +void _dom_html_legend_element_destroy(struct dom_html_legend_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_legend_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_legend_element_destroy(dom_node_internal *node); +dom_exception _dom_html_legend_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_LEGEND_ELEMENT_PROTECT_VTABLE \ + _dom_html_legend_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_LEGEND_ELEMENT \ + _dom_virtual_html_legend_element_destroy, \ + _dom_html_legend_element_copy + +#endif + diff --git a/test/testcases/tests/level1/html/HTMLFieldSetElement01.xml b/test/testcases/tests/level1/html/HTMLFieldSetElement01.xml new file mode 100644 index 0000000..b6c6e98 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFieldSetElement01.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLFieldSetElement01 +NIST + + The form attribute returns the FORM element containing this control. + + Retrieve the form attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + +
+ + + diff --git a/test/testcases/tests/level1/html/HTMLFieldSetElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLFieldSetElement01.xml.kfail deleted file mode 100644 index b6c6e98..0000000 --- a/test/testcases/tests/level1/html/HTMLFieldSetElement01.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLFieldSetElement01 -NIST - - The form attribute returns the FORM element containing this control. - - Retrieve the form attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLFieldSetElement02.xml b/test/testcases/tests/level1/html/HTMLFieldSetElement02.xml new file mode 100644 index 0000000..09d0877 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFieldSetElement02.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLFieldSetElement02 +NIST + + The form attribute returns null if control in not within the context of + form. + + Retrieve the form attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLFieldSetElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLFieldSetElement02.xml.kfail deleted file mode 100644 index 09d0877..0000000 --- a/test/testcases/tests/level1/html/HTMLFieldSetElement02.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLFieldSetElement02 -NIST - - The form attribute returns null if control in not within the context of - form. - - Retrieve the form attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLLegendElement01.xml b/test/testcases/tests/level1/html/HTMLLegendElement01.xml new file mode 100644 index 0000000..f478379 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLLegendElement01.xml @@ -0,0 +1,45 @@ + + + + + + + +HTMLLLegendElement01 +NIST + + The form attribute returns the FORM element containing this control. + + Retrieve the form attribute from the first LEGEND element + and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLLegendElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLLegendElement01.xml.kfail deleted file mode 100644 index f478379..0000000 --- a/test/testcases/tests/level1/html/HTMLLegendElement01.xml.kfail +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - -HTMLLLegendElement01 -NIST - - The form attribute returns the FORM element containing this control. - - Retrieve the form attribute from the first LEGEND element - and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLLegendElement02.xml b/test/testcases/tests/level1/html/HTMLLegendElement02.xml new file mode 100644 index 0000000..19cf87f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLLegendElement02.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLLegendElement02 +NIST + + The form attribute returns null if control in not within the context of + form. + + Retrieve the second ELEMENT and examine its form element. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLLegendElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLLegendElement02.xml.kfail deleted file mode 100644 index 19cf87f..0000000 --- a/test/testcases/tests/level1/html/HTMLLegendElement02.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLLegendElement02 -NIST - - The form attribute returns null if control in not within the context of - form. - - Retrieve the second ELEMENT and examine its form element. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLLegendElement03.xml b/test/testcases/tests/level1/html/HTMLLegendElement03.xml new file mode 100644 index 0000000..a3747fd --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLLegendElement03.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLLegendElement03 +NIST + + The accessKey attribute is a single character access key to give access + to the form control. + + Retrieve the accessKey attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLLegendElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLLegendElement03.xml.kfail deleted file mode 100644 index a3747fd..0000000 --- a/test/testcases/tests/level1/html/HTMLLegendElement03.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLLegendElement03 -NIST - - The accessKey attribute is a single character access key to give access - to the form control. - - Retrieve the accessKey attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLLegendElement04.xml b/test/testcases/tests/level1/html/HTMLLegendElement04.xml new file mode 100644 index 0000000..fa3e76c --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLLegendElement04.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLLegendElement04 +NIST + + The align attribute specifies the text alignment relative to FIELDSET. + + Retrieve the align attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLLegendElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLLegendElement04.xml.kfail deleted file mode 100644 index fa3e76c..0000000 --- a/test/testcases/tests/level1/html/HTMLLegendElement04.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLLegendElement04 -NIST - - The align attribute specifies the text alignment relative to FIELDSET. - - Retrieve the align attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From 753e0130c0b53f1322af6e2ba46ff080b63f3ed1 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Sat, 3 May 2014 01:34:40 +0530 Subject: Paragraph Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_paragraph_element.h | 16 +++ src/html/Makefile | 5 +- src/html/html_document.c | 4 + src/html/html_paragraph_element.c | 154 +++++++++++++++++++++ src/html/html_paragraph_element.h | 45 ++++++ .../tests/level1/html/HTMLParagraphElement01.xml | 42 ++++++ .../level1/html/HTMLParagraphElement01.xml.kfail | 42 ------ 9 files changed, 266 insertions(+), 44 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLParagraphElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLParagraphElement01.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 88f11f9..254531c 100644 --- a/Makefile +++ b/Makefile @@ -103,6 +103,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_menu_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_fieldset_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_legend_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_div_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_paragraph_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 0988990..e2d0661 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -62,6 +62,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_paragraph_element.h b/include/dom/html/html_paragraph_element.h index 2e182d5..c0e228a 100644 --- a/include/dom/html/html_paragraph_element.h +++ b/include/dom/html/html_paragraph_element.h @@ -3,5 +3,21 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_paragraph_element_h_ +#define dom_html_paragraph_element_h_ +#include +#include +#include + +typedef struct dom_html_paragraph_element dom_html_paragraph_element; + +dom_exception dom_html_paragraph_element_get_align( + dom_html_paragraph_element *element, dom_string **align); + +dom_exception dom_html_paragraph_element_set_align( + dom_html_paragraph_element *element, dom_string *align); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 1ddd1e2..463dba3 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -8,11 +8,12 @@ DIR_SOURCES := \ html_button_element.c html_input_element.c html_text_area_element.c \ html_opt_group_element.c html_option_element.c html_hr_element.c \ html_dlist_element.c html_directory_element.c html_menu_element.c \ - html_fieldset_element.c html_legend_element.c html_div_element.c + html_fieldset_element.c html_legend_element.c html_div_element.c \ + html_paragraph_element.c UNINMPLEMENTED_SOURCES := \ html_label_element.c html_ulist_element.c html_olist_element.c \ - html_li_element.c html_paragraph_element.c \ + html_li_element.c \ html_heading_element.c html_quote_element.c html_pre_element.c \ html_br_element.c html_basefont_element.c html_font_element.c \ html_mod_element.c html_anchor_element.c \ diff --git a/src/html/html_document.c b/src/html/html_document.c index 27016ef..823194c 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -30,6 +30,7 @@ #include "html/html_menu_element.h" #include "html/html_fieldset_element.h" #include "html/html_legend_element.h" +#include "html/html_paragraph_element.h" #include "core/attr.h" #include "core/string.h" @@ -244,6 +245,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_LEGEND])) { exc = _dom_html_legend_element_create(html, namespace, prefix, (dom_html_legend_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_P])) { + exc = _dom_html_paragraph_element_create(html, namespace, prefix, + (dom_html_paragraph_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_paragraph_element.c b/src/html/html_paragraph_element.c index 2e182d5..20a6c28 100644 --- a/src/html/html_paragraph_element.c +++ b/src/html/html_paragraph_element.c @@ -3,5 +3,159 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_paragraph_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_P_ELEMENT + }, + DOM_HTML_P_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_paragraph_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_paragraph_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_paragraph_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_paragraph_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_paragraph_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_paragraph_element object + * + * \param doc The document object + * \param ele The dom_html_paragraph_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_paragraph_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_paragraph_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_P], + namespace, prefix); +} + +/** + * Finalise a dom_html_paragraph_element object + * + * \param ele The dom_html_paragraph_element object + */ +void _dom_html_paragraph_element_finalise(struct dom_html_paragraph_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_paragraph_element object + * + * \param ele The dom_html_paragraph_element object + */ +void _dom_html_paragraph_element_destroy(struct dom_html_paragraph_element *ele) +{ + _dom_html_paragraph_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_paragraph_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_paragraph_element_destroy(dom_node_internal *node) +{ + _dom_html_paragraph_element_destroy((struct dom_html_paragraph_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_paragraph_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_paragraph_element_get_##attr( \ + dom_html_paragraph_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_paragraph_element_set_##attr( \ + dom_html_paragraph_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(align); diff --git a/src/html/html_paragraph_element.h b/src/html/html_paragraph_element.h index 2e182d5..b6627dd 100644 --- a/src/html/html_paragraph_element.h +++ b/src/html/html_paragraph_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_paragraph_element_h_ +#define dom_internal_html_paragraph_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_paragraph_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_paragraph_element object */ +dom_exception _dom_html_paragraph_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_paragraph_element **ele); + +/* Initialise a dom_html_paragraph_element object */ +dom_exception _dom_html_paragraph_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_paragraph_element *ele); + +/* Finalise a dom_html_paragraph_element object */ +void _dom_html_paragraph_element_finalise(struct dom_html_paragraph_element *ele); + +/* Destroy a dom_html_paragraph_element object */ +void _dom_html_paragraph_element_destroy(struct dom_html_paragraph_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_paragraph_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_paragraph_element_destroy(dom_node_internal *node); +dom_exception _dom_html_paragraph_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_P_ELEMENT_PROTECT_VTABLE \ + _dom_html_paragraph_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_P_ELEMENT \ + _dom_virtual_html_paragraph_element_destroy, \ + _dom_html_paragraph_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLParagraphElement01.xml b/test/testcases/tests/level1/html/HTMLParagraphElement01.xml new file mode 100644 index 0000000..0f3fa0e --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLParagraphElement01.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLParagraphElement01 +NIST + + The align attribute specifies the horizontal text alignment. + + Retrieve the align attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLParagraphElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLParagraphElement01.xml.kfail deleted file mode 100644 index 0f3fa0e..0000000 --- a/test/testcases/tests/level1/html/HTMLParagraphElement01.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLParagraphElement01 -NIST - - The align attribute specifies the horizontal text alignment. - - Retrieve the align attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From dfedb7c691be7ae1c44eaa5e83590697b3ba3385 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Sat, 3 May 2014 04:59:10 +0530 Subject: H1, H2, H3, H4, H5 & H6 Elements --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_heading_element.h | 16 +++ src/html/Makefile | 4 +- src/html/TODO | 2 +- src/html/html_document.c | 10 ++ src/html/html_heading_element.c | 156 +++++++++++++++++++++ src/html/html_heading_element.h | 45 ++++++ .../tests/level1/html/HTMLHeadingElement01.xml | 42 ++++++ .../level1/html/HTMLHeadingElement01.xml.kfail | 42 ------ .../tests/level1/html/HTMLHeadingElement02.xml | 42 ++++++ .../level1/html/HTMLHeadingElement02.xml.kfail | 42 ------ .../tests/level1/html/HTMLHeadingElement03.xml | 42 ++++++ .../level1/html/HTMLHeadingElement03.xml.kfail | 42 ------ .../tests/level1/html/HTMLHeadingElement04.xml | 42 ++++++ .../level1/html/HTMLHeadingElement04.xml.kfail | 42 ------ .../tests/level1/html/HTMLHeadingElement05.xml | 42 ++++++ .../level1/html/HTMLHeadingElement05.xml.kfail | 42 ------ .../tests/level1/html/HTMLHeadingElement06.xml | 42 ++++++ .../level1/html/HTMLHeadingElement06.xml.kfail | 42 ------ 20 files changed, 484 insertions(+), 255 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLHeadingElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLHeadingElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLHeadingElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLHeadingElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLHeadingElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLHeadingElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLHeadingElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLHeadingElement04.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLHeadingElement05.xml delete mode 100644 test/testcases/tests/level1/html/HTMLHeadingElement05.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLHeadingElement06.xml delete mode 100644 test/testcases/tests/level1/html/HTMLHeadingElement06.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 254531c..89adc6f 100644 --- a/Makefile +++ b/Makefile @@ -104,6 +104,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_fieldset_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_legend_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_div_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_paragraph_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_heading_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index e2d0661..2dd63bb 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -63,6 +63,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_heading_element.h b/include/dom/html/html_heading_element.h index 2e182d5..fb42b89 100644 --- a/include/dom/html/html_heading_element.h +++ b/include/dom/html/html_heading_element.h @@ -3,5 +3,21 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_heading_element_h_ +#define dom_html_heading_element_h_ +#include +#include +#include + +typedef struct dom_html_heading_element dom_html_heading_element; + +dom_exception dom_html_heading_element_get_align( + dom_html_heading_element *element, dom_string **align); + +dom_exception dom_html_heading_element_set_align( + dom_html_heading_element *element, dom_string *align); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 463dba3..72cdadf 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -9,12 +9,12 @@ DIR_SOURCES := \ html_opt_group_element.c html_option_element.c html_hr_element.c \ html_dlist_element.c html_directory_element.c html_menu_element.c \ html_fieldset_element.c html_legend_element.c html_div_element.c \ - html_paragraph_element.c + html_paragraph_element.c html_heading_element.c UNINMPLEMENTED_SOURCES := \ html_label_element.c html_ulist_element.c html_olist_element.c \ html_li_element.c \ - html_heading_element.c html_quote_element.c html_pre_element.c \ + html_quote_element.c html_pre_element.c \ html_br_element.c html_basefont_element.c html_font_element.c \ html_mod_element.c html_anchor_element.c \ html_image_element.c html_object_element.c html_param_element.c \ diff --git a/src/html/TODO b/src/html/TODO index b6ed604..f33587d 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -30,7 +30,7 @@ HTMLLIElement html_li_element MISSING HTMLBlockquoteElement html_blockquote_element MISSING HTMLDivElement html_div_element MISSING HTMLParagraphElement html_paragraph_element MISSING -HTMLHeadingElement html_heading_element MISSING +HTMLHeadingElement html_heading_element DONE HTMLQuoteElement html_quote_element MISSING HTMLPreElement html_pre_element MISSING HTMLBRElement html_br_element MISSING diff --git a/src/html/html_document.c b/src/html/html_document.c index 823194c..f4a2a64 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -31,6 +31,7 @@ #include "html/html_fieldset_element.h" #include "html/html_legend_element.h" #include "html/html_paragraph_element.h" +#include "html/html_heading_element.h" #include "core/attr.h" #include "core/string.h" @@ -248,6 +249,15 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_P])) { exc = _dom_html_paragraph_element_create(html, namespace, prefix, (dom_html_paragraph_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_H1]) || + dom_string_caseless_isequal(tag_name, html->memoised[hds_H2]) || + dom_string_caseless_isequal(tag_name, html->memoised[hds_H3]) || + dom_string_caseless_isequal(tag_name, html->memoised[hds_H4]) || + dom_string_caseless_isequal(tag_name, html->memoised[hds_H5]) || + dom_string_caseless_isequal(tag_name, html->memoised[hds_H6]) + ) { + exc = _dom_html_heading_element_create(html, tag_name, namespace, prefix, + (dom_html_heading_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_heading_element.c b/src/html/html_heading_element.c index 2e182d5..ba2842f 100644 --- a/src/html/html_heading_element.c +++ b/src/html/html_heading_element.c @@ -3,5 +3,161 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_heading_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_HEADING_ELEMENT + }, + DOM_HTML_HEADING_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_heading_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_heading_element_create(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, + dom_string *prefix, struct dom_html_heading_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_heading_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_heading_element_initialise(doc, + tag_name, namespace, + prefix, *ele); +} + +/** + * Initialise a dom_html_heading_element object + * + * \param doc The document object + * \param ele The dom_html_heading_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_heading_element_initialise(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, + dom_string *prefix, struct dom_html_heading_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + tag_name, namespace, + prefix); +} + +/** + * Finalise a dom_html_heading_element object + * + * \param ele The dom_html_heading_element object + */ +void _dom_html_heading_element_finalise(struct dom_html_heading_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_heading_element object + * + * \param ele The dom_html_heading_element object + */ +void _dom_html_heading_element_destroy(struct dom_html_heading_element *ele) +{ + _dom_html_heading_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_heading_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_heading_element_destroy(dom_node_internal *node) +{ + _dom_html_heading_element_destroy((struct dom_html_heading_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_heading_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_heading_element_get_##attr( \ + dom_html_heading_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_heading_element_set_##attr( \ + dom_html_heading_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(align); diff --git a/src/html/html_heading_element.h b/src/html/html_heading_element.h index 2e182d5..fdd1c25 100644 --- a/src/html/html_heading_element.h +++ b/src/html/html_heading_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_heading_element_h_ +#define dom_internal_html_heading_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_heading_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_heading_element object */ +dom_exception _dom_html_heading_element_create(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, + dom_string *prefix, struct dom_html_heading_element **ele); + +/* Initialise a dom_html_heading_element object */ +dom_exception _dom_html_heading_element_initialise(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, + dom_string *prefix, struct dom_html_heading_element *ele); + +/* Finalise a dom_html_heading_element object */ +void _dom_html_heading_element_finalise(struct dom_html_heading_element *ele); + +/* Destroy a dom_html_heading_element object */ +void _dom_html_heading_element_destroy(struct dom_html_heading_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_heading_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_heading_element_destroy(dom_node_internal *node); +dom_exception _dom_html_heading_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_HEADING_ELEMENT_PROTECT_VTABLE \ + _dom_html_heading_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_HEADING_ELEMENT \ + _dom_virtual_html_heading_element_destroy, \ + _dom_html_heading_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLHeadingElement01.xml b/test/testcases/tests/level1/html/HTMLHeadingElement01.xml new file mode 100644 index 0000000..3f8b9fa --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLHeadingElement01.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLHeadingElement01 +NIST + + The align attribute specifies the horizontal text alignment(H1). + + Retrieve the align attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLHeadingElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLHeadingElement01.xml.kfail deleted file mode 100644 index 3f8b9fa..0000000 --- a/test/testcases/tests/level1/html/HTMLHeadingElement01.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLHeadingElement01 -NIST - - The align attribute specifies the horizontal text alignment(H1). - - Retrieve the align attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLHeadingElement02.xml b/test/testcases/tests/level1/html/HTMLHeadingElement02.xml new file mode 100644 index 0000000..e74b428 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLHeadingElement02.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLHeadingElement02 +NIST + + The align attribute specifies the horizontal text alignment(H2). + + Retrieve the align attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLHeadingElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLHeadingElement02.xml.kfail deleted file mode 100644 index e74b428..0000000 --- a/test/testcases/tests/level1/html/HTMLHeadingElement02.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLHeadingElement02 -NIST - - The align attribute specifies the horizontal text alignment(H2). - - Retrieve the align attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLHeadingElement03.xml b/test/testcases/tests/level1/html/HTMLHeadingElement03.xml new file mode 100644 index 0000000..a03702b --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLHeadingElement03.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLHeadingElement03 +NIST + + The align attribute specifies the horizontal text alignment(H3). + + Retrieve the align attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLHeadingElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLHeadingElement03.xml.kfail deleted file mode 100644 index a03702b..0000000 --- a/test/testcases/tests/level1/html/HTMLHeadingElement03.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLHeadingElement03 -NIST - - The align attribute specifies the horizontal text alignment(H3). - - Retrieve the align attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLHeadingElement04.xml b/test/testcases/tests/level1/html/HTMLHeadingElement04.xml new file mode 100644 index 0000000..9e16866 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLHeadingElement04.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLHeadingElement04 +NIST + + The align attribute specifies the horizontal text alignment(H4). + + Retrieve the align attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLHeadingElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLHeadingElement04.xml.kfail deleted file mode 100644 index 9e16866..0000000 --- a/test/testcases/tests/level1/html/HTMLHeadingElement04.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLHeadingElement04 -NIST - - The align attribute specifies the horizontal text alignment(H4). - - Retrieve the align attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLHeadingElement05.xml b/test/testcases/tests/level1/html/HTMLHeadingElement05.xml new file mode 100644 index 0000000..e732f74 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLHeadingElement05.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLHeadingElement05 +NIST + + The align attribute specifies the horizontal text alignment(H5). + + Retrieve the align attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLHeadingElement05.xml.kfail b/test/testcases/tests/level1/html/HTMLHeadingElement05.xml.kfail deleted file mode 100644 index e732f74..0000000 --- a/test/testcases/tests/level1/html/HTMLHeadingElement05.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLHeadingElement05 -NIST - - The align attribute specifies the horizontal text alignment(H5). - - Retrieve the align attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLHeadingElement06.xml b/test/testcases/tests/level1/html/HTMLHeadingElement06.xml new file mode 100644 index 0000000..3853483 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLHeadingElement06.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLHeadingElement06 +NIST + + The align attribute specifies the horizontal text alignment(H6). + + Retrieve the align attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLHeadingElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLHeadingElement06.xml.kfail deleted file mode 100644 index 3853483..0000000 --- a/test/testcases/tests/level1/html/HTMLHeadingElement06.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLHeadingElement06 -NIST - - The align attribute specifies the horizontal text alignment(H6). - - Retrieve the align attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From 6e95420b74d8e9da135c7ba6f2c80a1f7bdc6dba Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Tue, 6 May 2014 18:02:40 +0530 Subject: QUOTE Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_quote_element.h | 16 +++ src/html/Makefile | 5 +- src/html/html_document.c | 4 + src/html/html_document_strings.h | 1 + src/html/html_quote_element.c | 154 +++++++++++++++++++++ src/html/html_quote_element.h | 45 ++++++ .../tests/level1/html/HTMLQuoteElement01.xml | 43 ++++++ .../tests/level1/html/HTMLQuoteElement01.xml.kfail | 43 ------ .../tests/level1/html/HTMLQuoteElement02.xml | 44 ++++++ .../tests/level1/html/HTMLQuoteElement02.xml.kfail | 44 ------ 12 files changed, 311 insertions(+), 90 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLQuoteElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLQuoteElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLQuoteElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLQuoteElement02.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 89adc6f..db20cab 100644 --- a/Makefile +++ b/Makefile @@ -105,6 +105,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_legend_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_div_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_paragraph_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_heading_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_quote_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 2dd63bb..d820fd0 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -64,6 +64,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_quote_element.h b/include/dom/html/html_quote_element.h index 2e182d5..7d88eef 100644 --- a/include/dom/html/html_quote_element.h +++ b/include/dom/html/html_quote_element.h @@ -3,5 +3,21 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_quote_element_h_ +#define dom_html_quote_element_h_ +#include +#include +#include + +typedef struct dom_html_quote_element dom_html_quote_element; + +dom_exception dom_html_quote_element_get_cite( + dom_html_quote_element *element, dom_string **cite); + +dom_exception dom_html_quote_element_set_cite( + dom_html_quote_element *element, dom_string *cite); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 72cdadf..1c84310 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -9,12 +9,11 @@ DIR_SOURCES := \ html_opt_group_element.c html_option_element.c html_hr_element.c \ html_dlist_element.c html_directory_element.c html_menu_element.c \ html_fieldset_element.c html_legend_element.c html_div_element.c \ - html_paragraph_element.c html_heading_element.c + html_paragraph_element.c html_heading_element.c html_quote_element.c UNINMPLEMENTED_SOURCES := \ html_label_element.c html_ulist_element.c html_olist_element.c \ - html_li_element.c \ - html_quote_element.c html_pre_element.c \ + html_li_element.c html_pre_element.c \ html_br_element.c html_basefont_element.c html_font_element.c \ html_mod_element.c html_anchor_element.c \ html_image_element.c html_object_element.c html_param_element.c \ diff --git a/src/html/html_document.c b/src/html/html_document.c index f4a2a64..ecf861f 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -32,6 +32,7 @@ #include "html/html_legend_element.h" #include "html/html_paragraph_element.h" #include "html/html_heading_element.h" +#include "html/html_quote_element.h" #include "core/attr.h" #include "core/string.h" @@ -258,6 +259,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, ) { exc = _dom_html_heading_element_create(html, tag_name, namespace, prefix, (dom_html_heading_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_Q])) { + exc = _dom_html_quote_element_create(html, namespace, prefix, + (dom_html_quote_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index 9de497f..3334593 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -82,6 +82,7 @@ HTML_DOCUMENT_STRINGS_ACTION1(size) HTML_DOCUMENT_STRINGS_ACTION1(src) HTML_DOCUMENT_STRINGS_ACTION1(width) HTML_DOCUMENT_STRINGS_ACTION1(compact) +HTML_DOCUMENT_STRINGS_ACTION1(cite) HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex) /* HTML_DOCUMENT_STRINGS_ACTION1(type) */ HTML_DOCUMENT_STRINGS_ACTION(use_map,usemap) diff --git a/src/html/html_quote_element.c b/src/html/html_quote_element.c index 2e182d5..d16bad8 100644 --- a/src/html/html_quote_element.c +++ b/src/html/html_quote_element.c @@ -3,5 +3,159 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_quote_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_QUOTE_ELEMENT + }, + DOM_HTML_QUOTE_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_quote_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_quote_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_quote_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_quote_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_quote_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_quote_element object + * + * \param doc The document object + * \param ele The dom_html_quote_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_quote_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_quote_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_Q], + namespace, prefix); +} + +/** + * Finalise a dom_html_quote_element object + * + * \param ele The dom_html_quote_element object + */ +void _dom_html_quote_element_finalise(struct dom_html_quote_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_quote_element object + * + * \param ele The dom_html_quote_element object + */ +void _dom_html_quote_element_destroy(struct dom_html_quote_element *ele) +{ + _dom_html_quote_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_quote_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_quote_element_destroy(dom_node_internal *node) +{ + _dom_html_quote_element_destroy((struct dom_html_quote_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_quote_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_quote_element_get_##attr( \ + dom_html_quote_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_quote_element_set_##attr( \ + dom_html_quote_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(cite); diff --git a/src/html/html_quote_element.h b/src/html/html_quote_element.h index 2e182d5..a8bfbb2 100644 --- a/src/html/html_quote_element.h +++ b/src/html/html_quote_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_quote_element_h_ +#define dom_internal_html_quote_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_quote_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_quote_element object */ +dom_exception _dom_html_quote_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_quote_element **ele); + +/* Initialise a dom_html_quote_element object */ +dom_exception _dom_html_quote_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_quote_element *ele); + +/* Finalise a dom_html_quote_element object */ +void _dom_html_quote_element_finalise(struct dom_html_quote_element *ele); + +/* Destroy a dom_html_quote_element object */ +void _dom_html_quote_element_destroy(struct dom_html_quote_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_quote_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_quote_element_destroy(dom_node_internal *node); +dom_exception _dom_html_quote_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_QUOTE_ELEMENT_PROTECT_VTABLE \ + _dom_html_quote_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_QUOTE_ELEMENT \ + _dom_virtual_html_quote_element_destroy, \ + _dom_html_quote_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLQuoteElement01.xml b/test/testcases/tests/level1/html/HTMLQuoteElement01.xml new file mode 100644 index 0000000..f7aadf7 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLQuoteElement01.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLQuoteElement01 +NIST + + The cite attribute specifies a URI designating a source document + or message. + + Retrieve the cite attribute from the Q element and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLQuoteElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLQuoteElement01.xml.kfail deleted file mode 100644 index f7aadf7..0000000 --- a/test/testcases/tests/level1/html/HTMLQuoteElement01.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLQuoteElement01 -NIST - - The cite attribute specifies a URI designating a source document - or message. - - Retrieve the cite attribute from the Q element and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLQuoteElement02.xml b/test/testcases/tests/level1/html/HTMLQuoteElement02.xml new file mode 100644 index 0000000..342b10f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLQuoteElement02.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLQuoteElement02 +NIST + + The cite attribute specifies a URI designating a source document + or message. + + Retrieve the cite attribute from the BLOCKQUOTE element and + examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLQuoteElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLQuoteElement02.xml.kfail deleted file mode 100644 index 342b10f..0000000 --- a/test/testcases/tests/level1/html/HTMLQuoteElement02.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLQuoteElement02 -NIST - - The cite attribute specifies a URI designating a source document - or message. - - Retrieve the cite attribute from the BLOCKQUOTE element and - examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From 271efd52662ef01f2514a948d44b1cf2af1949f8 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Thu, 8 May 2014 03:55:24 +0530 Subject: Pre Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_pre_element.h | 16 +++ src/html/Makefile | 7 +- src/html/TODO | 4 +- src/html/html_document.c | 4 + src/html/html_pre_element.c | 136 +++++++++++++++++++++ src/html/html_pre_element.h | 45 +++++++ .../tests/level1/html/HTMLPreElement01.xml | 42 +++++++ .../tests/level1/html/HTMLPreElement01.xml.kfail | 42 ------- 10 files changed, 251 insertions(+), 47 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLPreElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLPreElement01.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index db20cab..eb2870d 100644 --- a/Makefile +++ b/Makefile @@ -106,6 +106,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_div_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_paragraph_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_heading_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_quote_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_pre_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index d820fd0..8b9e0c9 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -65,6 +65,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_pre_element.h b/include/dom/html/html_pre_element.h index 2e182d5..bd72701 100644 --- a/include/dom/html/html_pre_element.h +++ b/include/dom/html/html_pre_element.h @@ -3,5 +3,21 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_pre_element_h_ +#define dom_html_pre_element_h_ +#include +#include +#include + +typedef struct dom_html_pre_element dom_html_pre_element; + +dom_exception dom_html_pre_element_get_width( + dom_html_pre_element *element, int32_t *width); + +dom_exception dom_html_pre_element_set_width( + dom_html_pre_element *element, uint32_t width); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 1c84310..718a44f 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -9,12 +9,13 @@ DIR_SOURCES := \ html_opt_group_element.c html_option_element.c html_hr_element.c \ html_dlist_element.c html_directory_element.c html_menu_element.c \ html_fieldset_element.c html_legend_element.c html_div_element.c \ - html_paragraph_element.c html_heading_element.c html_quote_element.c + html_paragraph_element.c html_heading_element.c html_quote_element.c \ + html_pre_element.c UNINMPLEMENTED_SOURCES := \ html_label_element.c html_ulist_element.c html_olist_element.c \ - html_li_element.c html_pre_element.c \ - html_br_element.c html_basefont_element.c html_font_element.c \ + html_li_element.c html_br_element.c \ + html_basefont_element.c html_font_element.c \ html_mod_element.c html_anchor_element.c \ html_image_element.c html_object_element.c html_param_element.c \ html_applet_element.c html_map_element.c html_area_element.c \ diff --git a/src/html/TODO b/src/html/TODO index f33587d..8753087 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -31,8 +31,8 @@ HTMLBlockquoteElement html_blockquote_element MISSING HTMLDivElement html_div_element MISSING HTMLParagraphElement html_paragraph_element MISSING HTMLHeadingElement html_heading_element DONE -HTMLQuoteElement html_quote_element MISSING -HTMLPreElement html_pre_element MISSING +HTMLQuoteElement html_quote_element DONE +HTMLPreElement html_pre_element DONE HTMLBRElement html_br_element MISSING HTMLBaseFontElement html_basefont_element MISSING HTMLFontElement html_font_element MISSING diff --git a/src/html/html_document.c b/src/html/html_document.c index ecf861f..68734fa 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -33,6 +33,7 @@ #include "html/html_paragraph_element.h" #include "html/html_heading_element.h" #include "html/html_quote_element.h" +#include "html/html_pre_element.h" #include "core/attr.h" #include "core/string.h" @@ -262,6 +263,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_Q])) { exc = _dom_html_quote_element_create(html, namespace, prefix, (dom_html_quote_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_PRE])) { + exc = _dom_html_pre_element_create(html, namespace, prefix, + (dom_html_pre_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_pre_element.c b/src/html/html_pre_element.c index 2e182d5..1d220fd 100644 --- a/src/html/html_pre_element.c +++ b/src/html/html_pre_element.c @@ -3,5 +3,141 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_pre_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_PRE_ELEMENT + }, + DOM_HTML_PRE_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_pre_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_pre_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_pre_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_pre_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_pre_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_pre_element object + * + * \param doc The document object + * \param ele The dom_html_pre_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_pre_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_pre_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_PRE], + namespace, prefix); +} + +/** + * Finalise a dom_html_pre_element object + * + * \param ele The dom_html_pre_element object + */ +void _dom_html_pre_element_finalise(struct dom_html_pre_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_pre_element object + * + * \param ele The dom_html_pre_element object + */ +void _dom_html_pre_element_destroy(struct dom_html_pre_element *ele) +{ + _dom_html_pre_element_finalise(ele); + free(ele); +} + +/** + * Get the width Property + * + * \param pre The dom_html_pre_element object + */ +dom_exception dom_html_pre_element_get_width( + dom_html_pre_element *pre, int32_t *width) +{ + return dom_html_element_get_int32_t_property(&pre->base, "width", + SLEN("width"), width); +} + +/** + * Set the width Property + * + * \param pre The dom_html_pre_element object + */ +dom_exception dom_html_pre_element_set_width( + dom_html_pre_element *pre, uint32_t width) +{ + return dom_html_element_set_int32_t_property(&pre->base, "width", + SLEN("width"), width); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_pre_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_pre_element_destroy(dom_node_internal *node) +{ + _dom_html_pre_element_destroy((struct dom_html_pre_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_pre_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} diff --git a/src/html/html_pre_element.h b/src/html/html_pre_element.h index 2e182d5..75d8df8 100644 --- a/src/html/html_pre_element.h +++ b/src/html/html_pre_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_pre_element_h_ +#define dom_internal_html_pre_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_pre_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_pre_element object */ +dom_exception _dom_html_pre_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_pre_element **ele); + +/* Initialise a dom_html_pre_element object */ +dom_exception _dom_html_pre_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_pre_element *ele); + +/* Finalise a dom_html_pre_element object */ +void _dom_html_pre_element_finalise(struct dom_html_pre_element *ele); + +/* Destroy a dom_html_pre_element object */ +void _dom_html_pre_element_destroy(struct dom_html_pre_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_pre_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_pre_element_destroy(dom_node_internal *node); +dom_exception _dom_html_pre_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_PRE_ELEMENT_PROTECT_VTABLE \ + _dom_html_pre_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_PRE_ELEMENT \ + _dom_virtual_html_pre_element_destroy, \ + _dom_html_pre_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLPreElement01.xml b/test/testcases/tests/level1/html/HTMLPreElement01.xml new file mode 100644 index 0000000..9b8d4f2 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLPreElement01.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLPreElement01 +NIST + + The width attribute specifies the fixed width for content. + + Retrieve the width attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLPreElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLPreElement01.xml.kfail deleted file mode 100644 index 9b8d4f2..0000000 --- a/test/testcases/tests/level1/html/HTMLPreElement01.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLPreElement01 -NIST - - The width attribute specifies the fixed width for content. - - Retrieve the width attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From ba80007cad36fa89c490d2cbdb4321d7e11a8236 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Thu, 8 May 2014 04:49:06 +0530 Subject: Br Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_br_element.h | 16 +++ src/html/Makefile | 5 +- src/html/html_br_element.c | 155 +++++++++++++++++++++ src/html/html_br_element.h | 45 ++++++ src/html/html_document.c | 4 + src/html/html_document_strings.h | 2 + test/DOMTSHandler.pm | 1 + .../tests/level1/html/HTMLBRElement01.xml | 42 ++++++ .../tests/level1/html/HTMLBRElement01.xml.notimpl | 42 ------ 11 files changed, 269 insertions(+), 45 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLBRElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLBRElement01.xml.notimpl (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index eb2870d..a9b7388 100644 --- a/Makefile +++ b/Makefile @@ -107,6 +107,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_paragraph_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_heading_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_quote_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_pre_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_br_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 8b9e0c9..4c5ba09 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -66,6 +66,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_br_element.h b/include/dom/html/html_br_element.h index 2e182d5..9475e74 100644 --- a/include/dom/html/html_br_element.h +++ b/include/dom/html/html_br_element.h @@ -3,5 +3,21 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_br_element_h_ +#define dom_html_br_element_h_ +#include +#include +#include + +typedef struct dom_html_br_element dom_html_br_element; + +dom_exception dom_html_br_element_get_clear( + dom_html_br_element *ele, dom_string **clear); + +dom_exception dom_html_br_element_set_clear( + dom_html_br_element *ele, dom_string *clear); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 718a44f..632e581 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -10,12 +10,11 @@ DIR_SOURCES := \ html_dlist_element.c html_directory_element.c html_menu_element.c \ html_fieldset_element.c html_legend_element.c html_div_element.c \ html_paragraph_element.c html_heading_element.c html_quote_element.c \ - html_pre_element.c + html_pre_element.c html_br_element.c UNINMPLEMENTED_SOURCES := \ html_label_element.c html_ulist_element.c html_olist_element.c \ - html_li_element.c html_br_element.c \ - html_basefont_element.c html_font_element.c \ + html_li_element.c html_basefont_element.c html_font_element.c \ html_mod_element.c html_anchor_element.c \ html_image_element.c html_object_element.c html_param_element.c \ html_applet_element.c html_map_element.c html_area_element.c \ diff --git a/src/html/html_br_element.c b/src/html/html_br_element.c index 2e182d5..fbc133e 100644 --- a/src/html/html_br_element.c +++ b/src/html/html_br_element.c @@ -3,5 +3,160 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_br_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_BR_ELEMENT + }, + DOM_HTML_BR_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_br_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_br_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_br_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_br_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_br_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_br_element object + * + * \param doc The document object + * \param ele The dom_html_br_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_br_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_br_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_BR], + namespace, prefix); +} + +/** + * Finalise a dom_html_br_element object + * + * \param ele The dom_html_br_element object + */ +void _dom_html_br_element_finalise(struct dom_html_br_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_br_element object + * + * \param ele The dom_html_br_element object + */ +void _dom_html_br_element_destroy(struct dom_html_br_element *ele) +{ + _dom_html_br_element_finalise(ele); + free(ele); +} + + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_br_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_br_element_destroy(dom_node_internal *node) +{ + _dom_html_br_element_destroy((struct dom_html_br_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_br_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_br_element_get_##attr( \ + dom_html_br_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_br_element_set_##attr( \ + dom_html_br_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(clear); diff --git a/src/html/html_br_element.h b/src/html/html_br_element.h index 2e182d5..ff2df3d 100644 --- a/src/html/html_br_element.h +++ b/src/html/html_br_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_br_element_h_ +#define dom_internal_html_br_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_br_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_br_element object */ +dom_exception _dom_html_br_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_br_element **ele); + +/* Initialise a dom_html_br_element object */ +dom_exception _dom_html_br_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_br_element *ele); + +/* Finalise a dom_html_br_element object */ +void _dom_html_br_element_finalise(struct dom_html_br_element *ele); + +/* Destroy a dom_html_br_element object */ +void _dom_html_br_element_destroy(struct dom_html_br_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_br_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_br_element_destroy(dom_node_internal *node); +dom_exception _dom_html_br_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_BR_ELEMENT_PROTECT_VTABLE \ + _dom_html_br_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_BR_ELEMENT \ + _dom_virtual_html_br_element_destroy, \ + _dom_html_br_element_copy + +#endif diff --git a/src/html/html_document.c b/src/html/html_document.c index 68734fa..e2ac1f3 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -34,6 +34,7 @@ #include "html/html_heading_element.h" #include "html/html_quote_element.h" #include "html/html_pre_element.h" +#include "html/html_br_element.h" #include "core/attr.h" #include "core/string.h" @@ -266,6 +267,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_PRE])) { exc = _dom_html_pre_element_create(html, namespace, prefix, (dom_html_pre_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_BR])) { + exc = _dom_html_br_element_create(html, namespace, prefix, + (dom_html_br_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index 3334593..e7af1b9 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -65,6 +65,8 @@ HTML_DOCUMENT_STRINGS_ACTION1(method) /* HTML_DOCUMENT_STRINGS_ACTION1(target) */ /* Useful attributes used by HTMLButtonElement */ HTML_DOCUMENT_STRINGS_ACTION(access_key,accesskey) +/* Useful attributes used by HTMLBrElement */ +HTML_DOCUMENT_STRINGS_ACTION1(clear) /* HTML_DOCUMENT_STRINGS_ACTION1(name) */ /* HTML_DOCUMENT_STRINGS_ACTION1(type) */ HTML_DOCUMENT_STRINGS_ACTION1(value) diff --git a/test/DOMTSHandler.pm b/test/DOMTSHandler.pm index df2b028..315465d 100644 --- a/test/DOMTSHandler.pm +++ b/test/DOMTSHandler.pm @@ -53,6 +53,7 @@ our %special_prefix = ( CharacterData => "dom_characterdata", CDATASection => "dom_cdata_section *", HTMLHRElement => "dom_html_hr_element", + HTMLBRElement => "dom_html_br_element", ); our %unref_prefix = ( diff --git a/test/testcases/tests/level1/html/HTMLBRElement01.xml b/test/testcases/tests/level1/html/HTMLBRElement01.xml new file mode 100644 index 0000000..cc4d17a --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLBRElement01.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLBRElement01 +NIST + + The clear attribute specifies control flow of text around floats. + + Retrieve the clear attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLBRElement01.xml.notimpl b/test/testcases/tests/level1/html/HTMLBRElement01.xml.notimpl deleted file mode 100644 index cc4d17a..0000000 --- a/test/testcases/tests/level1/html/HTMLBRElement01.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLBRElement01 -NIST - - The clear attribute specifies control flow of text around floats. - - Retrieve the clear attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From ce28e10c6c8018380b0609b715f59f8fd1550a21 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Fri, 9 May 2014 20:47:13 +0530 Subject: Label Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_label_element.h | 26 +++ src/html/Makefile | 4 +- src/html/TODO | 4 +- src/html/html_document.c | 4 + src/html/html_document_strings.h | 1 + src/html/html_label_element.c | 187 +++++++++++++++++++++ src/html/html_label_element.h | 47 ++++++ .../tests/level1/html/HTMLLabelElement01.xml | 44 +++++ .../tests/level1/html/HTMLLabelElement01.xml.kfail | 44 ----- .../tests/level1/html/HTMLLabelElement02.xml | 43 +++++ .../tests/level1/html/HTMLLabelElement02.xml.kfail | 43 ----- .../tests/level1/html/HTMLLabelElement03.xml | 43 +++++ .../tests/level1/html/HTMLLabelElement03.xml.kfail | 43 ----- .../tests/level1/html/HTMLLabelElement04.xml | 44 +++++ .../tests/level1/html/HTMLLabelElement04.xml.kfail | 44 ----- 17 files changed, 445 insertions(+), 178 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLLabelElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLLabelElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLLabelElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLLabelElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLLabelElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLLabelElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLLabelElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLLabelElement04.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index a9b7388..de937e9 100644 --- a/Makefile +++ b/Makefile @@ -108,6 +108,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_heading_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_quote_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_pre_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_br_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_label_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 4c5ba09..8035622 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -67,6 +67,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_label_element.h b/include/dom/html/html_label_element.h index 2e182d5..6aca45d 100644 --- a/include/dom/html/html_label_element.h +++ b/include/dom/html/html_label_element.h @@ -5,3 +5,29 @@ * Copyright 2009 Bo Yang */ +#ifndef dom_html_label_element_h_ +#define dom_html_label_element_h_ + +#include + +#include + +#include + +typedef struct dom_html_label_element dom_html_label_element; + +dom_exception dom_html_label_element_get_access_key( + dom_html_label_element *ele, dom_string **access_key); +dom_exception dom_html_label_element_set_access_key( + dom_html_label_element *ele, dom_string *access_key); + +dom_exception dom_html_label_element_get_html_for( + dom_html_label_element *ele, dom_string **html_for); +dom_exception dom_html_label_element_set_html_for( + dom_html_label_element *ele, dom_string *html_for); + +dom_exception dom_html_label_element_get_form( + dom_html_label_element *ele, dom_html_form_element **form); + +#endif + diff --git a/src/html/Makefile b/src/html/Makefile index 632e581..a682418 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -10,10 +10,10 @@ DIR_SOURCES := \ html_dlist_element.c html_directory_element.c html_menu_element.c \ html_fieldset_element.c html_legend_element.c html_div_element.c \ html_paragraph_element.c html_heading_element.c html_quote_element.c \ - html_pre_element.c html_br_element.c + html_pre_element.c html_br_element.c html_label_element.c UNINMPLEMENTED_SOURCES := \ - html_label_element.c html_ulist_element.c html_olist_element.c \ + html_ulist_element.c html_olist_element.c \ html_li_element.c html_basefont_element.c html_font_element.c \ html_mod_element.c html_anchor_element.c \ html_image_element.c html_object_element.c html_param_element.c \ diff --git a/src/html/TODO b/src/html/TODO index 8753087..19be8a4 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -18,7 +18,7 @@ HTMLOptionElement html_option_element MISSING HTMLInputElement html_input_element MISSING HTMLTextAreaElement html_textarea_element MISSING HTMLButtonElement html_button_element MISSING -HTMLLabelElement html_label_element MISSING +HTMLLabelElement html_label_element DONE HTMLFieldSetElement html_fieldset_element DONE HTMLLegendElement html_legend_element DONE HTMLUListElement html_ulist_element MISSING @@ -33,7 +33,7 @@ HTMLParagraphElement html_paragraph_element MISSING HTMLHeadingElement html_heading_element DONE HTMLQuoteElement html_quote_element DONE HTMLPreElement html_pre_element DONE -HTMLBRElement html_br_element MISSING +HTMLBRElement html_br_element DONE HTMLBaseFontElement html_basefont_element MISSING HTMLFontElement html_font_element MISSING HTMLHRElement html_hr_element DONE diff --git a/src/html/html_document.c b/src/html/html_document.c index e2ac1f3..07f155e 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -35,6 +35,7 @@ #include "html/html_quote_element.h" #include "html/html_pre_element.h" #include "html/html_br_element.h" +#include "html/html_label_element.h" #include "core/attr.h" #include "core/string.h" @@ -270,6 +271,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_BR])) { exc = _dom_html_br_element_create(html, namespace, prefix, (dom_html_br_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_LABEL])) { + exc = _dom_html_label_element_create(html, namespace, prefix, + (dom_html_label_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index e7af1b9..d160971 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -86,6 +86,7 @@ HTML_DOCUMENT_STRINGS_ACTION1(width) HTML_DOCUMENT_STRINGS_ACTION1(compact) HTML_DOCUMENT_STRINGS_ACTION1(cite) HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex) +HTML_DOCUMENT_STRINGS_ACTION(html_for,for) /* HTML_DOCUMENT_STRINGS_ACTION1(type) */ HTML_DOCUMENT_STRINGS_ACTION(use_map,usemap) /* HTML_DOCUMENT_STRINGS_ACTION1(value) */ diff --git a/src/html/html_label_element.c b/src/html/html_label_element.c index 2e182d5..1ffbf71 100644 --- a/src/html/html_label_element.c +++ b/src/html/html_label_element.c @@ -3,5 +3,192 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include "html/html_document.h" +#include "html/html_label_element.h" + +#include "core/node.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_LABEL_ELEMENT + }, + DOM_HTML_LABEL_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_label_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_label_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_label_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_label_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_label_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_label_element object + * + * \param doc The document object + * \param ele The dom_html_label_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_label_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_label_element *ele) +{ + ele->form = NULL; + + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_LABEL], + namespace, prefix); +} + +/** + * Finalise a dom_html_label_element object + * + * \param ele The dom_html_label_element object + */ +void _dom_html_label_element_finalise(struct dom_html_label_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_label_element object + * + * \param ele The dom_html_label_element object + */ +void _dom_html_label_element_destroy(struct dom_html_label_element *ele) +{ + _dom_html_label_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_label_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_label_element_destroy(dom_node_internal *node) +{ + _dom_html_label_element_destroy((struct dom_html_label_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_label_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/** + * Get the dom_html_form_element object + * + * \param label The dom_html_label_element object + * \param form The returned dom_htmlform_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_label_element_get_form( + dom_html_label_element *label, dom_html_form_element **form) +{ + dom_html_document *doc + = (dom_html_document *) ((dom_node_internal *) label)->owner; + dom_node_internal *form_tmp = ((dom_node_internal *) label)->parent; + + /* Search ancestor chain for FIELDSET element */ + while (form_tmp != NULL) { + if (form_tmp->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(form_tmp->name, + doc->memoised[hds_FORM])) + break; + + form_tmp = form_tmp->parent; + } + + if (form_tmp != NULL) { + *form = (dom_html_form_element *) form_tmp; + return DOM_NO_ERR; + } + + *form = NULL; + + return DOM_NO_ERR; +} +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_label_element_get_##attr( \ + dom_html_label_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_label_element_set_##attr( \ + dom_html_label_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) +SIMPLE_GET_SET(access_key); +SIMPLE_GET_SET(html_for); + diff --git a/src/html/html_label_element.h b/src/html/html_label_element.h index 2e182d5..b5ec3f4 100644 --- a/src/html/html_label_element.h +++ b/src/html/html_label_element.h @@ -3,5 +3,52 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_label_element_h_ +#define dom_internal_html_label_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_label_element { + struct dom_html_element base; + /**< The base class */ + dom_html_form_element *form; + /**< The form associated with label */ +}; + +/* Create a dom_html_label_element object */ +dom_exception _dom_html_label_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_label_element **ele); + +/* Initialise a dom_html_label_element object */ +dom_exception _dom_html_label_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_label_element *ele); + +/* Finalise a dom_html_label_element object */ +void _dom_html_label_element_finalise(struct dom_html_label_element *ele); + +/* Destroy a dom_html_label_element object */ +void _dom_html_label_element_destroy(struct dom_html_label_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_label_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_label_element_destroy(dom_node_internal *node); +dom_exception _dom_html_label_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_LABEL_ELEMENT_PROTECT_VTABLE \ + _dom_html_label_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_LABEL_ELEMENT \ + _dom_virtual_html_label_element_destroy, \ + _dom_html_label_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLLabelElement01.xml b/test/testcases/tests/level1/html/HTMLLabelElement01.xml new file mode 100644 index 0000000..2111d6e --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLLabelElement01.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLLabelElement01 +NIST + + The form attribute returns the FORM element containing this control. + + Retrieve the form attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLLabelElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLLabelElement01.xml.kfail deleted file mode 100644 index 2111d6e..0000000 --- a/test/testcases/tests/level1/html/HTMLLabelElement01.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLLabelElement01 -NIST - - The form attribute returns the FORM element containing this control. - - Retrieve the form attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLLabelElement02.xml b/test/testcases/tests/level1/html/HTMLLabelElement02.xml new file mode 100644 index 0000000..444a753 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLLabelElement02.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLLabelElement02 +NIST + + The form attribute returns null if control in not within the context of + form. + + Retrieve the form attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLLabelElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLLabelElement02.xml.kfail deleted file mode 100644 index 444a753..0000000 --- a/test/testcases/tests/level1/html/HTMLLabelElement02.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLLabelElement02 -NIST - - The form attribute returns null if control in not within the context of - form. - - Retrieve the form attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLLabelElement03.xml b/test/testcases/tests/level1/html/HTMLLabelElement03.xml new file mode 100644 index 0000000..b4daacf --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLLabelElement03.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLLabelElement03 +NIST + + The accessKey attribute is a single character access key to give access + to the form control. + + Retrieve the accessKey attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLLabelElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLLabelElement03.xml.kfail deleted file mode 100644 index b4daacf..0000000 --- a/test/testcases/tests/level1/html/HTMLLabelElement03.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLLabelElement03 -NIST - - The accessKey attribute is a single character access key to give access - to the form control. - - Retrieve the accessKey attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLLabelElement04.xml b/test/testcases/tests/level1/html/HTMLLabelElement04.xml new file mode 100644 index 0000000..ae22b88 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLLabelElement04.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLLabelElement04 +NIST + + The htmlFor attribute links this label with another form control by + id attribute. + + Retrieve the htmlFor attribute of the first LABEL element + and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLLabelElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLLabelElement04.xml.kfail deleted file mode 100644 index ae22b88..0000000 --- a/test/testcases/tests/level1/html/HTMLLabelElement04.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLLabelElement04 -NIST - - The htmlFor attribute links this label with another form control by - id attribute. - - Retrieve the htmlFor attribute of the first LABEL element - and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From 2a64fa6be386afa4944361a593dd535529c129ce Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Fri, 9 May 2014 23:38:03 +0530 Subject: Ulist Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_ulist_element.h | 22 +++ src/html/Makefile | 8 +- src/html/html_document.c | 4 + src/html/html_label_element.h | 2 +- src/html/html_ulist_element.c | 177 +++++++++++++++++++++ src/html/html_ulist_element.h | 45 ++++++ .../tests/level1/html/HTMLUListElement01.xml | 43 +++++ .../tests/level1/html/HTMLUListElement01.xml.kfail | 43 ----- .../tests/level1/html/HTMLUListElement02.xml | 42 +++++ .../tests/level1/html/HTMLUListElement02.xml.kfail | 42 ----- 12 files changed, 340 insertions(+), 90 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLUListElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLUListElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLUListElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLUListElement02.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index de937e9..b591dd4 100644 --- a/Makefile +++ b/Makefile @@ -109,6 +109,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_quote_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_pre_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_br_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_label_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_ulist_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 8035622..0610427 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -68,6 +68,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_ulist_element.h b/include/dom/html/html_ulist_element.h index 2e182d5..c5daa6a 100644 --- a/include/dom/html/html_ulist_element.h +++ b/include/dom/html/html_ulist_element.h @@ -3,5 +3,27 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_u_list_element_h_ +#define dom_html_u_list_element_h_ +#include +#include +#include + +typedef struct dom_html_u_list_element dom_html_u_list_element; + +dom_exception dom_html_u_list_element_get_compact( + dom_html_u_list_element *ele, bool *compact); + +dom_exception dom_html_u_list_element_set_compact( + dom_html_u_list_element *ele, bool compact); + +dom_exception dom_html_u_list_element_get_type( + dom_html_u_list_element *ele, dom_string **type); + +dom_exception dom_html_u_list_element_set_type( + dom_html_u_list_element *ele, dom_string *type); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index a682418..3f42e43 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -10,12 +10,12 @@ DIR_SOURCES := \ html_dlist_element.c html_directory_element.c html_menu_element.c \ html_fieldset_element.c html_legend_element.c html_div_element.c \ html_paragraph_element.c html_heading_element.c html_quote_element.c \ - html_pre_element.c html_br_element.c html_label_element.c + html_pre_element.c html_br_element.c html_label_element.c \ + html_ulist_element.c UNINMPLEMENTED_SOURCES := \ - html_ulist_element.c html_olist_element.c \ - html_li_element.c html_basefont_element.c html_font_element.c \ - html_mod_element.c html_anchor_element.c \ + html_olist_element.c html_li_element.c html_basefont_element.c \ + html_font_element.c html_mod_element.c html_anchor_element.c \ html_image_element.c html_object_element.c html_param_element.c \ html_applet_element.c html_map_element.c html_area_element.c \ html_script_element.c html_table_element.c html_tablecaption_element.c \ diff --git a/src/html/html_document.c b/src/html/html_document.c index 07f155e..34e2bf0 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -36,6 +36,7 @@ #include "html/html_pre_element.h" #include "html/html_br_element.h" #include "html/html_label_element.h" +#include "html/html_ulist_element.h" #include "core/attr.h" #include "core/string.h" @@ -274,6 +275,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_LABEL])) { exc = _dom_html_label_element_create(html, namespace, prefix, (dom_html_label_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_UL])) { + exc = _dom_html_u_list_element_create(html, namespace, prefix, + (dom_html_u_list_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_label_element.h b/src/html/html_label_element.h index b5ec3f4..e28b453 100644 --- a/src/html/html_label_element.h +++ b/src/html/html_label_element.h @@ -17,7 +17,7 @@ struct dom_html_label_element { struct dom_html_element base; /**< The base class */ dom_html_form_element *form; - /**< The form associated with label */ + /**< The form associated with label */ }; /* Create a dom_html_label_element object */ diff --git a/src/html/html_ulist_element.c b/src/html/html_ulist_element.c index 2e182d5..e7f8bb3 100644 --- a/src/html/html_ulist_element.c +++ b/src/html/html_ulist_element.c @@ -3,5 +3,182 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include +#include + +#include "html/html_document.h" +#include "html/html_ulist_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_U_LIST_ELEMENT + }, + DOM_HTML_U_LIST_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_u_list_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_u_list_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *u_listfix, + struct dom_html_u_list_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_u_list_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_u_list_element_initialise(doc, namespace, u_listfix, *ele); +} + +/** + * Initialise a dom_html_u_list_element object + * + * \param doc The document object + * \param ele The dom_html_u_list_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_u_list_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *u_listfix, + struct dom_html_u_list_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_UL], + namespace, u_listfix); +} + +/** + * Finalise a dom_html_u_list_element object + * + * \param ele The dom_html_u_list_element object + */ +void _dom_html_u_list_element_finalise(struct dom_html_u_list_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_u_list_element object + * + * \param ele The dom_html_u_list_element object + */ +void _dom_html_u_list_element_destroy(struct dom_html_u_list_element *ele) +{ + _dom_html_u_list_element_finalise(ele); + free(ele); +} + +/** + * Get the compact Property + * + * \param u_list The dom_html_u_list_element object + */ +dom_exception dom_html_u_list_element_get_compact( + dom_html_u_list_element *u_list, bool *compact) +{ + return dom_html_element_get_bool_property(&u_list->base, "compact", + SLEN("compact"), compact); +} + +/** + * Set the compact Property + * + * \param u_list The dom_html_u_list_element object + */ +dom_exception dom_html_u_list_element_set_compact( + dom_html_u_list_element *u_list, bool compact) +{ + return dom_html_element_set_bool_property(&u_list->base, "compact", + SLEN("compact"), compact); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_u_list_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_u_list_element_destroy(dom_node_internal *node) +{ + _dom_html_u_list_element_destroy((struct dom_html_u_list_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_u_list_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_u_list_element_get_##attr( \ + dom_html_u_list_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ + dom_exception dom_html_u_list_element_set_##attr( \ + dom_html_u_list_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(type); diff --git a/src/html/html_ulist_element.h b/src/html/html_ulist_element.h index 2e182d5..7e03f47 100644 --- a/src/html/html_ulist_element.h +++ b/src/html/html_ulist_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_u_list_element_h_ +#define dom_internal_html_u_list_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_u_list_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_u_list_element object */ +dom_exception _dom_html_u_list_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_u_list_element **ele); + +/* Initialise a dom_html_u_list_element object */ +dom_exception _dom_html_u_list_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_u_list_element *ele); + +/* Finalise a dom_html_u_list_element object */ +void _dom_html_u_list_element_finalise(struct dom_html_u_list_element *ele); + +/* Destroy a dom_html_u_list_element object */ +void _dom_html_u_list_element_destroy(struct dom_html_u_list_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_u_list_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_u_list_element_destroy(dom_node_internal *node); +dom_exception _dom_html_u_list_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_U_LIST_ELEMENT_PROTECT_VTABLE \ + _dom_html_u_list_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_U_LIST_ELEMENT \ + _dom_virtual_html_u_list_element_destroy, \ + _dom_html_u_list_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLUListElement01.xml b/test/testcases/tests/level1/html/HTMLUListElement01.xml new file mode 100644 index 0000000..75695aa --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLUListElement01.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLUListElement01 +NIST + + The compact attribute specifies whether to reduce spacing between list + items. + + Retrieve the compact attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLUListElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLUListElement01.xml.kfail deleted file mode 100644 index 75695aa..0000000 --- a/test/testcases/tests/level1/html/HTMLUListElement01.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLUListElement01 -NIST - - The compact attribute specifies whether to reduce spacing between list - items. - - Retrieve the compact attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLUListElement02.xml b/test/testcases/tests/level1/html/HTMLUListElement02.xml new file mode 100644 index 0000000..e525d5b --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLUListElement02.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLUListElement02 +NIST + + The type attribute specifies the bullet style. + + Retrieve the type attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLUListElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLUListElement02.xml.kfail deleted file mode 100644 index e525d5b..0000000 --- a/test/testcases/tests/level1/html/HTMLUListElement02.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLUListElement02 -NIST - - The type attribute specifies the bullet style. - - Retrieve the type attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From 4c706c539f2ae7f390c3463013e4e41428993c6c Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Sat, 10 May 2014 01:32:06 +0530 Subject: OList
    Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_olist_element.h | 28 +++ src/html/Makefile | 4 +- src/html/TODO | 4 +- src/html/html_document.c | 4 + src/html/html_olist_element.c | 201 +++++++++++++++++++++ src/html/html_olist_element.h | 45 +++++ .../tests/level1/html/HTMLOListElement01.xml | 43 +++++ .../tests/level1/html/HTMLOListElement01.xml.kfail | 43 ----- .../tests/level1/html/HTMLOListElement02.xml | 42 +++++ .../tests/level1/html/HTMLOListElement02.xml.kfail | 42 ----- .../tests/level1/html/HTMLOListElement03.xml | 42 +++++ .../tests/level1/html/HTMLOListElement03.xml.kfail | 42 ----- 14 files changed, 411 insertions(+), 131 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLOListElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLOListElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLOListElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLOListElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLOListElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLOListElement03.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index b591dd4..d007a48 100644 --- a/Makefile +++ b/Makefile @@ -110,6 +110,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_pre_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_br_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_label_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_ulist_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_olist_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 0610427..4af78f7 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -69,6 +69,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_olist_element.h b/include/dom/html/html_olist_element.h index 2e182d5..3d1511e 100644 --- a/include/dom/html/html_olist_element.h +++ b/include/dom/html/html_olist_element.h @@ -3,5 +3,33 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_o_list_element_h_ +#define dom_html_o_list_element_h_ +#include +#include +#include + +typedef struct dom_html_o_list_element dom_html_o_list_element; + +dom_exception dom_html_o_list_element_get_compact( + dom_html_o_list_element *ele, bool *compact); + +dom_exception dom_html_o_list_element_set_compact( + dom_html_o_list_element *ele, bool compact); + +dom_exception dom_html_o_list_element_get_start( + dom_html_o_list_element *ele, int32_t *start); + +dom_exception dom_html_o_list_element_set_start( + dom_html_o_list_element *ele, uint32_t start); + +dom_exception dom_html_o_list_element_get_type( + dom_html_o_list_element *ele, dom_string **type); + +dom_exception dom_html_o_list_element_set_type( + dom_html_o_list_element *ele, dom_string *type); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 3f42e43..7895630 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -11,10 +11,10 @@ DIR_SOURCES := \ html_fieldset_element.c html_legend_element.c html_div_element.c \ html_paragraph_element.c html_heading_element.c html_quote_element.c \ html_pre_element.c html_br_element.c html_label_element.c \ - html_ulist_element.c + html_ulist_element.c html_olist_element.c UNINMPLEMENTED_SOURCES := \ - html_olist_element.c html_li_element.c html_basefont_element.c \ + html_li_element.c html_basefont_element.c \ html_font_element.c html_mod_element.c html_anchor_element.c \ html_image_element.c html_object_element.c html_param_element.c \ html_applet_element.c html_map_element.c html_area_element.c \ diff --git a/src/html/TODO b/src/html/TODO index 19be8a4..9806c6b 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -21,8 +21,8 @@ HTMLButtonElement html_button_element MISSING HTMLLabelElement html_label_element DONE HTMLFieldSetElement html_fieldset_element DONE HTMLLegendElement html_legend_element DONE -HTMLUListElement html_ulist_element MISSING -HTMLOListElement html_olist_element MISSING +HTMLUListElement html_ulist_element DONE +HTMLOListElement html_olist_element DONE HTMLDListElement html_dlist_element DONE HTMLDirectoryElement html_directory_element DONE HTMLMenuElement html_menu_element DONE diff --git a/src/html/html_document.c b/src/html/html_document.c index 34e2bf0..60c2edc 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -37,6 +37,7 @@ #include "html/html_br_element.h" #include "html/html_label_element.h" #include "html/html_ulist_element.h" +#include "html/html_olist_element.h" #include "core/attr.h" #include "core/string.h" @@ -278,6 +279,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_UL])) { exc = _dom_html_u_list_element_create(html, namespace, prefix, (dom_html_u_list_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_OL])) { + exc = _dom_html_o_list_element_create(html, namespace, prefix, + (dom_html_o_list_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_olist_element.c b/src/html/html_olist_element.c index 2e182d5..16b8763 100644 --- a/src/html/html_olist_element.c +++ b/src/html/html_olist_element.c @@ -3,5 +3,206 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include +#include + +#include "html/html_document.h" +#include "html/html_olist_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_O_LIST_ELEMENT + }, + DOM_HTML_O_LIST_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_o_list_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_o_list_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *o_listfix, + struct dom_html_o_list_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_o_list_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_o_list_element_initialise(doc, namespace, o_listfix, *ele); +} + +/** + * Initialise a dom_html_o_list_element object + * + * \param doc The document object + * \param ele The dom_html_o_list_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_o_list_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *o_listfix, + struct dom_html_o_list_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_OL], + namespace, o_listfix); +} + +/** + * Finalise a dom_html_o_list_element object + * + * \param ele The dom_html_o_list_element object + */ +void _dom_html_o_list_element_finalise(struct dom_html_o_list_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_o_list_element object + * + * \param ele The dom_html_o_list_element object + */ +void _dom_html_o_list_element_destroy(struct dom_html_o_list_element *ele) +{ + _dom_html_o_list_element_finalise(ele); + free(ele); +} + +/** + * Get the compact Property + * + * \param o_list The dom_html_o_list_element object + */ +dom_exception dom_html_o_list_element_get_compact( + dom_html_o_list_element *o_list, bool *compact) +{ + return dom_html_element_get_bool_property(&o_list->base, "compact", + SLEN("compact"), compact); +} + +/** + * Set the compact Property + * + * \param o_list The dom_html_o_list_element object + */ +dom_exception dom_html_o_list_element_set_compact( + dom_html_o_list_element *o_list, bool compact) +{ + return dom_html_element_set_bool_property(&o_list->base, "compact", + SLEN("compact"), compact); +} + +/** + * Get the start Property + * + * \param o_list The dom_html_o_list_element object + */ +dom_exception dom_html_o_list_element_get_start( + dom_html_o_list_element *o_list, int32_t *start) +{ + return dom_html_element_get_int32_t_property(&o_list->base, "start", + SLEN("start"), start); +} + +/** + * Set the start Property + * + * \param o_list The dom_html_o_list_element object + */ +dom_exception dom_html_o_list_element_set_start( + dom_html_o_list_element *o_list, uint32_t start) +{ + return dom_html_element_set_int32_t_property(&o_list->base, "start", + SLEN("start"), start); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_o_list_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_o_list_element_destroy(dom_node_internal *node) +{ + _dom_html_o_list_element_destroy((struct dom_html_o_list_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_o_list_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_o_list_element_get_##attr( \ + dom_html_o_list_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ + dom_exception dom_html_o_list_element_set_##attr( \ + dom_html_o_list_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(type); diff --git a/src/html/html_olist_element.h b/src/html/html_olist_element.h index 2e182d5..301d8ac 100644 --- a/src/html/html_olist_element.h +++ b/src/html/html_olist_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_o_list_element_h_ +#define dom_internal_html_o_list_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_o_list_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_o_list_element object */ +dom_exception _dom_html_o_list_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *o_listfix, + struct dom_html_o_list_element **ele); + +/* Initialise a dom_html_o_list_element object */ +dom_exception _dom_html_o_list_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *o_listfix, + struct dom_html_o_list_element *ele); + +/* Finalise a dom_html_o_list_element object */ +void _dom_html_o_list_element_finalise(struct dom_html_o_list_element *ele); + +/* Destroy a dom_html_o_list_element object */ +void _dom_html_o_list_element_destroy(struct dom_html_o_list_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_o_list_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_o_list_element_destroy(dom_node_internal *node); +dom_exception _dom_html_o_list_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_O_LIST_ELEMENT_PROTECT_VTABLE \ + _dom_html_o_list_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_O_LIST_ELEMENT \ + _dom_virtual_html_o_list_element_destroy, \ + _dom_html_o_list_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLOListElement01.xml b/test/testcases/tests/level1/html/HTMLOListElement01.xml new file mode 100644 index 0000000..7b053bf --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLOListElement01.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLOListElement01 +NIST + + The compact attribute specifies a boolean value on whether to display + the list more compactly. + + Retrieve the compact attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLOListElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLOListElement01.xml.kfail deleted file mode 100644 index 7b053bf..0000000 --- a/test/testcases/tests/level1/html/HTMLOListElement01.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLOListElement01 -NIST - - The compact attribute specifies a boolean value on whether to display - the list more compactly. - - Retrieve the compact attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLOListElement02.xml b/test/testcases/tests/level1/html/HTMLOListElement02.xml new file mode 100644 index 0000000..85b78d4 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLOListElement02.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLOListElement02 +NIST + + The start attribute specifies the starting sequence number. + + Retrieve the start attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLOListElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLOListElement02.xml.kfail deleted file mode 100644 index 85b78d4..0000000 --- a/test/testcases/tests/level1/html/HTMLOListElement02.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLOListElement02 -NIST - - The start attribute specifies the starting sequence number. - - Retrieve the start attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLOListElement03.xml b/test/testcases/tests/level1/html/HTMLOListElement03.xml new file mode 100644 index 0000000..e6306ec --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLOListElement03.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLOListElement03 +NIST + + The type attribute specifies the numbering style. + + Retrieve the type attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLOListElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLOListElement03.xml.kfail deleted file mode 100644 index e6306ec..0000000 --- a/test/testcases/tests/level1/html/HTMLOListElement03.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLOListElement03 -NIST - - The type attribute specifies the numbering style. - - Retrieve the type attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From 82c8ae1c92a31e2395334b58bc2f6a3702cf06b7 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Sat, 10 May 2014 02:38:24 +0530 Subject: LI
  1. Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_li_element.h | 22 +++ src/html/Makefile | 17 +- src/html/html_document.c | 4 + src/html/html_li_element.c | 177 +++++++++++++++++++++ src/html/html_li_element.h | 45 ++++++ test/DOMTSHandler.pm | 1 + .../tests/level1/html/HTMLLIElement01.xml | 42 +++++ .../tests/level1/html/HTMLLIElement01.xml.kfail | 42 ----- .../tests/level1/html/HTMLLIElement02.xml | 42 +++++ .../tests/level1/html/HTMLLIElement02.xml.kfail | 42 ----- 12 files changed, 343 insertions(+), 93 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLLIElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLLIElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLLIElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLLIElement02.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index d007a48..91151f0 100644 --- a/Makefile +++ b/Makefile @@ -111,6 +111,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_br_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_label_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_ulist_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_olist_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_li_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 4af78f7..8bd45bf 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -70,6 +70,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_li_element.h b/include/dom/html/html_li_element.h index 2e182d5..465bb98 100644 --- a/include/dom/html/html_li_element.h +++ b/include/dom/html/html_li_element.h @@ -3,5 +3,27 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_li_element_h_ +#define dom_html_li_element_h_ +#include +#include +#include + +typedef struct dom_html_li_element dom_html_li_element; + +dom_exception dom_html_li_element_get_value( + dom_html_li_element *ele, int32_t *value); + +dom_exception dom_html_li_element_set_value( + dom_html_li_element *ele, uint32_t value); + +dom_exception dom_html_li_element_get_type( + dom_html_li_element *ele, dom_string **type); + +dom_exception dom_html_li_element_set_type( + dom_html_li_element *ele, dom_string *type); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 7895630..6369f80 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -11,16 +11,15 @@ DIR_SOURCES := \ html_fieldset_element.c html_legend_element.c html_div_element.c \ html_paragraph_element.c html_heading_element.c html_quote_element.c \ html_pre_element.c html_br_element.c html_label_element.c \ - html_ulist_element.c html_olist_element.c + html_ulist_element.c html_olist_element.c html_li_element.c UNINMPLEMENTED_SOURCES := \ - html_li_element.c html_basefont_element.c \ - html_font_element.c html_mod_element.c html_anchor_element.c \ - html_image_element.c html_object_element.c html_param_element.c \ - html_applet_element.c html_map_element.c html_area_element.c \ - html_script_element.c html_table_element.c html_tablecaption_element.c \ - html_tablecol_element.c html_tablesection_element.c html_tablerow_element.c \ - html_tablecell_element.c html_frameset_element.c html_frame_element.c \ - html_iframe_element.c + html_basefont_element.c html_font_element.c html_mod_element.c \ + html_anchor_element.c html_image_element.c html_object_element.c \ + html_param_element.c html_applet_element.c html_map_element.c \ + html_area_element.c html_script_element.c html_table_element.c \ + html_tablecaption_element.c html_tablecol_element.c html_tablesection_element.c \ + html_tablerow_element.c html_tablecell_element.c html_frameset_element.c \ + html_frame_element.c html_iframe_element.c include $(NSBUILD)/Makefile.subdir diff --git a/src/html/html_document.c b/src/html/html_document.c index 60c2edc..7ad18ea 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -38,6 +38,7 @@ #include "html/html_label_element.h" #include "html/html_ulist_element.h" #include "html/html_olist_element.h" +#include "html/html_li_element.h" #include "core/attr.h" #include "core/string.h" @@ -282,6 +283,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_OL])) { exc = _dom_html_o_list_element_create(html, namespace, prefix, (dom_html_o_list_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_LI])) { + exc = _dom_html_li_element_create(html, namespace, prefix, + (dom_html_li_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_li_element.c b/src/html/html_li_element.c index 2e182d5..ca265ae 100644 --- a/src/html/html_li_element.c +++ b/src/html/html_li_element.c @@ -3,5 +3,182 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include +#include + +#include "html/html_document.h" +#include "html/html_li_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_LI_ELEMENT + }, + DOM_HTML_LI_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_li_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_li_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *lifix, + struct dom_html_li_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_li_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_li_element_initialise(doc, namespace, lifix, *ele); +} + +/** + * Initialise a dom_html_li_element object + * + * \param doc The document object + * \param ele The dom_html_li_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_li_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *lifix, + struct dom_html_li_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_LI], + namespace, lifix); +} + +/** + * Finalise a dom_html_li_element object + * + * \param ele The dom_html_li_element object + */ +void _dom_html_li_element_finalise(struct dom_html_li_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_li_element object + * + * \param ele The dom_html_li_element object + */ +void _dom_html_li_element_destroy(struct dom_html_li_element *ele) +{ + _dom_html_li_element_finalise(ele); + free(ele); +} + +/** + * Get the value Property + * + * \param li The dom_html_li_element object + */ +dom_exception dom_html_li_element_get_value( + dom_html_li_element *li, int32_t *value) +{ + return dom_html_element_get_int32_t_property(&li->base, "value", + SLEN("value"), value); +} + +/** + * Set the value Property + * + * \param li The dom_html_li_element object + */ +dom_exception dom_html_li_element_set_value( + dom_html_li_element *li, uint32_t value) +{ + return dom_html_element_set_int32_t_property(&li->base, "value", + SLEN("value"), value); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_li_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_li_element_destroy(dom_node_internal *node) +{ + _dom_html_li_element_destroy((struct dom_html_li_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_li_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_li_element_get_##attr( \ + dom_html_li_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ + dom_exception dom_html_li_element_set_##attr( \ + dom_html_li_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(type); diff --git a/src/html/html_li_element.h b/src/html/html_li_element.h index 2e182d5..c50a2db 100644 --- a/src/html/html_li_element.h +++ b/src/html/html_li_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_li_element_h_ +#define dom_internal_html_li_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_li_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_li_element object */ +dom_exception _dom_html_li_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *lifix, + struct dom_html_li_element **ele); + +/* Initialise a dom_html_li_element object */ +dom_exception _dom_html_li_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *lifix, + struct dom_html_li_element *ele); + +/* Finalise a dom_html_li_element object */ +void _dom_html_li_element_finalise(struct dom_html_li_element *ele); + +/* Destroy a dom_html_li_element object */ +void _dom_html_li_element_destroy(struct dom_html_li_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_li_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_li_element_destroy(dom_node_internal *node); +dom_exception _dom_html_li_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_LI_ELEMENT_PROTECT_VTABLE \ + _dom_html_li_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_LI_ELEMENT \ + _dom_virtual_html_li_element_destroy, \ + _dom_html_li_element_copy + +#endif diff --git a/test/DOMTSHandler.pm b/test/DOMTSHandler.pm index 315465d..f1ed1d4 100644 --- a/test/DOMTSHandler.pm +++ b/test/DOMTSHandler.pm @@ -54,6 +54,7 @@ our %special_prefix = ( CDATASection => "dom_cdata_section *", HTMLHRElement => "dom_html_hr_element", HTMLBRElement => "dom_html_br_element", + HTMLLIElement => "dom_html_li_element", ); our %unref_prefix = ( diff --git a/test/testcases/tests/level1/html/HTMLLIElement01.xml b/test/testcases/tests/level1/html/HTMLLIElement01.xml new file mode 100644 index 0000000..2fe59d5 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLLIElement01.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLLIElement01 +NIST + + The type attribute is a list item bullet style. + + Retrieve the type attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLLIElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLLIElement01.xml.kfail deleted file mode 100644 index 2fe59d5..0000000 --- a/test/testcases/tests/level1/html/HTMLLIElement01.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLLIElement01 -NIST - - The type attribute is a list item bullet style. - - Retrieve the type attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLLIElement02.xml b/test/testcases/tests/level1/html/HTMLLIElement02.xml new file mode 100644 index 0000000..a397773 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLLIElement02.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLLIElement02 +NIST + + The value attribute is a reset sequence number when used in OL. + + Retrieve the value attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLLIElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLLIElement02.xml.kfail deleted file mode 100644 index a397773..0000000 --- a/test/testcases/tests/level1/html/HTMLLIElement02.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLLIElement02 -NIST - - The value attribute is a reset sequence number when used in OL. - - Retrieve the value attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From f43e09e669a5e52a75219c94d835dafb3a286516 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Tue, 13 May 2014 05:25:21 +0530 Subject: Font Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_font_element.h | 27 ++++ src/html/Makefile | 5 +- src/html/html_document.c | 4 + src/html/html_document_strings.h | 2 + src/html/html_font_element.c | 157 +++++++++++++++++++++ src/html/html_font_element.h | 45 ++++++ .../tests/level1/html/HTMLBaseFontElement01.xml | 42 ++++++ .../tests/level1/html/HTMLBaseFontElement02.xml | 42 ++++++ .../tests/level1/html/HTMLBaseFontElement03.xml | 49 +++++++ .../tests/level1/html/HTMLFontElement01.xml.kfail | 42 ------ .../tests/level1/html/HTMLFontElement02.xml.kfail | 43 ------ .../tests/level1/html/HTMLFontElement03.xml.kfail | 42 ------ 14 files changed, 373 insertions(+), 129 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLBaseFontElement01.xml create mode 100644 test/testcases/tests/level1/html/HTMLBaseFontElement02.xml create mode 100644 test/testcases/tests/level1/html/HTMLBaseFontElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLFontElement01.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLFontElement02.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLFontElement03.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 91151f0..5582dde 100644 --- a/Makefile +++ b/Makefile @@ -112,6 +112,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_label_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_ulist_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_olist_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_li_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_font_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 8bd45bf..98dc5ee 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -71,6 +71,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_font_element.h b/include/dom/html/html_font_element.h index 2e182d5..b878f42 100644 --- a/include/dom/html/html_font_element.h +++ b/include/dom/html/html_font_element.h @@ -3,5 +3,32 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_font_element_h_ +#define dom_html_font_element_h_ +#include +#include +#include + +typedef struct dom_html_font_element dom_html_font_element; + +dom_exception dom_html_font_element_get_color( + dom_html_font_element *ele, dom_string **color); + +dom_exception dom_html_font_element_set_color( + dom_html_font_element *ele, dom_string *color); + +dom_exception dom_html_font_element_get_face( + dom_html_font_element *ele, dom_string **face); + +dom_exception dom_html_font_element_set_face( + dom_html_font_element *ele, dom_string *face); + +dom_exception dom_html_font_element_get_size( + dom_html_font_element *ele, dom_string **size); + +dom_exception dom_html_font_element_set_size( + dom_html_font_element *ele, dom_string *size); +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 6369f80..651ebbb 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -11,10 +11,11 @@ DIR_SOURCES := \ html_fieldset_element.c html_legend_element.c html_div_element.c \ html_paragraph_element.c html_heading_element.c html_quote_element.c \ html_pre_element.c html_br_element.c html_label_element.c \ - html_ulist_element.c html_olist_element.c html_li_element.c + html_ulist_element.c html_olist_element.c html_li_element.c \ + html_font_element.c UNINMPLEMENTED_SOURCES := \ - html_basefont_element.c html_font_element.c html_mod_element.c \ + html_basefont_element.c html_mod_element.c \ html_anchor_element.c html_image_element.c html_object_element.c \ html_param_element.c html_applet_element.c html_map_element.c \ html_area_element.c html_script_element.c html_table_element.c \ diff --git a/src/html/html_document.c b/src/html/html_document.c index 7ad18ea..1c3ebab 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -39,6 +39,7 @@ #include "html/html_ulist_element.h" #include "html/html_olist_element.h" #include "html/html_li_element.h" +#include "html/html_font_element.h" #include "core/attr.h" #include "core/string.h" @@ -286,6 +287,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_LI])) { exc = _dom_html_li_element_create(html, namespace, prefix, (dom_html_li_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_FONT])) { + exc = _dom_html_font_element_create(html, namespace, prefix, + (dom_html_font_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index d160971..23b36cf 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -85,6 +85,8 @@ HTML_DOCUMENT_STRINGS_ACTION1(src) HTML_DOCUMENT_STRINGS_ACTION1(width) HTML_DOCUMENT_STRINGS_ACTION1(compact) HTML_DOCUMENT_STRINGS_ACTION1(cite) +HTML_DOCUMENT_STRINGS_ACTION1(color) +HTML_DOCUMENT_STRINGS_ACTION1(face) HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex) HTML_DOCUMENT_STRINGS_ACTION(html_for,for) /* HTML_DOCUMENT_STRINGS_ACTION1(type) */ diff --git a/src/html/html_font_element.c b/src/html/html_font_element.c index 2e182d5..aadcb22 100644 --- a/src/html/html_font_element.c +++ b/src/html/html_font_element.c @@ -3,5 +3,162 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_font_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_FONT_ELEMENT + }, + DOM_HTML_FONT_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_font_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_font_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_font_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_font_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_font_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_font_element object + * + * \param doc The document object + * \param ele The dom_html_font_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_font_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_font_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_FONT], + namespace, prefix); +} + +/** + * Finalise a dom_html_font_element object + * + * \param ele The dom_html_font_element object + */ +void _dom_html_font_element_finalise(struct dom_html_font_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_font_element object + * + * \param ele The dom_html_font_element object + */ +void _dom_html_font_element_destroy(struct dom_html_font_element *ele) +{ + _dom_html_font_element_finalise(ele); + free(ele); +} + + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_font_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_font_element_destroy(dom_node_internal *node) +{ + _dom_html_font_element_destroy((struct dom_html_font_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_font_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_font_element_get_##attr( \ + dom_html_font_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_font_element_set_##attr( \ + dom_html_font_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(color); +SIMPLE_GET_SET(face); +SIMPLE_GET_SET(size); diff --git a/src/html/html_font_element.h b/src/html/html_font_element.h index 2e182d5..42a2ec4 100644 --- a/src/html/html_font_element.h +++ b/src/html/html_font_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_font_element_h_ +#define dom_internal_html_font_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_font_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_font_element object */ +dom_exception _dom_html_font_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_font_element **ele); + +/* Initialise a dom_html_font_element object */ +dom_exception _dom_html_font_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_font_element *ele); + +/* Finalise a dom_html_font_element object */ +void _dom_html_font_element_finalise(struct dom_html_font_element *ele); + +/* Destroy a dom_html_font_element object */ +void _dom_html_font_element_destroy(struct dom_html_font_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_font_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_font_element_destroy(dom_node_internal *node); +dom_exception _dom_html_font_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_FONT_ELEMENT_PROTECT_VTABLE \ + _dom_html_font_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_FONT_ELEMENT \ + _dom_virtual_html_font_element_destroy, \ + _dom_html_font_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLBaseFontElement01.xml b/test/testcases/tests/level1/html/HTMLBaseFontElement01.xml new file mode 100644 index 0000000..525438f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLBaseFontElement01.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLBaseFontElement01 +NIST + + The color attribute specifies the base font's color. + + Retrieve the color attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLBaseFontElement02.xml b/test/testcases/tests/level1/html/HTMLBaseFontElement02.xml new file mode 100644 index 0000000..94894d6 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLBaseFontElement02.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLBaseFontElement02 +NIST + + The face attribute specifies the base font's face identifier. + + Retrieve the face attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLBaseFontElement03.xml b/test/testcases/tests/level1/html/HTMLBaseFontElement03.xml new file mode 100644 index 0000000..e63b16f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLBaseFontElement03.xml @@ -0,0 +1,49 @@ + + + + + + + +HTMLBaseFontElement03 +NIST + + The size attribute specifies the base font's size. Retrieve the size attribute and examine its value. + + This test is incompatible with L2 HTML implementations due to a change in the type of the attribute. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLFontElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLFontElement01.xml.kfail deleted file mode 100644 index 48f0994..0000000 --- a/test/testcases/tests/level1/html/HTMLFontElement01.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLFontElement01 -NIST - - The color attribute specifies the font's color. - - Retrieve the color attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLFontElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLFontElement02.xml.kfail deleted file mode 100644 index 48e405e..0000000 --- a/test/testcases/tests/level1/html/HTMLFontElement02.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLFontElement02 -NIST - - The face attribute specifies the font's face identifier. - - Retrieve the face attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLFontElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLFontElement03.xml.kfail deleted file mode 100644 index 82ced1a..0000000 --- a/test/testcases/tests/level1/html/HTMLFontElement03.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLFontElement03 -NIST - - The size attribute specifies the font's size. - - Retrieve the size attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From 76fa6b3589c3ee19db20201ab072d6907e84390b Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Tue, 13 May 2014 18:08:32 +0530 Subject: Mod Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_mod_element.h | 22 +++ src/html/Makefile | 4 +- src/html/TODO | 4 +- src/html/html_document.c | 5 + src/html/html_document_strings.h | 1 + src/html/html_mod_element.c | 156 +++++++++++++++++++++ src/html/html_mod_element.h | 45 ++++++ .../tests/level1/html/HTMLBaseFontElement01.xml | 42 ------ .../level1/html/HTMLBaseFontElement01.xml.kfail | 42 ++++++ .../tests/level1/html/HTMLBaseFontElement02.xml | 42 ------ .../level1/html/HTMLBaseFontElement02.xml.kfail | 42 ++++++ .../tests/level1/html/HTMLBaseFontElement03.xml | 49 ------- .../level1/html/HTMLBaseFontElement03.xml.kfail | 49 +++++++ .../tests/level1/html/HTMLModElement01.xml | 43 ++++++ .../tests/level1/html/HTMLModElement01.xml.kfail | 43 ------ .../tests/level1/html/HTMLModElement02.xml | 42 ++++++ .../tests/level1/html/HTMLModElement02.xml.kfail | 42 ------ .../tests/level1/html/HTMLModElement03.xml | 43 ++++++ .../tests/level1/html/HTMLModElement03.xml.kfail | 43 ------ .../tests/level1/html/HTMLModElement04.xml | 42 ++++++ .../tests/level1/html/HTMLModElement04.xml.kfail | 42 ------ 23 files changed, 538 insertions(+), 307 deletions(-) delete mode 100644 test/testcases/tests/level1/html/HTMLBaseFontElement01.xml create mode 100644 test/testcases/tests/level1/html/HTMLBaseFontElement01.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLBaseFontElement02.xml create mode 100644 test/testcases/tests/level1/html/HTMLBaseFontElement02.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLBaseFontElement03.xml create mode 100644 test/testcases/tests/level1/html/HTMLBaseFontElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLModElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLModElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLModElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLModElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLModElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLModElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLModElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLModElement04.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 5582dde..0495b3a 100644 --- a/Makefile +++ b/Makefile @@ -113,6 +113,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_ulist_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_olist_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_li_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_font_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_mod_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 98dc5ee..3dabeec 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -72,6 +72,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_mod_element.h b/include/dom/html/html_mod_element.h index 2e182d5..99c4f2e 100644 --- a/include/dom/html/html_mod_element.h +++ b/include/dom/html/html_mod_element.h @@ -3,5 +3,27 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_mod_element_h_ +#define dom_html_mod_element_h_ +#include +#include +#include + +typedef struct dom_html_mod_element dom_html_mod_element; + +dom_exception dom_html_mod_element_get_cite( + dom_html_mod_element *ele, dom_string **cite); + +dom_exception dom_html_mod_element_set_cite( + dom_html_mod_element *ele, dom_string *cite); + +dom_exception dom_html_mod_element_get_date_time( + dom_html_mod_element *ele, dom_string **date_time); + +dom_exception dom_html_mod_element_set_date_time( + dom_html_mod_element *ele, dom_string *date_time); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 651ebbb..7711479 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -12,10 +12,10 @@ DIR_SOURCES := \ html_paragraph_element.c html_heading_element.c html_quote_element.c \ html_pre_element.c html_br_element.c html_label_element.c \ html_ulist_element.c html_olist_element.c html_li_element.c \ - html_font_element.c + html_font_element.c html_mod_element.c UNINMPLEMENTED_SOURCES := \ - html_basefont_element.c html_mod_element.c \ + html_basefont_element.c \ html_anchor_element.c html_image_element.c html_object_element.c \ html_param_element.c html_applet_element.c html_map_element.c \ html_area_element.c html_script_element.c html_table_element.c \ diff --git a/src/html/TODO b/src/html/TODO index 9806c6b..53e6edb 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -35,9 +35,9 @@ HTMLQuoteElement html_quote_element DONE HTMLPreElement html_pre_element DONE HTMLBRElement html_br_element DONE HTMLBaseFontElement html_basefont_element MISSING -HTMLFontElement html_font_element MISSING +HTMLFontElement html_font_element DONE HTMLHRElement html_hr_element DONE -HTMLModElement html_mod_element MISSING +HTMLModElement html_mod_element DONE HTMLAnchorElement html_anchor_element MISSING HTMLImageElement html_image_element MISSING HTMLObjectElement html_object_element MISSING diff --git a/src/html/html_document.c b/src/html/html_document.c index 1c3ebab..c8fd11e 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -40,6 +40,7 @@ #include "html/html_olist_element.h" #include "html/html_li_element.h" #include "html/html_font_element.h" +#include "html/html_mod_element.h" #include "core/attr.h" #include "core/string.h" @@ -290,6 +291,10 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_FONT])) { exc = _dom_html_font_element_create(html, namespace, prefix, (dom_html_font_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_DEL]) || + dom_string_caseless_isequal(tag_name, html->memoised[hds_INS])) { + exc = _dom_html_mod_element_create(html, tag_name, namespace, + prefix, (dom_html_mod_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index 23b36cf..73b7bab 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -89,6 +89,7 @@ HTML_DOCUMENT_STRINGS_ACTION1(color) HTML_DOCUMENT_STRINGS_ACTION1(face) HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex) HTML_DOCUMENT_STRINGS_ACTION(html_for,for) +HTML_DOCUMENT_STRINGS_ACTION(date_time,datetime) /* HTML_DOCUMENT_STRINGS_ACTION1(type) */ HTML_DOCUMENT_STRINGS_ACTION(use_map,usemap) /* HTML_DOCUMENT_STRINGS_ACTION1(value) */ diff --git a/src/html/html_mod_element.c b/src/html/html_mod_element.c index 2e182d5..f20a994 100644 --- a/src/html/html_mod_element.c +++ b/src/html/html_mod_element.c @@ -3,5 +3,161 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_mod_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_MOD_ELEMENT + }, + DOM_HTML_MOD_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_mod_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_mod_element_create(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, + dom_string *prefix, struct dom_html_mod_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_mod_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_mod_element_initialise(doc, tag_name, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_mod_element object + * + * \param doc The document object + * \param ele The dom_html_mod_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_mod_element_initialise(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, + dom_string *prefix, struct dom_html_mod_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + tag_name, + namespace, prefix); +} + +/** + * Finalise a dom_html_mod_element object + * + * \param ele The dom_html_mod_element object + */ +void _dom_html_mod_element_finalise(struct dom_html_mod_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_mod_element object + * + * \param ele The dom_html_mod_element object + */ +void _dom_html_mod_element_destroy(struct dom_html_mod_element *ele) +{ + _dom_html_mod_element_finalise(ele); + free(ele); +} + + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_mod_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_mod_element_destroy(dom_node_internal *node) +{ + _dom_html_mod_element_destroy((struct dom_html_mod_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_mod_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_mod_element_get_##attr( \ + dom_html_mod_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_mod_element_set_##attr( \ + dom_html_mod_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(cite); +SIMPLE_GET_SET(date_time); diff --git a/src/html/html_mod_element.h b/src/html/html_mod_element.h index 2e182d5..9df07d5 100644 --- a/src/html/html_mod_element.h +++ b/src/html/html_mod_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_mod_element_h_ +#define dom_internal_html_mod_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_mod_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_mod_element object */ +dom_exception _dom_html_mod_element_create(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, + dom_string *prefix, struct dom_html_mod_element **ele); + +/* Initialise a dom_html_mod_element object */ +dom_exception _dom_html_mod_element_initialise(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, dom_string *prefix, + struct dom_html_mod_element *ele); + +/* Finalise a dom_html_mod_element object */ +void _dom_html_mod_element_finalise(struct dom_html_mod_element *ele); + +/* Destroy a dom_html_mod_element object */ +void _dom_html_mod_element_destroy(struct dom_html_mod_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_mod_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_mod_element_destroy(dom_node_internal *node); +dom_exception _dom_html_mod_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_MOD_ELEMENT_PROTECT_VTABLE \ + _dom_html_mod_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_MOD_ELEMENT \ + _dom_virtual_html_mod_element_destroy, \ + _dom_html_mod_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLBaseFontElement01.xml b/test/testcases/tests/level1/html/HTMLBaseFontElement01.xml deleted file mode 100644 index 525438f..0000000 --- a/test/testcases/tests/level1/html/HTMLBaseFontElement01.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLBaseFontElement01 -NIST - - The color attribute specifies the base font's color. - - Retrieve the color attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLBaseFontElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLBaseFontElement01.xml.kfail new file mode 100644 index 0000000..525438f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLBaseFontElement01.xml.kfail @@ -0,0 +1,42 @@ + + + + + + + +HTMLBaseFontElement01 +NIST + + The color attribute specifies the base font's color. + + Retrieve the color attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLBaseFontElement02.xml b/test/testcases/tests/level1/html/HTMLBaseFontElement02.xml deleted file mode 100644 index 94894d6..0000000 --- a/test/testcases/tests/level1/html/HTMLBaseFontElement02.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLBaseFontElement02 -NIST - - The face attribute specifies the base font's face identifier. - - Retrieve the face attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLBaseFontElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLBaseFontElement02.xml.kfail new file mode 100644 index 0000000..94894d6 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLBaseFontElement02.xml.kfail @@ -0,0 +1,42 @@ + + + + + + + +HTMLBaseFontElement02 +NIST + + The face attribute specifies the base font's face identifier. + + Retrieve the face attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLBaseFontElement03.xml b/test/testcases/tests/level1/html/HTMLBaseFontElement03.xml deleted file mode 100644 index e63b16f..0000000 --- a/test/testcases/tests/level1/html/HTMLBaseFontElement03.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - -HTMLBaseFontElement03 -NIST - - The size attribute specifies the base font's size. Retrieve the size attribute and examine its value. - - This test is incompatible with L2 HTML implementations due to a change in the type of the attribute. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLBaseFontElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLBaseFontElement03.xml.kfail new file mode 100644 index 0000000..e63b16f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLBaseFontElement03.xml.kfail @@ -0,0 +1,49 @@ + + + + + + + +HTMLBaseFontElement03 +NIST + + The size attribute specifies the base font's size. Retrieve the size attribute and examine its value. + + This test is incompatible with L2 HTML implementations due to a change in the type of the attribute. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLModElement01.xml b/test/testcases/tests/level1/html/HTMLModElement01.xml new file mode 100644 index 0000000..616bc36 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLModElement01.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLModElement01 +NIST + + The cite attribute specifies an URI designating a document that describes + the reason for the change. + + Retrieve the cite attribute of the INS element and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLModElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLModElement01.xml.kfail deleted file mode 100644 index 616bc36..0000000 --- a/test/testcases/tests/level1/html/HTMLModElement01.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLModElement01 -NIST - - The cite attribute specifies an URI designating a document that describes - the reason for the change. - - Retrieve the cite attribute of the INS element and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLModElement02.xml b/test/testcases/tests/level1/html/HTMLModElement02.xml new file mode 100644 index 0000000..bcb8c11 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLModElement02.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLModElement02 +NIST + + The dateTime attribute specifies the date and time of the change. + + Retrieve the dateTime attribute of the INS element and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLModElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLModElement02.xml.kfail deleted file mode 100644 index bcb8c11..0000000 --- a/test/testcases/tests/level1/html/HTMLModElement02.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLModElement02 -NIST - - The dateTime attribute specifies the date and time of the change. - - Retrieve the dateTime attribute of the INS element and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLModElement03.xml b/test/testcases/tests/level1/html/HTMLModElement03.xml new file mode 100644 index 0000000..82f85b0 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLModElement03.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLModElement03 +NIST + + The cite attribute specifies an URI designating a document that describes + the reason for the change. + + Retrieve the cite attribute of the DEL element and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLModElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLModElement03.xml.kfail deleted file mode 100644 index 82f85b0..0000000 --- a/test/testcases/tests/level1/html/HTMLModElement03.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLModElement03 -NIST - - The cite attribute specifies an URI designating a document that describes - the reason for the change. - - Retrieve the cite attribute of the DEL element and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLModElement04.xml b/test/testcases/tests/level1/html/HTMLModElement04.xml new file mode 100644 index 0000000..4220ba5 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLModElement04.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLModElement04 +NIST + + The dateTime attribute specifies the date and time of the change. + + Retrieve the dateTime attribute of the DEL element and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLModElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLModElement04.xml.kfail deleted file mode 100644 index 4220ba5..0000000 --- a/test/testcases/tests/level1/html/HTMLModElement04.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLModElement04 -NIST - - The dateTime attribute specifies the date and time of the change. - - Retrieve the dateTime attribute of the DEL element and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From 8e45e8ddbec0eb239f780254d5658160ecb0387c Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Wed, 14 May 2014 05:32:09 +0530 Subject: Anchor element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_anchor_element.h | 93 +++++++++ src/html/Makefile | 5 +- src/html/html_anchor_element.c | 220 +++++++++++++++++++++ src/html/html_anchor_element.h | 45 +++++ src/html/html_document.c | 4 + src/html/html_document_strings.h | 2 + test/DOMTSHandler.pm | 1 + .../tests/level1/html/HTMLAnchorElement01.xml | 43 ++++ .../level1/html/HTMLAnchorElement01.xml.notimpl | 43 ---- .../tests/level1/html/HTMLAnchorElement02.xml | 43 ++++ .../level1/html/HTMLAnchorElement02.xml.notimpl | 43 ---- .../tests/level1/html/HTMLAnchorElement03.xml | 43 ++++ .../level1/html/HTMLAnchorElement03.xml.notimpl | 43 ---- .../tests/level1/html/HTMLAnchorElement04.xml | 41 ++++ .../level1/html/HTMLAnchorElement04.xml.notimpl | 41 ---- .../tests/level1/html/HTMLAnchorElement05.xml | 42 ++++ .../level1/html/HTMLAnchorElement05.xml.notimpl | 42 ---- .../tests/level1/html/HTMLAnchorElement06.xml | 42 ++++ .../level1/html/HTMLAnchorElement06.xml.notimpl | 42 ---- .../tests/level1/html/HTMLAnchorElement07.xml | 42 ++++ .../level1/html/HTMLAnchorElement07.xml.notimpl | 42 ---- .../tests/level1/html/HTMLAnchorElement08.xml | 42 ++++ .../level1/html/HTMLAnchorElement08.xml.notimpl | 42 ---- .../tests/level1/html/HTMLAnchorElement09.xml | 42 ++++ .../level1/html/HTMLAnchorElement09.xml.notimpl | 42 ---- .../tests/level1/html/HTMLAnchorElement10.xml | 43 ++++ .../level1/html/HTMLAnchorElement10.xml.notimpl | 43 ---- .../tests/level1/html/HTMLAnchorElement11.xml | 42 ++++ .../level1/html/HTMLAnchorElement11.xml.notimpl | 42 ---- .../tests/level1/html/HTMLAnchorElement12.xml | 42 ++++ .../level1/html/HTMLAnchorElement12.xml.notimpl | 42 ---- .../tests/level1/html/HTMLAnchorElement13.xml | 37 ++++ .../level1/html/HTMLAnchorElement13.xml.notimpl | 37 ---- .../tests/level1/html/HTMLAnchorElement14.xml | 37 ++++ .../level1/html/HTMLAnchorElement14.xml.notimpl | 37 ---- 37 files changed, 950 insertions(+), 584 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement01.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement02.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement03.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement04.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement05.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement05.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement06.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement06.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement07.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement07.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement08.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement08.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement09.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement09.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement10.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement10.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement11.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement11.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement12.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement12.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement13.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement13.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement14.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAnchorElement14.xml.notimpl (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 0495b3a..2f9a815 100644 --- a/Makefile +++ b/Makefile @@ -114,6 +114,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_olist_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_li_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_font_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_mod_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_anchor_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 3dabeec..f243bec 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -73,6 +73,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_anchor_element.h b/include/dom/html/html_anchor_element.h index 2e182d5..5d08e75 100644 --- a/include/dom/html/html_anchor_element.h +++ b/include/dom/html/html_anchor_element.h @@ -3,5 +3,98 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_anchor_element_h_ +#define dom_html_anchor_element_h_ + +#include +#include +#include + +typedef struct dom_html_anchor_element dom_html_anchor_element; + + +dom_exception dom_html_anchor_element_get_access_key( + dom_html_anchor_element *anchor, dom_string **access_key); + +dom_exception dom_html_anchor_element_set_access_key( + dom_html_anchor_element *anchor, dom_string *access_key); + +dom_exception dom_html_anchor_element_get_charset( + dom_html_anchor_element *anchor, dom_string **charset); + +dom_exception dom_html_anchor_element_set_charset( + dom_html_anchor_element *anchor, dom_string *charset); + +dom_exception dom_html_anchor_element_get_coords( + dom_html_anchor_element *anchor, dom_string **coords); + +dom_exception dom_html_anchor_element_set_coords( + dom_html_anchor_element *anchor, dom_string *coords); + +dom_exception dom_html_anchor_element_get_href( + dom_html_anchor_element *anchor, dom_string **href); + +dom_exception dom_html_anchor_element_set_href( + dom_html_anchor_element *anchor, dom_string *href); + +dom_exception dom_html_anchor_element_get_hreflang( + dom_html_anchor_element *anchor, dom_string **hreflang); + +dom_exception dom_html_anchor_element_set_hreflang( + dom_html_anchor_element *anchor, dom_string *hreflang); + +dom_exception dom_html_anchor_element_get_name( + dom_html_anchor_element *anchor, dom_string **name); + +dom_exception dom_html_anchor_element_set_name( + dom_html_anchor_element *anchor, dom_string *name); + +dom_exception dom_html_anchor_element_get_rel( + dom_html_anchor_element *anchor, dom_string **rel); + +dom_exception dom_html_anchor_element_set_rel( + dom_html_anchor_element *anchor, dom_string *rel); + +dom_exception dom_html_anchor_element_get_rev( + dom_html_anchor_element *anchor, dom_string **rev); + +dom_exception dom_html_anchor_element_set_rev( + dom_html_anchor_element *anchor, dom_string *rev); + +dom_exception dom_html_anchor_element_get_hreflang( + dom_html_anchor_element *anchor, dom_string **hreflang); + +dom_exception dom_html_anchor_element_set_hreflang( + dom_html_anchor_element *anchor, dom_string *hreflang); + +dom_exception dom_html_anchor_element_get_shape( + dom_html_anchor_element *anchor, dom_string **shape); + +dom_exception dom_html_anchor_element_set_shape( + dom_html_anchor_element *anchor, dom_string *shape); + +dom_exception dom_html_anchor_element_get_target( + dom_html_anchor_element *anchor, dom_string **target); + +dom_exception dom_html_anchor_element_set_target( + dom_html_anchor_element *anchor, dom_string *target); + +dom_exception dom_html_anchor_element_get_type( + dom_html_anchor_element *anchor, dom_string **type); + +dom_exception dom_html_anchor_element_set_type( + dom_html_anchor_element *anchor, dom_string *type); + +dom_exception dom_html_anchor_element_get_tab_index( + dom_html_anchor_element *anchor, int32_t *tab_index); + +dom_exception dom_html_anchor_element_set_tab_index( + dom_html_anchor_element *anchor, uint32_t tab_index); + +dom_exception dom_html_anchor_element_blur(dom_html_anchor_element *ele); +dom_exception dom_html_anchor_element_focus(dom_html_anchor_element *ele); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 7711479..f993e06 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -12,11 +12,10 @@ DIR_SOURCES := \ html_paragraph_element.c html_heading_element.c html_quote_element.c \ html_pre_element.c html_br_element.c html_label_element.c \ html_ulist_element.c html_olist_element.c html_li_element.c \ - html_font_element.c html_mod_element.c + html_font_element.c html_mod_element.c html_anchor_element.c UNINMPLEMENTED_SOURCES := \ - html_basefont_element.c \ - html_anchor_element.c html_image_element.c html_object_element.c \ + html_basefont_element.c html_image_element.c html_object_element.c \ html_param_element.c html_applet_element.c html_map_element.c \ html_area_element.c html_script_element.c html_table_element.c \ html_tablecaption_element.c html_tablecol_element.c html_tablesection_element.c \ diff --git a/src/html/html_anchor_element.c b/src/html/html_anchor_element.c index 2e182d5..a215900 100644 --- a/src/html/html_anchor_element.c +++ b/src/html/html_anchor_element.c @@ -3,5 +3,225 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_anchor_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_ANCHOR_ELEMENT + }, + DOM_HTML_ANCHOR_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_anchor_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_anchor_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_anchor_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_anchor_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_anchor_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_anchor_element object + * + * \param doc The document object + * \param ele The dom_html_anchor_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_anchor_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_anchor_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_A], + namespace, prefix); +} + +/** + * Finalise a dom_html_anchor_element object + * + * \param ele The dom_html_anchor_element object + */ +void _dom_html_anchor_element_finalise(struct dom_html_anchor_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_anchor_element object + * + * \param ele The dom_html_anchor_element object + */ +void _dom_html_anchor_element_destroy(struct dom_html_anchor_element *ele) +{ + _dom_html_anchor_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_anchor_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_anchor_element_destroy(dom_node_internal *node) +{ + _dom_html_anchor_element_destroy((struct dom_html_anchor_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_anchor_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_anchor_element_get_##attr( \ + dom_html_anchor_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_anchor_element_set_##attr( \ + dom_html_anchor_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(access_key); +SIMPLE_GET_SET(charset); +SIMPLE_GET_SET(coords); +SIMPLE_GET_SET(href); +SIMPLE_GET_SET(hreflang); +SIMPLE_GET_SET(name); +SIMPLE_GET_SET(rel); +SIMPLE_GET_SET(rev); +SIMPLE_GET_SET(shape); +SIMPLE_GET_SET(target); +SIMPLE_GET_SET(type); + +dom_exception dom_html_anchor_element_get_tab_index( + dom_html_anchor_element *anchor, int32_t *tab_index) +{ + return dom_html_element_get_int32_t_property(&anchor->base, "tabindex", + SLEN("tabindex"), tab_index); +} + +dom_exception dom_html_anchor_element_set_tab_index( + dom_html_anchor_element *anchor, uint32_t tab_index) +{ + return dom_html_element_set_int32_t_property(&anchor->base, "tabindex", + SLEN("tabindex"), tab_index); +} + + +/** + * Blur this control + * + * \param ele The form object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_anchor_element_blur(dom_html_anchor_element *ele) +{ + struct dom_html_document *doc = + (dom_html_document *) dom_node_get_owner(ele); + bool success = false; + assert(doc != NULL); + + /** \todo Is this event (a) default (b) bubbling and (c) cancelable? */ + return _dom_dispatch_generic_event((dom_document *) doc, + (dom_event_target *) ele, + doc->memoised[hds_blur], true, + true, &success); +} + +/** + * Focus this control + * + * \param ele The form object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_anchor_element_focus(dom_html_anchor_element *ele) +{ + struct dom_html_document *doc = + (dom_html_document *) dom_node_get_owner(ele); + bool success = false; + assert(doc != NULL); + + /** \todo Is this event (a) default (b) bubbling and (c) cancelable? */ + return _dom_dispatch_generic_event((dom_document *)doc, + (dom_event_target *) ele, + doc->memoised[hds_focus], true, + true, &success); +} + diff --git a/src/html/html_anchor_element.h b/src/html/html_anchor_element.h index 2e182d5..a9f5b5b 100644 --- a/src/html/html_anchor_element.h +++ b/src/html/html_anchor_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_anchor_element_h_ +#define dom_internal_html_anchor_element_h_ + +#include + +#include "html/html_element.h" + +struct dom_html_anchor_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_anchor_element object */ +dom_exception _dom_html_anchor_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_anchor_element **ele); + +/* Initialise a dom_html_anchor_element object */ +dom_exception _dom_html_anchor_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_anchor_element *ele); + +/* Finalise a dom_html_anchor_element object */ +void _dom_html_anchor_element_finalise(struct dom_html_anchor_element *ele); + +/* Destroy a dom_html_anchor_element object */ +void _dom_html_anchor_element_destroy(struct dom_html_anchor_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_anchor_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_anchor_element_destroy(dom_node_internal *node); +dom_exception _dom_html_anchor_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_ANCHOR_ELEMENT_PROTECT_VTABLE \ + _dom_html_anchor_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_ANCHOR_ELEMENT \ + _dom_virtual_html_anchor_element_destroy, \ + _dom_html_anchor_element_copy + +#endif diff --git a/src/html/html_document.c b/src/html/html_document.c index c8fd11e..b0ab43a 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -41,6 +41,7 @@ #include "html/html_li_element.h" #include "html/html_font_element.h" #include "html/html_mod_element.h" +#include "html/html_anchor_element.h" #include "core/attr.h" #include "core/string.h" @@ -295,6 +296,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, dom_string_caseless_isequal(tag_name, html->memoised[hds_INS])) { exc = _dom_html_mod_element_create(html, tag_name, namespace, prefix, (dom_html_mod_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_A])) { + exc = _dom_html_anchor_element_create(html, namespace, prefix, + (dom_html_anchor_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index 73b7bab..73cb64c 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -87,6 +87,8 @@ HTML_DOCUMENT_STRINGS_ACTION1(compact) HTML_DOCUMENT_STRINGS_ACTION1(cite) HTML_DOCUMENT_STRINGS_ACTION1(color) HTML_DOCUMENT_STRINGS_ACTION1(face) +HTML_DOCUMENT_STRINGS_ACTION1(coords) +HTML_DOCUMENT_STRINGS_ACTION1(shape) HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex) HTML_DOCUMENT_STRINGS_ACTION(html_for,for) HTML_DOCUMENT_STRINGS_ACTION(date_time,datetime) diff --git a/test/DOMTSHandler.pm b/test/DOMTSHandler.pm index f1ed1d4..645e841 100644 --- a/test/DOMTSHandler.pm +++ b/test/DOMTSHandler.pm @@ -42,6 +42,7 @@ our %special_type = ( HTMLFormElement => "dom_html_form_element *", CharacterData => "dom_characterdata *", CDATASection => "dom_cdata_section *", + HTMLAnchorElement => "dom_html_anchor_element *", ); our %special_prefix = ( DOMString => "dom_string", diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement01.xml b/test/testcases/tests/level1/html/HTMLAnchorElement01.xml new file mode 100644 index 0000000..a076a18 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAnchorElement01.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLAnchorElement01 +NIST + + The accessKey attribute is a single character access key to give + access to the form control. + + Retrieve the accessKey attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement01.xml.notimpl b/test/testcases/tests/level1/html/HTMLAnchorElement01.xml.notimpl deleted file mode 100644 index a076a18..0000000 --- a/test/testcases/tests/level1/html/HTMLAnchorElement01.xml.notimpl +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLAnchorElement01 -NIST - - The accessKey attribute is a single character access key to give - access to the form control. - - Retrieve the accessKey attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement02.xml b/test/testcases/tests/level1/html/HTMLAnchorElement02.xml new file mode 100644 index 0000000..247a8cb --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAnchorElement02.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLAnchorElement02 +NIST + + The charset attribute indicates the character encoding of the linked + resource. + + Retrieve the charset attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement02.xml.notimpl b/test/testcases/tests/level1/html/HTMLAnchorElement02.xml.notimpl deleted file mode 100644 index 247a8cb..0000000 --- a/test/testcases/tests/level1/html/HTMLAnchorElement02.xml.notimpl +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLAnchorElement02 -NIST - - The charset attribute indicates the character encoding of the linked - resource. - - Retrieve the charset attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement03.xml b/test/testcases/tests/level1/html/HTMLAnchorElement03.xml new file mode 100644 index 0000000..07a421c --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAnchorElement03.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLAnchorElement03 +NIST + + The coords attribute is a comma-seperated list of lengths, defining + an active region geometry. + + Retrieve the coords attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement03.xml.notimpl b/test/testcases/tests/level1/html/HTMLAnchorElement03.xml.notimpl deleted file mode 100644 index 07a421c..0000000 --- a/test/testcases/tests/level1/html/HTMLAnchorElement03.xml.notimpl +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLAnchorElement03 -NIST - - The coords attribute is a comma-seperated list of lengths, defining - an active region geometry. - - Retrieve the coords attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement04.xml b/test/testcases/tests/level1/html/HTMLAnchorElement04.xml new file mode 100644 index 0000000..7b961c4 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAnchorElement04.xml @@ -0,0 +1,41 @@ + + + + + + + HTMLAnchorElement04 + NIST + + The href attribute contains the URL of the linked resource. + + Retrieve the href attribute and examine its value. + + Mary Brady + 2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement04.xml.notimpl b/test/testcases/tests/level1/html/HTMLAnchorElement04.xml.notimpl deleted file mode 100644 index 7b961c4..0000000 --- a/test/testcases/tests/level1/html/HTMLAnchorElement04.xml.notimpl +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - HTMLAnchorElement04 - NIST - - The href attribute contains the URL of the linked resource. - - Retrieve the href attribute and examine its value. - - Mary Brady - 2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement05.xml b/test/testcases/tests/level1/html/HTMLAnchorElement05.xml new file mode 100644 index 0000000..0329515 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAnchorElement05.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLAnchorElement05 +NIST + + The hreflang attribute contains the language code of the linked resource. + + Retrieve the hreflang attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement05.xml.notimpl b/test/testcases/tests/level1/html/HTMLAnchorElement05.xml.notimpl deleted file mode 100644 index 0329515..0000000 --- a/test/testcases/tests/level1/html/HTMLAnchorElement05.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLAnchorElement05 -NIST - - The hreflang attribute contains the language code of the linked resource. - - Retrieve the hreflang attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement06.xml b/test/testcases/tests/level1/html/HTMLAnchorElement06.xml new file mode 100644 index 0000000..ad768fa --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAnchorElement06.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLAnchorElement06 +NIST + + The name attribute contains the anchor name. + + Retrieve the name attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement06.xml.notimpl b/test/testcases/tests/level1/html/HTMLAnchorElement06.xml.notimpl deleted file mode 100644 index ad768fa..0000000 --- a/test/testcases/tests/level1/html/HTMLAnchorElement06.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLAnchorElement06 -NIST - - The name attribute contains the anchor name. - - Retrieve the name attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement07.xml b/test/testcases/tests/level1/html/HTMLAnchorElement07.xml new file mode 100644 index 0000000..a70cc36 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAnchorElement07.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLAnchorElement07 +NIST + + The rel attribute contains the forward link type. + + Retrieve the rel attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement07.xml.notimpl b/test/testcases/tests/level1/html/HTMLAnchorElement07.xml.notimpl deleted file mode 100644 index a70cc36..0000000 --- a/test/testcases/tests/level1/html/HTMLAnchorElement07.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLAnchorElement07 -NIST - - The rel attribute contains the forward link type. - - Retrieve the rel attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement08.xml b/test/testcases/tests/level1/html/HTMLAnchorElement08.xml new file mode 100644 index 0000000..bb76341 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAnchorElement08.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLAnchorElement08 +NIST + + The rev attribute contains the reverse link type + + Retrieve the rev attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement08.xml.notimpl b/test/testcases/tests/level1/html/HTMLAnchorElement08.xml.notimpl deleted file mode 100644 index bb76341..0000000 --- a/test/testcases/tests/level1/html/HTMLAnchorElement08.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLAnchorElement08 -NIST - - The rev attribute contains the reverse link type - - Retrieve the rev attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement09.xml b/test/testcases/tests/level1/html/HTMLAnchorElement09.xml new file mode 100644 index 0000000..7da6d18 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAnchorElement09.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLAnchorElement09 +NIST + + The shape attribute contains the shape of the active area. + + Retrieve the shape attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement09.xml.notimpl b/test/testcases/tests/level1/html/HTMLAnchorElement09.xml.notimpl deleted file mode 100644 index 7da6d18..0000000 --- a/test/testcases/tests/level1/html/HTMLAnchorElement09.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLAnchorElement09 -NIST - - The shape attribute contains the shape of the active area. - - Retrieve the shape attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement10.xml b/test/testcases/tests/level1/html/HTMLAnchorElement10.xml new file mode 100644 index 0000000..201c113 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAnchorElement10.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLAnchorElement10 +NIST + + The tabIndex attribute contains an index that represents the elements + position in the tabbing order. + + Retrieve the tabIndex attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement10.xml.notimpl b/test/testcases/tests/level1/html/HTMLAnchorElement10.xml.notimpl deleted file mode 100644 index 201c113..0000000 --- a/test/testcases/tests/level1/html/HTMLAnchorElement10.xml.notimpl +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLAnchorElement10 -NIST - - The tabIndex attribute contains an index that represents the elements - position in the tabbing order. - - Retrieve the tabIndex attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement11.xml b/test/testcases/tests/level1/html/HTMLAnchorElement11.xml new file mode 100644 index 0000000..00c2bb9 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAnchorElement11.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLAnchorElement11 +NIST + + The target attribute specifies the frame to render the source in. + + Retrieve the target attribute and examine it's value. + +Rick Rivello +2002-05-09 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement11.xml.notimpl b/test/testcases/tests/level1/html/HTMLAnchorElement11.xml.notimpl deleted file mode 100644 index 00c2bb9..0000000 --- a/test/testcases/tests/level1/html/HTMLAnchorElement11.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLAnchorElement11 -NIST - - The target attribute specifies the frame to render the source in. - - Retrieve the target attribute and examine it's value. - -Rick Rivello -2002-05-09 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement12.xml b/test/testcases/tests/level1/html/HTMLAnchorElement12.xml new file mode 100644 index 0000000..3b22328 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAnchorElement12.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLAnchorElement12 +NIST + + The type attribute contains the advisory content model. + + Retrieve the type attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement12.xml.notimpl b/test/testcases/tests/level1/html/HTMLAnchorElement12.xml.notimpl deleted file mode 100644 index 3b22328..0000000 --- a/test/testcases/tests/level1/html/HTMLAnchorElement12.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLAnchorElement12 -NIST - - The type attribute contains the advisory content model. - - Retrieve the type attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement13.xml b/test/testcases/tests/level1/html/HTMLAnchorElement13.xml new file mode 100644 index 0000000..555985d --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAnchorElement13.xml @@ -0,0 +1,37 @@ + + + + + + + +HTMLAnchorElement13 +Curt Arnold + +HTMLAnchorElement.blur should surrender input focus. + +2004-03-18 + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement13.xml.notimpl b/test/testcases/tests/level1/html/HTMLAnchorElement13.xml.notimpl deleted file mode 100644 index 555985d..0000000 --- a/test/testcases/tests/level1/html/HTMLAnchorElement13.xml.notimpl +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - -HTMLAnchorElement13 -Curt Arnold - -HTMLAnchorElement.blur should surrender input focus. - -2004-03-18 - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement14.xml b/test/testcases/tests/level1/html/HTMLAnchorElement14.xml new file mode 100644 index 0000000..7d3d0c6 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAnchorElement14.xml @@ -0,0 +1,37 @@ + + + + + + + +HTMLAnchorElement14 +Curt Arnold + +HTMLAnchorElement.focus should capture input focus. + +2004-03-18 + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAnchorElement14.xml.notimpl b/test/testcases/tests/level1/html/HTMLAnchorElement14.xml.notimpl deleted file mode 100644 index 7d3d0c6..0000000 --- a/test/testcases/tests/level1/html/HTMLAnchorElement14.xml.notimpl +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - -HTMLAnchorElement14 -Curt Arnold - -HTMLAnchorElement.focus should capture input focus. - -2004-03-18 - - - - - - - - - - - -- cgit v1.2.3 From 7bf86def02f275eac1c1f0c634461e9aed545a14 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Wed, 14 May 2014 20:14:31 +0530 Subject: Including Level2 tests & the Basefont Element , also a minor change in level2 basefontElement test --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_basefont_element.h | 27 ++++ src/html/Makefile | 5 +- src/html/TODO | 4 +- src/html/html_basefont_element.c | 177 +++++++++++++++++++++ src/html/html_basefont_element.h | 45 ++++++ src/html/html_document.c | 4 + test/Makefile | 3 + .../tests/level1/html/HTMLFontElement01.xml | 42 +++++ .../tests/level1/html/HTMLFontElement02.xml | 43 +++++ .../tests/level1/html/HTMLFontElement03.xml | 42 +++++ .../tests/level2/html/HTMLAppletElement07.xml | 42 ----- .../level2/html/HTMLAppletElement07.xml.kfail | 42 +++++ .../tests/level2/html/HTMLAppletElement09.xml | 42 ----- .../level2/html/HTMLAppletElement09.xml.kfail | 42 +++++ .../tests/level2/html/HTMLBaseFontElement03.xml | 2 +- .../tests/level2/html/HTMLBodyElement07.xml | 38 ----- .../tests/level2/html/HTMLBodyElement07.xml.kfail | 38 +++++ .../tests/level2/html/HTMLBodyElement08.xml | 38 ----- .../tests/level2/html/HTMLBodyElement08.xml.kfail | 38 +++++ .../tests/level2/html/HTMLBodyElement09.xml | 40 ----- .../tests/level2/html/HTMLBodyElement09.xml.kfail | 40 +++++ .../tests/level2/html/HTMLBodyElement10.xml | 40 ----- .../tests/level2/html/HTMLBodyElement10.xml.kfail | 40 +++++ .../tests/level2/html/HTMLBodyElement11.xml | 38 ----- .../tests/level2/html/HTMLBodyElement11.xml.kfail | 38 +++++ .../tests/level2/html/HTMLBodyElement12.xml | 38 ----- .../tests/level2/html/HTMLBodyElement12.xml.kfail | 38 +++++ .../testcases/tests/level2/html/HTMLDocument22.xml | 36 ----- .../tests/level2/html/HTMLDocument22.xml.kfail | 36 +++++ .../testcases/tests/level2/html/HTMLDocument23.xml | 36 ----- .../tests/level2/html/HTMLDocument23.xml.kfail | 36 +++++ .../testcases/tests/level2/html/HTMLDocument24.xml | 38 ----- .../tests/level2/html/HTMLDocument24.xml.kfail | 38 +++++ .../testcases/tests/level2/html/HTMLDocument25.xml | 38 ----- .../tests/level2/html/HTMLDocument25.xml.kfail | 38 +++++ .../testcases/tests/level2/html/HTMLDocument26.xml | 36 ----- .../tests/level2/html/HTMLDocument26.xml.kfail | 36 +++++ .../testcases/tests/level2/html/HTMLDocument27.xml | 36 ----- .../tests/level2/html/HTMLDocument27.xml.kfail | 36 +++++ .../tests/level2/html/HTMLFrameElement09.xml | 42 ----- .../tests/level2/html/HTMLFrameElement09.xml.kfail | 42 +++++ .../tests/level2/html/HTMLIFrameElement11.xml | 39 ----- .../level2/html/HTMLIFrameElement11.xml.kfail | 39 +++++ .../tests/level2/html/HTMLImageElement05.xml | 41 ----- .../tests/level2/html/HTMLImageElement05.xml.kfail | 41 +++++ .../tests/level2/html/HTMLImageElement06.xml | 42 ----- .../tests/level2/html/HTMLImageElement06.xml.kfail | 42 +++++ .../tests/level2/html/HTMLImageElement11.xml | 42 ----- .../tests/level2/html/HTMLImageElement11.xml.kfail | 42 +++++ .../tests/level2/html/HTMLImageElement12.xml | 41 ----- .../tests/level2/html/HTMLImageElement12.xml.kfail | 41 +++++ .../tests/level2/html/HTMLInputElement13.xml | 43 ----- .../tests/level2/html/HTMLInputElement13.xml.kfail | 43 +++++ .../tests/level2/html/HTMLObjectElement11.xml | 43 ----- .../level2/html/HTMLObjectElement11.xml.kfail | 43 +++++ .../tests/level2/html/HTMLObjectElement16.xml | 43 ----- .../level2/html/HTMLObjectElement16.xml.kfail | 43 +++++ .../tests/level2/html/HTMLObjectElement20.xml | 40 ----- .../level2/html/HTMLObjectElement20.xml.kfail | 40 +++++ .../tests/level2/html/HTMLOptionsCollection01.xml | 46 ------ .../level2/html/HTMLOptionsCollection01.xml.kfail | 46 ++++++ .../tests/level2/html/HTMLOptionsCollection02.xml | 54 ------- .../level2/html/HTMLOptionsCollection02.xml.kfail | 54 +++++++ .../tests/level2/html/HTMLOptionsCollection03.xml | 54 ------- .../level2/html/HTMLOptionsCollection03.xml.kfail | 54 +++++++ .../tests/level2/html/HTMLOptionsCollection04.xml | 54 ------- .../level2/html/HTMLOptionsCollection04.xml.kfail | 54 +++++++ .../tests/level2/html/HTMLOptionsCollection05.xml | 55 ------- .../level2/html/HTMLOptionsCollection05.xml.kfail | 55 +++++++ .../tests/level2/html/HTMLOptionsCollection06.xml | 52 ------ .../level2/html/HTMLOptionsCollection06.xml.kfail | 52 ++++++ .../tests/level2/html/HTMLOptionsCollection07.xml | 54 ------- .../level2/html/HTMLOptionsCollection07.xml.kfail | 54 +++++++ .../tests/level2/html/HTMLSelectElement20.xml | 56 ------- .../level2/html/HTMLSelectElement20.xml.kfail | 56 +++++++ .../tests/level2/html/HTMLTableElement34.xml | 48 ------ .../tests/level2/html/HTMLTableElement34.xml.kfail | 48 ++++++ .../tests/level2/html/HTMLTableElement35.xml | 48 ------ .../tests/level2/html/HTMLTableElement35.xml.kfail | 48 ++++++ .../tests/level2/html/HTMLTableElement36.xml | 47 ------ .../tests/level2/html/HTMLTableElement36.xml.kfail | 47 ++++++ .../tests/level2/html/HTMLTableElement37.xml | 48 ------ .../tests/level2/html/HTMLTableElement37.xml.kfail | 48 ++++++ .../tests/level2/html/HTMLTableElement38.xml | 47 ------ .../tests/level2/html/HTMLTableElement38.xml.kfail | 47 ++++++ .../tests/level2/html/HTMLTableElement39.xml | 62 -------- .../tests/level2/html/HTMLTableElement39.xml.kfail | 62 ++++++++ .../tests/level2/html/HTMLTableElement40.xml | 50 ------ .../tests/level2/html/HTMLTableElement40.xml.kfail | 50 ++++++ .../tests/level2/html/HTMLTableRowElement15.xml | 48 ------ .../level2/html/HTMLTableRowElement15.xml.kfail | 48 ++++++ .../tests/level2/html/HTMLTableRowElement16.xml | 48 ------ .../level2/html/HTMLTableRowElement16.xml.kfail | 48 ++++++ .../tests/level2/html/HTMLTableRowElement17.xml | 47 ------ .../level2/html/HTMLTableRowElement17.xml.kfail | 47 ++++++ .../tests/level2/html/HTMLTableRowElement18.xml | 47 ------ .../level2/html/HTMLTableRowElement18.xml.kfail | 47 ++++++ .../tests/level2/html/HTMLTableRowElement19.xml | 47 ------ .../level2/html/HTMLTableRowElement19.xml.kfail | 47 ++++++ .../tests/level2/html/HTMLTableRowElement20.xml | 68 -------- .../level2/html/HTMLTableRowElement20.xml.kfail | 68 ++++++++ .../tests/level2/html/HTMLTableRowElement21.xml | 67 -------- .../level2/html/HTMLTableRowElement21.xml.kfail | 67 ++++++++ .../level2/html/HTMLTableSectionElement25.xml | 48 ------ .../html/HTMLTableSectionElement25.xml.kfail | 48 ++++++ .../level2/html/HTMLTableSectionElement26.xml | 48 ------ .../html/HTMLTableSectionElement26.xml.kfail | 48 ++++++ .../level2/html/HTMLTableSectionElement27.xml | 48 ------ .../html/HTMLTableSectionElement27.xml.kfail | 48 ++++++ .../level2/html/HTMLTableSectionElement28.xml | 48 ------ .../html/HTMLTableSectionElement28.xml.kfail | 48 ++++++ .../level2/html/HTMLTableSectionElement29.xml | 47 ------ .../html/HTMLTableSectionElement29.xml.kfail | 47 ++++++ .../level2/html/HTMLTableSectionElement30.xml | 55 ------- .../html/HTMLTableSectionElement30.xml.kfail | 55 +++++++ .../level2/html/HTMLTableSectionElement31.xml | 53 ------ .../html/HTMLTableSectionElement31.xml.kfail | 53 ++++++ .../tests/level2/html/files/basefont.html | 12 ++ .../tests/level2/html/files/basefont.xhtml | 14 ++ .../testcases/tests/level2/html/files/basefont.xml | 14 ++ test/testcases/tests/level2/html/hasFeature02.xml | 31 ---- .../tests/level2/html/hasFeature02.xml.kfail | 31 ++++ test/testcases/tests/level2/html/hasFeature03.xml | 33 ---- .../tests/level2/html/hasFeature03.xml.kfail | 33 ++++ test/testcases/tests/level2/html/hasFeature04.xml | 33 ---- .../tests/level2/html/hasFeature04.xml.kfail | 33 ++++ test/testcases/tests/level2/html/hasFeature05.xml | 31 ---- .../tests/level2/html/hasFeature05.xml.kfail | 31 ++++ test/testcases/tests/level2/html/hasFeature06.xml | 31 ---- .../tests/level2/html/hasFeature06.xml.kfail | 31 ++++ test/testcases/tests/level2/html/metadata.xml | 15 -- .../testcases/tests/level2/html/metadata.xml.kfail | 15 ++ test/testcases/tests/level2/html/object08.xml | 40 ----- .../testcases/tests/level2/html/object08.xml.kfail | 40 +++++ test/testcases/tests/level2/html/object13.xml | 40 ----- .../testcases/tests/level2/html/object13.xml.kfail | 40 +++++ 138 files changed, 3131 insertions(+), 2705 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLFontElement01.xml create mode 100644 test/testcases/tests/level1/html/HTMLFontElement02.xml create mode 100644 test/testcases/tests/level1/html/HTMLFontElement03.xml delete mode 100644 test/testcases/tests/level2/html/HTMLAppletElement07.xml create mode 100644 test/testcases/tests/level2/html/HTMLAppletElement07.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLAppletElement09.xml create mode 100644 test/testcases/tests/level2/html/HTMLAppletElement09.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLBodyElement07.xml create mode 100644 test/testcases/tests/level2/html/HTMLBodyElement07.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLBodyElement08.xml create mode 100644 test/testcases/tests/level2/html/HTMLBodyElement08.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLBodyElement09.xml create mode 100644 test/testcases/tests/level2/html/HTMLBodyElement09.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLBodyElement10.xml create mode 100644 test/testcases/tests/level2/html/HTMLBodyElement10.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLBodyElement11.xml create mode 100644 test/testcases/tests/level2/html/HTMLBodyElement11.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLBodyElement12.xml create mode 100644 test/testcases/tests/level2/html/HTMLBodyElement12.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLDocument22.xml create mode 100644 test/testcases/tests/level2/html/HTMLDocument22.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLDocument23.xml create mode 100644 test/testcases/tests/level2/html/HTMLDocument23.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLDocument24.xml create mode 100644 test/testcases/tests/level2/html/HTMLDocument24.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLDocument25.xml create mode 100644 test/testcases/tests/level2/html/HTMLDocument25.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLDocument26.xml create mode 100644 test/testcases/tests/level2/html/HTMLDocument26.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLDocument27.xml create mode 100644 test/testcases/tests/level2/html/HTMLDocument27.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLFrameElement09.xml create mode 100644 test/testcases/tests/level2/html/HTMLFrameElement09.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLIFrameElement11.xml create mode 100644 test/testcases/tests/level2/html/HTMLIFrameElement11.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLImageElement05.xml create mode 100644 test/testcases/tests/level2/html/HTMLImageElement05.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLImageElement06.xml create mode 100644 test/testcases/tests/level2/html/HTMLImageElement06.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLImageElement11.xml create mode 100644 test/testcases/tests/level2/html/HTMLImageElement11.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLImageElement12.xml create mode 100644 test/testcases/tests/level2/html/HTMLImageElement12.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLInputElement13.xml create mode 100644 test/testcases/tests/level2/html/HTMLInputElement13.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLObjectElement11.xml create mode 100644 test/testcases/tests/level2/html/HTMLObjectElement11.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLObjectElement16.xml create mode 100644 test/testcases/tests/level2/html/HTMLObjectElement16.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLObjectElement20.xml create mode 100644 test/testcases/tests/level2/html/HTMLObjectElement20.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLOptionsCollection01.xml create mode 100644 test/testcases/tests/level2/html/HTMLOptionsCollection01.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLOptionsCollection02.xml create mode 100644 test/testcases/tests/level2/html/HTMLOptionsCollection02.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLOptionsCollection03.xml create mode 100644 test/testcases/tests/level2/html/HTMLOptionsCollection03.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLOptionsCollection04.xml create mode 100644 test/testcases/tests/level2/html/HTMLOptionsCollection04.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLOptionsCollection05.xml create mode 100644 test/testcases/tests/level2/html/HTMLOptionsCollection05.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLOptionsCollection06.xml create mode 100644 test/testcases/tests/level2/html/HTMLOptionsCollection06.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLOptionsCollection07.xml create mode 100644 test/testcases/tests/level2/html/HTMLOptionsCollection07.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLSelectElement20.xml create mode 100644 test/testcases/tests/level2/html/HTMLSelectElement20.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableElement34.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableElement34.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableElement35.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableElement35.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableElement36.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableElement36.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableElement37.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableElement37.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableElement38.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableElement38.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableElement39.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableElement39.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableElement40.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableElement40.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement15.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement15.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement16.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement16.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement17.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement17.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement18.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement18.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement19.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement19.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement20.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement20.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement21.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement21.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement25.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement25.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement26.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement26.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement27.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement27.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement28.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement28.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement29.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement29.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement30.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement31.xml create mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail create mode 100644 test/testcases/tests/level2/html/files/basefont.html create mode 100644 test/testcases/tests/level2/html/files/basefont.xhtml create mode 100644 test/testcases/tests/level2/html/files/basefont.xml delete mode 100644 test/testcases/tests/level2/html/hasFeature02.xml create mode 100644 test/testcases/tests/level2/html/hasFeature02.xml.kfail delete mode 100644 test/testcases/tests/level2/html/hasFeature03.xml create mode 100644 test/testcases/tests/level2/html/hasFeature03.xml.kfail delete mode 100644 test/testcases/tests/level2/html/hasFeature04.xml create mode 100644 test/testcases/tests/level2/html/hasFeature04.xml.kfail delete mode 100644 test/testcases/tests/level2/html/hasFeature05.xml create mode 100644 test/testcases/tests/level2/html/hasFeature05.xml.kfail delete mode 100644 test/testcases/tests/level2/html/hasFeature06.xml create mode 100644 test/testcases/tests/level2/html/hasFeature06.xml.kfail delete mode 100644 test/testcases/tests/level2/html/metadata.xml create mode 100644 test/testcases/tests/level2/html/metadata.xml.kfail delete mode 100644 test/testcases/tests/level2/html/object08.xml create mode 100644 test/testcases/tests/level2/html/object08.xml.kfail delete mode 100644 test/testcases/tests/level2/html/object13.xml create mode 100644 test/testcases/tests/level2/html/object13.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 2f9a815..ab7d003 100644 --- a/Makefile +++ b/Makefile @@ -115,6 +115,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_li_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_font_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_mod_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_anchor_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_basefont_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index f243bec..7c788fd 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -74,6 +74,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_basefont_element.h b/include/dom/html/html_basefont_element.h index 2e182d5..fa60e0d 100644 --- a/include/dom/html/html_basefont_element.h +++ b/include/dom/html/html_basefont_element.h @@ -3,5 +3,32 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_base_font_element_h_ +#define dom_html_base_font_element_h_ +#include +#include +#include + +typedef struct dom_html_base_font_element dom_html_base_font_element; + +dom_exception dom_html_base_font_element_get_size( + dom_html_base_font_element *element, int32_t *size); + +dom_exception dom_html_base_font_element_set_size( + dom_html_base_font_element *element, uint32_t size); + +dom_exception dom_html_base_font_element_get_color( + dom_html_base_font_element *element, dom_string **color); + +dom_exception dom_html_base_font_element_set_color( + dom_html_base_font_element *element, dom_string *color); + +dom_exception dom_html_base_font_element_get_face( + dom_html_base_font_element *element, dom_string **face); + +dom_exception dom_html_base_font_element_set_face( + dom_html_base_font_element *element, dom_string *face); +#endif diff --git a/src/html/Makefile b/src/html/Makefile index f993e06..f988cff 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -12,10 +12,11 @@ DIR_SOURCES := \ html_paragraph_element.c html_heading_element.c html_quote_element.c \ html_pre_element.c html_br_element.c html_label_element.c \ html_ulist_element.c html_olist_element.c html_li_element.c \ - html_font_element.c html_mod_element.c html_anchor_element.c + html_font_element.c html_mod_element.c html_anchor_element.c \ + html_basefont_element.c UNINMPLEMENTED_SOURCES := \ - html_basefont_element.c html_image_element.c html_object_element.c \ + html_image_element.c html_object_element.c \ html_param_element.c html_applet_element.c html_map_element.c \ html_area_element.c html_script_element.c html_table_element.c \ html_tablecaption_element.c html_tablecol_element.c html_tablesection_element.c \ diff --git a/src/html/TODO b/src/html/TODO index 53e6edb..eddb871 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -34,11 +34,11 @@ HTMLHeadingElement html_heading_element DONE HTMLQuoteElement html_quote_element DONE HTMLPreElement html_pre_element DONE HTMLBRElement html_br_element DONE -HTMLBaseFontElement html_basefont_element MISSING +HTMLBaseFontElement html_basefont_element DONE HTMLFontElement html_font_element DONE HTMLHRElement html_hr_element DONE HTMLModElement html_mod_element DONE -HTMLAnchorElement html_anchor_element MISSING +HTMLAnchorElement html_anchor_element DONE HTMLImageElement html_image_element MISSING HTMLObjectElement html_object_element MISSING HTMLParamElement html_param_element MISSING diff --git a/src/html/html_basefont_element.c b/src/html/html_basefont_element.c index 2e182d5..e524ed3 100644 --- a/src/html/html_basefont_element.c +++ b/src/html/html_basefont_element.c @@ -3,5 +3,182 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include +#include + +#include "html/html_document.h" +#include "html/html_basefont_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_BASE_FONT_ELEMENT + }, + DOM_HTML_BASE_FONT_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_base_font_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_base_font_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *base_fontfix, + struct dom_html_base_font_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_base_font_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_base_font_element_initialise(doc, namespace, base_fontfix, *ele); +} + +/** + * Initialise a dom_html_base_font_element object + * + * \param doc The document object + * \param ele The dom_html_base_font_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_base_font_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *base_fontfix, + struct dom_html_base_font_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_BASEFONT], + namespace, base_fontfix); +} + +/** + * Finalise a dom_html_base_font_element object + * + * \param ele The dom_html_base_font_element object + */ +void _dom_html_base_font_element_finalise(struct dom_html_base_font_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_base_font_element object + * + * \param ele The dom_html_base_font_element object + */ +void _dom_html_base_font_element_destroy(struct dom_html_base_font_element *ele) +{ + _dom_html_base_font_element_finalise(ele); + free(ele); +} + +/** + * Get the width Property + * + * \param base_font The dom_html_base_font_element object + */ +dom_exception dom_html_base_font_element_get_size( + dom_html_base_font_element *base_font, int32_t *size) +{ + return dom_html_element_get_int32_t_property(&base_font->base, "size", + SLEN("size"), size); +} + +/** + * Set the width Property + * + * \param base_font The dom_html_base_font_element object + */ +dom_exception dom_html_base_font_element_set_size( + dom_html_base_font_element *base_font, uint32_t size) +{ + return dom_html_element_set_int32_t_property(&base_font->base, "size", + SLEN("size"), size); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_base_font_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_base_font_element_destroy(dom_node_internal *node) +{ + _dom_html_base_font_element_destroy((struct dom_html_base_font_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_base_font_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_base_font_element_get_##attr( \ + dom_html_base_font_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)-> \ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ + dom_exception dom_html_base_font_element_set_##attr( \ + dom_html_base_font_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)-> \ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) +SIMPLE_GET_SET(color); +SIMPLE_GET_SET(face); diff --git a/src/html/html_basefont_element.h b/src/html/html_basefont_element.h index 2e182d5..e6427ec 100644 --- a/src/html/html_basefont_element.h +++ b/src/html/html_basefont_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_basefont_element_h_ +#define dom_internal_html_basefont_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_base_font_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_base_font_element object */ +dom_exception _dom_html_base_font_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_base_font_element **ele); + +/* Initialise a dom_html_base_font_element object */ +dom_exception _dom_html_base_font_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_base_font_element *ele); + +/* Finalise a dom_html_base_font_element object */ +void _dom_html_base_font_element_finalise(struct dom_html_base_font_element *ele); + +/* Destroy a dom_html_base_font_element object */ +void _dom_html_base_font_element_destroy(struct dom_html_base_font_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_base_font_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_base_font_element_destroy(dom_node_internal *node); +dom_exception _dom_html_base_font_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_BASE_FONT_ELEMENT_PROTECT_VTABLE \ + _dom_html_base_font_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_BASE_FONT_ELEMENT \ + _dom_virtual_html_base_font_element_destroy, \ + _dom_html_base_font_element_copy + +#endif diff --git a/src/html/html_document.c b/src/html/html_document.c index b0ab43a..7841087 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -42,6 +42,7 @@ #include "html/html_font_element.h" #include "html/html_mod_element.h" #include "html/html_anchor_element.h" +#include "html/html_basefont_element.h" #include "core/attr.h" #include "core/string.h" @@ -299,6 +300,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_A])) { exc = _dom_html_anchor_element_create(html, namespace, prefix, (dom_html_anchor_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_BASEFONT])) { + exc = _dom_html_base_font_element_create(html, namespace, prefix, + (dom_html_base_font_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/test/Makefile b/test/Makefile index 79f075d..951d1bd 100644 --- a/test/Makefile +++ b/test/Makefile @@ -60,6 +60,9 @@ $(eval $(call do_xml_suite,level1/html,dom1-interfaces.xml)) # Include the level 2 core tests $(eval $(call do_xml_suite,level2/core,dom2-core-interface.xml)) +# Include level 2 html tests +$(eval $(call do_xml_suite,level2/html,dom1-interfaces.xml)) + CLEAN_ITEMS := $(DIR)INDEX include $(NSBUILD)/Makefile.subdir diff --git a/test/testcases/tests/level1/html/HTMLFontElement01.xml b/test/testcases/tests/level1/html/HTMLFontElement01.xml new file mode 100644 index 0000000..48f0994 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFontElement01.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLFontElement01 +NIST + + The color attribute specifies the font's color. + + Retrieve the color attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLFontElement02.xml b/test/testcases/tests/level1/html/HTMLFontElement02.xml new file mode 100644 index 0000000..48e405e --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFontElement02.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLFontElement02 +NIST + + The face attribute specifies the font's face identifier. + + Retrieve the face attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLFontElement03.xml b/test/testcases/tests/level1/html/HTMLFontElement03.xml new file mode 100644 index 0000000..82ced1a --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFontElement03.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLFontElement03 +NIST + + The size attribute specifies the font's size. + + Retrieve the size attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLAppletElement07.xml b/test/testcases/tests/level2/html/HTMLAppletElement07.xml deleted file mode 100644 index 07a6c0d..0000000 --- a/test/testcases/tests/level2/html/HTMLAppletElement07.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -HTMLAppletElement07 -NIST - - The hspace attribute specifies the horizontal space to the left - and right of this image, applet, or object. - - Retrieve the hspace attribute and examine it's value. - -Mary Brady -2001-12-03 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLAppletElement07.xml.kfail b/test/testcases/tests/level2/html/HTMLAppletElement07.xml.kfail new file mode 100644 index 0000000..07a6c0d --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLAppletElement07.xml.kfail @@ -0,0 +1,42 @@ + + + + + + +HTMLAppletElement07 +NIST + + The hspace attribute specifies the horizontal space to the left + and right of this image, applet, or object. + + Retrieve the hspace attribute and examine it's value. + +Mary Brady +2001-12-03 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLAppletElement09.xml b/test/testcases/tests/level2/html/HTMLAppletElement09.xml deleted file mode 100644 index b602397..0000000 --- a/test/testcases/tests/level2/html/HTMLAppletElement09.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -HTMLAppletElement09 -NIST - - The vspace attribute specifies the vertical space above and below - this image, applet or object. - - Retrieve the vspace attribute and examine it's value. - -Mary Brady -2001-12-03 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLAppletElement09.xml.kfail b/test/testcases/tests/level2/html/HTMLAppletElement09.xml.kfail new file mode 100644 index 0000000..b602397 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLAppletElement09.xml.kfail @@ -0,0 +1,42 @@ + + + + + + +HTMLAppletElement09 +NIST + + The vspace attribute specifies the vertical space above and below + this image, applet or object. + + Retrieve the vspace attribute and examine it's value. + +Mary Brady +2001-12-03 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLBaseFontElement03.xml b/test/testcases/tests/level2/html/HTMLBaseFontElement03.xml index b743fb0..3709832 100644 --- a/test/testcases/tests/level2/html/HTMLBaseFontElement03.xml +++ b/test/testcases/tests/level2/html/HTMLBaseFontElement03.xml @@ -31,7 +31,7 @@ See W3C License http://www.w3.org/Consortium/Legal/ for more details. - + diff --git a/test/testcases/tests/level2/html/HTMLBodyElement07.xml b/test/testcases/tests/level2/html/HTMLBodyElement07.xml deleted file mode 100644 index 2c759f8..0000000 --- a/test/testcases/tests/level2/html/HTMLBodyElement07.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - -HTMLBodyElement07 -Curt Arnold - -Checks that Node.isSupported("hTmL", null) returns true. - -2002-03-18 - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLBodyElement07.xml.kfail b/test/testcases/tests/level2/html/HTMLBodyElement07.xml.kfail new file mode 100644 index 0000000..2c759f8 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLBodyElement07.xml.kfail @@ -0,0 +1,38 @@ + + + + + + + +HTMLBodyElement07 +Curt Arnold + +Checks that Node.isSupported("hTmL", null) returns true. + +2002-03-18 + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLBodyElement08.xml b/test/testcases/tests/level2/html/HTMLBodyElement08.xml deleted file mode 100644 index 50b411d..0000000 --- a/test/testcases/tests/level2/html/HTMLBodyElement08.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - -HTMLBodyElement08 -Curt Arnold - -Checks that Node.isSupported("hTmL", "2.0") returns true. - -2002-03-18 - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLBodyElement08.xml.kfail b/test/testcases/tests/level2/html/HTMLBodyElement08.xml.kfail new file mode 100644 index 0000000..50b411d --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLBodyElement08.xml.kfail @@ -0,0 +1,38 @@ + + + + + + + +HTMLBodyElement08 +Curt Arnold + +Checks that Node.isSupported("hTmL", "2.0") returns true. + +2002-03-18 + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLBodyElement09.xml b/test/testcases/tests/level2/html/HTMLBodyElement09.xml deleted file mode 100644 index 150b4a8..0000000 --- a/test/testcases/tests/level2/html/HTMLBodyElement09.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - -HTMLBodyElement09 -Curt Arnold - -Checks that Node.isSupported("xhTmL", null) returns true if hasFeature("XML", null) is true. - -2002-03-18 - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLBodyElement09.xml.kfail b/test/testcases/tests/level2/html/HTMLBodyElement09.xml.kfail new file mode 100644 index 0000000..150b4a8 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLBodyElement09.xml.kfail @@ -0,0 +1,40 @@ + + + + + + + +HTMLBodyElement09 +Curt Arnold + +Checks that Node.isSupported("xhTmL", null) returns true if hasFeature("XML", null) is true. + +2002-03-18 + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLBodyElement10.xml b/test/testcases/tests/level2/html/HTMLBodyElement10.xml deleted file mode 100644 index 691739e..0000000 --- a/test/testcases/tests/level2/html/HTMLBodyElement10.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - -HTMLBodyElement10 -Curt Arnold - -Checks that Node.isSupported("xhTmL", "2.0") returns true if hasFeature("XML", "2.0") is true. - -2002-03-18 - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLBodyElement10.xml.kfail b/test/testcases/tests/level2/html/HTMLBodyElement10.xml.kfail new file mode 100644 index 0000000..691739e --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLBodyElement10.xml.kfail @@ -0,0 +1,40 @@ + + + + + + + +HTMLBodyElement10 +Curt Arnold + +Checks that Node.isSupported("xhTmL", "2.0") returns true if hasFeature("XML", "2.0") is true. + +2002-03-18 + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLBodyElement11.xml b/test/testcases/tests/level2/html/HTMLBodyElement11.xml deleted file mode 100644 index 3c83437..0000000 --- a/test/testcases/tests/level2/html/HTMLBodyElement11.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - -HTMLBodyElement11 -Curt Arnold - -Checks that Node.isSupported("cOrE", null) returns true. - -2002-03-18 - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLBodyElement11.xml.kfail b/test/testcases/tests/level2/html/HTMLBodyElement11.xml.kfail new file mode 100644 index 0000000..3c83437 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLBodyElement11.xml.kfail @@ -0,0 +1,38 @@ + + + + + + + +HTMLBodyElement11 +Curt Arnold + +Checks that Node.isSupported("cOrE", null) returns true. + +2002-03-18 + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLBodyElement12.xml b/test/testcases/tests/level2/html/HTMLBodyElement12.xml deleted file mode 100644 index 6255dbb..0000000 --- a/test/testcases/tests/level2/html/HTMLBodyElement12.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - -HTMLBodyElement12 -Curt Arnold - -Checks that Node.isSupported("cOrE", "2.0") returns true. - -2002-03-18 - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLBodyElement12.xml.kfail b/test/testcases/tests/level2/html/HTMLBodyElement12.xml.kfail new file mode 100644 index 0000000..6255dbb --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLBodyElement12.xml.kfail @@ -0,0 +1,38 @@ + + + + + + + +HTMLBodyElement12 +Curt Arnold + +Checks that Node.isSupported("cOrE", "2.0") returns true. + +2002-03-18 + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLDocument22.xml b/test/testcases/tests/level2/html/HTMLDocument22.xml deleted file mode 100644 index 414f065..0000000 --- a/test/testcases/tests/level2/html/HTMLDocument22.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - -HTMLDocument22 -Curt Arnold - -Checks that Node.isSupported("hTmL", null) returns true. - -2002-03-18 - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLDocument22.xml.kfail b/test/testcases/tests/level2/html/HTMLDocument22.xml.kfail new file mode 100644 index 0000000..414f065 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLDocument22.xml.kfail @@ -0,0 +1,36 @@ + + + + + + + +HTMLDocument22 +Curt Arnold + +Checks that Node.isSupported("hTmL", null) returns true. + +2002-03-18 + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLDocument23.xml b/test/testcases/tests/level2/html/HTMLDocument23.xml deleted file mode 100644 index 7896dbd..0000000 --- a/test/testcases/tests/level2/html/HTMLDocument23.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - -HTMLDocument23 -Curt Arnold - -Checks that Node.isSupported("hTmL", "2.0") returns true. - -2002-03-18 - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLDocument23.xml.kfail b/test/testcases/tests/level2/html/HTMLDocument23.xml.kfail new file mode 100644 index 0000000..7896dbd --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLDocument23.xml.kfail @@ -0,0 +1,36 @@ + + + + + + + +HTMLDocument23 +Curt Arnold + +Checks that Node.isSupported("hTmL", "2.0") returns true. + +2002-03-18 + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLDocument24.xml b/test/testcases/tests/level2/html/HTMLDocument24.xml deleted file mode 100644 index 186062d..0000000 --- a/test/testcases/tests/level2/html/HTMLDocument24.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - -HTMLDocument24 -Curt Arnold - -Checks that Node.isSupported("xhTmL", null) returns true if hasFeature("XML", null) is true. - -2002-03-18 - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLDocument24.xml.kfail b/test/testcases/tests/level2/html/HTMLDocument24.xml.kfail new file mode 100644 index 0000000..186062d --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLDocument24.xml.kfail @@ -0,0 +1,38 @@ + + + + + + + +HTMLDocument24 +Curt Arnold + +Checks that Node.isSupported("xhTmL", null) returns true if hasFeature("XML", null) is true. + +2002-03-18 + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLDocument25.xml b/test/testcases/tests/level2/html/HTMLDocument25.xml deleted file mode 100644 index 42a1996..0000000 --- a/test/testcases/tests/level2/html/HTMLDocument25.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - -HTMLDocument25 -Curt Arnold - -Checks that Node.isSupported("xhTmL", "2.0") returns true if hasFeature("XML", "2.0") is true. - -2002-03-18 - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLDocument25.xml.kfail b/test/testcases/tests/level2/html/HTMLDocument25.xml.kfail new file mode 100644 index 0000000..42a1996 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLDocument25.xml.kfail @@ -0,0 +1,38 @@ + + + + + + + +HTMLDocument25 +Curt Arnold + +Checks that Node.isSupported("xhTmL", "2.0") returns true if hasFeature("XML", "2.0") is true. + +2002-03-18 + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLDocument26.xml b/test/testcases/tests/level2/html/HTMLDocument26.xml deleted file mode 100644 index 032cead..0000000 --- a/test/testcases/tests/level2/html/HTMLDocument26.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - -HTMLDocument26 -Curt Arnold - -Checks that Node.isSupported("cOrE", null) returns true. - -2002-03-18 - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLDocument26.xml.kfail b/test/testcases/tests/level2/html/HTMLDocument26.xml.kfail new file mode 100644 index 0000000..032cead --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLDocument26.xml.kfail @@ -0,0 +1,36 @@ + + + + + + + +HTMLDocument26 +Curt Arnold + +Checks that Node.isSupported("cOrE", null) returns true. + +2002-03-18 + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLDocument27.xml b/test/testcases/tests/level2/html/HTMLDocument27.xml deleted file mode 100644 index fa2b184..0000000 --- a/test/testcases/tests/level2/html/HTMLDocument27.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - -HTMLDocument27 -Curt Arnold - -Checks that Node.isSupported("cOrE", "2.0") returns true. - -2002-03-18 - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLDocument27.xml.kfail b/test/testcases/tests/level2/html/HTMLDocument27.xml.kfail new file mode 100644 index 0000000..fa2b184 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLDocument27.xml.kfail @@ -0,0 +1,36 @@ + + + + + + + +HTMLDocument27 +Curt Arnold + +Checks that Node.isSupported("cOrE", "2.0") returns true. + +2002-03-18 + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLFrameElement09.xml b/test/testcases/tests/level2/html/HTMLFrameElement09.xml deleted file mode 100644 index d6fc5cc..0000000 --- a/test/testcases/tests/level2/html/HTMLFrameElement09.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -HTMLFrameElement09 -NIST - - The contentDocument attribute specifies the document this frame contains, - if there is any and it is available, or null otherwise. - - Retrieve the contentDocument attribute of the first FRAME element - and examine its TITLE value. - -Rick Rivello -2002-07-03 - - - - - - - - - - -<assertEquals actual="vtitle" expected='"NIST DOM HTML Test - FRAMESET"' id="titleLink" ignoreCase="false" /> -</test> diff --git a/test/testcases/tests/level2/html/HTMLFrameElement09.xml.kfail b/test/testcases/tests/level2/html/HTMLFrameElement09.xml.kfail new file mode 100644 index 0000000..d6fc5cc --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLFrameElement09.xml.kfail @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + +Copyright (c) 2001-2004 World Wide Web Consortium, +(Massachusetts Institute of Technology, Institut National de +Recherche en Informatique et en Automatique, Keio University). All +Rights Reserved. This program is distributed under the W3C's Software +Intellectual Property License. This program is distributed in the +hope that it will be useful, but WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. + +See W3C License http://www.w3.org/Consortium/Legal/ for more details. + +--> +<!DOCTYPE test SYSTEM "dom2.dtd"> +<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-2" name="HTMLFrameElement09"> +<metadata> +<title>HTMLFrameElement09 +NIST + + The contentDocument attribute specifies the document this frame contains, + if there is any and it is available, or null otherwise. + + Retrieve the contentDocument attribute of the first FRAME element + and examine its TITLE value. + +Rick Rivello +2002-07-03 + + + + + + + + + + +<assertEquals actual="vtitle" expected='"NIST DOM HTML Test - FRAMESET"' id="titleLink" ignoreCase="false" /> +</test> diff --git a/test/testcases/tests/level2/html/HTMLIFrameElement11.xml b/test/testcases/tests/level2/html/HTMLIFrameElement11.xml deleted file mode 100644 index c77d2f4..0000000 --- a/test/testcases/tests/level2/html/HTMLIFrameElement11.xml +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - -Copyright (c) 2001-2004 World Wide Web Consortium, -(Massachusetts Institute of Technology, Institut National de -Recherche en Informatique et en Automatique, Keio University). All -Rights Reserved. This program is distributed under the W3C's Software -Intellectual Property License. This program is distributed in the -hope that it will be useful, but WITHOUT ANY WARRANTY; without even -the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. - -See W3C License http://www.w3.org/Consortium/Legal/ for more details. - ---> -<!DOCTYPE test SYSTEM "dom2.dtd"> -<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-2" name="HTMLIFrameElement11"> -<metadata> -<title>HTMLIFrameElement11 -NIST - - Retrieve the contentDocument attribute of the second IFRAME element - and examine its title. - -Rick Rivello -2002-07-03 - - - - - - - - - - -<assertEquals actual="vtitle" expected='"NIST DOM HTML Test - FRAME"' id="titleLink" ignoreCase="false" /> -</test> diff --git a/test/testcases/tests/level2/html/HTMLIFrameElement11.xml.kfail b/test/testcases/tests/level2/html/HTMLIFrameElement11.xml.kfail new file mode 100644 index 0000000..c77d2f4 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLIFrameElement11.xml.kfail @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + +Copyright (c) 2001-2004 World Wide Web Consortium, +(Massachusetts Institute of Technology, Institut National de +Recherche en Informatique et en Automatique, Keio University). All +Rights Reserved. This program is distributed under the W3C's Software +Intellectual Property License. This program is distributed in the +hope that it will be useful, but WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. + +See W3C License http://www.w3.org/Consortium/Legal/ for more details. + +--> +<!DOCTYPE test SYSTEM "dom2.dtd"> +<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-2" name="HTMLIFrameElement11"> +<metadata> +<title>HTMLIFrameElement11 +NIST + + Retrieve the contentDocument attribute of the second IFRAME element + and examine its title. + +Rick Rivello +2002-07-03 + + + + + + + + + + +<assertEquals actual="vtitle" expected='"NIST DOM HTML Test - FRAME"' id="titleLink" ignoreCase="false" /> +</test> diff --git a/test/testcases/tests/level2/html/HTMLImageElement05.xml b/test/testcases/tests/level2/html/HTMLImageElement05.xml deleted file mode 100644 index 92e536b..0000000 --- a/test/testcases/tests/level2/html/HTMLImageElement05.xml +++ /dev/null @@ -1,41 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - -Copyright (c) 2001 World Wide Web Consortium, -(Massachusetts Institute of Technology, Institut National de -Recherche en Informatique et en Automatique, Keio University). All -Rights Reserved. This program is distributed under the W3C's Software -Intellectual Property License. This program is distributed in the -hope that it will be useful, but WITHOUT ANY WARRANTY; without even -the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. - -See W3C License http://www.w3.org/Consortium/Legal/ for more details. - ---> -<!DOCTYPE test SYSTEM "dom2.dtd"> -<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-2" name="HTMLImageElement05"> -<metadata> -<title>HTMLImageElement05 -NIST - - The height attribute overrides the natural "height" of the image. - - Retrieve the height attribute and examine it's value. - -Mary Brady -2001-12-26 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLImageElement05.xml.kfail b/test/testcases/tests/level2/html/HTMLImageElement05.xml.kfail new file mode 100644 index 0000000..92e536b --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLImageElement05.xml.kfail @@ -0,0 +1,41 @@ + + + + + + +HTMLImageElement05 +NIST + + The height attribute overrides the natural "height" of the image. + + Retrieve the height attribute and examine it's value. + +Mary Brady +2001-12-26 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLImageElement06.xml b/test/testcases/tests/level2/html/HTMLImageElement06.xml deleted file mode 100644 index 19fb7b0..0000000 --- a/test/testcases/tests/level2/html/HTMLImageElement06.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -HTMLImageElement06 -NIST - - The hspace attribute specifies the horizontal space to the left and - right of this image. - - Retrieve the hspace attribute and examine it's value. - -Mary Brady -2001-12-26 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLImageElement06.xml.kfail b/test/testcases/tests/level2/html/HTMLImageElement06.xml.kfail new file mode 100644 index 0000000..19fb7b0 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLImageElement06.xml.kfail @@ -0,0 +1,42 @@ + + + + + + +HTMLImageElement06 +NIST + + The hspace attribute specifies the horizontal space to the left and + right of this image. + + Retrieve the hspace attribute and examine it's value. + +Mary Brady +2001-12-26 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLImageElement11.xml b/test/testcases/tests/level2/html/HTMLImageElement11.xml deleted file mode 100644 index 10f3608..0000000 --- a/test/testcases/tests/level2/html/HTMLImageElement11.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -HTMLImageElement11 -NIST - - The vspace attribute specifies the vertical space above and below this - image. - - Retrieve the vspace attribute and examine it's value. - -Mary Brady -2001-12-26 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLImageElement11.xml.kfail b/test/testcases/tests/level2/html/HTMLImageElement11.xml.kfail new file mode 100644 index 0000000..10f3608 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLImageElement11.xml.kfail @@ -0,0 +1,42 @@ + + + + + + +HTMLImageElement11 +NIST + + The vspace attribute specifies the vertical space above and below this + image. + + Retrieve the vspace attribute and examine it's value. + +Mary Brady +2001-12-26 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLImageElement12.xml b/test/testcases/tests/level2/html/HTMLImageElement12.xml deleted file mode 100644 index 738f1c3..0000000 --- a/test/testcases/tests/level2/html/HTMLImageElement12.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - -HTMLImageElement12 -NIST - - The width attribute overrides the natural "width" of the image. - - Retrieve the width attribute and examine it's value. - -Mary Brady -2001-12-07 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLImageElement12.xml.kfail b/test/testcases/tests/level2/html/HTMLImageElement12.xml.kfail new file mode 100644 index 0000000..738f1c3 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLImageElement12.xml.kfail @@ -0,0 +1,41 @@ + + + + + + +HTMLImageElement12 +NIST + + The width attribute overrides the natural "width" of the image. + + Retrieve the width attribute and examine it's value. + +Mary Brady +2001-12-07 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLInputElement13.xml b/test/testcases/tests/level2/html/HTMLInputElement13.xml deleted file mode 100644 index e243035..0000000 --- a/test/testcases/tests/level2/html/HTMLInputElement13.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - -HTMLInputElement13 -NIST - - The size attribute contains the size information. Its precise meaning - is specific to each type of field. - - Retrieve the size attribute of the 1st INPUT element and examine - its value. - -Mary Brady -2001-12-26 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLInputElement13.xml.kfail b/test/testcases/tests/level2/html/HTMLInputElement13.xml.kfail new file mode 100644 index 0000000..e243035 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLInputElement13.xml.kfail @@ -0,0 +1,43 @@ + + + + + + +HTMLInputElement13 +NIST + + The size attribute contains the size information. Its precise meaning + is specific to each type of field. + + Retrieve the size attribute of the 1st INPUT element and examine + its value. + +Mary Brady +2001-12-26 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLObjectElement11.xml b/test/testcases/tests/level2/html/HTMLObjectElement11.xml deleted file mode 100644 index b4f172b..0000000 --- a/test/testcases/tests/level2/html/HTMLObjectElement11.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - -HTMLObjectElement11 -NIST - - The hspace attribute specifies the horizontal space to the left and right - of this image, applet or object. - - Retrieve the hspace attribute of the first OBJECT element and examine - it's value. - -Mary Brady -2002-01-02 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLObjectElement11.xml.kfail b/test/testcases/tests/level2/html/HTMLObjectElement11.xml.kfail new file mode 100644 index 0000000..b4f172b --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLObjectElement11.xml.kfail @@ -0,0 +1,43 @@ + + + + + + +HTMLObjectElement11 +NIST + + The hspace attribute specifies the horizontal space to the left and right + of this image, applet or object. + + Retrieve the hspace attribute of the first OBJECT element and examine + it's value. + +Mary Brady +2002-01-02 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLObjectElement16.xml b/test/testcases/tests/level2/html/HTMLObjectElement16.xml deleted file mode 100644 index e849620..0000000 --- a/test/testcases/tests/level2/html/HTMLObjectElement16.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - -HTMLObjectElement16 -NIST - - The vspace attribute specifies the vertical space above or below this - image, applet or object. - - Retrieve the vspace attribute of the first OBJECT element and examine - it's value. - -Mary Brady -2002-01-02 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLObjectElement16.xml.kfail b/test/testcases/tests/level2/html/HTMLObjectElement16.xml.kfail new file mode 100644 index 0000000..e849620 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLObjectElement16.xml.kfail @@ -0,0 +1,43 @@ + + + + + + +HTMLObjectElement16 +NIST + + The vspace attribute specifies the vertical space above or below this + image, applet or object. + + Retrieve the vspace attribute of the first OBJECT element and examine + it's value. + +Mary Brady +2002-01-02 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLObjectElement20.xml b/test/testcases/tests/level2/html/HTMLObjectElement20.xml deleted file mode 100644 index 5694760..0000000 --- a/test/testcases/tests/level2/html/HTMLObjectElement20.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -HTMLObjectElement20 -NIST - - The contentDocument attribute specifies the document this object contains, - if there is any and it is available, or null otherwise. - -Rick Rivello -2002-07-03 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLObjectElement20.xml.kfail b/test/testcases/tests/level2/html/HTMLObjectElement20.xml.kfail new file mode 100644 index 0000000..5694760 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLObjectElement20.xml.kfail @@ -0,0 +1,40 @@ + + + + + + +HTMLObjectElement20 +NIST + + The contentDocument attribute specifies the document this object contains, + if there is any and it is available, or null otherwise. + +Rick Rivello +2002-07-03 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection01.xml b/test/testcases/tests/level2/html/HTMLOptionsCollection01.xml deleted file mode 100644 index 80df1a3..0000000 --- a/test/testcases/tests/level2/html/HTMLOptionsCollection01.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - -HTMLOptionsCollection01 -NIST - - An HTMLOptionsCollection is a list of nodes representing HTML option - element. - The length attribute specifies the length or size of the list. - - Retrieve the first SELECT element and create a HTMLOptionsCollection - of the OPTION elements. Check the size of the length of OPTION elements. - -Rick Rivello -2002-08-01 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection01.xml.kfail b/test/testcases/tests/level2/html/HTMLOptionsCollection01.xml.kfail new file mode 100644 index 0000000..80df1a3 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLOptionsCollection01.xml.kfail @@ -0,0 +1,46 @@ + + + + + + +HTMLOptionsCollection01 +NIST + + An HTMLOptionsCollection is a list of nodes representing HTML option + element. + The length attribute specifies the length or size of the list. + + Retrieve the first SELECT element and create a HTMLOptionsCollection + of the OPTION elements. Check the size of the length of OPTION elements. + +Rick Rivello +2002-08-01 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection02.xml b/test/testcases/tests/level2/html/HTMLOptionsCollection02.xml deleted file mode 100644 index 44b5431..0000000 --- a/test/testcases/tests/level2/html/HTMLOptionsCollection02.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - -HTMLOptionsCollection02 -NIST - - An HTMLOptionsCollection is a list of nodes representing HTML option - element. - An individual node may be accessed by either ordinal index, the node's - name or id attributes. (Test ordinal index=3). - The item() method retrieves a node specified by ordinal index. - Nodes are numbered in tree order. The index origin is 0. - - Retrieve the first SELECT element. Create a HTMLOptionsCollection. - Retrieve the fourth item in the list and examine its firstChild's - nodeValue. - -Rick Rivello -2002-08-01 - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection02.xml.kfail b/test/testcases/tests/level2/html/HTMLOptionsCollection02.xml.kfail new file mode 100644 index 0000000..44b5431 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLOptionsCollection02.xml.kfail @@ -0,0 +1,54 @@ + + + + + + +HTMLOptionsCollection02 +NIST + + An HTMLOptionsCollection is a list of nodes representing HTML option + element. + An individual node may be accessed by either ordinal index, the node's + name or id attributes. (Test ordinal index=3). + The item() method retrieves a node specified by ordinal index. + Nodes are numbered in tree order. The index origin is 0. + + Retrieve the first SELECT element. Create a HTMLOptionsCollection. + Retrieve the fourth item in the list and examine its firstChild's + nodeValue. + +Rick Rivello +2002-08-01 + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection03.xml b/test/testcases/tests/level2/html/HTMLOptionsCollection03.xml deleted file mode 100644 index 280b2bf..0000000 --- a/test/testcases/tests/level2/html/HTMLOptionsCollection03.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - -HTMLOptionsCollection03 -NIST - - An HTMLOptionsCollection is a list of nodes representing HTML option - element. - An individual node may be accessed by either ordinal index, the node's - name or id attributes. (Test node name). - The namedItem method retrieves a Node using a name. It first searches - for a node with a matching id attribute. If it doesn't find one, it - then searches for a Node with a matching name attribute, but only - those elements that are allowed a name attribute. - - Retrieve the first FORM element. Create a HTMLCollection of the elements. - Search for an element that has select1 as the value for the name attribute. - Get the nodeName of that element. - -Rick Rivello -2002-08-01 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection03.xml.kfail b/test/testcases/tests/level2/html/HTMLOptionsCollection03.xml.kfail new file mode 100644 index 0000000..280b2bf --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLOptionsCollection03.xml.kfail @@ -0,0 +1,54 @@ + + + + + + +HTMLOptionsCollection03 +NIST + + An HTMLOptionsCollection is a list of nodes representing HTML option + element. + An individual node may be accessed by either ordinal index, the node's + name or id attributes. (Test node name). + The namedItem method retrieves a Node using a name. It first searches + for a node with a matching id attribute. If it doesn't find one, it + then searches for a Node with a matching name attribute, but only + those elements that are allowed a name attribute. + + Retrieve the first FORM element. Create a HTMLCollection of the elements. + Search for an element that has select1 as the value for the name attribute. + Get the nodeName of that element. + +Rick Rivello +2002-08-01 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection04.xml b/test/testcases/tests/level2/html/HTMLOptionsCollection04.xml deleted file mode 100644 index 83e59d3..0000000 --- a/test/testcases/tests/level2/html/HTMLOptionsCollection04.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - -HTMLOptionsCollection04 -NIST - - An HTMLOptionsCollection is a list of nodes representing HTML option - element. - An individual node may be accessed by either ordinal index, the node's - name or id attributes. (Test node name). - The namedItem method retrieves a Node using a name. It first searches - for a node with a matching id attribute. If it doesn't find one, it - then searches for a Node with a matching name attribute, but only - those elements that are allowed a name attribute. - - Retrieve the first FORM element. Create a HTMLCollection of the elements. - Search for an element that has selectId as the value for the id attribute. - Get the nodeName of that element. - -Rick Rivello -2002-08-01 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection04.xml.kfail b/test/testcases/tests/level2/html/HTMLOptionsCollection04.xml.kfail new file mode 100644 index 0000000..83e59d3 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLOptionsCollection04.xml.kfail @@ -0,0 +1,54 @@ + + + + + + +HTMLOptionsCollection04 +NIST + + An HTMLOptionsCollection is a list of nodes representing HTML option + element. + An individual node may be accessed by either ordinal index, the node's + name or id attributes. (Test node name). + The namedItem method retrieves a Node using a name. It first searches + for a node with a matching id attribute. If it doesn't find one, it + then searches for a Node with a matching name attribute, but only + those elements that are allowed a name attribute. + + Retrieve the first FORM element. Create a HTMLCollection of the elements. + Search for an element that has selectId as the value for the id attribute. + Get the nodeName of that element. + +Rick Rivello +2002-08-01 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection05.xml b/test/testcases/tests/level2/html/HTMLOptionsCollection05.xml deleted file mode 100644 index d2f44d7..0000000 --- a/test/testcases/tests/level2/html/HTMLOptionsCollection05.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - -HTMLOptionsCollection05 -NIST - - An HTMLOptionsCollection is a list of nodes representing HTML option - element. - An individual node may be accessed by either ordinal index, the node's - name or id attributes. (Test node name). - The namedItem method retrieves a Node using a name. It first searches - for a node with a matching id attribute. If it doesn't find one, it - then searches for a Node with a matching name attribute, but only - those elements that are allowed a name attribute. Upon failure(e.q., no - node with this name exists), returns null. - - Retrieve the first FORM element. Create a HTMLCollection of the elements. - Search for an element that has select9 as the value for the name attribute. - Null should be returned since there is not any name or id attribute with - select9 as a value. - -Rick Rivello -2002-08-01 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection05.xml.kfail b/test/testcases/tests/level2/html/HTMLOptionsCollection05.xml.kfail new file mode 100644 index 0000000..d2f44d7 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLOptionsCollection05.xml.kfail @@ -0,0 +1,55 @@ + + + + + + +HTMLOptionsCollection05 +NIST + + An HTMLOptionsCollection is a list of nodes representing HTML option + element. + An individual node may be accessed by either ordinal index, the node's + name or id attributes. (Test node name). + The namedItem method retrieves a Node using a name. It first searches + for a node with a matching id attribute. If it doesn't find one, it + then searches for a Node with a matching name attribute, but only + those elements that are allowed a name attribute. Upon failure(e.q., no + node with this name exists), returns null. + + Retrieve the first FORM element. Create a HTMLCollection of the elements. + Search for an element that has select9 as the value for the name attribute. + Null should be returned since there is not any name or id attribute with + select9 as a value. + +Rick Rivello +2002-08-01 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection06.xml b/test/testcases/tests/level2/html/HTMLOptionsCollection06.xml deleted file mode 100644 index fbde429..0000000 --- a/test/testcases/tests/level2/html/HTMLOptionsCollection06.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -HTMLOptionsCollection06 -NIST - - An HTMLOptionsCollection is a list of nodes representing HTML option - element. - An individual node may be accessed by either ordinal index, the node's - name or id attributes. (Test ordinal index). - The item() method retrieves a node specified by ordinal index. - A value of null is returned if the index is out of range. - - Retrieve the first SELECT element. Create a HTMLOptionsCollection. - Retrieve the tenth item in the list - null should be returned since - there are not 10 items in the list. - -Rick Rivello -2002-08-01 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection06.xml.kfail b/test/testcases/tests/level2/html/HTMLOptionsCollection06.xml.kfail new file mode 100644 index 0000000..fbde429 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLOptionsCollection06.xml.kfail @@ -0,0 +1,52 @@ + + + + + + +HTMLOptionsCollection06 +NIST + + An HTMLOptionsCollection is a list of nodes representing HTML option + element. + An individual node may be accessed by either ordinal index, the node's + name or id attributes. (Test ordinal index). + The item() method retrieves a node specified by ordinal index. + A value of null is returned if the index is out of range. + + Retrieve the first SELECT element. Create a HTMLOptionsCollection. + Retrieve the tenth item in the list - null should be returned since + there are not 10 items in the list. + +Rick Rivello +2002-08-01 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection07.xml b/test/testcases/tests/level2/html/HTMLOptionsCollection07.xml deleted file mode 100644 index a2731e5..0000000 --- a/test/testcases/tests/level2/html/HTMLOptionsCollection07.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - -HTMLOptionsCollection07 -NIST - - An HTMLOptionsCollection is a list of nodes representing HTML option - element. - An individual node may be accessed by either ordinal index, the node's - name or id attributes. (Test ordinal index=0). - The item() method retrieves a node specified by ordinal index. Nodes - are numbered in tree order. The index origin is 0. - - Retrieve the first SELECT element. Create a HTMLOptionsCollection. - Retrieve the first item in the list and examine its firstChild's - nodeValue. - -Rick Rivello -2002-08-01 - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection07.xml.kfail b/test/testcases/tests/level2/html/HTMLOptionsCollection07.xml.kfail new file mode 100644 index 0000000..a2731e5 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLOptionsCollection07.xml.kfail @@ -0,0 +1,54 @@ + + + + + + +HTMLOptionsCollection07 +NIST + + An HTMLOptionsCollection is a list of nodes representing HTML option + element. + An individual node may be accessed by either ordinal index, the node's + name or id attributes. (Test ordinal index=0). + The item() method retrieves a node specified by ordinal index. Nodes + are numbered in tree order. The index origin is 0. + + Retrieve the first SELECT element. Create a HTMLOptionsCollection. + Retrieve the first item in the list and examine its firstChild's + nodeValue. + +Rick Rivello +2002-08-01 + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLSelectElement20.xml b/test/testcases/tests/level2/html/HTMLSelectElement20.xml deleted file mode 100644 index ddbe2f7..0000000 --- a/test/testcases/tests/level2/html/HTMLSelectElement20.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - -HTMLSelectElement20 -Curt Arnold - -Attempting to add an new option using HTMLSelectElement.add before a node that is not a child of the select -element should raise a NOT_FOUND_ERR. - -2004-03-18 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLSelectElement20.xml.kfail b/test/testcases/tests/level2/html/HTMLSelectElement20.xml.kfail new file mode 100644 index 0000000..ddbe2f7 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLSelectElement20.xml.kfail @@ -0,0 +1,56 @@ + + + + + + + +HTMLSelectElement20 +Curt Arnold + +Attempting to add an new option using HTMLSelectElement.add before a node that is not a child of the select +element should raise a NOT_FOUND_ERR. + +2004-03-18 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableElement34.xml b/test/testcases/tests/level2/html/HTMLTableElement34.xml deleted file mode 100644 index d774498..0000000 --- a/test/testcases/tests/level2/html/HTMLTableElement34.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableElement34 -NIST - - The insertRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is greater than the number of rows. - - Retrieve the second TABLE element which has four rows. Try - to insert a new row using an index of five. This should throw - a INDEX_SIZE_ERR DOMException since there are only four rows. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableElement34.xml.kfail b/test/testcases/tests/level2/html/HTMLTableElement34.xml.kfail new file mode 100644 index 0000000..d774498 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableElement34.xml.kfail @@ -0,0 +1,48 @@ + + + + + + +HTMLTableElement34 +NIST + + The insertRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is greater than the number of rows. + + Retrieve the second TABLE element which has four rows. Try + to insert a new row using an index of five. This should throw + a INDEX_SIZE_ERR DOMException since there are only four rows. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableElement35.xml b/test/testcases/tests/level2/html/HTMLTableElement35.xml deleted file mode 100644 index 6410e89..0000000 --- a/test/testcases/tests/level2/html/HTMLTableElement35.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableElement35 -NIST - - The insertRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is negative. - - Retrieve the second TABLE element which has four rows. Try - to insert a new row using an index of negative five. This should throw - a INDEX_SIZE_ERR DOMException since the index is negative. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableElement35.xml.kfail b/test/testcases/tests/level2/html/HTMLTableElement35.xml.kfail new file mode 100644 index 0000000..6410e89 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableElement35.xml.kfail @@ -0,0 +1,48 @@ + + + + + + +HTMLTableElement35 +NIST + + The insertRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is negative. + + Retrieve the second TABLE element which has four rows. Try + to insert a new row using an index of negative five. This should throw + a INDEX_SIZE_ERR DOMException since the index is negative. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableElement36.xml b/test/testcases/tests/level2/html/HTMLTableElement36.xml deleted file mode 100644 index 7a514e5..0000000 --- a/test/testcases/tests/level2/html/HTMLTableElement36.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - -HTMLTableElement36 -NIST - - The deleteRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is greater than the number of rows. - - Retrieve the second TABLE element which has four rows. Try - to delete a new row using an index of five. This should throw - a INDEX_SIZE_ERR DOMException since there are only four rows. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableElement36.xml.kfail b/test/testcases/tests/level2/html/HTMLTableElement36.xml.kfail new file mode 100644 index 0000000..7a514e5 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableElement36.xml.kfail @@ -0,0 +1,47 @@ + + + + + + +HTMLTableElement36 +NIST + + The deleteRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is greater than the number of rows. + + Retrieve the second TABLE element which has four rows. Try + to delete a new row using an index of five. This should throw + a INDEX_SIZE_ERR DOMException since there are only four rows. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableElement37.xml b/test/testcases/tests/level2/html/HTMLTableElement37.xml deleted file mode 100644 index 097deb1..0000000 --- a/test/testcases/tests/level2/html/HTMLTableElement37.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableElement37 -NIST - - The deleteRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is equal the number of rows. - - Retrieve the second TABLE element which has four rows. Try - to delete a new row using an index of four. This should throw - a INDEX_SIZE_ERR DOMException since the index is equal to the - number of rows. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableElement37.xml.kfail b/test/testcases/tests/level2/html/HTMLTableElement37.xml.kfail new file mode 100644 index 0000000..097deb1 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableElement37.xml.kfail @@ -0,0 +1,48 @@ + + + + + + +HTMLTableElement37 +NIST + + The deleteRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is equal the number of rows. + + Retrieve the second TABLE element which has four rows. Try + to delete a new row using an index of four. This should throw + a INDEX_SIZE_ERR DOMException since the index is equal to the + number of rows. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableElement38.xml b/test/testcases/tests/level2/html/HTMLTableElement38.xml deleted file mode 100644 index 0f5bccd..0000000 --- a/test/testcases/tests/level2/html/HTMLTableElement38.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - -HTMLTableElement38 -NIST - - The deleteRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is negative. - - Retrieve the second TABLE element which has four rows. Try - to delete a new row using an index of negative five. This should throw - a INDEX_SIZE_ERR DOMException since the index is negative. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableElement38.xml.kfail b/test/testcases/tests/level2/html/HTMLTableElement38.xml.kfail new file mode 100644 index 0000000..0f5bccd --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableElement38.xml.kfail @@ -0,0 +1,47 @@ + + + + + + +HTMLTableElement38 +NIST + + The deleteRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is negative. + + Retrieve the second TABLE element which has four rows. Try + to delete a new row using an index of negative five. This should throw + a INDEX_SIZE_ERR DOMException since the index is negative. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableElement39.xml b/test/testcases/tests/level2/html/HTMLTableElement39.xml deleted file mode 100644 index 6631584..0000000 --- a/test/testcases/tests/level2/html/HTMLTableElement39.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - -HTMLTableElement39 -NIST - - The insertRow() method inserts a new empty table row. - If index is -1 or equal to the number of rows, the new row - is appended. - - Retrieve the second TABLE element and invoke the insertRow() method - with an index of negative one. - The number of rows in the TBODY section before insertion with an index - of negative one is two. After the new row is inserted the number - of rows in the TBODY section is three. - -Rick Rivello -2002-11-07 - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableElement39.xml.kfail b/test/testcases/tests/level2/html/HTMLTableElement39.xml.kfail new file mode 100644 index 0000000..6631584 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableElement39.xml.kfail @@ -0,0 +1,62 @@ + + + + + + +HTMLTableElement39 +NIST + + The insertRow() method inserts a new empty table row. + If index is -1 or equal to the number of rows, the new row + is appended. + + Retrieve the second TABLE element and invoke the insertRow() method + with an index of negative one. + The number of rows in the TBODY section before insertion with an index + of negative one is two. After the new row is inserted the number + of rows in the TBODY section is three. + +Rick Rivello +2002-11-07 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableElement40.xml b/test/testcases/tests/level2/html/HTMLTableElement40.xml deleted file mode 100644 index 154b348..0000000 --- a/test/testcases/tests/level2/html/HTMLTableElement40.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - -HTMLTableElement40 -NIST - - The deleteRow() method deletes a table row. If the index is -1 - the last row of the table is deleted. - - Retrieve the second TABLE element and invoke the deleteRow() method - with an index of negative one. Currently there are four rows in the - table. The deleteRow() method is called and now there should be three. - -Rick Rivello -2002-11-02 - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableElement40.xml.kfail b/test/testcases/tests/level2/html/HTMLTableElement40.xml.kfail new file mode 100644 index 0000000..154b348 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableElement40.xml.kfail @@ -0,0 +1,50 @@ + + + + + + +HTMLTableElement40 +NIST + + The deleteRow() method deletes a table row. If the index is -1 + the last row of the table is deleted. + + Retrieve the second TABLE element and invoke the deleteRow() method + with an index of negative one. Currently there are four rows in the + table. The deleteRow() method is called and now there should be three. + +Rick Rivello +2002-11-02 + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement15.xml b/test/testcases/tests/level2/html/HTMLTableRowElement15.xml deleted file mode 100644 index 9e89674..0000000 --- a/test/testcases/tests/level2/html/HTMLTableRowElement15.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableRowElement15 -NIST - - The insertCell() method throws a INDEX_SIZE_ERR DOMException - if the specified index is greater than the number of cells. - - Retrieve the fourth TR element which has six cells. Try - to insert a cell using an index of seven. This should throw - a INDEX_SIZE_ERR DOMException since there are only six cells. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement15.xml.kfail b/test/testcases/tests/level2/html/HTMLTableRowElement15.xml.kfail new file mode 100644 index 0000000..9e89674 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableRowElement15.xml.kfail @@ -0,0 +1,48 @@ + + + + + + +HTMLTableRowElement15 +NIST + + The insertCell() method throws a INDEX_SIZE_ERR DOMException + if the specified index is greater than the number of cells. + + Retrieve the fourth TR element which has six cells. Try + to insert a cell using an index of seven. This should throw + a INDEX_SIZE_ERR DOMException since there are only six cells. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement16.xml b/test/testcases/tests/level2/html/HTMLTableRowElement16.xml deleted file mode 100644 index 8471a2b..0000000 --- a/test/testcases/tests/level2/html/HTMLTableRowElement16.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableRowElement16 -NIST - - The insertCell() method throws a INDEX_SIZE_ERR DOMException - if the specified index is negative. - - Retrieve the fourth TR element which has six cells. Try - to insert a cell using an index of negative seven. This should throw - a INDEX_SIZE_ERR DOMException since the index is negative. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement16.xml.kfail b/test/testcases/tests/level2/html/HTMLTableRowElement16.xml.kfail new file mode 100644 index 0000000..8471a2b --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableRowElement16.xml.kfail @@ -0,0 +1,48 @@ + + + + + + +HTMLTableRowElement16 +NIST + + The insertCell() method throws a INDEX_SIZE_ERR DOMException + if the specified index is negative. + + Retrieve the fourth TR element which has six cells. Try + to insert a cell using an index of negative seven. This should throw + a INDEX_SIZE_ERR DOMException since the index is negative. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement17.xml b/test/testcases/tests/level2/html/HTMLTableRowElement17.xml deleted file mode 100644 index b469470..0000000 --- a/test/testcases/tests/level2/html/HTMLTableRowElement17.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - -HTMLTableRowElement17 -NIST - - The deleteCell() method throws a INDEX_SIZE_ERR DOMException - if the specified index is greater than the number of cells. - - Retrieve the fourth TR element which has six cells. Try - to delete a cell using an index of seven. This should throw - a INDEX_SIZE_ERR DOMException since there are only six cells. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement17.xml.kfail b/test/testcases/tests/level2/html/HTMLTableRowElement17.xml.kfail new file mode 100644 index 0000000..b469470 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableRowElement17.xml.kfail @@ -0,0 +1,47 @@ + + + + + + +HTMLTableRowElement17 +NIST + + The deleteCell() method throws a INDEX_SIZE_ERR DOMException + if the specified index is greater than the number of cells. + + Retrieve the fourth TR element which has six cells. Try + to delete a cell using an index of seven. This should throw + a INDEX_SIZE_ERR DOMException since there are only six cells. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement18.xml b/test/testcases/tests/level2/html/HTMLTableRowElement18.xml deleted file mode 100644 index f296086..0000000 --- a/test/testcases/tests/level2/html/HTMLTableRowElement18.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - -HTMLTableRowElement18 -NIST - - The deleteCell() method throws a INDEX_SIZE_ERR DOMException - if the specified index is equal to the number of cells. - - Retrieve the fourth TR element which has six cells. Try - to delete a cell using an index of six. This should throw - a INDEX_SIZE_ERR DOMException since there are only six cells. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement18.xml.kfail b/test/testcases/tests/level2/html/HTMLTableRowElement18.xml.kfail new file mode 100644 index 0000000..f296086 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableRowElement18.xml.kfail @@ -0,0 +1,47 @@ + + + + + + +HTMLTableRowElement18 +NIST + + The deleteCell() method throws a INDEX_SIZE_ERR DOMException + if the specified index is equal to the number of cells. + + Retrieve the fourth TR element which has six cells. Try + to delete a cell using an index of six. This should throw + a INDEX_SIZE_ERR DOMException since there are only six cells. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement19.xml b/test/testcases/tests/level2/html/HTMLTableRowElement19.xml deleted file mode 100644 index 9a111f3..0000000 --- a/test/testcases/tests/level2/html/HTMLTableRowElement19.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - -HTMLTableRowElement19 -NIST - - The deleteCell() method throws a INDEX_SIZE_ERR DOMException - if the specified index is negative. - - Retrieve the fourth TR element which has six cells. Try - to delete a cell using an index of negative six. This should throw - a INDEX_SIZE_ERR DOMException since the index is negative. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement19.xml.kfail b/test/testcases/tests/level2/html/HTMLTableRowElement19.xml.kfail new file mode 100644 index 0000000..9a111f3 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableRowElement19.xml.kfail @@ -0,0 +1,47 @@ + + + + + + +HTMLTableRowElement19 +NIST + + The deleteCell() method throws a INDEX_SIZE_ERR DOMException + if the specified index is negative. + + Retrieve the fourth TR element which has six cells. Try + to delete a cell using an index of negative six. This should throw + a INDEX_SIZE_ERR DOMException since the index is negative. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement20.xml b/test/testcases/tests/level2/html/HTMLTableRowElement20.xml deleted file mode 100644 index a879e13..0000000 --- a/test/testcases/tests/level2/html/HTMLTableRowElement20.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - -HTMLTableRowElement20 -NIST - - The insertCell() method inserts an empty TD cell into this row. - If index is -1 or equal to the number of cells, the new cell is - appended. - - - Retrieve the fourth TR element and examine the value of - the cells length attribute which should be set to six. - Check the value of the last TD element. Invoke the - insertCell() with an index of negative one - which will append the empty cell to the end of the list. - Check the value of the newly created cell and make sure it is null - and also the numbers of cells should now be seven. - -Rick Rivello -2002-11-07 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement20.xml.kfail b/test/testcases/tests/level2/html/HTMLTableRowElement20.xml.kfail new file mode 100644 index 0000000..a879e13 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableRowElement20.xml.kfail @@ -0,0 +1,68 @@ + + + + + + +HTMLTableRowElement20 +NIST + + The insertCell() method inserts an empty TD cell into this row. + If index is -1 or equal to the number of cells, the new cell is + appended. + + + Retrieve the fourth TR element and examine the value of + the cells length attribute which should be set to six. + Check the value of the last TD element. Invoke the + insertCell() with an index of negative one + which will append the empty cell to the end of the list. + Check the value of the newly created cell and make sure it is null + and also the numbers of cells should now be seven. + +Rick Rivello +2002-11-07 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement21.xml b/test/testcases/tests/level2/html/HTMLTableRowElement21.xml deleted file mode 100644 index 9d5a598..0000000 --- a/test/testcases/tests/level2/html/HTMLTableRowElement21.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -HTMLTableRowElement21 -NIST - - The deleteCell() method deletes a cell from the currtent row. If - the index is -1 the last cell in the row is deleted. - - - Retrieve the fourth TR element and examine the value of - the cells length attribute which should be set to six. - Check the value of the last TD element. Invoke the - deleteCell() with an index of negative one - which will delete the last cell in the row. - Check the value of the of the last cell - and also the numbers of cells should now be five. - -Rick Rivello -2002-11-07 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement21.xml.kfail b/test/testcases/tests/level2/html/HTMLTableRowElement21.xml.kfail new file mode 100644 index 0000000..9d5a598 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableRowElement21.xml.kfail @@ -0,0 +1,67 @@ + + + + + + +HTMLTableRowElement21 +NIST + + The deleteCell() method deletes a cell from the currtent row. If + the index is -1 the last cell in the row is deleted. + + + Retrieve the fourth TR element and examine the value of + the cells length attribute which should be set to six. + Check the value of the last TD element. Invoke the + deleteCell() with an index of negative one + which will delete the last cell in the row. + Check the value of the of the last cell + and also the numbers of cells should now be five. + +Rick Rivello +2002-11-07 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml deleted file mode 100644 index 8fbd1c2..0000000 --- a/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableSectionElement25 -NIST - - The insertRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is greater than the number of rows. - - Retrieve the first THEAD element which has one row. Try - to insert a new row using an index of two. This should throw - a INDEX_SIZE_ERR DOMException since there is only one row. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml.kfail new file mode 100644 index 0000000..8fbd1c2 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml.kfail @@ -0,0 +1,48 @@ + + + + + + +HTMLTableSectionElement25 +NIST + + The insertRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is greater than the number of rows. + + Retrieve the first THEAD element which has one row. Try + to insert a new row using an index of two. This should throw + a INDEX_SIZE_ERR DOMException since there is only one row. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml deleted file mode 100644 index 206d91f..0000000 --- a/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableSectionElement26 -NIST - - The insertRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is negative. - - Retrieve the first THEAD element which has one row. Try - to insert a new row using an index of negative two. This should throw - a INDEX_SIZE_ERR DOMException since the index is negative. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml.kfail new file mode 100644 index 0000000..206d91f --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml.kfail @@ -0,0 +1,48 @@ + + + + + + +HTMLTableSectionElement26 +NIST + + The insertRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is negative. + + Retrieve the first THEAD element which has one row. Try + to insert a new row using an index of negative two. This should throw + a INDEX_SIZE_ERR DOMException since the index is negative. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml deleted file mode 100644 index 3ab35a5..0000000 --- a/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableSectionElement27 -NIST - - The deleteRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is greater than the number of rows. - - Retrieve the first THEAD element which has one row. Try - to delete a row using an index of two. This should throw - a INDEX_SIZE_ERR DOMException since the index is greater than the - number of rows. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml.kfail new file mode 100644 index 0000000..3ab35a5 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml.kfail @@ -0,0 +1,48 @@ + + + + + + +HTMLTableSectionElement27 +NIST + + The deleteRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is greater than the number of rows. + + Retrieve the first THEAD element which has one row. Try + to delete a row using an index of two. This should throw + a INDEX_SIZE_ERR DOMException since the index is greater than the + number of rows. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml deleted file mode 100644 index 5578ba5..0000000 --- a/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableSectionElement28 -NIST - - The deleteRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is equal to the number of rows. - - Retrieve the first THEAD element which has one row. Try - to delete a row using an index of 1. This should throw - a INDEX_SIZE_ERR DOMException since the index is equal to the - number of rows. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml.kfail new file mode 100644 index 0000000..5578ba5 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml.kfail @@ -0,0 +1,48 @@ + + + + + + +HTMLTableSectionElement28 +NIST + + The deleteRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is equal to the number of rows. + + Retrieve the first THEAD element which has one row. Try + to delete a row using an index of 1. This should throw + a INDEX_SIZE_ERR DOMException since the index is equal to the + number of rows. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml deleted file mode 100644 index 0ddd852..0000000 --- a/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - -HTMLTableSectionElement29 -NIST - - The deleteRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is negative. - - Retrieve the first THEAD element which has one row. Try - to delete a row using an index of negative two. This should throw - a INDEX_SIZE_ERR DOMException since the index is negative. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml.kfail new file mode 100644 index 0000000..0ddd852 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml.kfail @@ -0,0 +1,47 @@ + + + + + + +HTMLTableSectionElement29 +NIST + + The deleteRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is negative. + + Retrieve the first THEAD element which has one row. Try + to delete a row using an index of negative two. This should throw + a INDEX_SIZE_ERR DOMException since the index is negative. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml deleted file mode 100644 index 8fd17c2..0000000 --- a/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - -HTMLTableSectionElement30 -NIST - - The insertRow() method inserts a new empty table row. The new - row is inserted immediately before the current indexth row in this - section. If index is -1 or equal to the number of rows in this section, - the new row is appended. - - Retrieve the first THEAD element and invoke the insertRow() method - with an index of negative one. Since the index is negative one the - new row is appended. - After the new row is appended the number of rows in the THEAD - section is two. - -Rick Rivello -2002-11-07 - - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail new file mode 100644 index 0000000..8fd17c2 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail @@ -0,0 +1,55 @@ + + + + + + +HTMLTableSectionElement30 +NIST + + The insertRow() method inserts a new empty table row. The new + row is inserted immediately before the current indexth row in this + section. If index is -1 or equal to the number of rows in this section, + the new row is appended. + + Retrieve the first THEAD element and invoke the insertRow() method + with an index of negative one. Since the index is negative one the + new row is appended. + After the new row is appended the number of rows in the THEAD + section is two. + +Rick Rivello +2002-11-07 + + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml deleted file mode 100644 index 55464e2..0000000 --- a/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - -HTMLTableSectionElement31 -NIST - - The deleteRow() method deletes a row from this section. The index - starts from 0 and is relative only to the rows contained inside - this section, not all the rows in the table. If the index is -1 - the last row will be deleted. - - Retrieve the second TBODY element and invoke the deleteRow() method - with an index of -1. The nuber of rows in the THEAD section before - the deletion of the row is two. After the row is deleted the number - of rows in the TBODY section is one. - -Rick Rivello -2002-11-07 - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail new file mode 100644 index 0000000..55464e2 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail @@ -0,0 +1,53 @@ + + + + + + +HTMLTableSectionElement31 +NIST + + The deleteRow() method deletes a row from this section. The index + starts from 0 and is relative only to the rows contained inside + this section, not all the rows in the table. If the index is -1 + the last row will be deleted. + + Retrieve the second TBODY element and invoke the deleteRow() method + with an index of -1. The nuber of rows in the THEAD section before + the deletion of the row is two. After the row is deleted the number + of rows in the TBODY section is one. + +Rick Rivello +2002-11-07 + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/files/basefont.html b/test/testcases/tests/level2/html/files/basefont.html new file mode 100644 index 0000000..e3753f7 --- /dev/null +++ b/test/testcases/tests/level2/html/files/basefont.html @@ -0,0 +1,12 @@ + + + + +NIST DOM HTML Test - BaseFont + + +

    + +

    + + diff --git a/test/testcases/tests/level2/html/files/basefont.xhtml b/test/testcases/tests/level2/html/files/basefont.xhtml new file mode 100644 index 0000000..c5fc9b5 --- /dev/null +++ b/test/testcases/tests/level2/html/files/basefont.xhtml @@ -0,0 +1,14 @@ + + + + +NIST DOM HTML Test - BaseFont + + +

    + +

    + + diff --git a/test/testcases/tests/level2/html/files/basefont.xml b/test/testcases/tests/level2/html/files/basefont.xml new file mode 100644 index 0000000..c5fc9b5 --- /dev/null +++ b/test/testcases/tests/level2/html/files/basefont.xml @@ -0,0 +1,14 @@ + + + + +NIST DOM HTML Test - BaseFont + + +

    + +

    + + diff --git a/test/testcases/tests/level2/html/hasFeature02.xml b/test/testcases/tests/level2/html/hasFeature02.xml deleted file mode 100644 index 560a60c..0000000 --- a/test/testcases/tests/level2/html/hasFeature02.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - -hasFeature02 -Curt Arnold - -hasFeature("hTmL", "2.0") should return true. - -2004-03-18 - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/hasFeature02.xml.kfail b/test/testcases/tests/level2/html/hasFeature02.xml.kfail new file mode 100644 index 0000000..560a60c --- /dev/null +++ b/test/testcases/tests/level2/html/hasFeature02.xml.kfail @@ -0,0 +1,31 @@ + + + + + +hasFeature02 +Curt Arnold + +hasFeature("hTmL", "2.0") should return true. + +2004-03-18 + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/hasFeature03.xml b/test/testcases/tests/level2/html/hasFeature03.xml deleted file mode 100644 index 49fb3b5..0000000 --- a/test/testcases/tests/level2/html/hasFeature03.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - -hasFeature03 -Curt Arnold - -hasFeature("xhTmL", null) should return true if hasFeature("XML", null) returns true. - -2004-03-18 - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/hasFeature03.xml.kfail b/test/testcases/tests/level2/html/hasFeature03.xml.kfail new file mode 100644 index 0000000..49fb3b5 --- /dev/null +++ b/test/testcases/tests/level2/html/hasFeature03.xml.kfail @@ -0,0 +1,33 @@ + + + + + +hasFeature03 +Curt Arnold + +hasFeature("xhTmL", null) should return true if hasFeature("XML", null) returns true. + +2004-03-18 + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/hasFeature04.xml b/test/testcases/tests/level2/html/hasFeature04.xml deleted file mode 100644 index 077b913..0000000 --- a/test/testcases/tests/level2/html/hasFeature04.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - -hasFeature04 -Curt Arnold - -hasFeature("xhTmL", "2.0") should return true if hasFeature("XML", "2.0") returns true. - -2004-03-18 - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/hasFeature04.xml.kfail b/test/testcases/tests/level2/html/hasFeature04.xml.kfail new file mode 100644 index 0000000..077b913 --- /dev/null +++ b/test/testcases/tests/level2/html/hasFeature04.xml.kfail @@ -0,0 +1,33 @@ + + + + + +hasFeature04 +Curt Arnold + +hasFeature("xhTmL", "2.0") should return true if hasFeature("XML", "2.0") returns true. + +2004-03-18 + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/hasFeature05.xml b/test/testcases/tests/level2/html/hasFeature05.xml deleted file mode 100644 index c79f90b..0000000 --- a/test/testcases/tests/level2/html/hasFeature05.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - -hasFeature05 -Curt Arnold - -hasFeature("cOrE", null) should return true. - -2004-03-18 - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/hasFeature05.xml.kfail b/test/testcases/tests/level2/html/hasFeature05.xml.kfail new file mode 100644 index 0000000..c79f90b --- /dev/null +++ b/test/testcases/tests/level2/html/hasFeature05.xml.kfail @@ -0,0 +1,31 @@ + + + + + +hasFeature05 +Curt Arnold + +hasFeature("cOrE", null) should return true. + +2004-03-18 + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/hasFeature06.xml b/test/testcases/tests/level2/html/hasFeature06.xml deleted file mode 100644 index 162e5cf..0000000 --- a/test/testcases/tests/level2/html/hasFeature06.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - -hasFeature06 -Curt Arnold - -hasFeature("cOrE", "2.0") should return true. - -2004-03-18 - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/hasFeature06.xml.kfail b/test/testcases/tests/level2/html/hasFeature06.xml.kfail new file mode 100644 index 0000000..162e5cf --- /dev/null +++ b/test/testcases/tests/level2/html/hasFeature06.xml.kfail @@ -0,0 +1,31 @@ + + + + + +hasFeature06 +Curt Arnold + +hasFeature("cOrE", "2.0") should return true. + +2004-03-18 + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/metadata.xml b/test/testcases/tests/level2/html/metadata.xml deleted file mode 100644 index be6715a..0000000 --- a/test/testcases/tests/level2/html/metadata.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/test/testcases/tests/level2/html/metadata.xml.kfail b/test/testcases/tests/level2/html/metadata.xml.kfail new file mode 100644 index 0000000..be6715a --- /dev/null +++ b/test/testcases/tests/level2/html/metadata.xml.kfail @@ -0,0 +1,15 @@ + + + + + diff --git a/test/testcases/tests/level2/html/object08.xml b/test/testcases/tests/level2/html/object08.xml deleted file mode 100644 index 32d32cf..0000000 --- a/test/testcases/tests/level2/html/object08.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -object08 -Netscape - -Horizontal space to the left and right of this image, applet, or object. -The value of attribute hspace of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/object08.xml.kfail b/test/testcases/tests/level2/html/object08.xml.kfail new file mode 100644 index 0000000..32d32cf --- /dev/null +++ b/test/testcases/tests/level2/html/object08.xml.kfail @@ -0,0 +1,40 @@ + + + + + + +object08 +Netscape + +Horizontal space to the left and right of this image, applet, or object. +The value of attribute hspace of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/object13.xml b/test/testcases/tests/level2/html/object13.xml deleted file mode 100644 index a3a603a..0000000 --- a/test/testcases/tests/level2/html/object13.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -object13 -Netscape - -Vertical space above and below this image, applet, or object. -The value of attribute vspace of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/object13.xml.kfail b/test/testcases/tests/level2/html/object13.xml.kfail new file mode 100644 index 0000000..a3a603a --- /dev/null +++ b/test/testcases/tests/level2/html/object13.xml.kfail @@ -0,0 +1,40 @@ + + + + + + +object13 +Netscape + +Vertical space above and below this image, applet, or object. +The value of attribute vspace of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + -- cgit v1.2.3 From 501852e21d843601d2501cfe9cb31a13f259cf50 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Thu, 15 May 2014 05:43:49 +0530 Subject: Typecasting POC to correct DOMTSHandler. A minor dupliction fixed in Anchor Element. Image Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_anchor_element.h | 6 - include/dom/html/html_image_element.h | 84 +++++++ src/html/Makefile | 4 +- src/html/TODO | 2 +- src/html/html_document.c | 4 + src/html/html_document_strings.h | 2 + src/html/html_image_element.c | 245 +++++++++++++++++++++ src/html/html_image_element.h | 45 ++++ test/DOMTSHandler.pm | 16 +- .../tests/level1/html/HTMLImageElement01.xml | 42 ++++ .../tests/level1/html/HTMLImageElement01.xml.kfail | 42 ---- .../tests/level1/html/HTMLImageElement02.xml | 43 ++++ .../tests/level1/html/HTMLImageElement02.xml.kfail | 43 ---- .../tests/level1/html/HTMLImageElement03.xml | 43 ++++ .../tests/level1/html/HTMLImageElement03.xml.kfail | 43 ---- .../tests/level1/html/HTMLImageElement04.xml | 42 ++++ .../tests/level1/html/HTMLImageElement04.xml.kfail | 42 ---- .../tests/level1/html/HTMLImageElement07.xml | 42 ++++ .../tests/level1/html/HTMLImageElement07.xml.kfail | 42 ---- .../tests/level1/html/HTMLImageElement08.xml | 43 ++++ .../tests/level1/html/HTMLImageElement08.xml.kfail | 43 ---- .../tests/level1/html/HTMLImageElement09.xml | 42 ++++ .../tests/level1/html/HTMLImageElement09.xml.kfail | 42 ---- .../tests/level1/html/HTMLImageElement10.xml | 42 ++++ .../tests/level1/html/HTMLImageElement10.xml.kfail | 42 ---- .../tests/level2/html/.HTMLImageElement05.xml.swp | Bin 0 -> 12288 bytes .../tests/level2/html/HTMLImageElement05.xml | 41 ++++ .../tests/level2/html/HTMLImageElement05.xml.kfail | 41 ---- .../tests/level2/html/HTMLImageElement06.xml | 42 ++++ .../tests/level2/html/HTMLImageElement06.xml.kfail | 42 ---- .../tests/level2/html/HTMLImageElement11.xml | 42 ++++ .../tests/level2/html/HTMLImageElement11.xml.kfail | 42 ---- .../tests/level2/html/HTMLImageElement12.xml | 41 ++++ .../tests/level2/html/HTMLImageElement12.xml.kfail | 41 ---- test/testcases/tests/level2/html/files/img.html | 13 ++ test/testcases/tests/level2/html/files/img.xhtml | 15 ++ test/testcases/tests/level2/html/files/img.xml | 15 ++ 39 files changed, 945 insertions(+), 518 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLImageElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLImageElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLImageElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLImageElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLImageElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLImageElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLImageElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLImageElement04.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLImageElement07.xml delete mode 100644 test/testcases/tests/level1/html/HTMLImageElement07.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLImageElement08.xml delete mode 100644 test/testcases/tests/level1/html/HTMLImageElement08.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLImageElement09.xml delete mode 100644 test/testcases/tests/level1/html/HTMLImageElement09.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLImageElement10.xml delete mode 100644 test/testcases/tests/level1/html/HTMLImageElement10.xml.kfail create mode 100644 test/testcases/tests/level2/html/.HTMLImageElement05.xml.swp create mode 100644 test/testcases/tests/level2/html/HTMLImageElement05.xml delete mode 100644 test/testcases/tests/level2/html/HTMLImageElement05.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLImageElement06.xml delete mode 100644 test/testcases/tests/level2/html/HTMLImageElement06.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLImageElement11.xml delete mode 100644 test/testcases/tests/level2/html/HTMLImageElement11.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLImageElement12.xml delete mode 100644 test/testcases/tests/level2/html/HTMLImageElement12.xml.kfail create mode 100644 test/testcases/tests/level2/html/files/img.html create mode 100644 test/testcases/tests/level2/html/files/img.xhtml create mode 100644 test/testcases/tests/level2/html/files/img.xml (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index ab7d003..76441f2 100644 --- a/Makefile +++ b/Makefile @@ -116,6 +116,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_font_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_mod_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_anchor_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_basefont_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_image_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 7c788fd..ea61dfa 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -75,6 +75,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_anchor_element.h b/include/dom/html/html_anchor_element.h index 5d08e75..c7bcdea 100644 --- a/include/dom/html/html_anchor_element.h +++ b/include/dom/html/html_anchor_element.h @@ -64,12 +64,6 @@ dom_exception dom_html_anchor_element_get_rev( dom_exception dom_html_anchor_element_set_rev( dom_html_anchor_element *anchor, dom_string *rev); -dom_exception dom_html_anchor_element_get_hreflang( - dom_html_anchor_element *anchor, dom_string **hreflang); - -dom_exception dom_html_anchor_element_set_hreflang( - dom_html_anchor_element *anchor, dom_string *hreflang); - dom_exception dom_html_anchor_element_get_shape( dom_html_anchor_element *anchor, dom_string **shape); diff --git a/include/dom/html/html_image_element.h b/include/dom/html/html_image_element.h index 2e182d5..7e3e879 100644 --- a/include/dom/html/html_image_element.h +++ b/include/dom/html/html_image_element.h @@ -3,5 +3,89 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_image_element_h_ +#define dom_html_image_element_h_ + +#include +#include +#include + +typedef struct dom_html_image_element dom_html_image_element; + + +dom_exception dom_html_image_element_get_name( + dom_html_image_element *image, dom_string **name); + +dom_exception dom_html_image_element_set_name( + dom_html_image_element *image, dom_string *name); + +dom_exception dom_html_image_element_get_align( + dom_html_image_element *image, dom_string **align); + +dom_exception dom_html_image_element_set_align( + dom_html_image_element *image, dom_string *align); + +dom_exception dom_html_image_element_get_alt( + dom_html_image_element *image, dom_string **alt); + +dom_exception dom_html_image_element_set_alt( + dom_html_image_element *image, dom_string *alt); + +dom_exception dom_html_image_element_get_border( + dom_html_image_element *image, dom_string **border); + +dom_exception dom_html_image_element_set_border( + dom_html_image_element *image, dom_string *border); + +dom_exception dom_html_image_element_get_long_desc( + dom_html_image_element *image, dom_string **long_desc); + +dom_exception dom_html_image_element_set_long_desc( + dom_html_image_element *image, dom_string *long_desc); + +dom_exception dom_html_image_element_get_src( + dom_html_image_element *image, dom_string **src); + +dom_exception dom_html_image_element_set_src( + dom_html_image_element *image, dom_string *src); + +dom_exception dom_html_image_element_get_use_map( + dom_html_image_element *image, dom_string **use_map); + +dom_exception dom_html_image_element_set_use_map( + dom_html_image_element *image, dom_string *use_map); + +dom_exception dom_html_image_element_get_height( + dom_html_image_element *image, int32_t *height); + +dom_exception dom_html_image_element_set_height( + dom_html_image_element *image, uint32_t height); + +dom_exception dom_html_image_element_get_hspace( + dom_html_image_element *image, int32_t *hspace); + +dom_exception dom_html_image_element_set_hspace( + dom_html_image_element *image, uint32_t hspace); + +dom_exception dom_html_image_element_get_vspace( + dom_html_image_element *image, int32_t *vspace); + +dom_exception dom_html_image_element_set_vspace( + dom_html_image_element *image, uint32_t vspace); + +dom_exception dom_html_image_element_get_width( + dom_html_image_element *image, int32_t *width); + +dom_exception dom_html_image_element_set_width( + dom_html_image_element *image, uint32_t width); + +dom_exception dom_html_image_element_get_is_map( + dom_html_image_element *ele, bool *is_map); + +dom_exception dom_html_image_element_set_is_map( + dom_html_image_element *ele, bool is_map); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index f988cff..b02fd54 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -13,10 +13,10 @@ DIR_SOURCES := \ html_pre_element.c html_br_element.c html_label_element.c \ html_ulist_element.c html_olist_element.c html_li_element.c \ html_font_element.c html_mod_element.c html_anchor_element.c \ - html_basefont_element.c + html_basefont_element.c html_image_element.c UNINMPLEMENTED_SOURCES := \ - html_image_element.c html_object_element.c \ + html_object_element.c \ html_param_element.c html_applet_element.c html_map_element.c \ html_area_element.c html_script_element.c html_table_element.c \ html_tablecaption_element.c html_tablecol_element.c html_tablesection_element.c \ diff --git a/src/html/TODO b/src/html/TODO index eddb871..ddca8c4 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -39,7 +39,7 @@ HTMLFontElement html_font_element DONE HTMLHRElement html_hr_element DONE HTMLModElement html_mod_element DONE HTMLAnchorElement html_anchor_element DONE -HTMLImageElement html_image_element MISSING +HTMLImageElement html_image_element DONE HTMLObjectElement html_object_element MISSING HTMLParamElement html_param_element MISSING HTMLAppletElement html_applet_element MISSING diff --git a/src/html/html_document.c b/src/html/html_document.c index 7841087..28e3ac0 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -43,6 +43,7 @@ #include "html/html_mod_element.h" #include "html/html_anchor_element.h" #include "html/html_basefont_element.h" +#include "html/html_image_element.h" #include "core/attr.h" #include "core/string.h" @@ -303,6 +304,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_BASEFONT])) { exc = _dom_html_base_font_element_create(html, namespace, prefix, (dom_html_base_font_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_IMG])) { + exc = _dom_html_image_element_create(html, namespace, prefix, + (dom_html_image_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index 73cb64c..dae686c 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -89,9 +89,11 @@ HTML_DOCUMENT_STRINGS_ACTION1(color) HTML_DOCUMENT_STRINGS_ACTION1(face) HTML_DOCUMENT_STRINGS_ACTION1(coords) HTML_DOCUMENT_STRINGS_ACTION1(shape) +HTML_DOCUMENT_STRINGS_ACTION1(border) HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex) HTML_DOCUMENT_STRINGS_ACTION(html_for,for) HTML_DOCUMENT_STRINGS_ACTION(date_time,datetime) +HTML_DOCUMENT_STRINGS_ACTION(long_desc,longdesc) /* HTML_DOCUMENT_STRINGS_ACTION1(type) */ HTML_DOCUMENT_STRINGS_ACTION(use_map,usemap) /* HTML_DOCUMENT_STRINGS_ACTION1(value) */ diff --git a/src/html/html_image_element.c b/src/html/html_image_element.c index 2e182d5..77bdd27 100644 --- a/src/html/html_image_element.c +++ b/src/html/html_image_element.c @@ -3,5 +3,250 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_image_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_IMAGE_ELEMENT + }, + DOM_HTML_IMAGE_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_image_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_image_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_image_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_image_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_image_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_image_element object + * + * \param doc The document object + * \param ele The dom_html_image_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_image_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_image_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_IMG], + namespace, prefix); +} + +/** + * Finalise a dom_html_image_element object + * + * \param ele The dom_html_image_element object + */ +void _dom_html_image_element_finalise(struct dom_html_image_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_image_element object + * + * \param ele The dom_html_image_element object + */ +void _dom_html_image_element_destroy(struct dom_html_image_element *ele) +{ + _dom_html_image_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_image_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_image_element_destroy(dom_node_internal *node) +{ + _dom_html_image_element_destroy((struct dom_html_image_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_image_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_image_element_get_##attr( \ + dom_html_image_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_image_element_set_##attr( \ + dom_html_image_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(name); +SIMPLE_GET_SET(align); +SIMPLE_GET_SET(alt); +SIMPLE_GET_SET(border); +SIMPLE_GET_SET(long_desc); +SIMPLE_GET_SET(src); +SIMPLE_GET_SET(use_map); + +dom_exception dom_html_image_element_get_height( + dom_html_image_element *image, int32_t *height) +{ + return dom_html_element_get_int32_t_property(&image->base, "height", + SLEN("height"), height); +} + +dom_exception dom_html_image_element_set_height( + dom_html_image_element *image, uint32_t height) +{ + return dom_html_element_set_int32_t_property(&image->base, "height", + SLEN("height"), height); +} + +dom_exception dom_html_image_element_get_hspace( + dom_html_image_element *image, int32_t *hspace) +{ + return dom_html_element_get_int32_t_property(&image->base, "hspace", + SLEN("hspace"), hspace); +} + +dom_exception dom_html_image_element_set_hspace( + dom_html_image_element *image, uint32_t hspace) +{ + return dom_html_element_set_int32_t_property(&image->base, "hspace", + SLEN("hspace"), hspace); +} + +dom_exception dom_html_image_element_get_vspace( + dom_html_image_element *image, int32_t *vspace) +{ + return dom_html_element_get_int32_t_property(&image->base, "vspace", + SLEN("cspace"), vspace); +} + +dom_exception dom_html_image_element_set_vspace( + dom_html_image_element *image, uint32_t vspace) +{ + return dom_html_element_set_int32_t_property(&image->base, "vspace", + SLEN("vsapce"), vspace); +} + +dom_exception dom_html_image_element_get_width( + dom_html_image_element *image, int32_t *width) +{ + return dom_html_element_get_int32_t_property(&image->base, "width", + SLEN("width"), width); +} + +dom_exception dom_html_image_element_set_width( + dom_html_image_element *image, uint32_t width) +{ + return dom_html_element_set_int32_t_property(&image->base, "width", + SLEN("width"), width); +} + +/** + * Get the is_map property + * + * \param ele The dom_html_image_element object + * \param is_map The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_image_element_get_is_map(dom_html_image_element *ele, + bool *is_map) +{ + return dom_html_element_get_bool_property(&ele->base, "ismap", + SLEN("ismap"), is_map); +} + +/** + * Set the is_map property + * + * \param ele The dom_html_image_element object + * \param is_map The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_image_element_set_is_map(dom_html_image_element *ele, + bool is_map) +{ + return dom_html_element_set_bool_property(&ele->base, "ismap", + SLEN("ismap"), is_map); +} + diff --git a/src/html/html_image_element.h b/src/html/html_image_element.h index 2e182d5..ac73a1b 100644 --- a/src/html/html_image_element.h +++ b/src/html/html_image_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_image_element_h_ +#define dom_internal_html_image_element_h_ + +#include + +#include "html/html_element.h" + +struct dom_html_image_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_image_element object */ +dom_exception _dom_html_image_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_image_element **ele); + +/* Initialise a dom_html_image_element object */ +dom_exception _dom_html_image_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_image_element *ele); + +/* Finalise a dom_html_image_element object */ +void _dom_html_image_element_finalise(struct dom_html_image_element *ele); + +/* Destroy a dom_html_image_element object */ +void _dom_html_image_element_destroy(struct dom_html_image_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_image_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_image_element_destroy(dom_node_internal *node); +dom_exception _dom_html_image_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_IMAGE_ELEMENT_PROTECT_VTABLE \ + _dom_html_image_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_IMAGE_ELEMENT \ + _dom_virtual_html_image_element_destroy, \ + _dom_html_image_element_copy + +#endif diff --git a/test/DOMTSHandler.pm b/test/DOMTSHandler.pm index 645e841..6dfaae9 100644 --- a/test/DOMTSHandler.pm +++ b/test/DOMTSHandler.pm @@ -479,21 +479,29 @@ sub generate_load { my ($self, $a) = @_; my %ats = %$a; my $doc = $ats{"var"}; - $test_index ++; + my $var = $self->{"var"}; # define the test file path, use HTML if there is, otherwise using XML # Attention: I intend to copy the test files to the program excuting dir print "\tconst char *test$test_index = \"$ats{'href'}.html\";\n\n"; - print "\t$doc = load_html(test$test_index, $ats{'willBeModified'});"; + if ($var->{$doc} eq "Node") { + print "\t$doc = (dom_node*) load_html(test$test_index, $ats{'willBeModified'});"; + } else { + print "\t$doc = load_html(test$test_index, $ats{'willBeModified'});"; + } print "\tif ($doc == NULL) {\n"; $test_index ++; print "\t\tconst char *test$test_index = \"$ats{'href'}.xml\";\n\n"; - print "\t\t$doc = load_xml(test$test_index, $ats{'willBeModified'});\n"; + if ($var->{$doc} eq "Node") { + print "\t\t$doc = (dom_node *) load_xml(test$test_index, $ats{'willBeModified'});\n"; + } else { + print "\t\t$doc = load_xml(test$test_index, $ats{'willBeModified'});\n"; + } print "\t\tif ($doc == NULL)\n"; print "\t\t\treturn 1;\n"; print "\t\t}\n"; print << "__EOF__"; - exp = dom_document_get_implementation($doc, &doc_impl); + exp = dom_document_get_implementation((dom_document *) $doc, &doc_impl); if (exp != DOM_NO_ERR) return exp; __EOF__ diff --git a/test/testcases/tests/level1/html/HTMLImageElement01.xml b/test/testcases/tests/level1/html/HTMLImageElement01.xml new file mode 100644 index 0000000..ca61559 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLImageElement01.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLImageElement01 +NIST + + The name attribute specifies the name of the element. + + Retrieve the name attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLImageElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLImageElement01.xml.kfail deleted file mode 100644 index ca61559..0000000 --- a/test/testcases/tests/level1/html/HTMLImageElement01.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLImageElement01 -NIST - - The name attribute specifies the name of the element. - - Retrieve the name attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLImageElement02.xml b/test/testcases/tests/level1/html/HTMLImageElement02.xml new file mode 100644 index 0000000..f314888 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLImageElement02.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLImageElement02 +NIST + + The align attribute aligns this object with respect to its surrounding + text. + + Retrieve the align attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLImageElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLImageElement02.xml.kfail deleted file mode 100644 index f314888..0000000 --- a/test/testcases/tests/level1/html/HTMLImageElement02.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLImageElement02 -NIST - - The align attribute aligns this object with respect to its surrounding - text. - - Retrieve the align attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLImageElement03.xml b/test/testcases/tests/level1/html/HTMLImageElement03.xml new file mode 100644 index 0000000..75716f9 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLImageElement03.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLImageElement03 +NIST + + The alt attribute specifies an alternative text for user agenst not + rendering the normal content of this element. + + Retrieve the alt attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLImageElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLImageElement03.xml.kfail deleted file mode 100644 index 75716f9..0000000 --- a/test/testcases/tests/level1/html/HTMLImageElement03.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLImageElement03 -NIST - - The alt attribute specifies an alternative text for user agenst not - rendering the normal content of this element. - - Retrieve the alt attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLImageElement04.xml b/test/testcases/tests/level1/html/HTMLImageElement04.xml new file mode 100644 index 0000000..80a30b0 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLImageElement04.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLImageElement04 +NIST + + The border attribute specifies the width of the border around the image. + + Retrieve the border attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLImageElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLImageElement04.xml.kfail deleted file mode 100644 index 80a30b0..0000000 --- a/test/testcases/tests/level1/html/HTMLImageElement04.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLImageElement04 -NIST - - The border attribute specifies the width of the border around the image. - - Retrieve the border attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLImageElement07.xml b/test/testcases/tests/level1/html/HTMLImageElement07.xml new file mode 100644 index 0000000..faca09e --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLImageElement07.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLImageElement07 +NIST + + The isMap attribute indicates the use of server-side image map. + + Retrieve the isMap attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLImageElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLImageElement07.xml.kfail deleted file mode 100644 index faca09e..0000000 --- a/test/testcases/tests/level1/html/HTMLImageElement07.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLImageElement07 -NIST - - The isMap attribute indicates the use of server-side image map. - - Retrieve the isMap attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLImageElement08.xml b/test/testcases/tests/level1/html/HTMLImageElement08.xml new file mode 100644 index 0000000..e7bedbf --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLImageElement08.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLImageElement08 +NIST + + The longDesc attribute contains an URI designating a long description + of this image or frame. + + Retrieve the longDesc attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLImageElement08.xml.kfail b/test/testcases/tests/level1/html/HTMLImageElement08.xml.kfail deleted file mode 100644 index e7bedbf..0000000 --- a/test/testcases/tests/level1/html/HTMLImageElement08.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLImageElement08 -NIST - - The longDesc attribute contains an URI designating a long description - of this image or frame. - - Retrieve the longDesc attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLImageElement09.xml b/test/testcases/tests/level1/html/HTMLImageElement09.xml new file mode 100644 index 0000000..6d0f584 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLImageElement09.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLImageElement09 +NIST + + The src attribute contains an URI designating the source of this image. + + Retrieve the src attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLImageElement09.xml.kfail b/test/testcases/tests/level1/html/HTMLImageElement09.xml.kfail deleted file mode 100644 index 6d0f584..0000000 --- a/test/testcases/tests/level1/html/HTMLImageElement09.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLImageElement09 -NIST - - The src attribute contains an URI designating the source of this image. - - Retrieve the src attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLImageElement10.xml b/test/testcases/tests/level1/html/HTMLImageElement10.xml new file mode 100644 index 0000000..3c13080 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLImageElement10.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLImageElement10 +NIST + + The useMap attribute specifies to use the client-side image map. + + Retrieve the useMap attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLImageElement10.xml.kfail b/test/testcases/tests/level1/html/HTMLImageElement10.xml.kfail deleted file mode 100644 index 3c13080..0000000 --- a/test/testcases/tests/level1/html/HTMLImageElement10.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLImageElement10 -NIST - - The useMap attribute specifies to use the client-side image map. - - Retrieve the useMap attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/.HTMLImageElement05.xml.swp b/test/testcases/tests/level2/html/.HTMLImageElement05.xml.swp new file mode 100644 index 0000000..6847879 Binary files /dev/null and b/test/testcases/tests/level2/html/.HTMLImageElement05.xml.swp differ diff --git a/test/testcases/tests/level2/html/HTMLImageElement05.xml b/test/testcases/tests/level2/html/HTMLImageElement05.xml new file mode 100644 index 0000000..92e536b --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLImageElement05.xml @@ -0,0 +1,41 @@ + + + + + + +HTMLImageElement05 +NIST + + The height attribute overrides the natural "height" of the image. + + Retrieve the height attribute and examine it's value. + +Mary Brady +2001-12-26 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLImageElement05.xml.kfail b/test/testcases/tests/level2/html/HTMLImageElement05.xml.kfail deleted file mode 100644 index 92e536b..0000000 --- a/test/testcases/tests/level2/html/HTMLImageElement05.xml.kfail +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - -HTMLImageElement05 -NIST - - The height attribute overrides the natural "height" of the image. - - Retrieve the height attribute and examine it's value. - -Mary Brady -2001-12-26 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLImageElement06.xml b/test/testcases/tests/level2/html/HTMLImageElement06.xml new file mode 100644 index 0000000..19fb7b0 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLImageElement06.xml @@ -0,0 +1,42 @@ + + + + + + +HTMLImageElement06 +NIST + + The hspace attribute specifies the horizontal space to the left and + right of this image. + + Retrieve the hspace attribute and examine it's value. + +Mary Brady +2001-12-26 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLImageElement06.xml.kfail b/test/testcases/tests/level2/html/HTMLImageElement06.xml.kfail deleted file mode 100644 index 19fb7b0..0000000 --- a/test/testcases/tests/level2/html/HTMLImageElement06.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -HTMLImageElement06 -NIST - - The hspace attribute specifies the horizontal space to the left and - right of this image. - - Retrieve the hspace attribute and examine it's value. - -Mary Brady -2001-12-26 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLImageElement11.xml b/test/testcases/tests/level2/html/HTMLImageElement11.xml new file mode 100644 index 0000000..10f3608 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLImageElement11.xml @@ -0,0 +1,42 @@ + + + + + + +HTMLImageElement11 +NIST + + The vspace attribute specifies the vertical space above and below this + image. + + Retrieve the vspace attribute and examine it's value. + +Mary Brady +2001-12-26 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLImageElement11.xml.kfail b/test/testcases/tests/level2/html/HTMLImageElement11.xml.kfail deleted file mode 100644 index 10f3608..0000000 --- a/test/testcases/tests/level2/html/HTMLImageElement11.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -HTMLImageElement11 -NIST - - The vspace attribute specifies the vertical space above and below this - image. - - Retrieve the vspace attribute and examine it's value. - -Mary Brady -2001-12-26 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLImageElement12.xml b/test/testcases/tests/level2/html/HTMLImageElement12.xml new file mode 100644 index 0000000..738f1c3 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLImageElement12.xml @@ -0,0 +1,41 @@ + + + + + + +HTMLImageElement12 +NIST + + The width attribute overrides the natural "width" of the image. + + Retrieve the width attribute and examine it's value. + +Mary Brady +2001-12-07 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLImageElement12.xml.kfail b/test/testcases/tests/level2/html/HTMLImageElement12.xml.kfail deleted file mode 100644 index 738f1c3..0000000 --- a/test/testcases/tests/level2/html/HTMLImageElement12.xml.kfail +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - -HTMLImageElement12 -NIST - - The width attribute overrides the natural "width" of the image. - - Retrieve the width attribute and examine it's value. - -Mary Brady -2001-12-07 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/files/img.html b/test/testcases/tests/level2/html/files/img.html new file mode 100644 index 0000000..b4e8b27 --- /dev/null +++ b/test/testcases/tests/level2/html/files/img.html @@ -0,0 +1,13 @@ + + + + +NIST DOM HTML Test - IMG + + +

    +DTS IMAGE LOGO +

    + + + diff --git a/test/testcases/tests/level2/html/files/img.xhtml b/test/testcases/tests/level2/html/files/img.xhtml new file mode 100644 index 0000000..40e3695 --- /dev/null +++ b/test/testcases/tests/level2/html/files/img.xhtml @@ -0,0 +1,15 @@ + + + + +NIST DOM HTML Test - IMG + + +

    +DTS IMAGE LOGO +

    + + + diff --git a/test/testcases/tests/level2/html/files/img.xml b/test/testcases/tests/level2/html/files/img.xml new file mode 100644 index 0000000..40e3695 --- /dev/null +++ b/test/testcases/tests/level2/html/files/img.xml @@ -0,0 +1,15 @@ + + + + +NIST DOM HTML Test - IMG + + +

    +DTS IMAGE LOGO +

    + + + -- cgit v1.2.3 From 559ca5e250bc1b902bd2764e05dd8767d1d7ffe6 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Sat, 17 May 2014 01:07:12 +0530 Subject: Object Element. --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_object_element.h | 121 ++++++++++ src/html/Makefile | 3 +- src/html/TODO | 2 +- src/html/html_document.c | 4 + src/html/html_document_strings.h | 7 + src/html/html_object_element.c | 259 +++++++++++++++++++++ src/html/html_object_element.h | 49 ++++ .../tests/level1/html/HTMLObjectElement01.xml | 44 ++++ .../level1/html/HTMLObjectElement01.xml.kfail | 44 ---- .../tests/level1/html/HTMLObjectElement02.xml | 43 ++++ .../level1/html/HTMLObjectElement02.xml.kfail | 43 ---- .../tests/level1/html/HTMLObjectElement03.xml | 44 ++++ .../level1/html/HTMLObjectElement03.xml.kfail | 44 ---- .../tests/level1/html/HTMLObjectElement04.xml | 43 ++++ .../level1/html/HTMLObjectElement04.xml.kfail | 43 ---- .../tests/level1/html/HTMLObjectElement05.xml | 43 ++++ .../level1/html/HTMLObjectElement05.xml.kfail | 43 ---- .../tests/level1/html/HTMLObjectElement06.xml | 44 ++++ .../level1/html/HTMLObjectElement06.xml.kfail | 44 ---- .../tests/level1/html/HTMLObjectElement07.xml | 44 ++++ .../level1/html/HTMLObjectElement07.xml.kfail | 44 ---- .../tests/level1/html/HTMLObjectElement08.xml | 43 ++++ .../level1/html/HTMLObjectElement08.xml.kfail | 43 ---- .../tests/level1/html/HTMLObjectElement09.xml | 44 ++++ .../level1/html/HTMLObjectElement09.xml.kfail | 44 ---- .../tests/level1/html/HTMLObjectElement10.xml | 44 ++++ .../level1/html/HTMLObjectElement10.xml.kfail | 44 ---- .../tests/level1/html/HTMLObjectElement12.xml | 44 ++++ .../level1/html/HTMLObjectElement12.xml.kfail | 44 ---- .../tests/level1/html/HTMLObjectElement13.xml | 44 ++++ .../level1/html/HTMLObjectElement13.xml.kfail | 44 ---- .../tests/level1/html/HTMLObjectElement14.xml | 44 ++++ .../level1/html/HTMLObjectElement14.xml.kfail | 44 ---- .../tests/level1/html/HTMLObjectElement15.xml | 43 ++++ .../level1/html/HTMLObjectElement15.xml.kfail | 43 ---- .../tests/level1/html/HTMLObjectElement17.xml | 43 ++++ .../level1/html/HTMLObjectElement17.xml.kfail | 43 ---- .../tests/level1/html/HTMLObjectElement18.xml | 44 ++++ .../level1/html/HTMLObjectElement18.xml.kfail | 44 ---- .../tests/level1/html/HTMLObjectElement19.xml | 43 ++++ .../level1/html/HTMLObjectElement19.xml.kfail | 43 ---- test/testcases/tests/level1/html/files/object.html | 2 +- .../testcases/tests/level1/html/files/object.xhtml | 2 +- test/testcases/tests/level1/html/object01.xml | 40 ++++ .../testcases/tests/level1/html/object01.xml.kfail | 40 ---- test/testcases/tests/level1/html/object02.xml | 40 ++++ .../testcases/tests/level1/html/object02.xml.kfail | 40 ---- test/testcases/tests/level1/html/object03.xml | 40 ++++ .../testcases/tests/level1/html/object03.xml.kfail | 40 ---- test/testcases/tests/level1/html/object04.xml | 40 ++++ .../testcases/tests/level1/html/object04.xml.kfail | 40 ---- test/testcases/tests/level1/html/object05.xml | 40 ++++ .../testcases/tests/level1/html/object05.xml.kfail | 40 ---- test/testcases/tests/level1/html/object06.xml | 40 ++++ .../testcases/tests/level1/html/object06.xml.kfail | 40 ---- test/testcases/tests/level1/html/object07.xml | 39 ++++ .../testcases/tests/level1/html/object07.xml.kfail | 39 ---- test/testcases/tests/level1/html/object09.xml | 40 ++++ .../testcases/tests/level1/html/object09.xml.kfail | 40 ---- test/testcases/tests/level1/html/object10.xml | 40 ++++ .../testcases/tests/level1/html/object10.xml.kfail | 40 ---- test/testcases/tests/level1/html/object11.xml | 40 ++++ .../testcases/tests/level1/html/object11.xml.kfail | 40 ---- test/testcases/tests/level1/html/object12.xml | 39 ++++ .../testcases/tests/level1/html/object12.xml.kfail | 39 ---- test/testcases/tests/level1/html/object14.xml | 39 ++++ .../testcases/tests/level1/html/object14.xml.kfail | 39 ---- test/testcases/tests/level1/html/object15.xml | 40 ++++ .../testcases/tests/level1/html/object15.xml.kfail | 40 ---- .../tests/level2/html/HTMLObjectElement11.xml | 43 ++++ .../level2/html/HTMLObjectElement11.xml.kfail | 43 ---- .../tests/level2/html/HTMLObjectElement16.xml | 43 ++++ .../level2/html/HTMLObjectElement16.xml.kfail | 43 ---- .../tests/level2/html/HTMLObjectElement20.xml | 40 ++++ .../level2/html/HTMLObjectElement20.xml.kfail | 40 ---- test/testcases/tests/level2/html/files/object.html | 18 ++ .../testcases/tests/level2/html/files/object.xhtml | 20 ++ test/testcases/tests/level2/html/files/object.xml | 20 ++ .../testcases/tests/level2/html/files/object2.html | 17 ++ .../tests/level2/html/files/object2.xhtml | 20 ++ test/testcases/tests/level2/html/files/object2.xml | 20 ++ test/testcases/tests/level2/html/object08.xml | 40 ++++ .../testcases/tests/level2/html/object08.xml.kfail | 40 ---- test/testcases/tests/level2/html/object13.xml | 40 ++++ .../testcases/tests/level2/html/object13.xml.kfail | 40 ---- 87 files changed, 2025 insertions(+), 1469 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement04.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement05.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement05.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement06.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement06.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement07.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement07.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement08.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement08.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement09.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement09.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement10.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement10.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement12.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement12.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement13.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement13.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement14.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement14.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement15.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement15.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement17.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement17.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement18.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement18.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLObjectElement19.xml delete mode 100644 test/testcases/tests/level1/html/HTMLObjectElement19.xml.kfail create mode 100644 test/testcases/tests/level1/html/object01.xml delete mode 100644 test/testcases/tests/level1/html/object01.xml.kfail create mode 100644 test/testcases/tests/level1/html/object02.xml delete mode 100644 test/testcases/tests/level1/html/object02.xml.kfail create mode 100644 test/testcases/tests/level1/html/object03.xml delete mode 100644 test/testcases/tests/level1/html/object03.xml.kfail create mode 100644 test/testcases/tests/level1/html/object04.xml delete mode 100644 test/testcases/tests/level1/html/object04.xml.kfail create mode 100644 test/testcases/tests/level1/html/object05.xml delete mode 100644 test/testcases/tests/level1/html/object05.xml.kfail create mode 100644 test/testcases/tests/level1/html/object06.xml delete mode 100644 test/testcases/tests/level1/html/object06.xml.kfail create mode 100644 test/testcases/tests/level1/html/object07.xml delete mode 100644 test/testcases/tests/level1/html/object07.xml.kfail create mode 100644 test/testcases/tests/level1/html/object09.xml delete mode 100644 test/testcases/tests/level1/html/object09.xml.kfail create mode 100644 test/testcases/tests/level1/html/object10.xml delete mode 100644 test/testcases/tests/level1/html/object10.xml.kfail create mode 100644 test/testcases/tests/level1/html/object11.xml delete mode 100644 test/testcases/tests/level1/html/object11.xml.kfail create mode 100644 test/testcases/tests/level1/html/object12.xml delete mode 100644 test/testcases/tests/level1/html/object12.xml.kfail create mode 100644 test/testcases/tests/level1/html/object14.xml delete mode 100644 test/testcases/tests/level1/html/object14.xml.kfail create mode 100644 test/testcases/tests/level1/html/object15.xml delete mode 100644 test/testcases/tests/level1/html/object15.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLObjectElement11.xml delete mode 100644 test/testcases/tests/level2/html/HTMLObjectElement11.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLObjectElement16.xml delete mode 100644 test/testcases/tests/level2/html/HTMLObjectElement16.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLObjectElement20.xml delete mode 100644 test/testcases/tests/level2/html/HTMLObjectElement20.xml.kfail create mode 100644 test/testcases/tests/level2/html/files/object.html create mode 100644 test/testcases/tests/level2/html/files/object.xhtml create mode 100644 test/testcases/tests/level2/html/files/object.xml create mode 100644 test/testcases/tests/level2/html/files/object2.html create mode 100644 test/testcases/tests/level2/html/files/object2.xhtml create mode 100644 test/testcases/tests/level2/html/files/object2.xml create mode 100644 test/testcases/tests/level2/html/object08.xml delete mode 100644 test/testcases/tests/level2/html/object08.xml.kfail create mode 100644 test/testcases/tests/level2/html/object13.xml delete mode 100644 test/testcases/tests/level2/html/object13.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 76441f2..f577585 100644 --- a/Makefile +++ b/Makefile @@ -117,6 +117,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_mod_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_anchor_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_basefont_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_image_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_object_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index ea61dfa..1503625 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -76,6 +76,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_object_element.h b/include/dom/html/html_object_element.h index 2e182d5..0263e85 100644 --- a/include/dom/html/html_object_element.h +++ b/include/dom/html/html_object_element.h @@ -3,5 +3,126 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_object_element_h_ +#define dom_html_object_element_h_ + +#include +#include +#include + +#include +#include + +typedef struct dom_html_object_element dom_html_object_element; + +dom_exception dom_html_object_element_get_form( + dom_html_object_element *ele, dom_html_form_element **form); + +dom_exception dom_html_object_element_get_code( + dom_html_object_element *object, dom_string **code); + +dom_exception dom_html_object_element_set_code( + dom_html_object_element *object, dom_string *code); + +dom_exception dom_html_object_element_get_align( + dom_html_object_element *object, dom_string **align); + +dom_exception dom_html_object_element_set_align( + dom_html_object_element *object, dom_string *align); + +dom_exception dom_html_object_element_get_archive( + dom_html_object_element *object, dom_string **archive); + +dom_exception dom_html_object_element_set_archive( + dom_html_object_element *object, dom_string *archive); + +dom_exception dom_html_object_element_get_border( + dom_html_object_element *object, dom_string **border); + +dom_exception dom_html_object_element_set_border( + dom_html_object_element *object, dom_string *border); + +dom_exception dom_html_object_element_get_code_base( + dom_html_object_element *object, dom_string **code_base); + +dom_exception dom_html_object_element_set_code_base( + dom_html_object_element *object, dom_string *code_base); + +dom_exception dom_html_object_element_get_code_type( + dom_html_object_element *object, dom_string **code_type); + +dom_exception dom_html_object_element_set_code_type( + dom_html_object_element *object, dom_string *code_type); + +dom_exception dom_html_object_element_get_data( + dom_html_object_element *object, dom_string **data); + +dom_exception dom_html_object_element_set_data( + dom_html_object_element *object, dom_string *data); + +dom_exception dom_html_object_element_get_declare( + dom_html_object_element *ele, bool *declare); + +dom_exception dom_html_object_element_set_declare( + dom_html_object_element *ele, bool declare); + +dom_exception dom_html_object_element_get_height( + dom_html_object_element *object, dom_string **height); + +dom_exception dom_html_object_element_set_height( + dom_html_object_element *object, dom_string *height); + +dom_exception dom_html_object_element_get_name( + dom_html_object_element *object, dom_string **name); + +dom_exception dom_html_object_element_set_name( + dom_html_object_element *object, dom_string *name); + +dom_exception dom_html_object_element_get_standby( + dom_html_object_element *object, dom_string **standby); + +dom_exception dom_html_object_element_set_standby( + dom_html_object_element *object, dom_string *standby); + +dom_exception dom_html_object_element_get_type( + dom_html_object_element *object, dom_string **type); + +dom_exception dom_html_object_element_set_type( + dom_html_object_element *object, dom_string *type); + +dom_exception dom_html_object_element_get_use_map( + dom_html_object_element *object, dom_string **use_map); + +dom_exception dom_html_object_element_set_use_map( + dom_html_object_element *object, dom_string *use_map); + +dom_exception dom_html_object_element_get_width( + dom_html_object_element *object, dom_string **width); + +dom_exception dom_html_object_element_set_width( + dom_html_object_element *object, dom_string *width); + +dom_exception dom_html_object_element_get_hspace( + dom_html_object_element *object, int32_t *hspace); + +dom_exception dom_html_object_element_set_hspace( + dom_html_object_element *object, uint32_t hspace); + +dom_exception dom_html_object_element_get_tab_index( + dom_html_object_element *object, int32_t *tab_index); + +dom_exception dom_html_object_element_set_tab_index( + dom_html_object_element *object, uint32_t tab_index); + +dom_exception dom_html_object_element_get_vspace( + dom_html_object_element *object, int32_t *vspace); + +dom_exception dom_html_object_element_set_vspace( + dom_html_object_element *object, uint32_t vspace); + +dom_exception dom_html_object_element_get_content_document( + dom_html_object_element *object, dom_document **content_document); +#endif diff --git a/src/html/Makefile b/src/html/Makefile index b02fd54..455ea21 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -13,10 +13,9 @@ DIR_SOURCES := \ html_pre_element.c html_br_element.c html_label_element.c \ html_ulist_element.c html_olist_element.c html_li_element.c \ html_font_element.c html_mod_element.c html_anchor_element.c \ - html_basefont_element.c html_image_element.c + html_basefont_element.c html_image_element.c html_object_element.c UNINMPLEMENTED_SOURCES := \ - html_object_element.c \ html_param_element.c html_applet_element.c html_map_element.c \ html_area_element.c html_script_element.c html_table_element.c \ html_tablecaption_element.c html_tablecol_element.c html_tablesection_element.c \ diff --git a/src/html/TODO b/src/html/TODO index ddca8c4..c61adbd 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -40,7 +40,7 @@ HTMLHRElement html_hr_element DONE HTMLModElement html_mod_element DONE HTMLAnchorElement html_anchor_element DONE HTMLImageElement html_image_element DONE -HTMLObjectElement html_object_element MISSING +HTMLObjectElement html_object_element DONE HTMLParamElement html_param_element MISSING HTMLAppletElement html_applet_element MISSING HTMLMapElement html_map_element MISSING diff --git a/src/html/html_document.c b/src/html/html_document.c index 28e3ac0..ae80712 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -44,6 +44,7 @@ #include "html/html_anchor_element.h" #include "html/html_basefont_element.h" #include "html/html_image_element.h" +#include "html/html_object_element.h" #include "core/attr.h" #include "core/string.h" @@ -307,6 +308,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_IMG])) { exc = _dom_html_image_element_create(html, namespace, prefix, (dom_html_image_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_OBJECT])) { + exc = _dom_html_object_element_create(html, namespace, prefix, + (dom_html_object_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index dae686c..e23cc0b 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -90,10 +90,17 @@ HTML_DOCUMENT_STRINGS_ACTION1(face) HTML_DOCUMENT_STRINGS_ACTION1(coords) HTML_DOCUMENT_STRINGS_ACTION1(shape) HTML_DOCUMENT_STRINGS_ACTION1(border) +HTML_DOCUMENT_STRINGS_ACTION1(code) +HTML_DOCUMENT_STRINGS_ACTION1(archive) +HTML_DOCUMENT_STRINGS_ACTION1(data) +HTML_DOCUMENT_STRINGS_ACTION1(height) +HTML_DOCUMENT_STRINGS_ACTION1(standby) HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex) HTML_DOCUMENT_STRINGS_ACTION(html_for,for) HTML_DOCUMENT_STRINGS_ACTION(date_time,datetime) HTML_DOCUMENT_STRINGS_ACTION(long_desc,longdesc) +HTML_DOCUMENT_STRINGS_ACTION(code_base,codebase) +HTML_DOCUMENT_STRINGS_ACTION(code_type,codetype) /* HTML_DOCUMENT_STRINGS_ACTION1(type) */ HTML_DOCUMENT_STRINGS_ACTION(use_map,usemap) /* HTML_DOCUMENT_STRINGS_ACTION1(value) */ diff --git a/src/html/html_object_element.c b/src/html/html_object_element.c index 2e182d5..7da4567 100644 --- a/src/html/html_object_element.c +++ b/src/html/html_object_element.c @@ -3,5 +3,264 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_object_element.h" + +#include "html/html_form_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_OBJECT_ELEMENT + }, + DOM_HTML_OBJECT_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_object_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_object_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_object_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_object_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_object_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_object_element object + * + * \param doc The document object + * \param ele The dom_html_object_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_object_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_object_element *ele) +{ + ele->form = NULL; + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_OBJECT], + namespace, prefix); +} + +/** + * Finalise a dom_html_object_element object + * + * \param ele The dom_html_object_element object + */ +void _dom_html_object_element_finalise(struct dom_html_object_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_object_element object + * + * \param ele The dom_html_object_element object + */ +void _dom_html_object_element_destroy(struct dom_html_object_element *ele) +{ + _dom_html_object_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_object_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_object_element_destroy(dom_node_internal *node) +{ + _dom_html_object_element_destroy((struct dom_html_object_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_object_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_object_element_get_##attr( \ + dom_html_object_element *element, \ + dom_string **attr) \ +{ \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ +} +#define SIMPLE_SET(attr) \ + dom_exception dom_html_object_element_set_##attr( \ + dom_html_object_element *element, \ + dom_string *attr) \ +{ \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ +} + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(code); +SIMPLE_GET_SET(align); +SIMPLE_GET_SET(archive); +SIMPLE_GET_SET(border); +SIMPLE_GET_SET(code_base); +SIMPLE_GET_SET(code_type); +SIMPLE_GET_SET(data); +SIMPLE_GET_SET(height); +SIMPLE_GET_SET(name); +SIMPLE_GET_SET(standby); +SIMPLE_GET_SET(type); +SIMPLE_GET_SET(use_map); +SIMPLE_GET_SET(width); + +dom_exception dom_html_object_element_get_hspace( + dom_html_object_element *object, int32_t *hspace) +{ + return dom_html_element_get_int32_t_property(&object->base, "hspace", + SLEN("hspace"), hspace); +} + +dom_exception dom_html_object_element_set_hspace( + dom_html_object_element *object, uint32_t hspace) +{ + return dom_html_element_set_int32_t_property(&object->base, "hspace", + SLEN("hspace"), hspace); +} + +dom_exception dom_html_object_element_get_vspace( + dom_html_object_element *object, int32_t *vspace) +{ + return dom_html_element_get_int32_t_property(&object->base, "vspace", + SLEN("vspace"), vspace); +} + +dom_exception dom_html_object_element_set_vspace( + dom_html_object_element *object, uint32_t vspace) +{ + return dom_html_element_set_int32_t_property(&object->base, "vspace", + SLEN("vspace"), vspace); +} + +dom_exception dom_html_object_element_get_tab_index( + dom_html_object_element *object, int32_t *tab_index) +{ + return dom_html_element_get_int32_t_property(&object->base, "tabindex", + SLEN("tabindex"), tab_index); +} + +dom_exception dom_html_object_element_set_tab_index( + dom_html_object_element *object, uint32_t tab_index) +{ + return dom_html_element_set_int32_t_property(&object->base, "tabindex", + SLEN("tabindex"), tab_index); +} + +dom_exception dom_html_object_element_get_declare(dom_html_object_element *ele, + bool *declare) +{ + return dom_html_element_get_bool_property(&ele->base, "declare", + SLEN("declare"), declare); +} + +dom_exception dom_html_object_element_set_declare(dom_html_object_element *ele, + bool declare) +{ + return dom_html_element_set_bool_property(&ele->base, "declare", + SLEN("declare"), declare); +} + +dom_exception dom_html_object_element_get_form( + dom_html_object_element *object, dom_html_form_element **form) +{ + dom_html_document *doc + = (dom_html_document *) ((dom_node_internal *) object)->owner; + dom_node_internal *form_tmp = ((dom_node_internal *) object)->parent; + + while (form_tmp != NULL) { + if (form_tmp->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(form_tmp->name, + doc->memoised[hds_FORM])) + break; + + form_tmp = form_tmp->parent; + } + + if (form_tmp != NULL) { + *form = (dom_html_form_element *) form_tmp; + return DOM_NO_ERR; + } + + *form = NULL; + + return DOM_NO_ERR; +} + +dom_exception dom_html_object_element_get_content_document( + dom_html_object_element *object, dom_document **content_document) +{ + *content_document = (((dom_node_internal *) object)->owner); + return DOM_NO_ERR; +} + diff --git a/src/html/html_object_element.h b/src/html/html_object_element.h index 2e182d5..83512d6 100644 --- a/src/html/html_object_element.h +++ b/src/html/html_object_element.h @@ -3,5 +3,54 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_object_element_h_ +#define dom_internal_html_object_element_h_ + +#include + +#include "html/html_element.h" + +struct dom_html_object_element { + struct dom_html_element base; + /**< The base class */ + dom_html_form_element *form; + /**< The form associated with object */ +}; + +/* Create a dom_html_object_element object */ +dom_exception _dom_html_object_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_object_element **ele); + +/* Initialise a dom_html_object_element object */ +dom_exception _dom_html_object_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_object_element *ele); + +/* Finalise a dom_html_object_element object */ +void _dom_html_object_element_finalise(struct dom_html_object_element *ele); + +/* Destroy a dom_html_object_element object */ +void _dom_html_object_element_destroy(struct dom_html_object_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_object_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); + +void _dom_virtual_html_object_element_destroy(dom_node_internal *node); +dom_exception _dom_html_object_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_OBJECT_ELEMENT_PROTECT_VTABLE \ + _dom_html_object_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_OBJECT_ELEMENT \ + _dom_virtual_html_object_element_destroy, \ + _dom_html_object_element_copy + +#endif + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement01.xml b/test/testcases/tests/level1/html/HTMLObjectElement01.xml new file mode 100644 index 0000000..9b39aaf --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement01.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLObjectElement01 +NIST + + The form attribute returns the FORM element containing this control. + + Retrieve the form attribute and examine its value. + +Rick Rivello +2002-07-19 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement01.xml.kfail deleted file mode 100644 index 9b39aaf..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement01.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLObjectElement01 -NIST - - The form attribute returns the FORM element containing this control. - - Retrieve the form attribute and examine its value. - -Rick Rivello -2002-07-19 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement02.xml b/test/testcases/tests/level1/html/HTMLObjectElement02.xml new file mode 100644 index 0000000..52539a5 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement02.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLObjectElement02 +NIST + +The code attribute specifies an Applet class file. + +Retrieve the code attribute of the second OBJECT element and examine +its value. Should be "" since CODE is not a valid attribute for OBJECT. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement02.xml.kfail deleted file mode 100644 index 52539a5..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement02.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLObjectElement02 -NIST - -The code attribute specifies an Applet class file. - -Retrieve the code attribute of the second OBJECT element and examine -its value. Should be "" since CODE is not a valid attribute for OBJECT. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement03.xml b/test/testcases/tests/level1/html/HTMLObjectElement03.xml new file mode 100644 index 0000000..086f0d9 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement03.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLObjectElement03 +NIST + + The align attribute specifies the alignment of this object with respect + to its surrounding text. + + Retrieve the align attribute of the first OBJECT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement03.xml.kfail deleted file mode 100644 index 086f0d9..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement03.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLObjectElement03 -NIST - - The align attribute specifies the alignment of this object with respect - to its surrounding text. - - Retrieve the align attribute of the first OBJECT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement04.xml b/test/testcases/tests/level1/html/HTMLObjectElement04.xml new file mode 100644 index 0000000..c4091ec --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement04.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLObjectElement04 +NIST + + The archive attribute specifies a space-separated list of archives. + + Retrieve the archive attribute of the first OBJECT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement04.xml.kfail deleted file mode 100644 index c4091ec..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement04.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLObjectElement04 -NIST - - The archive attribute specifies a space-separated list of archives. - - Retrieve the archive attribute of the first OBJECT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement05.xml b/test/testcases/tests/level1/html/HTMLObjectElement05.xml new file mode 100644 index 0000000..5348c20 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement05.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLObjectElement05 +NIST + + The border attribute specifies the widht of the border around the object. + + Retrieve the border attribute of the first OBJECT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement05.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement05.xml.kfail deleted file mode 100644 index 5348c20..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement05.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLObjectElement05 -NIST - - The border attribute specifies the widht of the border around the object. - - Retrieve the border attribute of the first OBJECT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement06.xml b/test/testcases/tests/level1/html/HTMLObjectElement06.xml new file mode 100644 index 0000000..974fd88 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement06.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLObjectElement06 +NIST + + The codeBase attribute specifies the base URI for the classid, data and + archive attributes. + + Retrieve the codeBase attribute of the first OBJECT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement06.xml.kfail deleted file mode 100644 index 974fd88..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement06.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLObjectElement06 -NIST - - The codeBase attribute specifies the base URI for the classid, data and - archive attributes. - - Retrieve the codeBase attribute of the first OBJECT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement07.xml b/test/testcases/tests/level1/html/HTMLObjectElement07.xml new file mode 100644 index 0000000..8e2c5d2 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement07.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLObjectElement07 +NIST + + The codeType attribute specifies the data downloaded via the classid + attribute. + + Retrieve the codeType attribute of the second OBJECT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement07.xml.kfail deleted file mode 100644 index 8e2c5d2..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement07.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLObjectElement07 -NIST - - The codeType attribute specifies the data downloaded via the classid - attribute. - - Retrieve the codeType attribute of the second OBJECT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement08.xml b/test/testcases/tests/level1/html/HTMLObjectElement08.xml new file mode 100644 index 0000000..f5fd14c --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement08.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLObjectElement08 +NIST + + The data attribute specifies the URI of the location of the objects data. + + Retrieve the data attribute of the first OBJECT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement08.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement08.xml.kfail deleted file mode 100644 index f5fd14c..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement08.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLObjectElement08 -NIST - - The data attribute specifies the URI of the location of the objects data. - - Retrieve the data attribute of the first OBJECT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement09.xml b/test/testcases/tests/level1/html/HTMLObjectElement09.xml new file mode 100644 index 0000000..8c6ca17 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement09.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLObjectElement09 +NIST + + The declare attribute specifies this object should be declared only and + no instance of it should be created. + + Retrieve the declare attribute of the second OBJECT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement09.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement09.xml.kfail deleted file mode 100644 index 8c6ca17..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement09.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLObjectElement09 -NIST - - The declare attribute specifies this object should be declared only and - no instance of it should be created. - - Retrieve the declare attribute of the second OBJECT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement10.xml b/test/testcases/tests/level1/html/HTMLObjectElement10.xml new file mode 100644 index 0000000..b0f0c8b --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement10.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLObjectElement10 +NIST + + The height attribute overrides the value of the actual height of the + object. + + Retrieve the height attribute of the first OBJECT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement10.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement10.xml.kfail deleted file mode 100644 index b0f0c8b..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement10.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLObjectElement10 -NIST - - The height attribute overrides the value of the actual height of the - object. - - Retrieve the height attribute of the first OBJECT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement12.xml b/test/testcases/tests/level1/html/HTMLObjectElement12.xml new file mode 100644 index 0000000..8ef377d --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement12.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLObjectElement12 +NIST + + The standby attribute specifies a message to render while loading the + object. + + Retrieve the standby attribute of the first OBJECT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement12.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement12.xml.kfail deleted file mode 100644 index 8ef377d..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement12.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLObjectElement12 -NIST - - The standby attribute specifies a message to render while loading the - object. - - Retrieve the standby attribute of the first OBJECT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement13.xml b/test/testcases/tests/level1/html/HTMLObjectElement13.xml new file mode 100644 index 0000000..0e764de --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement13.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLObjectElement13 +NIST + + The tabIndex attribute specifies the elements position in the tabbing + order. + + Retrieve the tabIndex attribute of the first OBJECT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement13.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement13.xml.kfail deleted file mode 100644 index 0e764de..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement13.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLObjectElement13 -NIST - - The tabIndex attribute specifies the elements position in the tabbing - order. - - Retrieve the tabIndex attribute of the first OBJECT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement14.xml b/test/testcases/tests/level1/html/HTMLObjectElement14.xml new file mode 100644 index 0000000..0fa56d3 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement14.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLObjectElement14 +NIST + + The type attribute specifies the content type for data downloaded via + the data attribute. + + Retrieve the type attribute of the first OBJECT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement14.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement14.xml.kfail deleted file mode 100644 index 0fa56d3..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement14.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLObjectElement14 -NIST - - The type attribute specifies the content type for data downloaded via - the data attribute. - - Retrieve the type attribute of the first OBJECT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement15.xml b/test/testcases/tests/level1/html/HTMLObjectElement15.xml new file mode 100644 index 0000000..07d3c97 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement15.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLObjectElement15 +NIST + + The useMap attribute specifies the used client-side image map. + + Retrieve the useMap attribute of the first OBJECT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement15.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement15.xml.kfail deleted file mode 100644 index 07d3c97..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement15.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLObjectElement15 -NIST - - The useMap attribute specifies the used client-side image map. - - Retrieve the useMap attribute of the first OBJECT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement17.xml b/test/testcases/tests/level1/html/HTMLObjectElement17.xml new file mode 100644 index 0000000..caabb88 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement17.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLObjectElement17 +NIST + + The width attribute overrides the original width value. + + Retrieve the width attribute of the first OBJECT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement17.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement17.xml.kfail deleted file mode 100644 index caabb88..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement17.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLObjectElement17 -NIST - - The width attribute overrides the original width value. - - Retrieve the width attribute of the first OBJECT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement18.xml b/test/testcases/tests/level1/html/HTMLObjectElement18.xml new file mode 100644 index 0000000..f994859 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement18.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLObjectElement18 +NIST + + The name attribute specifies form control or object name when submitted + with a form. + + Retrieve the name attribute of the second OBJECT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement18.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement18.xml.kfail deleted file mode 100644 index f994859..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement18.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLObjectElement18 -NIST - - The name attribute specifies form control or object name when submitted - with a form. - - Retrieve the name attribute of the second OBJECT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLObjectElement19.xml b/test/testcases/tests/level1/html/HTMLObjectElement19.xml new file mode 100644 index 0000000..51d1115 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLObjectElement19.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLObjectElement19 +NIST + + The form attribute returns null if control in not within the context of + form. + + Retrieve the form attribute and examine its value. + +Rick Rivello +2002-07-19 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLObjectElement19.xml.kfail b/test/testcases/tests/level1/html/HTMLObjectElement19.xml.kfail deleted file mode 100644 index 51d1115..0000000 --- a/test/testcases/tests/level1/html/HTMLObjectElement19.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLObjectElement19 -NIST - - The form attribute returns null if control in not within the context of - form. - - Retrieve the form attribute and examine its value. - -Rick Rivello -2002-07-19 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/files/object.html b/test/testcases/tests/level1/html/files/object.html index 7960549..c7fbab1 100644 --- a/test/testcases/tests/level1/html/files/object.html +++ b/test/testcases/tests/level1/html/files/object.html @@ -6,7 +6,7 @@

    - +

    diff --git a/test/testcases/tests/level1/html/files/object.xhtml b/test/testcases/tests/level1/html/files/object.xhtml index 3399588..824f7fc 100644 --- a/test/testcases/tests/level1/html/files/object.xhtml +++ b/test/testcases/tests/level1/html/files/object.xhtml @@ -8,7 +8,7 @@

    - +

    diff --git a/test/testcases/tests/level1/html/object01.xml b/test/testcases/tests/level1/html/object01.xml new file mode 100644 index 0000000..52e053c --- /dev/null +++ b/test/testcases/tests/level1/html/object01.xml @@ -0,0 +1,40 @@ + + + + + + +object01 +Netscape + +Returns the FORM element containing this control. Returns null if this control is not within the context of a form. +The value of attribute form of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/object01.xml.kfail b/test/testcases/tests/level1/html/object01.xml.kfail deleted file mode 100644 index 52e053c..0000000 --- a/test/testcases/tests/level1/html/object01.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -object01 -Netscape - -Returns the FORM element containing this control. Returns null if this control is not within the context of a form. -The value of attribute form of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/object02.xml b/test/testcases/tests/level1/html/object02.xml new file mode 100644 index 0000000..fc3c215 --- /dev/null +++ b/test/testcases/tests/level1/html/object02.xml @@ -0,0 +1,40 @@ + + + + + + +object02 +Netscape + +Aligns this object (vertically or horizontally) with respect to its surrounding text. +The value of attribute align of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/object02.xml.kfail b/test/testcases/tests/level1/html/object02.xml.kfail deleted file mode 100644 index fc3c215..0000000 --- a/test/testcases/tests/level1/html/object02.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -object02 -Netscape - -Aligns this object (vertically or horizontally) with respect to its surrounding text. -The value of attribute align of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/object03.xml b/test/testcases/tests/level1/html/object03.xml new file mode 100644 index 0000000..e2591ad --- /dev/null +++ b/test/testcases/tests/level1/html/object03.xml @@ -0,0 +1,40 @@ + + + + + + +object03 +Netscape + +Space-separated list of archives +The value of attribute archive of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/object03.xml.kfail b/test/testcases/tests/level1/html/object03.xml.kfail deleted file mode 100644 index e2591ad..0000000 --- a/test/testcases/tests/level1/html/object03.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -object03 -Netscape - -Space-separated list of archives -The value of attribute archive of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/object04.xml b/test/testcases/tests/level1/html/object04.xml new file mode 100644 index 0000000..33a99a5 --- /dev/null +++ b/test/testcases/tests/level1/html/object04.xml @@ -0,0 +1,40 @@ + + + + + + +object04 +Netscape + +Width of border around the object. +The value of attribute border of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/object04.xml.kfail b/test/testcases/tests/level1/html/object04.xml.kfail deleted file mode 100644 index 33a99a5..0000000 --- a/test/testcases/tests/level1/html/object04.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -object04 -Netscape - -Width of border around the object. -The value of attribute border of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/object05.xml b/test/testcases/tests/level1/html/object05.xml new file mode 100644 index 0000000..93e2967 --- /dev/null +++ b/test/testcases/tests/level1/html/object05.xml @@ -0,0 +1,40 @@ + + + + + + +object05 +Netscape + +Base URI for classid, data, and archive attributes. +The value of attribute codebase of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/object05.xml.kfail b/test/testcases/tests/level1/html/object05.xml.kfail deleted file mode 100644 index 93e2967..0000000 --- a/test/testcases/tests/level1/html/object05.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -object05 -Netscape - -Base URI for classid, data, and archive attributes. -The value of attribute codebase of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/object06.xml b/test/testcases/tests/level1/html/object06.xml new file mode 100644 index 0000000..6f9e613 --- /dev/null +++ b/test/testcases/tests/level1/html/object06.xml @@ -0,0 +1,40 @@ + + + + + + +object06 +Netscape + +A URI specifying the location of the object's data. +The value of attribute data of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/object06.xml.kfail b/test/testcases/tests/level1/html/object06.xml.kfail deleted file mode 100644 index 6f9e613..0000000 --- a/test/testcases/tests/level1/html/object06.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -object06 -Netscape - -A URI specifying the location of the object's data. -The value of attribute data of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/object07.xml b/test/testcases/tests/level1/html/object07.xml new file mode 100644 index 0000000..aff1fcc --- /dev/null +++ b/test/testcases/tests/level1/html/object07.xml @@ -0,0 +1,39 @@ + + + + + + +object07 +Netscape + +The value of attribute height of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/object07.xml.kfail b/test/testcases/tests/level1/html/object07.xml.kfail deleted file mode 100644 index aff1fcc..0000000 --- a/test/testcases/tests/level1/html/object07.xml.kfail +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - -object07 -Netscape - -The value of attribute height of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/object09.xml b/test/testcases/tests/level1/html/object09.xml new file mode 100644 index 0000000..4b9d336 --- /dev/null +++ b/test/testcases/tests/level1/html/object09.xml @@ -0,0 +1,40 @@ + + + + + + +object09 +Netscape + +Message to render while loading the object. +The value of attribute standby of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/object09.xml.kfail b/test/testcases/tests/level1/html/object09.xml.kfail deleted file mode 100644 index 4b9d336..0000000 --- a/test/testcases/tests/level1/html/object09.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -object09 -Netscape - -Message to render while loading the object. -The value of attribute standby of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/object10.xml b/test/testcases/tests/level1/html/object10.xml new file mode 100644 index 0000000..7dd5741 --- /dev/null +++ b/test/testcases/tests/level1/html/object10.xml @@ -0,0 +1,40 @@ + + + + + + +object10 +Netscape + +Index that represents the element's position in the tabbing order. +The value of attribute tabIndex of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/object10.xml.kfail b/test/testcases/tests/level1/html/object10.xml.kfail deleted file mode 100644 index 7dd5741..0000000 --- a/test/testcases/tests/level1/html/object10.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -object10 -Netscape - -Index that represents the element's position in the tabbing order. -The value of attribute tabIndex of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/object11.xml b/test/testcases/tests/level1/html/object11.xml new file mode 100644 index 0000000..332ca50 --- /dev/null +++ b/test/testcases/tests/level1/html/object11.xml @@ -0,0 +1,40 @@ + + + + + + +object11 +Netscape + +Content type for data downloaded via data attribute. +The value of attribute type of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/object11.xml.kfail b/test/testcases/tests/level1/html/object11.xml.kfail deleted file mode 100644 index 332ca50..0000000 --- a/test/testcases/tests/level1/html/object11.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -object11 -Netscape - -Content type for data downloaded via data attribute. -The value of attribute type of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/object12.xml b/test/testcases/tests/level1/html/object12.xml new file mode 100644 index 0000000..4af4455 --- /dev/null +++ b/test/testcases/tests/level1/html/object12.xml @@ -0,0 +1,39 @@ + + + + + + +object12 +Netscape + +The value of attribute usemap of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/object12.xml.kfail b/test/testcases/tests/level1/html/object12.xml.kfail deleted file mode 100644 index 4af4455..0000000 --- a/test/testcases/tests/level1/html/object12.xml.kfail +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - -object12 -Netscape - -The value of attribute usemap of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/object14.xml b/test/testcases/tests/level1/html/object14.xml new file mode 100644 index 0000000..0a8fce5 --- /dev/null +++ b/test/testcases/tests/level1/html/object14.xml @@ -0,0 +1,39 @@ + + + + + + +object14 +Netscape + +The value of attribute width of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/object14.xml.kfail b/test/testcases/tests/level1/html/object14.xml.kfail deleted file mode 100644 index 0a8fce5..0000000 --- a/test/testcases/tests/level1/html/object14.xml.kfail +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - -object14 -Netscape - -The value of attribute width of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/object15.xml b/test/testcases/tests/level1/html/object15.xml new file mode 100644 index 0000000..37182c0 --- /dev/null +++ b/test/testcases/tests/level1/html/object15.xml @@ -0,0 +1,40 @@ + + + + + + +object15 +Netscape + +Content type for data downloaded via classid attribute. +The value of attribute codetype of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/object15.xml.kfail b/test/testcases/tests/level1/html/object15.xml.kfail deleted file mode 100644 index 37182c0..0000000 --- a/test/testcases/tests/level1/html/object15.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -object15 -Netscape - -Content type for data downloaded via classid attribute. -The value of attribute codetype of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLObjectElement11.xml b/test/testcases/tests/level2/html/HTMLObjectElement11.xml new file mode 100644 index 0000000..b4f172b --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLObjectElement11.xml @@ -0,0 +1,43 @@ + + + + + + +HTMLObjectElement11 +NIST + + The hspace attribute specifies the horizontal space to the left and right + of this image, applet or object. + + Retrieve the hspace attribute of the first OBJECT element and examine + it's value. + +Mary Brady +2002-01-02 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLObjectElement11.xml.kfail b/test/testcases/tests/level2/html/HTMLObjectElement11.xml.kfail deleted file mode 100644 index b4f172b..0000000 --- a/test/testcases/tests/level2/html/HTMLObjectElement11.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - -HTMLObjectElement11 -NIST - - The hspace attribute specifies the horizontal space to the left and right - of this image, applet or object. - - Retrieve the hspace attribute of the first OBJECT element and examine - it's value. - -Mary Brady -2002-01-02 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLObjectElement16.xml b/test/testcases/tests/level2/html/HTMLObjectElement16.xml new file mode 100644 index 0000000..e849620 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLObjectElement16.xml @@ -0,0 +1,43 @@ + + + + + + +HTMLObjectElement16 +NIST + + The vspace attribute specifies the vertical space above or below this + image, applet or object. + + Retrieve the vspace attribute of the first OBJECT element and examine + it's value. + +Mary Brady +2002-01-02 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLObjectElement16.xml.kfail b/test/testcases/tests/level2/html/HTMLObjectElement16.xml.kfail deleted file mode 100644 index e849620..0000000 --- a/test/testcases/tests/level2/html/HTMLObjectElement16.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - -HTMLObjectElement16 -NIST - - The vspace attribute specifies the vertical space above or below this - image, applet or object. - - Retrieve the vspace attribute of the first OBJECT element and examine - it's value. - -Mary Brady -2002-01-02 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLObjectElement20.xml b/test/testcases/tests/level2/html/HTMLObjectElement20.xml new file mode 100644 index 0000000..5694760 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLObjectElement20.xml @@ -0,0 +1,40 @@ + + + + + + +HTMLObjectElement20 +NIST + + The contentDocument attribute specifies the document this object contains, + if there is any and it is available, or null otherwise. + +Rick Rivello +2002-07-03 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLObjectElement20.xml.kfail b/test/testcases/tests/level2/html/HTMLObjectElement20.xml.kfail deleted file mode 100644 index 5694760..0000000 --- a/test/testcases/tests/level2/html/HTMLObjectElement20.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -HTMLObjectElement20 -NIST - - The contentDocument attribute specifies the document this object contains, - if there is any and it is available, or null otherwise. - -Rick Rivello -2002-07-03 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/files/object.html b/test/testcases/tests/level2/html/files/object.html new file mode 100644 index 0000000..c7fbab1 --- /dev/null +++ b/test/testcases/tests/level2/html/files/object.html @@ -0,0 +1,18 @@ + + + + +NIST DOM HTML Test - OBJECT + + +

    + +

    + +

    + +

    + + + + diff --git a/test/testcases/tests/level2/html/files/object.xhtml b/test/testcases/tests/level2/html/files/object.xhtml new file mode 100644 index 0000000..824f7fc --- /dev/null +++ b/test/testcases/tests/level2/html/files/object.xhtml @@ -0,0 +1,20 @@ + + + + +NIST DOM HTML Test - OBJECT + + +

    + +

    +
    +

    + +

    +
    + + + diff --git a/test/testcases/tests/level2/html/files/object.xml b/test/testcases/tests/level2/html/files/object.xml new file mode 100644 index 0000000..824f7fc --- /dev/null +++ b/test/testcases/tests/level2/html/files/object.xml @@ -0,0 +1,20 @@ + + + + +NIST DOM HTML Test - OBJECT + + +

    + +

    +
    +

    + +

    +
    + + + diff --git a/test/testcases/tests/level2/html/files/object2.html b/test/testcases/tests/level2/html/files/object2.html new file mode 100644 index 0000000..0a39363 --- /dev/null +++ b/test/testcases/tests/level2/html/files/object2.html @@ -0,0 +1,17 @@ + + + + +NIST DOM HTML Test - OBJECT + + +

    + +

    +
    +

    + +

    +
    + + diff --git a/test/testcases/tests/level2/html/files/object2.xhtml b/test/testcases/tests/level2/html/files/object2.xhtml new file mode 100644 index 0000000..e318a3c --- /dev/null +++ b/test/testcases/tests/level2/html/files/object2.xhtml @@ -0,0 +1,20 @@ + + + + +NIST DOM HTML Test - OBJECT + + +

    + +

    +
    +

    + +

    +
    + + + diff --git a/test/testcases/tests/level2/html/files/object2.xml b/test/testcases/tests/level2/html/files/object2.xml new file mode 100644 index 0000000..a41e03d --- /dev/null +++ b/test/testcases/tests/level2/html/files/object2.xml @@ -0,0 +1,20 @@ + + + + +NIST DOM HTML Test - OBJECT + + +

    + +

    +
    +

    + +

    +
    + + + diff --git a/test/testcases/tests/level2/html/object08.xml b/test/testcases/tests/level2/html/object08.xml new file mode 100644 index 0000000..32d32cf --- /dev/null +++ b/test/testcases/tests/level2/html/object08.xml @@ -0,0 +1,40 @@ + + + + + + +object08 +Netscape + +Horizontal space to the left and right of this image, applet, or object. +The value of attribute hspace of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/object08.xml.kfail b/test/testcases/tests/level2/html/object08.xml.kfail deleted file mode 100644 index 32d32cf..0000000 --- a/test/testcases/tests/level2/html/object08.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -object08 -Netscape - -Horizontal space to the left and right of this image, applet, or object. -The value of attribute hspace of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/object13.xml b/test/testcases/tests/level2/html/object13.xml new file mode 100644 index 0000000..a3a603a --- /dev/null +++ b/test/testcases/tests/level2/html/object13.xml @@ -0,0 +1,40 @@ + + + + + + +object13 +Netscape + +Vertical space above and below this image, applet, or object. +The value of attribute vspace of the object element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/object13.xml.kfail b/test/testcases/tests/level2/html/object13.xml.kfail deleted file mode 100644 index a3a603a..0000000 --- a/test/testcases/tests/level2/html/object13.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -object13 -Netscape - -Vertical space above and below this image, applet, or object. -The value of attribute vspace of the object element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - -- cgit v1.2.3 From 5a31bfe0233d501ca162848631a1e6ff5c87a275 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Sat, 17 May 2014 03:06:50 +0530 Subject: Param Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_param_element.h | 34 +++++ src/html/Makefile | 5 +- src/html/html_basefont_element.c | 8 +- src/html/html_document.c | 4 + src/html/html_document_strings.h | 1 + src/html/html_param_element.c | 155 +++++++++++++++++++++ src/html/html_param_element.h | 45 ++++++ .../tests/level1/html/HTMLParamElement01.xml | 41 ++++++ .../tests/level1/html/HTMLParamElement01.xml.kfail | 41 ------ .../tests/level1/html/HTMLParamElement02.xml | 42 ++++++ .../tests/level1/html/HTMLParamElement02.xml.kfail | 42 ------ .../tests/level1/html/HTMLParamElement03.xml | 43 ++++++ .../tests/level1/html/HTMLParamElement03.xml.kfail | 43 ------ .../tests/level1/html/HTMLParamElement04.xml | 43 ++++++ .../tests/level1/html/HTMLParamElement04.xml.kfail | 43 ------ 17 files changed, 417 insertions(+), 175 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLParamElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLParamElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLParamElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLParamElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLParamElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLParamElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLParamElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLParamElement04.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index f577585..93d4e61 100644 --- a/Makefile +++ b/Makefile @@ -118,6 +118,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_anchor_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_basefont_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_image_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_object_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_param_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 1503625..d8edf7e 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -77,6 +77,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_param_element.h b/include/dom/html/html_param_element.h index 2e182d5..be12789 100644 --- a/include/dom/html/html_param_element.h +++ b/include/dom/html/html_param_element.h @@ -3,5 +3,39 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_param_element_h_ +#define dom_html_param_element_h_ +#include +#include +#include + +typedef struct dom_html_param_element dom_html_param_element; + +dom_exception dom_html_param_element_get_name( + dom_html_param_element *element, dom_string **name); + +dom_exception dom_html_param_element_set_name( + dom_html_param_element *element, dom_string *name); + +dom_exception dom_html_param_element_get_type( + dom_html_param_element *element, dom_string **type); + +dom_exception dom_html_param_element_set_type( + dom_html_param_element *ele, dom_string *type); + +dom_exception dom_html_param_element_get_value( + dom_html_param_element *ele, dom_string **value); + +dom_exception dom_html_param_element_set_value( + dom_html_param_element *ele, dom_string *value); + +dom_exception dom_html_param_element_get_value_type( + dom_html_param_element *ele, dom_string **value_type); + +dom_exception dom_html_param_element_set_value_type( + dom_html_param_element *ele, dom_string *value_type); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 455ea21..bd9f935 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -13,10 +13,11 @@ DIR_SOURCES := \ html_pre_element.c html_br_element.c html_label_element.c \ html_ulist_element.c html_olist_element.c html_li_element.c \ html_font_element.c html_mod_element.c html_anchor_element.c \ - html_basefont_element.c html_image_element.c html_object_element.c + html_basefont_element.c html_image_element.c html_object_element.c \ + html_param_element.c UNINMPLEMENTED_SOURCES := \ - html_param_element.c html_applet_element.c html_map_element.c \ + html_applet_element.c html_map_element.c \ html_area_element.c html_script_element.c html_table_element.c \ html_tablecaption_element.c html_tablecol_element.c html_tablesection_element.c \ html_tablerow_element.c html_tablecell_element.c html_frameset_element.c \ diff --git a/src/html/html_basefont_element.c b/src/html/html_basefont_element.c index e524ed3..7aa20a0 100644 --- a/src/html/html_basefont_element.c +++ b/src/html/html_basefont_element.c @@ -32,7 +32,7 @@ static struct dom_element_protected_vtable _protect_vtable = { * \return DOM_NO_ERR on success, appropriate dom_exception on failure. */ dom_exception _dom_html_base_font_element_create(struct dom_html_document *doc, - dom_string *namespace, dom_string *base_fontfix, + dom_string *namespace, dom_string *prefix, struct dom_html_base_font_element **ele) { struct dom_node_internal *node; @@ -46,7 +46,7 @@ dom_exception _dom_html_base_font_element_create(struct dom_html_document *doc, node->base.vtable = &_dom_html_element_vtable; node->vtable = &_protect_vtable; - return _dom_html_base_font_element_initialise(doc, namespace, base_fontfix, *ele); + return _dom_html_base_font_element_initialise(doc, namespace, prefix, *ele); } /** @@ -57,12 +57,12 @@ dom_exception _dom_html_base_font_element_create(struct dom_html_document *doc, * \return DOM_NO_ERR on success, appropriate dom_exception on failure. */ dom_exception _dom_html_base_font_element_initialise(struct dom_html_document *doc, - dom_string *namespace, dom_string *base_fontfix, + dom_string *namespace, dom_string *prefix, struct dom_html_base_font_element *ele) { return _dom_html_element_initialise(doc, &ele->base, doc->memoised[hds_BASEFONT], - namespace, base_fontfix); + namespace, prefix); } /** diff --git a/src/html/html_document.c b/src/html/html_document.c index ae80712..a2d007f 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -45,6 +45,7 @@ #include "html/html_basefont_element.h" #include "html/html_image_element.h" #include "html/html_object_element.h" +#include "html/html_param_element.h" #include "core/attr.h" #include "core/string.h" @@ -311,6 +312,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_OBJECT])) { exc = _dom_html_object_element_create(html, namespace, prefix, (dom_html_object_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_PARAM])) { + exc = _dom_html_param_element_create(html, namespace, prefix, + (dom_html_param_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index e23cc0b..0805915 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -101,6 +101,7 @@ HTML_DOCUMENT_STRINGS_ACTION(date_time,datetime) HTML_DOCUMENT_STRINGS_ACTION(long_desc,longdesc) HTML_DOCUMENT_STRINGS_ACTION(code_base,codebase) HTML_DOCUMENT_STRINGS_ACTION(code_type,codetype) +HTML_DOCUMENT_STRINGS_ACTION(value_type,valuetype) /* HTML_DOCUMENT_STRINGS_ACTION1(type) */ HTML_DOCUMENT_STRINGS_ACTION(use_map,usemap) /* HTML_DOCUMENT_STRINGS_ACTION1(value) */ diff --git a/src/html/html_param_element.c b/src/html/html_param_element.c index 2e182d5..6bda015 100644 --- a/src/html/html_param_element.c +++ b/src/html/html_param_element.c @@ -3,5 +3,160 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include +#include + +#include "html/html_document.h" +#include "html/html_param_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_PARAM_ELEMENT + }, + DOM_HTML_PARAM_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_param_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_param_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_param_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_param_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_param_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_param_element object + * + * \param doc The document object + * \param ele The dom_html_param_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_param_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_param_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_PARAM], + namespace, prefix); +} + +/** + * Finalise a dom_html_param_element object + * + * \param ele The dom_html_param_element object + */ +void _dom_html_param_element_finalise(struct dom_html_param_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_param_element object + * + * \param ele The dom_html_param_element object + */ +void _dom_html_param_element_destroy(struct dom_html_param_element *ele) +{ + _dom_html_param_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_param_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_param_element_destroy(dom_node_internal *node) +{ + _dom_html_param_element_destroy((struct dom_html_param_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_param_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_param_element_get_##attr( \ + dom_html_param_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)-> \ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ + dom_exception dom_html_param_element_set_##attr( \ + dom_html_param_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)-> \ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) +SIMPLE_GET_SET(name); +SIMPLE_GET_SET(type); +SIMPLE_GET_SET(value); +SIMPLE_GET_SET(value_type); diff --git a/src/html/html_param_element.h b/src/html/html_param_element.h index 2e182d5..2cd8150 100644 --- a/src/html/html_param_element.h +++ b/src/html/html_param_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_param_element_h_ +#define dom_internal_html_param_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_param_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_param_element object */ +dom_exception _dom_html_param_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_param_element **ele); + +/* Initialise a dom_html_param_element object */ +dom_exception _dom_html_param_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_param_element *ele); + +/* Finalise a dom_html_param_element object */ +void _dom_html_param_element_finalise(struct dom_html_param_element *ele); + +/* Destroy a dom_html_param_element object */ +void _dom_html_param_element_destroy(struct dom_html_param_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_param_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_param_element_destroy(dom_node_internal *node); +dom_exception _dom_html_param_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_PARAM_ELEMENT_PROTECT_VTABLE \ + _dom_html_param_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_PARAM_ELEMENT \ + _dom_virtual_html_param_element_destroy, \ + _dom_html_param_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLParamElement01.xml b/test/testcases/tests/level1/html/HTMLParamElement01.xml new file mode 100644 index 0000000..33f9238 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLParamElement01.xml @@ -0,0 +1,41 @@ + + + + + + +HTMLParamElement01 +NIST + + The name attribute specifies the name of the run-time parameter. + + Retrieve the name attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLParamElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLParamElement01.xml.kfail deleted file mode 100644 index 33f9238..0000000 --- a/test/testcases/tests/level1/html/HTMLParamElement01.xml.kfail +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - -HTMLParamElement01 -NIST - - The name attribute specifies the name of the run-time parameter. - - Retrieve the name attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLParamElement02.xml b/test/testcases/tests/level1/html/HTMLParamElement02.xml new file mode 100644 index 0000000..52e3b8a --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLParamElement02.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLParamElement02 +NIST + + The value attribute specifies the value of the run-time parameter. + + Retrieve the value attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLParamElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLParamElement02.xml.kfail deleted file mode 100644 index 52e3b8a..0000000 --- a/test/testcases/tests/level1/html/HTMLParamElement02.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLParamElement02 -NIST - - The value attribute specifies the value of the run-time parameter. - - Retrieve the value attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLParamElement03.xml b/test/testcases/tests/level1/html/HTMLParamElement03.xml new file mode 100644 index 0000000..48b227a --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLParamElement03.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLParamElement03 +NIST + + The valueType attribute specifies information about the meaning of the + value specified by the value attribute. + + Retrieve the valueType attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLParamElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLParamElement03.xml.kfail deleted file mode 100644 index 48b227a..0000000 --- a/test/testcases/tests/level1/html/HTMLParamElement03.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLParamElement03 -NIST - - The valueType attribute specifies information about the meaning of the - value specified by the value attribute. - - Retrieve the valueType attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLParamElement04.xml b/test/testcases/tests/level1/html/HTMLParamElement04.xml new file mode 100644 index 0000000..da298fd --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLParamElement04.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLParamElement04 +NIST + + The type attribute specifies the content type for the value attribute + when valuetype has the value ref. + + Retrieve the type attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLParamElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLParamElement04.xml.kfail deleted file mode 100644 index da298fd..0000000 --- a/test/testcases/tests/level1/html/HTMLParamElement04.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLParamElement04 -NIST - - The type attribute specifies the content type for the value attribute - when valuetype has the value ref. - - Retrieve the type attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From adea85fad0882b49e70087c03c173fae6bf8d121 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Sat, 17 May 2014 03:48:13 +0530 Subject: Applet Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_applet_element.h | 78 +++++++++ src/html/Makefile | 4 +- src/html/html_applet_element.c | 191 +++++++++++++++++++++ src/html/html_applet_element.h | 45 +++++ src/html/html_document.c | 4 + src/html/html_document_strings.h | 1 + .../tests/level1/html/HTMLAppletElement01.xml | 43 +++++ .../level1/html/HTMLAppletElement01.xml.notimpl | 43 ----- .../tests/level1/html/HTMLAppletElement02.xml | 43 +++++ .../level1/html/HTMLAppletElement02.xml.notimpl | 43 ----- .../tests/level1/html/HTMLAppletElement03.xml | 42 +++++ .../level1/html/HTMLAppletElement03.xml.notimpl | 42 ----- .../tests/level1/html/HTMLAppletElement04.xml | 42 +++++ .../level1/html/HTMLAppletElement04.xml.notimpl | 42 ----- .../tests/level1/html/HTMLAppletElement05.xml | 42 +++++ .../level1/html/HTMLAppletElement05.xml.notimpl | 42 ----- .../tests/level1/html/HTMLAppletElement06.xml | 42 +++++ .../level1/html/HTMLAppletElement06.xml.notimpl | 42 ----- .../level1/html/HTMLAppletElement07.xml.kfail | 51 ++++++ .../level1/html/HTMLAppletElement07.xml.notimpl | 51 ------ .../tests/level1/html/HTMLAppletElement08.xml | 42 +++++ .../level1/html/HTMLAppletElement08.xml.notimpl | 42 ----- .../level1/html/HTMLAppletElement09.xml.kfail | 51 ++++++ .../level1/html/HTMLAppletElement09.xml.notimpl | 51 ------ .../tests/level1/html/HTMLAppletElement10.xml | 42 +++++ .../level1/html/HTMLAppletElement10.xml.notimpl | 42 ----- .../tests/level1/html/HTMLAppletElement11.xml | 43 +++++ .../level1/html/HTMLAppletElement11.xml.notimpl | 43 ----- .../tests/level2/html/HTMLAppletElement07.xml | 42 +++++ .../level2/html/HTMLAppletElement07.xml.kfail | 42 ----- .../tests/level2/html/HTMLAppletElement09.xml | 42 +++++ .../level2/html/HTMLAppletElement09.xml.kfail | 42 ----- test/testcases/tests/level2/html/files/applet.html | 12 ++ .../testcases/tests/level2/html/files/applet.xhtml | 15 ++ test/testcases/tests/level2/html/files/applet.xml | 15 ++ .../testcases/tests/level2/html/files/applet2.html | 12 ++ .../tests/level2/html/files/applet2.xhtml | 15 ++ test/testcases/tests/level2/html/files/applet2.xml | 15 ++ 40 files changed, 974 insertions(+), 569 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLAppletElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAppletElement01.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAppletElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAppletElement02.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAppletElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAppletElement03.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAppletElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAppletElement04.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAppletElement05.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAppletElement05.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAppletElement06.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAppletElement06.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAppletElement07.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLAppletElement07.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAppletElement08.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAppletElement08.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAppletElement09.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLAppletElement09.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAppletElement10.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAppletElement10.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLAppletElement11.xml delete mode 100644 test/testcases/tests/level1/html/HTMLAppletElement11.xml.notimpl create mode 100644 test/testcases/tests/level2/html/HTMLAppletElement07.xml delete mode 100644 test/testcases/tests/level2/html/HTMLAppletElement07.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLAppletElement09.xml delete mode 100644 test/testcases/tests/level2/html/HTMLAppletElement09.xml.kfail create mode 100644 test/testcases/tests/level2/html/files/applet.html create mode 100644 test/testcases/tests/level2/html/files/applet.xhtml create mode 100644 test/testcases/tests/level2/html/files/applet.xml create mode 100644 test/testcases/tests/level2/html/files/applet2.html create mode 100644 test/testcases/tests/level2/html/files/applet2.xhtml create mode 100644 test/testcases/tests/level2/html/files/applet2.xml (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 93d4e61..d3c73cc 100644 --- a/Makefile +++ b/Makefile @@ -119,6 +119,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_basefont_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_image_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_object_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_param_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_applet_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index d8edf7e..2a2e1cc 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -78,6 +78,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_applet_element.h b/include/dom/html/html_applet_element.h index 2e182d5..29e5c62 100644 --- a/include/dom/html/html_applet_element.h +++ b/include/dom/html/html_applet_element.h @@ -3,5 +3,83 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_applet_element_h_ +#define dom_html_applet_element_h_ + +#include +#include +#include + +typedef struct dom_html_applet_element dom_html_applet_element; + +dom_exception dom_html_applet_element_get_align( + dom_html_applet_element *applet, dom_string **align); + +dom_exception dom_html_applet_element_set_align( + dom_html_applet_element *applet, dom_string *align); + +dom_exception dom_html_applet_element_get_alt( + dom_html_applet_element *applet, dom_string **alt); + +dom_exception dom_html_applet_element_set_alt( + dom_html_applet_element *applet, dom_string *alt); + +dom_exception dom_html_applet_element_get_archive( + dom_html_applet_element *applet, dom_string **archive); + +dom_exception dom_html_applet_element_set_archive( + dom_html_applet_element *applet, dom_string *archive); + +dom_exception dom_html_applet_element_get_code( + dom_html_applet_element *applet, dom_string **code); + +dom_exception dom_html_applet_element_set_code( + dom_html_applet_element *applet, dom_string *code); + +dom_exception dom_html_applet_element_get_code_base( + dom_html_applet_element *applet, dom_string **code_base); + +dom_exception dom_html_applet_element_set_code_base( + dom_html_applet_element *applet, dom_string *code_base); + +dom_exception dom_html_applet_element_get_height( + dom_html_applet_element *applet, dom_string **height); + +dom_exception dom_html_applet_element_set_height( + dom_html_applet_element *applet, dom_string *height); + +dom_exception dom_html_applet_element_get_name( + dom_html_applet_element *applet, dom_string **name); + +dom_exception dom_html_applet_element_set_name( + dom_html_applet_element *applet, dom_string *name); + +dom_exception dom_html_applet_element_get_object( + dom_html_applet_element *applet, dom_string **object); + +dom_exception dom_html_applet_element_set_object( + dom_html_applet_element *applet, dom_string *object); + +dom_exception dom_html_applet_element_get_width( + dom_html_applet_element *applet, dom_string **width); + +dom_exception dom_html_applet_element_set_width( + dom_html_applet_element *applet, dom_string *width); + + +dom_exception dom_html_applet_element_get_hspace( + dom_html_applet_element *applet, int32_t *hspace); + +dom_exception dom_html_applet_element_set_hspace( + dom_html_applet_element *applet, uint32_t hspace); + +dom_exception dom_html_applet_element_get_vspace( + dom_html_applet_element *applet, int32_t *vspace); + +dom_exception dom_html_applet_element_set_vspace( + dom_html_applet_element *applet, uint32_t vspace); +#endif + diff --git a/src/html/Makefile b/src/html/Makefile index bd9f935..0d8bcae 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -14,10 +14,10 @@ DIR_SOURCES := \ html_ulist_element.c html_olist_element.c html_li_element.c \ html_font_element.c html_mod_element.c html_anchor_element.c \ html_basefont_element.c html_image_element.c html_object_element.c \ - html_param_element.c + html_param_element.c html_applet_element.c UNINMPLEMENTED_SOURCES := \ - html_applet_element.c html_map_element.c \ + html_map_element.c \ html_area_element.c html_script_element.c html_table_element.c \ html_tablecaption_element.c html_tablecol_element.c html_tablesection_element.c \ html_tablerow_element.c html_tablecell_element.c html_frameset_element.c \ diff --git a/src/html/html_applet_element.c b/src/html/html_applet_element.c index 2e182d5..9f6c16f 100644 --- a/src/html/html_applet_element.c +++ b/src/html/html_applet_element.c @@ -3,5 +3,196 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_applet_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_APPLET_ELEMENT + }, + DOM_HTML_APPLET_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_applet_element applet + * + * \param doc The document applet + * \param ele The returned element applet + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_applet_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_applet_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_applet_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_applet_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_applet_element applet + * + * \param doc The document applet + * \param ele The dom_html_applet_element applet + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_applet_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_applet_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_APPLET], + namespace, prefix); +} + +/** + * Finalise a dom_html_applet_element applet + * + * \param ele The dom_html_applet_element applet + */ +void _dom_html_applet_element_finalise(struct dom_html_applet_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_applet_element applet + * + * \param ele The dom_html_applet_element applet + */ +void _dom_html_applet_element_destroy(struct dom_html_applet_element *ele) +{ + _dom_html_applet_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_applet_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_applet_element_destroy(dom_node_internal *node) +{ + _dom_html_applet_element_destroy((struct dom_html_applet_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_applet_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_applet_element_get_##attr( \ + dom_html_applet_element *element, \ + dom_string **attr) \ +{ \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ +} +#define SIMPLE_SET(attr) \ + dom_exception dom_html_applet_element_set_##attr( \ + dom_html_applet_element *element, \ + dom_string *attr) \ +{ \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ +} + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(align); +SIMPLE_GET_SET(alt); +SIMPLE_GET_SET(archive); +SIMPLE_GET_SET(code); +SIMPLE_GET_SET(code_base); +SIMPLE_GET_SET(height); +SIMPLE_GET_SET(name); +SIMPLE_GET_SET(object); +SIMPLE_GET_SET(width); + +dom_exception dom_html_applet_element_get_hspace( + dom_html_applet_element *applet, int32_t *hspace) +{ + return dom_html_element_get_int32_t_property(&applet->base, "hspace", + SLEN("hspace"), hspace); +} + +dom_exception dom_html_applet_element_set_hspace( + dom_html_applet_element *applet, uint32_t hspace) +{ + return dom_html_element_set_int32_t_property(&applet->base, "hspace", + SLEN("hspace"), hspace); +} + +dom_exception dom_html_applet_element_get_vspace( + dom_html_applet_element *applet, int32_t *vspace) +{ + return dom_html_element_get_int32_t_property(&applet->base, "vspace", + SLEN("vspace"), vspace); +} + +dom_exception dom_html_applet_element_set_vspace( + dom_html_applet_element *applet, uint32_t vspace) +{ + return dom_html_element_set_int32_t_property(&applet->base, "vspace", + SLEN("vspace"), vspace); +} + diff --git a/src/html/html_applet_element.h b/src/html/html_applet_element.h index 2e182d5..21e6d7a 100644 --- a/src/html/html_applet_element.h +++ b/src/html/html_applet_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_applet_element_h_ +#define dom_internal_html_applet_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_applet_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_applet_element object */ +dom_exception _dom_html_applet_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_applet_element **ele); + +/* Initialise a dom_html_applet_element object */ +dom_exception _dom_html_applet_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_applet_element *ele); + +/* Finalise a dom_html_applet_element object */ +void _dom_html_applet_element_finalise(struct dom_html_applet_element *ele); + +/* Destroy a dom_html_applet_element object */ +void _dom_html_applet_element_destroy(struct dom_html_applet_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_applet_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_applet_element_destroy(dom_node_internal *node); +dom_exception _dom_html_applet_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_APPLET_ELEMENT_PROTECT_VTABLE \ + _dom_html_applet_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_APPLET_ELEMENT \ + _dom_virtual_html_applet_element_destroy, \ + _dom_html_applet_element_copy + +#endif diff --git a/src/html/html_document.c b/src/html/html_document.c index a2d007f..08dbe23 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -46,6 +46,7 @@ #include "html/html_image_element.h" #include "html/html_object_element.h" #include "html/html_param_element.h" +#include "html/html_applet_element.h" #include "core/attr.h" #include "core/string.h" @@ -315,6 +316,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_PARAM])) { exc = _dom_html_param_element_create(html, namespace, prefix, (dom_html_param_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_APPLET])) { + exc = _dom_html_applet_element_create(html, namespace, prefix, + (dom_html_applet_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index 0805915..ad8e602 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -95,6 +95,7 @@ HTML_DOCUMENT_STRINGS_ACTION1(archive) HTML_DOCUMENT_STRINGS_ACTION1(data) HTML_DOCUMENT_STRINGS_ACTION1(height) HTML_DOCUMENT_STRINGS_ACTION1(standby) +HTML_DOCUMENT_STRINGS_ACTION1(object) HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex) HTML_DOCUMENT_STRINGS_ACTION(html_for,for) HTML_DOCUMENT_STRINGS_ACTION(date_time,datetime) diff --git a/test/testcases/tests/level1/html/HTMLAppletElement01.xml b/test/testcases/tests/level1/html/HTMLAppletElement01.xml new file mode 100644 index 0000000..7be4ac6 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAppletElement01.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLAppletElement01 +NIST + + The align attribute specifies the alignment of the object(Vertically + or Horizontally) with respect to its surrounding text. + + Retrieve the align attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAppletElement01.xml.notimpl b/test/testcases/tests/level1/html/HTMLAppletElement01.xml.notimpl deleted file mode 100644 index 7be4ac6..0000000 --- a/test/testcases/tests/level1/html/HTMLAppletElement01.xml.notimpl +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLAppletElement01 -NIST - - The align attribute specifies the alignment of the object(Vertically - or Horizontally) with respect to its surrounding text. - - Retrieve the align attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAppletElement02.xml b/test/testcases/tests/level1/html/HTMLAppletElement02.xml new file mode 100644 index 0000000..2042f0a --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAppletElement02.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLAppletElement02 +NIST + + The alt attribute specifies the alternate text for user agents not + rendering the normal context of this element. + + Retrieve the alt attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAppletElement02.xml.notimpl b/test/testcases/tests/level1/html/HTMLAppletElement02.xml.notimpl deleted file mode 100644 index 2042f0a..0000000 --- a/test/testcases/tests/level1/html/HTMLAppletElement02.xml.notimpl +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLAppletElement02 -NIST - - The alt attribute specifies the alternate text for user agents not - rendering the normal context of this element. - - Retrieve the alt attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAppletElement03.xml b/test/testcases/tests/level1/html/HTMLAppletElement03.xml new file mode 100644 index 0000000..a68e3e0 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAppletElement03.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLAppletElement03 +NIST + + The archive attribute specifies a comma-seperated archive list. + + Retrieve the archive attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAppletElement03.xml.notimpl b/test/testcases/tests/level1/html/HTMLAppletElement03.xml.notimpl deleted file mode 100644 index a68e3e0..0000000 --- a/test/testcases/tests/level1/html/HTMLAppletElement03.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLAppletElement03 -NIST - - The archive attribute specifies a comma-seperated archive list. - - Retrieve the archive attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAppletElement04.xml b/test/testcases/tests/level1/html/HTMLAppletElement04.xml new file mode 100644 index 0000000..23e8bb6 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAppletElement04.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLAppletElement04 +NIST + + The code attribute specifies the applet class file. + + Retrieve the code attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAppletElement04.xml.notimpl b/test/testcases/tests/level1/html/HTMLAppletElement04.xml.notimpl deleted file mode 100644 index 23e8bb6..0000000 --- a/test/testcases/tests/level1/html/HTMLAppletElement04.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLAppletElement04 -NIST - - The code attribute specifies the applet class file. - - Retrieve the code attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAppletElement05.xml b/test/testcases/tests/level1/html/HTMLAppletElement05.xml new file mode 100644 index 0000000..81076d1 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAppletElement05.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLAppletElement05 +NIST + + The codeBase attribute specifies an optional base URI for the applet. + + Retrieve the codeBase attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAppletElement05.xml.notimpl b/test/testcases/tests/level1/html/HTMLAppletElement05.xml.notimpl deleted file mode 100644 index 81076d1..0000000 --- a/test/testcases/tests/level1/html/HTMLAppletElement05.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLAppletElement05 -NIST - - The codeBase attribute specifies an optional base URI for the applet. - - Retrieve the codeBase attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAppletElement06.xml b/test/testcases/tests/level1/html/HTMLAppletElement06.xml new file mode 100644 index 0000000..1d280da --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAppletElement06.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLAppletElement06 +NIST + + The height attribute overrides the height. + + Retrieve the height attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAppletElement06.xml.notimpl b/test/testcases/tests/level1/html/HTMLAppletElement06.xml.notimpl deleted file mode 100644 index 1d280da..0000000 --- a/test/testcases/tests/level1/html/HTMLAppletElement06.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLAppletElement06 -NIST - - The height attribute overrides the height. - - Retrieve the height attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAppletElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLAppletElement07.xml.kfail new file mode 100644 index 0000000..d3b4858 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAppletElement07.xml.kfail @@ -0,0 +1,51 @@ + + + + + + + +HTMLAppletElement07 +NIST + + The hspace attribute specifies the horizontal space to the left + and right of this image, applet, or object. Retrieve the hspace attribute and examine its value. + + This test is incompatible with L2 HTML implementations due to a change in the type of the attribute. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAppletElement07.xml.notimpl b/test/testcases/tests/level1/html/HTMLAppletElement07.xml.notimpl deleted file mode 100644 index d3b4858..0000000 --- a/test/testcases/tests/level1/html/HTMLAppletElement07.xml.notimpl +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - -HTMLAppletElement07 -NIST - - The hspace attribute specifies the horizontal space to the left - and right of this image, applet, or object. Retrieve the hspace attribute and examine its value. - - This test is incompatible with L2 HTML implementations due to a change in the type of the attribute. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAppletElement08.xml b/test/testcases/tests/level1/html/HTMLAppletElement08.xml new file mode 100644 index 0000000..a473f23 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAppletElement08.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLAppletElement08 +NIST + + The name attribute specifies the name of the applet. + + Retrieve the name attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAppletElement08.xml.notimpl b/test/testcases/tests/level1/html/HTMLAppletElement08.xml.notimpl deleted file mode 100644 index a473f23..0000000 --- a/test/testcases/tests/level1/html/HTMLAppletElement08.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLAppletElement08 -NIST - - The name attribute specifies the name of the applet. - - Retrieve the name attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAppletElement09.xml.kfail b/test/testcases/tests/level1/html/HTMLAppletElement09.xml.kfail new file mode 100644 index 0000000..98d2413 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAppletElement09.xml.kfail @@ -0,0 +1,51 @@ + + + + + + + +HTMLAppletElement09 +NIST + + The vspace attribute specifies the vertical space above and below + this image, applet or object. Retrieve the vspace attribute and examine its value. + + This test is incompatible with L2 HTML implementations due to a change in the type of the attribute. + + +Mary Brady +2002-02-22 + + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAppletElement09.xml.notimpl b/test/testcases/tests/level1/html/HTMLAppletElement09.xml.notimpl deleted file mode 100644 index 98d2413..0000000 --- a/test/testcases/tests/level1/html/HTMLAppletElement09.xml.notimpl +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - -HTMLAppletElement09 -NIST - - The vspace attribute specifies the vertical space above and below - this image, applet or object. Retrieve the vspace attribute and examine its value. - - This test is incompatible with L2 HTML implementations due to a change in the type of the attribute. - - -Mary Brady -2002-02-22 - - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAppletElement10.xml b/test/testcases/tests/level1/html/HTMLAppletElement10.xml new file mode 100644 index 0000000..2cf1b6a --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAppletElement10.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLAppletElement10 +NIST + + The width attribute overrides the regular width. + + Retrieve the width attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAppletElement10.xml.notimpl b/test/testcases/tests/level1/html/HTMLAppletElement10.xml.notimpl deleted file mode 100644 index 2cf1b6a..0000000 --- a/test/testcases/tests/level1/html/HTMLAppletElement10.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLAppletElement10 -NIST - - The width attribute overrides the regular width. - - Retrieve the width attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLAppletElement11.xml b/test/testcases/tests/level1/html/HTMLAppletElement11.xml new file mode 100644 index 0000000..91cba8b --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLAppletElement11.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLAppletElement11 +NIST + + The object attribute specifies the serialized applet file. + + Retrieve the object attribute and examine its value. + +Rick Rivello +Curt Arnold +2002-07-19 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLAppletElement11.xml.notimpl b/test/testcases/tests/level1/html/HTMLAppletElement11.xml.notimpl deleted file mode 100644 index 91cba8b..0000000 --- a/test/testcases/tests/level1/html/HTMLAppletElement11.xml.notimpl +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLAppletElement11 -NIST - - The object attribute specifies the serialized applet file. - - Retrieve the object attribute and examine its value. - -Rick Rivello -Curt Arnold -2002-07-19 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLAppletElement07.xml b/test/testcases/tests/level2/html/HTMLAppletElement07.xml new file mode 100644 index 0000000..07a6c0d --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLAppletElement07.xml @@ -0,0 +1,42 @@ + + + + + + +HTMLAppletElement07 +NIST + + The hspace attribute specifies the horizontal space to the left + and right of this image, applet, or object. + + Retrieve the hspace attribute and examine it's value. + +Mary Brady +2001-12-03 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLAppletElement07.xml.kfail b/test/testcases/tests/level2/html/HTMLAppletElement07.xml.kfail deleted file mode 100644 index 07a6c0d..0000000 --- a/test/testcases/tests/level2/html/HTMLAppletElement07.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -HTMLAppletElement07 -NIST - - The hspace attribute specifies the horizontal space to the left - and right of this image, applet, or object. - - Retrieve the hspace attribute and examine it's value. - -Mary Brady -2001-12-03 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLAppletElement09.xml b/test/testcases/tests/level2/html/HTMLAppletElement09.xml new file mode 100644 index 0000000..b602397 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLAppletElement09.xml @@ -0,0 +1,42 @@ + + + + + + +HTMLAppletElement09 +NIST + + The vspace attribute specifies the vertical space above and below + this image, applet or object. + + Retrieve the vspace attribute and examine it's value. + +Mary Brady +2001-12-03 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLAppletElement09.xml.kfail b/test/testcases/tests/level2/html/HTMLAppletElement09.xml.kfail deleted file mode 100644 index b602397..0000000 --- a/test/testcases/tests/level2/html/HTMLAppletElement09.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -HTMLAppletElement09 -NIST - - The vspace attribute specifies the vertical space above and below - this image, applet or object. - - Retrieve the vspace attribute and examine it's value. - -Mary Brady -2001-12-03 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/files/applet.html b/test/testcases/tests/level2/html/files/applet.html new file mode 100644 index 0000000..d721cf1 --- /dev/null +++ b/test/testcases/tests/level2/html/files/applet.html @@ -0,0 +1,12 @@ + + + + +NIST DOM HTML Test - Applet + + +

    + +

    + + diff --git a/test/testcases/tests/level2/html/files/applet.xhtml b/test/testcases/tests/level2/html/files/applet.xhtml new file mode 100644 index 0000000..cf2070c --- /dev/null +++ b/test/testcases/tests/level2/html/files/applet.xhtml @@ -0,0 +1,15 @@ + + + + +NIST DOM HTML Test - Applet + + +

    + +

    + + + diff --git a/test/testcases/tests/level2/html/files/applet.xml b/test/testcases/tests/level2/html/files/applet.xml new file mode 100644 index 0000000..cf2070c --- /dev/null +++ b/test/testcases/tests/level2/html/files/applet.xml @@ -0,0 +1,15 @@ + + + + +NIST DOM HTML Test - Applet + + +

    + +

    + + + diff --git a/test/testcases/tests/level2/html/files/applet2.html b/test/testcases/tests/level2/html/files/applet2.html new file mode 100644 index 0000000..0379ed1 --- /dev/null +++ b/test/testcases/tests/level2/html/files/applet2.html @@ -0,0 +1,12 @@ + + + + +NIST DOM HTML Test - Applet + + +

    + +

    + + diff --git a/test/testcases/tests/level2/html/files/applet2.xhtml b/test/testcases/tests/level2/html/files/applet2.xhtml new file mode 100644 index 0000000..43b27da --- /dev/null +++ b/test/testcases/tests/level2/html/files/applet2.xhtml @@ -0,0 +1,15 @@ + + + + +NIST DOM HTML Test - Applet + + +

    + +

    + + + diff --git a/test/testcases/tests/level2/html/files/applet2.xml b/test/testcases/tests/level2/html/files/applet2.xml new file mode 100644 index 0000000..43b27da --- /dev/null +++ b/test/testcases/tests/level2/html/files/applet2.xml @@ -0,0 +1,15 @@ + + + + +NIST DOM HTML Test - Applet + + +

    + +

    + + + -- cgit v1.2.3 From 2c4fcd2e416c51dc95af1e9054df1dc1fa28ff25 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Sun, 18 May 2014 07:57:15 +0530 Subject: [Map Element Rev.2(fix)] & [Script Element add] --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_script_element.h | 52 +++++ src/html/Makefile | 4 +- src/html/TODO | 2 +- src/html/html_document.c | 12 ++ src/html/html_document_strings.h | 2 + src/html/html_map_element.c | 19 +- src/html/html_script_element.c | 213 +++++++++++++++++++++ src/html/html_script_element.h | 45 +++++ .../tests/level1/html/HTMLScriptElement01.xml | 42 ++++ .../level1/html/HTMLScriptElement01.xml.kfail | 42 ---- .../tests/level1/html/HTMLScriptElement02.xml | 43 +++++ .../level1/html/HTMLScriptElement02.xml.kfail | 43 ----- .../tests/level1/html/HTMLScriptElement03.xml | 43 +++++ .../level1/html/HTMLScriptElement03.xml.kfail | 43 ----- .../tests/level1/html/HTMLScriptElement04.xml | 42 ++++ .../level1/html/HTMLScriptElement04.xml.kfail | 42 ---- .../tests/level1/html/HTMLScriptElement05.xml | 42 ++++ .../level1/html/HTMLScriptElement05.xml.kfail | 42 ---- .../tests/level1/html/HTMLScriptElement06.xml | 38 ++++ .../level1/html/HTMLScriptElement06.xml.kfail | 38 ---- .../tests/level1/html/HTMLScriptElement07.xml | 38 ++++ .../level1/html/HTMLScriptElement07.xml.kfail | 38 ---- 24 files changed, 626 insertions(+), 301 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLScriptElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLScriptElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLScriptElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLScriptElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLScriptElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLScriptElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLScriptElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLScriptElement04.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLScriptElement05.xml delete mode 100644 test/testcases/tests/level1/html/HTMLScriptElement05.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLScriptElement06.xml delete mode 100644 test/testcases/tests/level1/html/HTMLScriptElement06.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLScriptElement07.xml delete mode 100644 test/testcases/tests/level1/html/HTMLScriptElement07.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 29917ff..a50b2db 100644 --- a/Makefile +++ b/Makefile @@ -122,6 +122,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_param_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_applet_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_area_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_map_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_script_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 8a1b5e5..b23ede0 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -81,6 +81,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_script_element.h b/include/dom/html/html_script_element.h index 2e182d5..b7df3aa 100644 --- a/include/dom/html/html_script_element.h +++ b/include/dom/html/html_script_element.h @@ -3,5 +3,57 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_script_element_h_ +#define dom_html_script_element_h_ +#include +#include +#include + +typedef struct dom_html_script_element dom_html_script_element; + +dom_exception dom_html_script_element_get_defer( + dom_html_script_element *ele, bool *defer); + +dom_exception dom_html_script_element_set_defer( + dom_html_script_element *ele, bool defer); + +dom_exception dom_html_script_element_get_text( + dom_html_script_element *element, dom_string **text); + +dom_exception dom_html_script_element_set_text( + dom_html_script_element *element, dom_string *text); + +dom_exception dom_html_script_element_get_html_for( + dom_html_script_element *element, dom_string **html_for); + +dom_exception dom_html_script_element_set_html_for( + dom_html_script_element *element, dom_string *html_for); + +dom_exception dom_html_script_element_get_event( + dom_html_script_element *element, dom_string **event); + +dom_exception dom_html_script_element_set_event( + dom_html_script_element *ele, dom_string *event); + +dom_exception dom_html_script_element_get_charset( + dom_html_script_element *ele, dom_string **charset); + +dom_exception dom_html_script_element_set_charset( + dom_html_script_element *ele, dom_string *charset); + +dom_exception dom_html_script_element_get_src( + dom_html_script_element *ele, dom_string **src); + +dom_exception dom_html_script_element_set_src( + dom_html_script_element *ele, dom_string *src); + +dom_exception dom_html_script_element_get_type( + dom_html_script_element *ele, dom_string **type); + +dom_exception dom_html_script_element_set_type( + dom_html_script_element *ele, dom_string *type); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 240f54e..66d6ab0 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -15,10 +15,10 @@ DIR_SOURCES := \ html_font_element.c html_mod_element.c html_anchor_element.c \ html_basefont_element.c html_image_element.c html_object_element.c \ html_param_element.c html_applet_element.c html_area_element.c \ - html_map_element.c + html_map_element.c html_script_element.c UNINMPLEMENTED_SOURCES := \ - html_script_element.c html_table_element.c \ + html_table_element.c \ html_tablecaption_element.c html_tablecol_element.c html_tablesection_element.c \ html_tablerow_element.c html_tablecell_element.c html_frameset_element.c \ html_frame_element.c html_iframe_element.c diff --git a/src/html/TODO b/src/html/TODO index 28ff163..3888e23 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -45,7 +45,7 @@ HTMLParamElement html_param_element DONE HTMLAppletElement html_applet_element DONE HTMLMapElement html_map_element DONE HTMLAreaElement html_area_element DONE -HTMLScriptElement html_script_element MISSING +HTMLScriptElement html_script_element DONE HTMLTableElement html_table_element MISSING HTMLTableCaptionElement html_tablecaption_element MISSING HTMLTableColElement html_tablecol_element MISSING diff --git a/src/html/html_document.c b/src/html/html_document.c index 08dbe23..b7bf117 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -47,6 +47,9 @@ #include "html/html_object_element.h" #include "html/html_param_element.h" #include "html/html_applet_element.h" +#include "html/html_map_element.h" +#include "html/html_area_element.h" +#include "html/html_script_element.h" #include "core/attr.h" #include "core/string.h" @@ -319,6 +322,15 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_APPLET])) { exc = _dom_html_applet_element_create(html, namespace, prefix, (dom_html_applet_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_MAP])) { + exc = _dom_html_map_element_create(html, namespace, prefix, + (dom_html_map_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_AREA])) { + exc = _dom_html_area_element_create(html, namespace, prefix, + (dom_html_area_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_SCRIPT])) { + exc = _dom_html_script_element_create(html, namespace, prefix, + (dom_html_script_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index ad8e602..8ed3bb2 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -96,6 +96,8 @@ HTML_DOCUMENT_STRINGS_ACTION1(data) HTML_DOCUMENT_STRINGS_ACTION1(height) HTML_DOCUMENT_STRINGS_ACTION1(standby) HTML_DOCUMENT_STRINGS_ACTION1(object) +HTML_DOCUMENT_STRINGS_ACTION1(event) +HTML_DOCUMENT_STRINGS_ACTION1(defer) HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex) HTML_DOCUMENT_STRINGS_ACTION(html_for,for) HTML_DOCUMENT_STRINGS_ACTION(date_time,datetime) diff --git a/src/html/html_map_element.c b/src/html/html_map_element.c index bdd4ef0..cf0fe5e 100644 --- a/src/html/html_map_element.c +++ b/src/html/html_map_element.c @@ -165,10 +165,13 @@ SIMPLE_GET_SET(name); /* The callback function for _dom_html_collection_create*/ bool callback(struct dom_node_internal *node, void *ctx) { - if(dom_string_caseless_isequal - (node->name,((dom_html_document *)ctx)->memoised[hds_AREA])) { + if(node->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(node->name, + ((dom_html_document *)ctx)->memoised[hds_AREA])) + { return true; } + return false; } @@ -185,12 +188,8 @@ dom_exception dom_html_map_element_get_areas( { dom_html_document *doc = (dom_html_document *) ((dom_node_internal *) ele)->owner; - dom_node_internal *root = ((dom_node_internal *) ele); - - while (root->parent != NULL) { - root = root->parent; - } - - return _dom_html_collection_create(doc, root, - callback, (void *)doc, areas); + + /*doc is passed as a parameter to callback to avoid repeated calculations */ + return _dom_html_collection_create(doc, (dom_node_internal *) ele, + callback, (void *) doc, areas); } diff --git a/src/html/html_script_element.c b/src/html/html_script_element.c index 2e182d5..f107d45 100644 --- a/src/html/html_script_element.c +++ b/src/html/html_script_element.c @@ -3,5 +3,218 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include +#include + +#include "html/html_document.h" +#include "html/html_script_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_SCRIPT_ELEMENT + }, + DOM_HTML_SCRIPT_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_script_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_script_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_script_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_script_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_script_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_script_element object + * + * \param doc The document object + * \param ele The dom_html_script_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_script_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_script_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_SCRIPT], + namespace, prefix); +} + +/** + * Finalise a dom_html_script_element object + * + * \param ele The dom_html_script_element object + */ +void _dom_html_script_element_finalise(struct dom_html_script_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_script_element object + * + * \param ele The dom_html_script_element object + */ +void _dom_html_script_element_destroy(struct dom_html_script_element *ele) +{ + _dom_html_script_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_script_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_script_element_destroy(dom_node_internal *node) +{ + _dom_html_script_element_destroy((struct dom_html_script_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_script_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_script_element_get_##attr( \ + dom_html_script_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_script_element_set_##attr( \ + dom_html_script_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(html_for); +SIMPLE_GET_SET(event); +SIMPLE_GET_SET(charset); +SIMPLE_GET_SET(src); +SIMPLE_GET_SET(type); + +/** + * Get the defer property + * + * \param ele The dom_html_script_element object + * \param defer The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_script_element_get_defer(dom_html_script_element *ele, + bool *defer) +{ + return dom_html_element_get_bool_property(&ele->base, "defer", + SLEN("defer"), defer); +} + +/** + * Set the defer property + * + * \param ele The dom_html_script_element object + * \param defer The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_script_element_set_defer(dom_html_script_element *ele, + bool defer) +{ + return dom_html_element_set_bool_property(&ele->base, "defer", + SLEN("defer"), defer); +} + +/** + * Get the text property + * + * \param ele The dom_html_script_element object + * \param text The returned dom_string object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_script_element_get_text( + dom_html_script_element *ele, + dom_string **text) +{ + return _dom_node_get_text_content((dom_node_internal *)ele, text); +} + +/** + * Set the text property + * + * \param ele The dom_html_script_element object + * \param text The dom_string value to be set + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_script_element_set_text( + dom_html_script_element *ele, + dom_string *text) +{ + return _dom_node_set_text_content((dom_node_internal *)ele, text); +} diff --git a/src/html/html_script_element.h b/src/html/html_script_element.h index 2e182d5..dcb7b72 100644 --- a/src/html/html_script_element.h +++ b/src/html/html_script_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_script_element_h_ +#define dom_internal_html_script_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_script_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_script_element object */ +dom_exception _dom_html_script_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_script_element **ele); + +/* Initialise a dom_html_script_element object */ +dom_exception _dom_html_script_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_script_element *ele); + +/* Finalise a dom_html_script_element object */ +void _dom_html_script_element_finalise(struct dom_html_script_element *ele); + +/* Destroy a dom_html_script_element object */ +void _dom_html_script_element_destroy(struct dom_html_script_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_script_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_script_element_destroy(dom_node_internal *node); +dom_exception _dom_html_script_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_SCRIPT_ELEMENT_PROTECT_VTABLE \ + _dom_html_script_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_SCRIPT_ELEMENT \ + _dom_virtual_html_script_element_destroy, \ + _dom_html_script_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLScriptElement01.xml b/test/testcases/tests/level1/html/HTMLScriptElement01.xml new file mode 100644 index 0000000..c4f28dd --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLScriptElement01.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLScriptElement01 +NIST + + The text attribute specifies the script content of the element. + + Retrieve the text attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLScriptElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLScriptElement01.xml.kfail deleted file mode 100644 index c4f28dd..0000000 --- a/test/testcases/tests/level1/html/HTMLScriptElement01.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLScriptElement01 -NIST - - The text attribute specifies the script content of the element. - - Retrieve the text attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLScriptElement02.xml b/test/testcases/tests/level1/html/HTMLScriptElement02.xml new file mode 100644 index 0000000..dd3911d --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLScriptElement02.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLScriptElement02 +NIST + + The charset attribute specifies the character encoding of the linked + resource. + + Retrieve the charset attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLScriptElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLScriptElement02.xml.kfail deleted file mode 100644 index dd3911d..0000000 --- a/test/testcases/tests/level1/html/HTMLScriptElement02.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLScriptElement02 -NIST - - The charset attribute specifies the character encoding of the linked - resource. - - Retrieve the charset attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLScriptElement03.xml b/test/testcases/tests/level1/html/HTMLScriptElement03.xml new file mode 100644 index 0000000..d23ad8a --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLScriptElement03.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLScriptElement03 +NIST + + The defer attribute specifies the user agent can defer processing of + the script. + + Retrieve the defer attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLScriptElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLScriptElement03.xml.kfail deleted file mode 100644 index d23ad8a..0000000 --- a/test/testcases/tests/level1/html/HTMLScriptElement03.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLScriptElement03 -NIST - - The defer attribute specifies the user agent can defer processing of - the script. - - Retrieve the defer attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLScriptElement04.xml b/test/testcases/tests/level1/html/HTMLScriptElement04.xml new file mode 100644 index 0000000..da94196 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLScriptElement04.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLScriptElement04 +NIST + + The src attribute specifies a URI designating an external script. + + Retrieve the src attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLScriptElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLScriptElement04.xml.kfail deleted file mode 100644 index da94196..0000000 --- a/test/testcases/tests/level1/html/HTMLScriptElement04.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLScriptElement04 -NIST - - The src attribute specifies a URI designating an external script. - - Retrieve the src attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLScriptElement05.xml b/test/testcases/tests/level1/html/HTMLScriptElement05.xml new file mode 100644 index 0000000..2a3ede2 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLScriptElement05.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLScriptElement05 +NIST + + The type attribute specifies the content of the script language. + + Retrieve the type attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLScriptElement05.xml.kfail b/test/testcases/tests/level1/html/HTMLScriptElement05.xml.kfail deleted file mode 100644 index 2a3ede2..0000000 --- a/test/testcases/tests/level1/html/HTMLScriptElement05.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLScriptElement05 -NIST - - The type attribute specifies the content of the script language. - - Retrieve the type attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLScriptElement06.xml b/test/testcases/tests/level1/html/HTMLScriptElement06.xml new file mode 100644 index 0000000..4e869fc --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLScriptElement06.xml @@ -0,0 +1,38 @@ + + + + + + + +HTMLScriptElement06 +Curt Arnold + +htmlFor is described as for future use. Test accesses the value, but makes no assertions about its value. + +2004-03-18 + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLScriptElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLScriptElement06.xml.kfail deleted file mode 100644 index 4e869fc..0000000 --- a/test/testcases/tests/level1/html/HTMLScriptElement06.xml.kfail +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - -HTMLScriptElement06 -Curt Arnold - -htmlFor is described as for future use. Test accesses the value, but makes no assertions about its value. - -2004-03-18 - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLScriptElement07.xml b/test/testcases/tests/level1/html/HTMLScriptElement07.xml new file mode 100644 index 0000000..d5a0145 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLScriptElement07.xml @@ -0,0 +1,38 @@ + + + + + + + +HTMLScriptElement07 +Curt Arnold + +event is described as for future use. Test accesses the value, but makes no assertions about its value. + +2004-03-18 + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLScriptElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLScriptElement07.xml.kfail deleted file mode 100644 index d5a0145..0000000 --- a/test/testcases/tests/level1/html/HTMLScriptElement07.xml.kfail +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - -HTMLScriptElement07 -Curt Arnold - -event is described as for future use. Test accesses the value, but makes no assertions about its value. - -2004-03-18 - - - - - - - - - - - - -- cgit v1.2.3 From 3c9d9494222d81c207cc09a7686cca50db109c0b Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Sun, 18 May 2014 09:24:36 +0530 Subject: TableCaption Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_tablecaption_element.h | 16 +++ src/html/Makefile | 5 +- src/html/TODO | 2 +- src/html/html_document.c | 4 + src/html/html_tablecaption_element.c | 153 +++++++++++++++++++++ src/html/html_tablecaption_element.h | 45 ++++++ .../level1/html/HTMLTableCaptionElement01.xml | 43 ++++++ .../html/HTMLTableCaptionElement01.xml.kfail | 43 ------ 10 files changed, 266 insertions(+), 47 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLTableCaptionElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCaptionElement01.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index a50b2db..f7b7791 100644 --- a/Makefile +++ b/Makefile @@ -123,6 +123,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_applet_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_area_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_map_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_script_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_table_caption_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index b23ede0..b19a298 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -82,6 +82,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_tablecaption_element.h b/include/dom/html/html_tablecaption_element.h index 2e182d5..412efae 100644 --- a/include/dom/html/html_tablecaption_element.h +++ b/include/dom/html/html_tablecaption_element.h @@ -3,5 +3,21 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_table_caption_element_h_ +#define dom_html_table_caption_element_h_ +#include +#include +#include + +typedef struct dom_html_table_caption_element dom_html_table_caption_element; + +dom_exception dom_html_table_caption_element_get_align( + dom_html_table_caption_element *element, dom_string **align); + +dom_exception dom_html_table_caption_element_set_align( + dom_html_table_caption_element *element, dom_string *align); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 66d6ab0..1de0190 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -15,11 +15,10 @@ DIR_SOURCES := \ html_font_element.c html_mod_element.c html_anchor_element.c \ html_basefont_element.c html_image_element.c html_object_element.c \ html_param_element.c html_applet_element.c html_area_element.c \ - html_map_element.c html_script_element.c + html_map_element.c html_script_element.c html_tablecaption_element.c UNINMPLEMENTED_SOURCES := \ - html_table_element.c \ - html_tablecaption_element.c html_tablecol_element.c html_tablesection_element.c \ + html_table_element.c html_tablecol_element.c html_tablesection_element.c \ html_tablerow_element.c html_tablecell_element.c html_frameset_element.c \ html_frame_element.c html_iframe_element.c diff --git a/src/html/TODO b/src/html/TODO index 3888e23..52dfafe 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -47,7 +47,7 @@ HTMLMapElement html_map_element DONE HTMLAreaElement html_area_element DONE HTMLScriptElement html_script_element DONE HTMLTableElement html_table_element MISSING -HTMLTableCaptionElement html_tablecaption_element MISSING +HTMLTableCaptionElement html_tablecaption_element DONE HTMLTableColElement html_tablecol_element MISSING HTMLTableSectionElement html_tablesection_element MISSING HTMLTableRowElement html_tablerow_element MISSING diff --git a/src/html/html_document.c b/src/html/html_document.c index b7bf117..6eda5e8 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -50,6 +50,7 @@ #include "html/html_map_element.h" #include "html/html_area_element.h" #include "html/html_script_element.h" +#include "html/html_tablecaption_element.h" #include "core/attr.h" #include "core/string.h" @@ -331,6 +332,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_SCRIPT])) { exc = _dom_html_script_element_create(html, namespace, prefix, (dom_html_script_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_CAPTION])) { + exc = _dom_html_table_caption_element_create(html, namespace, prefix, + (dom_html_table_caption_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_tablecaption_element.c b/src/html/html_tablecaption_element.c index 2e182d5..d2c3fc6 100644 --- a/src/html/html_tablecaption_element.c +++ b/src/html/html_tablecaption_element.c @@ -3,5 +3,158 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_tablecaption_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_TABLE_CAPTION_ELEMENT + }, + DOM_HTML_TABLE_CAPTION_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_table_caption_element object + * + * \table_caption doc The document object + * \table_caption ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_table_caption_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_table_caption_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_table_caption_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_table_caption_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_table_caption_element object + * + * \table_caption doc The document object + * \table_caption ele The dom_html_table_caption_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_table_caption_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_table_caption_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_CAPTION], + namespace, prefix); +} + +/** + * Finalise a dom_html_table_caption_element object + * + * \table_caption ele The dom_html_table_caption_element object + */ +void _dom_html_table_caption_element_finalise(struct dom_html_table_caption_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_table_caption_element object + * + * \table_caption ele The dom_html_table_caption_element object + */ +void _dom_html_table_caption_element_destroy(struct dom_html_table_caption_element *ele) +{ + _dom_html_table_caption_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_table_caption_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_table_caption_element_destroy(dom_node_internal *node) +{ + _dom_html_table_caption_element_destroy((struct dom_html_table_caption_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_table_caption_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_table_caption_element_get_##attr( \ + dom_html_table_caption_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)-> \ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ + dom_exception dom_html_table_caption_element_set_##attr( \ + dom_html_table_caption_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)-> \ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) +SIMPLE_GET_SET(align); diff --git a/src/html/html_tablecaption_element.h b/src/html/html_tablecaption_element.h index 2e182d5..b1cfd3b 100644 --- a/src/html/html_tablecaption_element.h +++ b/src/html/html_tablecaption_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_table_caption_element_h_ +#define dom_internal_html_table_caption_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_table_caption_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_table_caption_element object */ +dom_exception _dom_html_table_caption_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_table_caption_element **ele); + +/* Initialise a dom_html_table_caption_element object */ +dom_exception _dom_html_table_caption_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_table_caption_element *ele); + +/* Finalise a dom_html_table_caption_element object */ +void _dom_html_table_caption_element_finalise(struct dom_html_table_caption_element *ele); + +/* Destroy a dom_html_table_caption_element object */ +void _dom_html_table_caption_element_destroy(struct dom_html_table_caption_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_table_caption_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_table_caption_element_destroy(dom_node_internal *node); +dom_exception _dom_html_table_caption_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_TABLE_CAPTION_ELEMENT_PROTECT_VTABLE \ + _dom_html_table_caption_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_TABLE_CAPTION_ELEMENT \ + _dom_virtual_html_table_caption_element_destroy, \ + _dom_html_table_caption_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLTableCaptionElement01.xml b/test/testcases/tests/level1/html/HTMLTableCaptionElement01.xml new file mode 100644 index 0000000..fb2fae7 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCaptionElement01.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCaptionElement01 +NIST + + The align attribute specifies the caption alignment with respect to + the table. + + Retrieve the align attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCaptionElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCaptionElement01.xml.kfail deleted file mode 100644 index fb2fae7..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCaptionElement01.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCaptionElement01 -NIST - - The align attribute specifies the caption alignment with respect to - the table. - - Retrieve the align attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From 1dd1c7617aae1a4bd285d83a3c73d5d2f53761d7 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Mon, 19 May 2014 06:52:56 +0530 Subject: TableCell Element & possible bug fix on TableCaption ELement --- Makefile | 3 +- include/dom/dom.h | 1 + include/dom/html/html_tablecell_element.h | 99 ++++++++ src/html/Makefile | 5 +- src/html/TODO | 2 +- src/html/html_document.c | 6 + src/html/html_document_strings.h | 7 + src/html/html_tablecell_element.c | 282 +++++++++++++++++++++ src/html/html_tablecell_element.h | 47 ++++ .../tests/level1/html/HTMLTableCellElement01.xml | 43 ++++ .../level1/html/HTMLTableCellElement01.xml.kfail | 43 ---- .../tests/level1/html/HTMLTableCellElement02.xml | 43 ++++ .../level1/html/HTMLTableCellElement02.xml.kfail | 43 ---- .../tests/level1/html/HTMLTableCellElement03.xml | 43 ++++ .../level1/html/HTMLTableCellElement03.xml.kfail | 43 ---- .../tests/level1/html/HTMLTableCellElement04.xml | 43 ++++ .../level1/html/HTMLTableCellElement04.xml.kfail | 43 ---- .../tests/level1/html/HTMLTableCellElement05.xml | 44 ++++ .../level1/html/HTMLTableCellElement05.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement06.xml | 44 ++++ .../level1/html/HTMLTableCellElement06.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement07.xml | 44 ++++ .../level1/html/HTMLTableCellElement07.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement08.xml | 44 ++++ .../level1/html/HTMLTableCellElement08.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement09.xml | 44 ++++ .../level1/html/HTMLTableCellElement09.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement10.xml | 44 ++++ .../level1/html/HTMLTableCellElement10.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement11.xml | 44 ++++ .../level1/html/HTMLTableCellElement11.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement12.xml | 44 ++++ .../level1/html/HTMLTableCellElement12.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement13.xml | 44 ++++ .../level1/html/HTMLTableCellElement13.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement14.xml | 44 ++++ .../level1/html/HTMLTableCellElement14.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement15.xml | 44 ++++ .../level1/html/HTMLTableCellElement15.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement16.xml | 44 ++++ .../level1/html/HTMLTableCellElement16.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement17.xml | 44 ++++ .../level1/html/HTMLTableCellElement17.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement18.xml | 44 ++++ .../level1/html/HTMLTableCellElement18.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement19.xml | 43 ++++ .../level1/html/HTMLTableCellElement19.xml.kfail | 43 ---- .../tests/level1/html/HTMLTableCellElement20.xml | 43 ++++ .../level1/html/HTMLTableCellElement20.xml.kfail | 43 ---- .../tests/level1/html/HTMLTableCellElement21.xml | 43 ++++ .../level1/html/HTMLTableCellElement21.xml.kfail | 43 ---- .../tests/level1/html/HTMLTableCellElement22.xml | 43 ++++ .../level1/html/HTMLTableCellElement22.xml.kfail | 43 ---- .../tests/level1/html/HTMLTableCellElement23.xml | 44 ++++ .../level1/html/HTMLTableCellElement23.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement24.xml | 44 ++++ .../level1/html/HTMLTableCellElement24.xml.kfail | 44 ---- .../tests/level1/html/HTMLTableCellElement25.xml | 43 ++++ .../level1/html/HTMLTableCellElement25.xml.kfail | 43 ---- .../tests/level1/html/HTMLTableCellElement26.xml | 43 ++++ .../level1/html/HTMLTableCellElement26.xml.kfail | 43 ---- .../tests/level1/html/HTMLTableCellElement27.xml | 43 ++++ .../level1/html/HTMLTableCellElement27.xml.kfail | 43 ---- .../tests/level1/html/HTMLTableCellElement28.xml | 43 ++++ .../level1/html/HTMLTableCellElement28.xml.kfail | 43 ---- .../tests/level1/html/HTMLTableCellElement29.xml | 43 ++++ .../level1/html/HTMLTableCellElement29.xml.kfail | 43 ---- .../tests/level1/html/HTMLTableCellElement30.xml | 43 ++++ .../level1/html/HTMLTableCellElement30.xml.kfail | 43 ---- 69 files changed, 1754 insertions(+), 1310 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement04.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement05.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement05.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement06.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement06.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement07.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement07.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement08.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement08.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement09.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement09.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement10.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement10.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement11.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement11.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement12.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement12.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement13.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement13.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement14.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement14.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement15.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement15.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement16.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement16.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement17.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement17.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement18.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement18.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement19.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement19.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement20.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement20.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement21.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement21.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement22.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement22.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement23.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement23.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement24.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement24.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement25.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement25.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement26.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement26.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement27.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement27.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement28.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement28.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement29.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement29.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement30.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableCellElement30.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index f7b7791..3ce867c 100644 --- a/Makefile +++ b/Makefile @@ -123,7 +123,8 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_applet_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_area_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_map_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_script_element.h -INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_table_caption_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablecaption_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablecell_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index b19a298..fac1dac 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -83,6 +83,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_tablecell_element.h b/include/dom/html/html_tablecell_element.h index 2e182d5..938d148 100644 --- a/include/dom/html/html_tablecell_element.h +++ b/include/dom/html/html_tablecell_element.h @@ -3,5 +3,104 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_table_cell_element_h_ +#define dom_html_table_cell_element_h_ + +#include +#include +#include + +typedef struct dom_html_table_cell_element dom_html_table_cell_element; + +dom_exception dom_html_table_cell_element_get_cell_index( + dom_html_table_cell_element *table_cell, int32_t *cell_index); + +dom_exception dom_html_table_cell_element_get_abbr( + dom_html_table_cell_element *table_cell, dom_string **abbr); + +dom_exception dom_html_table_cell_element_set_abbr( + dom_html_table_cell_element *table_cell, dom_string *abbr); + +dom_exception dom_html_table_cell_element_get_align( + dom_html_table_cell_element *table_cell, dom_string **align); + +dom_exception dom_html_table_cell_element_set_align( + dom_html_table_cell_element *table_cell, dom_string *align); + +dom_exception dom_html_table_cell_element_get_axis( + dom_html_table_cell_element *table_cell, dom_string **axis); + +dom_exception dom_html_table_cell_element_set_axis( + dom_html_table_cell_element *table_cell, dom_string *axis); + +dom_exception dom_html_table_cell_element_get_bg_color( + dom_html_table_cell_element *table_cell, dom_string **bg_color); + +dom_exception dom_html_table_cell_element_set_bg_color( + dom_html_table_cell_element *table_cell, dom_string *bg_color); + +dom_exception dom_html_table_cell_element_get_ch( + dom_html_table_cell_element *table_cell, dom_string **ch); + +dom_exception dom_html_table_cell_element_set_ch( + dom_html_table_cell_element *table_cell, dom_string *ch); + +dom_exception dom_html_table_cell_element_get_ch_off( + dom_html_table_cell_element *table_cell, dom_string **ch_off); + +dom_exception dom_html_table_cell_element_set_ch_off( + dom_html_table_cell_element *table_cell, dom_string *ch_off); + +dom_exception dom_html_table_cell_element_get_headers( + dom_html_table_cell_element *table_cell, dom_string **headers); + +dom_exception dom_html_table_cell_element_set_headers( + dom_html_table_cell_element *table_cell, dom_string *headers); + +dom_exception dom_html_table_cell_element_get_height( + dom_html_table_cell_element *table_cell, dom_string **height); + +dom_exception dom_html_table_cell_element_set_height( + dom_html_table_cell_element *table_cell, dom_string *height); + +dom_exception dom_html_table_cell_element_get_scope( + dom_html_table_cell_element *table_cell, dom_string **scope); + +dom_exception dom_html_table_cell_element_set_scope( + dom_html_table_cell_element *table_cell, dom_string *scope); + +dom_exception dom_html_table_cell_element_get_v_align( + dom_html_table_cell_element *table_cell, dom_string **v_align); + +dom_exception dom_html_table_cell_element_set_v_align( + dom_html_table_cell_element *table_cell, dom_string *v_align); + +dom_exception dom_html_table_cell_element_get_width( + dom_html_table_cell_element *table_cell, dom_string **width); + +dom_exception dom_html_table_cell_element_set_width( + dom_html_table_cell_element *table_cell, dom_string *width); + +dom_exception dom_html_table_cell_element_get_col_span( + dom_html_table_cell_element *table_cell, int32_t *col_span); + +dom_exception dom_html_table_cell_element_set_col_span( + dom_html_table_cell_element *table_cell, uint32_t col_span); + +dom_exception dom_html_table_cell_element_get_row_span( + dom_html_table_cell_element *table_cell, int32_t *row_span); + +dom_exception dom_html_table_cell_element_set_row_span( + dom_html_table_cell_element *table_cell, uint32_t row_span); + +dom_exception dom_html_table_cell_element_get_no_wrap( + dom_html_table_cell_element *ele, bool *no_wrap); + +dom_exception dom_html_table_cell_element_set_no_wrap( + dom_html_table_cell_element *ele, bool no_wrap); + +#endif + diff --git a/src/html/Makefile b/src/html/Makefile index 1de0190..fcf326f 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -15,11 +15,12 @@ DIR_SOURCES := \ html_font_element.c html_mod_element.c html_anchor_element.c \ html_basefont_element.c html_image_element.c html_object_element.c \ html_param_element.c html_applet_element.c html_area_element.c \ - html_map_element.c html_script_element.c html_tablecaption_element.c + html_map_element.c html_script_element.c html_tablecaption_element.c \ + html_tablecell_element.c UNINMPLEMENTED_SOURCES := \ html_table_element.c html_tablecol_element.c html_tablesection_element.c \ - html_tablerow_element.c html_tablecell_element.c html_frameset_element.c \ + html_tablerow_element.c html_frameset_element.c \ html_frame_element.c html_iframe_element.c include $(NSBUILD)/Makefile.subdir diff --git a/src/html/TODO b/src/html/TODO index 52dfafe..584de0e 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -51,7 +51,7 @@ HTMLTableCaptionElement html_tablecaption_element DONE HTMLTableColElement html_tablecol_element MISSING HTMLTableSectionElement html_tablesection_element MISSING HTMLTableRowElement html_tablerow_element MISSING -HTMLTableCellElement html_tablecell_element MISSING +HTMLTableCellElement html_tablecell_element DONE HTMLFrameSetElement html_frameset_element MISSING HTMLFrameElement html_frame_element MISSING HTMLIFrameElement html_iframe_element MISSING diff --git a/src/html/html_document.c b/src/html/html_document.c index 6eda5e8..939b031 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -51,6 +51,7 @@ #include "html/html_area_element.h" #include "html/html_script_element.h" #include "html/html_tablecaption_element.h" +#include "html/html_tablecell_element.h" #include "core/attr.h" #include "core/string.h" @@ -335,6 +336,11 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_CAPTION])) { exc = _dom_html_table_caption_element_create(html, namespace, prefix, (dom_html_table_caption_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_TD]) || + dom_string_caseless_isequal(tag_name, html->memoised[hds_TH]) + ) { + exc = _dom_html_table_cell_element_create(html, tag_name, namespace, prefix, + (dom_html_table_cell_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index 8ed3bb2..38b0004 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -98,6 +98,10 @@ HTML_DOCUMENT_STRINGS_ACTION1(standby) HTML_DOCUMENT_STRINGS_ACTION1(object) HTML_DOCUMENT_STRINGS_ACTION1(event) HTML_DOCUMENT_STRINGS_ACTION1(defer) +HTML_DOCUMENT_STRINGS_ACTION1(abbr) +HTML_DOCUMENT_STRINGS_ACTION1(axis) +HTML_DOCUMENT_STRINGS_ACTION1(headers) +HTML_DOCUMENT_STRINGS_ACTION1(scope) HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex) HTML_DOCUMENT_STRINGS_ACTION(html_for,for) HTML_DOCUMENT_STRINGS_ACTION(date_time,datetime) @@ -105,6 +109,9 @@ HTML_DOCUMENT_STRINGS_ACTION(long_desc,longdesc) HTML_DOCUMENT_STRINGS_ACTION(code_base,codebase) HTML_DOCUMENT_STRINGS_ACTION(code_type,codetype) HTML_DOCUMENT_STRINGS_ACTION(value_type,valuetype) +HTML_DOCUMENT_STRINGS_ACTION(v_align,valign) +HTML_DOCUMENT_STRINGS_ACTION(ch,char) +HTML_DOCUMENT_STRINGS_ACTION(ch_off,charoff) /* HTML_DOCUMENT_STRINGS_ACTION1(type) */ HTML_DOCUMENT_STRINGS_ACTION(use_map,usemap) /* HTML_DOCUMENT_STRINGS_ACTION1(value) */ diff --git a/src/html/html_tablecell_element.c b/src/html/html_tablecell_element.c index 2e182d5..6317686 100644 --- a/src/html/html_tablecell_element.c +++ b/src/html/html_tablecell_element.c @@ -3,5 +3,287 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_tablecell_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_TABLE_CELL_ELEMENT + }, + DOM_HTML_TABLE_CELL_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_table_cell_element table_cell + * + * \param doc The document table_cell + * \param ele The returned element table_cell + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_table_cell_element_create(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, dom_string *prefix, + struct dom_html_table_cell_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_table_cell_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_table_cell_element_initialise(doc, tag_name, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_table_cell_element table_cell + * + * \param doc The document table_cell + * \param ele The dom_html_table_cell_element table_cell + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_table_cell_element_initialise(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, dom_string *prefix, + struct dom_html_table_cell_element *ele) +{ + ele->id = -1; + return _dom_html_element_initialise(doc, &ele->base, + tag_name, + namespace, prefix); +} + +/** + * Finalise a dom_html_table_cell_element table_cell + * + * \param ele The dom_html_table_cell_element table_cell + */ +void _dom_html_table_cell_element_finalise(struct dom_html_table_cell_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_table_cell_element table_cell + * + * \param ele The dom_html_table_cell_element table_cell + */ +void _dom_html_table_cell_element_destroy(struct dom_html_table_cell_element *ele) +{ + _dom_html_table_cell_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_table_cell_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_table_cell_element_destroy(dom_node_internal *node) +{ + _dom_html_table_cell_element_destroy((struct dom_html_table_cell_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_table_cell_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_table_cell_element_get_##attr( \ + dom_html_table_cell_element *element, \ + dom_string **attr) \ +{ \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ +} +#define SIMPLE_SET(attr) \ + dom_exception dom_html_table_cell_element_set_##attr( \ + dom_html_table_cell_element *element, \ + dom_string *attr) \ +{ \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ +} + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(abbr); +SIMPLE_GET_SET(align); +SIMPLE_GET_SET(axis); +SIMPLE_GET_SET(bg_color); +SIMPLE_GET_SET(ch); +SIMPLE_GET_SET(ch_off); +SIMPLE_GET_SET(headers); +SIMPLE_GET_SET(height); +SIMPLE_GET_SET(scope); +SIMPLE_GET_SET(v_align); +SIMPLE_GET_SET(width); + +/** + * Get the cell_index property + * + * \param table_cell The dom_html_table_cell_element object + * \param cell_index The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_cell_element_get_cell_index( + dom_html_table_cell_element *table_cell, int32_t *cell_index) +{ + if(table_cell->id == -1) { + dom_node_internal *n = ((dom_node_internal *)table_cell)->parent; + dom_html_document *doc = (dom_html_document *)(n->owner); + int32_t cnt = 0; + + for (n = n->first_child; n != NULL; n = n->next) { + + if(n == (dom_node_internal *)table_cell) { + break; + } else if((n->type == DOM_ELEMENT_NODE) && + (dom_string_caseless_isequal(doc->memoised[hds_TD],n->name) || + dom_string_caseless_isequal(doc->memoised[hds_TH],n->name))) { + cnt += 1; + } + + } + table_cell->id = cnt; + } + *cell_index = table_cell->id; + return DOM_NO_ERR; +} + +/** + * Get the col_span property + * + * \param table_cell The dom_html_table_cell_element object + * \param no_wrap The returned status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_cell_element_get_col_span( + dom_html_table_cell_element *table_cell, int32_t *col_span) +{ + return dom_html_element_get_int32_t_property(&table_cell->base, "colspan", + SLEN("colspan"), col_span); +} + +/** + * Set the col_span property + * + * \param table_cell The dom_html_table_cell_element object + * \param no_wrap The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_cell_element_set_col_span( + dom_html_table_cell_element *table_cell, uint32_t col_span) +{ + return dom_html_element_set_int32_t_property(&table_cell->base, "colspan", + SLEN("colspan"), col_span); +} + +/** + * Get the row_span property + * + * \param table_cell The dom_html_table_cell_element object + * \param no_wrap The returned status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_cell_element_get_row_span( + dom_html_table_cell_element *table_cell, int32_t *row_span) +{ + return dom_html_element_get_int32_t_property(&table_cell->base, "rowspan", + SLEN("rowspan"), row_span); +} + +/** + * Set the row_span property + * + * \param table_cell The dom_html_table_cell_element object + * \param no_wrap The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_cell_element_set_row_span( + dom_html_table_cell_element *table_cell, uint32_t row_span) +{ + return dom_html_element_set_int32_t_property(&table_cell->base, "rowspan", + SLEN("rowspan"), row_span); +} + +/** + * Get the no_wrap property + * + * \param ele The dom_html_table_cell_element object + * \param no_wrap The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_cell_element_get_no_wrap(dom_html_table_cell_element *ele, + bool *no_wrap) +{ + return dom_html_element_get_bool_property(&ele->base, "nowrap", + SLEN("nowrap"), no_wrap); +} + +/** + * Set the no_wrap property + * + * \param ele The dom_html_table_cell_element object + * \param no_wrap The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_cell_element_set_no_wrap(dom_html_table_cell_element *ele, + bool no_wrap) +{ + return dom_html_element_set_bool_property(&ele->base, "nowrap", + SLEN("nowrap"), no_wrap); +} + diff --git a/src/html/html_tablecell_element.h b/src/html/html_tablecell_element.h index 2e182d5..801c3c0 100644 --- a/src/html/html_tablecell_element.h +++ b/src/html/html_tablecell_element.h @@ -3,5 +3,52 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_table_cell_element_h_ +#define dom_internal_html_table_cell_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_table_cell_element { + struct dom_html_element base; + /**< The base class */ + int32_t id; + /**< The Index Associated with the cell*/ +}; + +/* Create a dom_html_table_cell_element object */ +dom_exception _dom_html_table_cell_element_create(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, dom_string *prefix, + struct dom_html_table_cell_element **ele); + +/* Initialise a dom_html_table_cell_element object */ +dom_exception _dom_html_table_cell_element_initialise(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, dom_string *prefix, + struct dom_html_table_cell_element *ele); + +/* Finalise a dom_html_table_cell_element object */ +void _dom_html_table_cell_element_finalise(struct dom_html_table_cell_element *ele); + +/* Destroy a dom_html_table_cell_element object */ +void _dom_html_table_cell_element_destroy(struct dom_html_table_cell_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_table_cell_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_table_cell_element_destroy(dom_node_internal *node); +dom_exception _dom_html_table_cell_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_TABLE_CELL_ELEMENT_PROTECT_VTABLE \ + _dom_html_table_cell_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_TABLE_CELL_ELEMENT \ + _dom_virtual_html_table_cell_element_destroy, \ + _dom_html_table_cell_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement01.xml b/test/testcases/tests/level1/html/HTMLTableCellElement01.xml new file mode 100644 index 0000000..456d6d4 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement01.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCellElement01 +NIST + + The cellIndex attribute specifies the index of this cell in the row(TH). + + Retrieve the cellIndex attribute of the first TH element and examine its + value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement01.xml.kfail deleted file mode 100644 index 456d6d4..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement01.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCellElement01 -NIST - - The cellIndex attribute specifies the index of this cell in the row(TH). - - Retrieve the cellIndex attribute of the first TH element and examine its - value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement02.xml b/test/testcases/tests/level1/html/HTMLTableCellElement02.xml new file mode 100644 index 0000000..f93075e --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement02.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCellElement02 +NIST + + The cellIndex attribute specifies the index of this cell in the row(TD). + + Retrieve the cellIndex attribute of the first TD element and examine its + value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement02.xml.kfail deleted file mode 100644 index f93075e..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement02.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCellElement02 -NIST - - The cellIndex attribute specifies the index of this cell in the row(TD). - - Retrieve the cellIndex attribute of the first TD element and examine its - value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement03.xml b/test/testcases/tests/level1/html/HTMLTableCellElement03.xml new file mode 100644 index 0000000..ed23a81 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement03.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCellElement03 +NIST + + The abbr attribute specifies the abbreviation for table header cells(TH). + + Retrieve the abbr attribute from the second TH element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement03.xml.kfail deleted file mode 100644 index ed23a81..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement03.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCellElement03 -NIST - - The abbr attribute specifies the abbreviation for table header cells(TH). - - Retrieve the abbr attribute from the second TH element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement04.xml b/test/testcases/tests/level1/html/HTMLTableCellElement04.xml new file mode 100644 index 0000000..2a6ba39 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement04.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCellElement04 +NIST + + The abbr attribute specifies the abbreviation for table data cells(TD). + + Retrieve the abbr attribute from the second TD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement04.xml.kfail deleted file mode 100644 index 2a6ba39..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement04.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCellElement04 -NIST - - The abbr attribute specifies the abbreviation for table data cells(TD). - - Retrieve the abbr attribute from the second TD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement05.xml b/test/testcases/tests/level1/html/HTMLTableCellElement05.xml new file mode 100644 index 0000000..97e12ee --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement05.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement05 +NIST + + The align attribute specifies the horizontal alignment for table + header cells(TH). + + Retrieve the align attribute from the second TH element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement05.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement05.xml.kfail deleted file mode 100644 index 97e12ee..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement05.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement05 -NIST - - The align attribute specifies the horizontal alignment for table - header cells(TH). - - Retrieve the align attribute from the second TH element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement06.xml b/test/testcases/tests/level1/html/HTMLTableCellElement06.xml new file mode 100644 index 0000000..d642df3 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement06.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement06 +NIST + + The align attribute specifies the horizontal alignment for table + data cells(TD). + + Retrieve the align attribute from the second TD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement06.xml.kfail deleted file mode 100644 index d642df3..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement06.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement06 -NIST - - The align attribute specifies the horizontal alignment for table - data cells(TD). - - Retrieve the align attribute from the second TD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement07.xml b/test/testcases/tests/level1/html/HTMLTableCellElement07.xml new file mode 100644 index 0000000..9041f28 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement07.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement07 +NIST + + The axis attribute specifies the names group of related headers for table + header cells(TH). + + Retrieve the align attribute from the second TH element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement07.xml.kfail deleted file mode 100644 index 9041f28..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement07.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement07 -NIST - - The axis attribute specifies the names group of related headers for table - header cells(TH). - - Retrieve the align attribute from the second TH element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement08.xml b/test/testcases/tests/level1/html/HTMLTableCellElement08.xml new file mode 100644 index 0000000..27136ed --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement08.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement08 +NIST + + The axis attribute specifies the names group of related headers for table + data cells(TD). + + Retrieve the axis attribute from the second TD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement08.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement08.xml.kfail deleted file mode 100644 index 27136ed..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement08.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement08 -NIST - - The axis attribute specifies the names group of related headers for table - data cells(TD). - - Retrieve the axis attribute from the second TD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement09.xml b/test/testcases/tests/level1/html/HTMLTableCellElement09.xml new file mode 100644 index 0000000..efd65ad --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement09.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement09 +NIST + + The bgColor attribute specifies the cells background color for + table header cells(TH). + + Retrieve the bgColor attribute from the second TH element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement09.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement09.xml.kfail deleted file mode 100644 index efd65ad..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement09.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement09 -NIST - - The bgColor attribute specifies the cells background color for - table header cells(TH). - - Retrieve the bgColor attribute from the second TH element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement10.xml b/test/testcases/tests/level1/html/HTMLTableCellElement10.xml new file mode 100644 index 0000000..64a2746 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement10.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement10 +NIST + + The bgColor attribute specifies the cells background color for table + data cells(TD). + + Retrieve the bgColor attribute from the second TD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement10.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement10.xml.kfail deleted file mode 100644 index 64a2746..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement10.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement10 -NIST - - The bgColor attribute specifies the cells background color for table - data cells(TD). - - Retrieve the bgColor attribute from the second TD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement11.xml b/test/testcases/tests/level1/html/HTMLTableCellElement11.xml new file mode 100644 index 0000000..0c7c2b3 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement11.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement11 +NIST + + The char attribute specifies the alignment character for cells in a column + of table header cells(TH). + + Retrieve the char attribute from the second TH element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement11.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement11.xml.kfail deleted file mode 100644 index 0c7c2b3..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement11.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement11 -NIST - - The char attribute specifies the alignment character for cells in a column - of table header cells(TH). - - Retrieve the char attribute from the second TH element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement12.xml b/test/testcases/tests/level1/html/HTMLTableCellElement12.xml new file mode 100644 index 0000000..17ff175 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement12.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement12 +NIST + + The char attribute specifies the alignment character for cells in a column + of table data cells(TD). + + Retrieve the char attribute from the second TD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement12.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement12.xml.kfail deleted file mode 100644 index 17ff175..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement12.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement12 -NIST - - The char attribute specifies the alignment character for cells in a column - of table data cells(TD). - - Retrieve the char attribute from the second TD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement13.xml b/test/testcases/tests/level1/html/HTMLTableCellElement13.xml new file mode 100644 index 0000000..74beef5 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement13.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement13 +NIST + + The charoff attribute specifies the offset of alignment characacter + of table header cells(TH). + + Retrieve the charoff attribute from the second TH element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement13.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement13.xml.kfail deleted file mode 100644 index 74beef5..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement13.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement13 -NIST - - The charoff attribute specifies the offset of alignment characacter - of table header cells(TH). - - Retrieve the charoff attribute from the second TH element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement14.xml b/test/testcases/tests/level1/html/HTMLTableCellElement14.xml new file mode 100644 index 0000000..c703661 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement14.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement14 +NIST + + The charoff attribute specifies the offset of alignment character + of table data cells(TD). + + Retrieve the charoff attribute from the second TD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement14.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement14.xml.kfail deleted file mode 100644 index c703661..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement14.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement14 -NIST - - The charoff attribute specifies the offset of alignment character - of table data cells(TD). - - Retrieve the charoff attribute from the second TD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement15.xml b/test/testcases/tests/level1/html/HTMLTableCellElement15.xml new file mode 100644 index 0000000..b476253 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement15.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement15 +NIST + + The colSpan attribute specifies the number of columns spanned by a table + header(TH) cell. + + Retrieve the colspan attribute of the second TH element and examine its + value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement15.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement15.xml.kfail deleted file mode 100644 index b476253..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement15.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement15 -NIST - - The colSpan attribute specifies the number of columns spanned by a table - header(TH) cell. - - Retrieve the colspan attribute of the second TH element and examine its - value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement16.xml b/test/testcases/tests/level1/html/HTMLTableCellElement16.xml new file mode 100644 index 0000000..f5a7408 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement16.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement16 +NIST + + The colSpan attribute specifies the number of columns spanned by a + table data(TD) cell. + + Retrieve the colSpan attribute of the second TD element and examine its + value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement16.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement16.xml.kfail deleted file mode 100644 index f5a7408..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement16.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement16 -NIST - - The colSpan attribute specifies the number of columns spanned by a - table data(TD) cell. - - Retrieve the colSpan attribute of the second TD element and examine its - value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement17.xml b/test/testcases/tests/level1/html/HTMLTableCellElement17.xml new file mode 100644 index 0000000..f10d801 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement17.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement17 +NIST + + The headers attribute specifies a list of id attribute values for + table header cells(TH). + + Retrieve the headers attribute from the second TH element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement17.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement17.xml.kfail deleted file mode 100644 index f10d801..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement17.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement17 -NIST - - The headers attribute specifies a list of id attribute values for - table header cells(TH). - - Retrieve the headers attribute from the second TH element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement18.xml b/test/testcases/tests/level1/html/HTMLTableCellElement18.xml new file mode 100644 index 0000000..0ed53d0 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement18.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement18 +NIST + + The headers attribute specifies a list of id attribute values for + table data cells(TD). + + Retrieve the headers attribute from the second TD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement18.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement18.xml.kfail deleted file mode 100644 index 0ed53d0..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement18.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement18 -NIST - - The headers attribute specifies a list of id attribute values for - table data cells(TD). - - Retrieve the headers attribute from the second TD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement19.xml b/test/testcases/tests/level1/html/HTMLTableCellElement19.xml new file mode 100644 index 0000000..a4ab68d --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement19.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCellElement19 +NIST + + The height attribute specifies the cell height. + + Retrieve the height attribute from the second TH element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement19.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement19.xml.kfail deleted file mode 100644 index a4ab68d..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement19.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCellElement19 -NIST - - The height attribute specifies the cell height. - - Retrieve the height attribute from the second TH element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement20.xml b/test/testcases/tests/level1/html/HTMLTableCellElement20.xml new file mode 100644 index 0000000..a5fa5ae --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement20.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCellElement20 +NIST + + The height attribute specifies the cell height. + + Retrieve the height attribute from the second TD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement20.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement20.xml.kfail deleted file mode 100644 index a5fa5ae..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement20.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCellElement20 -NIST - - The height attribute specifies the cell height. - - Retrieve the height attribute from the second TD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement21.xml b/test/testcases/tests/level1/html/HTMLTableCellElement21.xml new file mode 100644 index 0000000..19bb5fe --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement21.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCellElement21 +NIST + + The noWrap attribute supresses word wrapping. + + Retrieve the noWrap attribute of the second TH Element and + examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement21.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement21.xml.kfail deleted file mode 100644 index 19bb5fe..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement21.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCellElement21 -NIST - - The noWrap attribute supresses word wrapping. - - Retrieve the noWrap attribute of the second TH Element and - examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement22.xml b/test/testcases/tests/level1/html/HTMLTableCellElement22.xml new file mode 100644 index 0000000..98e11c4 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement22.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCellElement22 +NIST + + The noWrap attribute supresses word wrapping. + + Retrieve the noWrap attribute of the second TD Element and + examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement22.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement22.xml.kfail deleted file mode 100644 index 98e11c4..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement22.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCellElement22 -NIST - - The noWrap attribute supresses word wrapping. - - Retrieve the noWrap attribute of the second TD Element and - examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement23.xml b/test/testcases/tests/level1/html/HTMLTableCellElement23.xml new file mode 100644 index 0000000..b276fbc --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement23.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement23 +NIST + + The rowSpan attribute specifies the number of rows spanned by a table + header(TH) cell. + + Retrieve the rowSpan attribute of the second TH element and examine its + value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement23.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement23.xml.kfail deleted file mode 100644 index b276fbc..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement23.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement23 -NIST - - The rowSpan attribute specifies the number of rows spanned by a table - header(TH) cell. - - Retrieve the rowSpan attribute of the second TH element and examine its - value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement24.xml b/test/testcases/tests/level1/html/HTMLTableCellElement24.xml new file mode 100644 index 0000000..3679bee --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement24.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableCellElement24 +NIST + + The rowSpan attribute specifies the number of rows spanned by a + table data(TD) cell. + + Retrieve the rowSpan attribute of the second TD element and examine its + value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement24.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement24.xml.kfail deleted file mode 100644 index 3679bee..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement24.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableCellElement24 -NIST - - The rowSpan attribute specifies the number of rows spanned by a - table data(TD) cell. - - Retrieve the rowSpan attribute of the second TD element and examine its - value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement25.xml b/test/testcases/tests/level1/html/HTMLTableCellElement25.xml new file mode 100644 index 0000000..bc74f39 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement25.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCellElement25 +NIST + + The scope attribute specifies the scope covered by header cells. + + Retrieve the scope attribute from the second TH element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement25.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement25.xml.kfail deleted file mode 100644 index bc74f39..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement25.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCellElement25 -NIST - - The scope attribute specifies the scope covered by header cells. - - Retrieve the scope attribute from the second TH element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement26.xml b/test/testcases/tests/level1/html/HTMLTableCellElement26.xml new file mode 100644 index 0000000..5cf82e8 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement26.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCellElement26 +NIST + + The scope attribute specifies the scope covered by data cells. + + Retrieve the scope attribute from the second TD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement26.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement26.xml.kfail deleted file mode 100644 index 5cf82e8..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement26.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCellElement26 -NIST - - The scope attribute specifies the scope covered by data cells. - - Retrieve the scope attribute from the second TD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement27.xml b/test/testcases/tests/level1/html/HTMLTableCellElement27.xml new file mode 100644 index 0000000..dceae74 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement27.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCellElement27 +NIST + + The vAlign attribute specifies the vertical alignment of data in cell. + + Retrieve the vAlign attribute from the second TH element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement27.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement27.xml.kfail deleted file mode 100644 index dceae74..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement27.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCellElement27 -NIST - - The vAlign attribute specifies the vertical alignment of data in cell. - - Retrieve the vAlign attribute from the second TH element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement28.xml b/test/testcases/tests/level1/html/HTMLTableCellElement28.xml new file mode 100644 index 0000000..1594528 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement28.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCellElement28 +NIST + + The vAlign attribute specifies the vertical alignment of data in cell. + + Retrieve the vAlign attribute from the second TD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement28.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement28.xml.kfail deleted file mode 100644 index 1594528..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement28.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCellElement28 -NIST - - The vAlign attribute specifies the vertical alignment of data in cell. - - Retrieve the vAlign attribute from the second TD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement29.xml b/test/testcases/tests/level1/html/HTMLTableCellElement29.xml new file mode 100644 index 0000000..571458b --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement29.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCellElement29 +NIST + + The width attribute specifies the cells width. + + Retrieve the width attribute from the second TH element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement29.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement29.xml.kfail deleted file mode 100644 index 571458b..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement29.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCellElement29 -NIST - - The width attribute specifies the cells width. - - Retrieve the width attribute from the second TH element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement30.xml b/test/testcases/tests/level1/html/HTMLTableCellElement30.xml new file mode 100644 index 0000000..332c038 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableCellElement30.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableCellElement30 +NIST + + The width attribute specifies the cells width. + + Retrieve the width attribute from the second TD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableCellElement30.xml.kfail b/test/testcases/tests/level1/html/HTMLTableCellElement30.xml.kfail deleted file mode 100644 index 332c038..0000000 --- a/test/testcases/tests/level1/html/HTMLTableCellElement30.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableCellElement30 -NIST - - The width attribute specifies the cells width. - - Retrieve the width attribute from the second TD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From 913ca00c2745f342146fd62494ad85baacf2b008 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Mon, 19 May 2014 21:22:45 +0530 Subject: TableCol Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_tablecol_element.h | 48 ++++++ src/html/Makefile | 4 +- src/html/html_document.c | 6 + src/html/html_tablecol_element.c | 181 +++++++++++++++++++++ src/html/html_tablecol_element.h | 45 +++++ .../tests/level1/html/HTMLTableColElement01.xml | 44 +++++ .../level1/html/HTMLTableColElement01.xml.kfail | 44 ----- .../tests/level1/html/HTMLTableColElement02.xml | 44 +++++ .../level1/html/HTMLTableColElement02.xml.kfail | 44 ----- .../tests/level1/html/HTMLTableColElement03.xml | 44 +++++ .../level1/html/HTMLTableColElement03.xml.kfail | 44 ----- .../tests/level1/html/HTMLTableColElement04.xml | 44 +++++ .../level1/html/HTMLTableColElement04.xml.kfail | 44 ----- .../tests/level1/html/HTMLTableColElement05.xml | 43 +++++ .../level1/html/HTMLTableColElement05.xml.kfail | 43 ----- .../tests/level1/html/HTMLTableColElement06.xml | 43 +++++ .../level1/html/HTMLTableColElement06.xml.kfail | 43 ----- .../tests/level1/html/HTMLTableColElement07.xml | 44 +++++ .../level1/html/HTMLTableColElement07.xml.kfail | 44 ----- .../tests/level1/html/HTMLTableColElement08.xml | 44 +++++ .../level1/html/HTMLTableColElement08.xml.kfail | 44 ----- .../tests/level1/html/HTMLTableColElement09.xml | 44 +++++ .../level1/html/HTMLTableColElement09.xml.kfail | 44 ----- .../tests/level1/html/HTMLTableColElement10.xml | 44 +++++ .../level1/html/HTMLTableColElement10.xml.kfail | 44 ----- .../tests/level1/html/HTMLTableColElement11.xml | 43 +++++ .../level1/html/HTMLTableColElement11.xml.kfail | 43 ----- .../tests/level1/html/HTMLTableColElement12.xml | 43 +++++ .../level1/html/HTMLTableColElement12.xml.kfail | 43 ----- 31 files changed, 808 insertions(+), 526 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLTableColElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableColElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableColElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableColElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableColElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableColElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableColElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableColElement04.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableColElement05.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableColElement05.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableColElement06.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableColElement06.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableColElement07.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableColElement07.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableColElement08.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableColElement08.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableColElement09.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableColElement09.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableColElement10.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableColElement10.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableColElement11.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableColElement11.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableColElement12.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableColElement12.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 3ce867c..52c0035 100644 --- a/Makefile +++ b/Makefile @@ -125,6 +125,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_map_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_script_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablecaption_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablecell_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablecol_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index fac1dac..51d12c4 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -84,6 +84,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_tablecol_element.h b/include/dom/html/html_tablecol_element.h index 2e182d5..56865a9 100644 --- a/include/dom/html/html_tablecol_element.h +++ b/include/dom/html/html_tablecol_element.h @@ -3,5 +3,53 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_table_col_element_h_ +#define dom_html_table_col_element_h_ + +#include +#include +#include + +typedef struct dom_html_table_col_element dom_html_table_col_element; + +dom_exception dom_html_table_col_element_get_align( + dom_html_table_col_element *table_col, dom_string **align); + +dom_exception dom_html_table_col_element_set_align( + dom_html_table_col_element *table_col, dom_string *align); + +dom_exception dom_html_table_col_element_get_ch( + dom_html_table_col_element *table_col, dom_string **ch); + +dom_exception dom_html_table_col_element_set_ch( + dom_html_table_col_element *table_col, dom_string *ch); + +dom_exception dom_html_table_col_element_get_ch_off( + dom_html_table_col_element *table_col, dom_string **ch_off); + +dom_exception dom_html_table_col_element_set_ch_off( + dom_html_table_col_element *table_col, dom_string *ch_off); + +dom_exception dom_html_table_col_element_get_v_align( + dom_html_table_col_element *table_col, dom_string **v_align); + +dom_exception dom_html_table_col_element_set_v_align( + dom_html_table_col_element *table_col, dom_string *v_align); + +dom_exception dom_html_table_col_element_get_width( + dom_html_table_col_element *table_col, dom_string **width); + +dom_exception dom_html_table_col_element_set_width( + dom_html_table_col_element *table_col, dom_string *width); + +dom_exception dom_html_table_col_element_get_span( + dom_html_table_col_element *table_col, int32_t *span); + +dom_exception dom_html_table_col_element_set_span( + dom_html_table_col_element *table_col, uint32_t span); + +#endif + diff --git a/src/html/Makefile b/src/html/Makefile index fcf326f..c66e670 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -16,10 +16,10 @@ DIR_SOURCES := \ html_basefont_element.c html_image_element.c html_object_element.c \ html_param_element.c html_applet_element.c html_area_element.c \ html_map_element.c html_script_element.c html_tablecaption_element.c \ - html_tablecell_element.c + html_tablecell_element.c html_tablecol_element.c UNINMPLEMENTED_SOURCES := \ - html_table_element.c html_tablecol_element.c html_tablesection_element.c \ + html_table_element.c html_tablesection_element.c \ html_tablerow_element.c html_frameset_element.c \ html_frame_element.c html_iframe_element.c diff --git a/src/html/html_document.c b/src/html/html_document.c index 939b031..5aef359 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -52,6 +52,7 @@ #include "html/html_script_element.h" #include "html/html_tablecaption_element.h" #include "html/html_tablecell_element.h" +#include "html/html_tablecol_element.h" #include "core/attr.h" #include "core/string.h" @@ -341,6 +342,11 @@ _dom_html_document_create_element_internal(dom_html_document *html, ) { exc = _dom_html_table_cell_element_create(html, tag_name, namespace, prefix, (dom_html_table_cell_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_COL])|| + dom_string_caseless_isequal(tag_name, html->memoised[hds_COLGROUP]) + ) { + exc = _dom_html_table_col_element_create(html, tag_name, namespace, prefix, + (dom_html_table_col_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_tablecol_element.c b/src/html/html_tablecol_element.c index 2e182d5..cf21a24 100644 --- a/src/html/html_tablecol_element.c +++ b/src/html/html_tablecol_element.c @@ -3,5 +3,186 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_tablecol_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_TABLE_COL_ELEMENT + }, + DOM_HTML_TABLE_COL_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_table_col_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_table_col_element_create(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, dom_string *prefix, + struct dom_html_table_col_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_table_col_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_table_col_element_initialise(doc, tag_name, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_table_col_element object + * + * \param doc The document object + * \param ele The dom_html_table_col_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_table_col_element_initialise(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, dom_string *prefix, + struct dom_html_table_col_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + tag_name, + namespace, prefix); +} + +/** + * Finalise a dom_html_table_col_element object + * + * \param ele The dom_html_table_col_element object + */ +void _dom_html_table_col_element_finalise(struct dom_html_table_col_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_table_col_element object + * + * \param ele The dom_html_table_col_element object + */ +void _dom_html_table_col_element_destroy(struct dom_html_table_col_element *ele) +{ + _dom_html_table_col_element_finalise(ele); + free(ele); +} + +/** + * Get the width Property + * + * \param table_col The dom_html_table_col_element object + */ +dom_exception dom_html_table_col_element_get_span( + dom_html_table_col_element *table_col, int32_t *span) +{ + return dom_html_element_get_int32_t_property(&table_col->base, "span", + SLEN("span"), span); +} + +/** + * Set the width Property + * + * \param table_col The dom_html_table_col_element object + */ +dom_exception dom_html_table_col_element_set_span( + dom_html_table_col_element *table_col, uint32_t span) +{ + return dom_html_element_set_int32_t_property(&table_col->base, "span", + SLEN("span"), span); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_table_col_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_table_col_element_destroy(dom_node_internal *node) +{ + _dom_html_table_col_element_destroy((struct dom_html_table_col_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_table_col_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_table_col_element_get_##attr( \ + dom_html_table_col_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)-> \ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ + dom_exception dom_html_table_col_element_set_##attr( \ + dom_html_table_col_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)-> \ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) +SIMPLE_GET_SET(align); +SIMPLE_GET_SET(ch); +SIMPLE_GET_SET(ch_off); +SIMPLE_GET_SET(v_align); +SIMPLE_GET_SET(width); diff --git a/src/html/html_tablecol_element.h b/src/html/html_tablecol_element.h index 2e182d5..a8e6fa7 100644 --- a/src/html/html_tablecol_element.h +++ b/src/html/html_tablecol_element.h @@ -3,5 +3,50 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_table_col_element_h_ +#define dom_internal_html_table_col_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_table_col_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_table_col_element object */ +dom_exception _dom_html_table_col_element_create(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, dom_string *prefix, + struct dom_html_table_col_element **ele); + +/* Initialise a dom_html_table_col_element object */ +dom_exception _dom_html_table_col_element_initialise(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, dom_string *prefix, + struct dom_html_table_col_element *ele); + +/* Finalise a dom_html_table_col_element object */ +void _dom_html_table_col_element_finalise(struct dom_html_table_col_element *ele); + +/* Destroy a dom_html_table_col_element object */ +void _dom_html_table_col_element_destroy(struct dom_html_table_col_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_table_col_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_table_col_element_destroy(dom_node_internal *node); +dom_exception _dom_html_table_col_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_TABLE_COL_ELEMENT_PROTECT_VTABLE \ + _dom_html_table_col_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_TABLE_COL_ELEMENT \ + _dom_virtual_html_table_col_element_destroy, \ + _dom_html_table_col_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLTableColElement01.xml b/test/testcases/tests/level1/html/HTMLTableColElement01.xml new file mode 100644 index 0000000..ae5fea0 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableColElement01.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableColElement01 +NIST + + The align attribute specifies the horizontal alignment of cell data + in column(COL). + + Retrieve the align attribute from the COL element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableColElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLTableColElement01.xml.kfail deleted file mode 100644 index ae5fea0..0000000 --- a/test/testcases/tests/level1/html/HTMLTableColElement01.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableColElement01 -NIST - - The align attribute specifies the horizontal alignment of cell data - in column(COL). - - Retrieve the align attribute from the COL element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableColElement02.xml b/test/testcases/tests/level1/html/HTMLTableColElement02.xml new file mode 100644 index 0000000..2d30433 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableColElement02.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableColElement02 +NIST + + The align attribute specifies the horizontal alignment of cell data + in column(COLGROUP). + + Retrieve the align attribute from the COLGROUP element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableColElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLTableColElement02.xml.kfail deleted file mode 100644 index 2d30433..0000000 --- a/test/testcases/tests/level1/html/HTMLTableColElement02.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableColElement02 -NIST - - The align attribute specifies the horizontal alignment of cell data - in column(COLGROUP). - - Retrieve the align attribute from the COLGROUP element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableColElement03.xml b/test/testcases/tests/level1/html/HTMLTableColElement03.xml new file mode 100644 index 0000000..6710753 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableColElement03.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableColElement03 +NIST + + The char attribute specifies the alignment character for cells + in a column(COL). + + Retrieve the char attribute from the COL element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableColElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLTableColElement03.xml.kfail deleted file mode 100644 index 6710753..0000000 --- a/test/testcases/tests/level1/html/HTMLTableColElement03.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableColElement03 -NIST - - The char attribute specifies the alignment character for cells - in a column(COL). - - Retrieve the char attribute from the COL element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableColElement04.xml b/test/testcases/tests/level1/html/HTMLTableColElement04.xml new file mode 100644 index 0000000..db0ebd0 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableColElement04.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableColElement04 +NIST + + The char attribute specifies the alignment character for cells + in a column(COLGROUP). + + Retrieve the char attribute from the COLGROUP element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableColElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLTableColElement04.xml.kfail deleted file mode 100644 index db0ebd0..0000000 --- a/test/testcases/tests/level1/html/HTMLTableColElement04.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableColElement04 -NIST - - The char attribute specifies the alignment character for cells - in a column(COLGROUP). - - Retrieve the char attribute from the COLGROUP element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableColElement05.xml b/test/testcases/tests/level1/html/HTMLTableColElement05.xml new file mode 100644 index 0000000..ebd56a9 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableColElement05.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableColElement05 +NIST + + The charoff attribute specifies offset of alignment character(COL). + + Retrieve the charoff attribute from the COL element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableColElement05.xml.kfail b/test/testcases/tests/level1/html/HTMLTableColElement05.xml.kfail deleted file mode 100644 index ebd56a9..0000000 --- a/test/testcases/tests/level1/html/HTMLTableColElement05.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableColElement05 -NIST - - The charoff attribute specifies offset of alignment character(COL). - - Retrieve the charoff attribute from the COL element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableColElement06.xml b/test/testcases/tests/level1/html/HTMLTableColElement06.xml new file mode 100644 index 0000000..285f794 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableColElement06.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableColElement06 +NIST + + The charoff attribute specifies offset of alignment character(COLGROUP). + + Retrieve the charoff attribute from the COLGROUP element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableColElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLTableColElement06.xml.kfail deleted file mode 100644 index 285f794..0000000 --- a/test/testcases/tests/level1/html/HTMLTableColElement06.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableColElement06 -NIST - - The charoff attribute specifies offset of alignment character(COLGROUP). - - Retrieve the charoff attribute from the COLGROUP element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableColElement07.xml b/test/testcases/tests/level1/html/HTMLTableColElement07.xml new file mode 100644 index 0000000..7a70e40 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableColElement07.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableColElement07 +NIST + + The span attribute indicates the number of columns in a group or affected + by a grouping(COL). + + Retrieve the span attribute of the COL element and examine its + value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableColElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLTableColElement07.xml.kfail deleted file mode 100644 index 7a70e40..0000000 --- a/test/testcases/tests/level1/html/HTMLTableColElement07.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableColElement07 -NIST - - The span attribute indicates the number of columns in a group or affected - by a grouping(COL). - - Retrieve the span attribute of the COL element and examine its - value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableColElement08.xml b/test/testcases/tests/level1/html/HTMLTableColElement08.xml new file mode 100644 index 0000000..491ea88 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableColElement08.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableColElement08 +NIST + + The span attribute indicates the number of columns in a group or affected + by a grouping(COLGROUP). + + Retrieve the span attribute of the COLGROUP element and examine its + value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableColElement08.xml.kfail b/test/testcases/tests/level1/html/HTMLTableColElement08.xml.kfail deleted file mode 100644 index 491ea88..0000000 --- a/test/testcases/tests/level1/html/HTMLTableColElement08.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableColElement08 -NIST - - The span attribute indicates the number of columns in a group or affected - by a grouping(COLGROUP). - - Retrieve the span attribute of the COLGROUP element and examine its - value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableColElement09.xml b/test/testcases/tests/level1/html/HTMLTableColElement09.xml new file mode 100644 index 0000000..0e3314b --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableColElement09.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableColElement09 +NIST + + The vAlign attribute specifies the vertical alignment of cell data + in column(COL). + + Retrieve the vAlign attribute from the COL element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableColElement09.xml.kfail b/test/testcases/tests/level1/html/HTMLTableColElement09.xml.kfail deleted file mode 100644 index 0e3314b..0000000 --- a/test/testcases/tests/level1/html/HTMLTableColElement09.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableColElement09 -NIST - - The vAlign attribute specifies the vertical alignment of cell data - in column(COL). - - Retrieve the vAlign attribute from the COL element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableColElement10.xml b/test/testcases/tests/level1/html/HTMLTableColElement10.xml new file mode 100644 index 0000000..7be9c98 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableColElement10.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableColElement10 +NIST + + The vAlign attribute specifies the vertical alignment of cell data + in column(COLGROUP). + + Retrieve the vAlign attribute from the COLGROUP element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableColElement10.xml.kfail b/test/testcases/tests/level1/html/HTMLTableColElement10.xml.kfail deleted file mode 100644 index 7be9c98..0000000 --- a/test/testcases/tests/level1/html/HTMLTableColElement10.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableColElement10 -NIST - - The vAlign attribute specifies the vertical alignment of cell data - in column(COLGROUP). - - Retrieve the vAlign attribute from the COLGROUP element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableColElement11.xml b/test/testcases/tests/level1/html/HTMLTableColElement11.xml new file mode 100644 index 0000000..636a0ae --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableColElement11.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableColElement11 +NIST + + The width attribute specifies the default column width(COL). + + Retrieve the width attribute from the COL element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableColElement11.xml.kfail b/test/testcases/tests/level1/html/HTMLTableColElement11.xml.kfail deleted file mode 100644 index 636a0ae..0000000 --- a/test/testcases/tests/level1/html/HTMLTableColElement11.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableColElement11 -NIST - - The width attribute specifies the default column width(COL). - - Retrieve the width attribute from the COL element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableColElement12.xml b/test/testcases/tests/level1/html/HTMLTableColElement12.xml new file mode 100644 index 0000000..bc39b9a --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableColElement12.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableColElement12 +NIST + + The width attribute specifies the default column width(COLGORUP). + + Retrieve the width attribute from the COLGROUP element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableColElement12.xml.kfail b/test/testcases/tests/level1/html/HTMLTableColElement12.xml.kfail deleted file mode 100644 index bc39b9a..0000000 --- a/test/testcases/tests/level1/html/HTMLTableColElement12.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableColElement12 -NIST - - The width attribute specifies the default column width(COLGORUP). - - Retrieve the width attribute from the COLGROUP element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From ca30ba7de4c3b0b17a61e1f07032575a01f2cd25 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Wed, 21 May 2014 12:16:24 +0530 Subject: TableSection Element Rev.1 --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_tablesection_element.h | 50 ++++ src/html/Makefile | 4 +- src/html/TODO | 4 +- src/html/html_document.c | 6 + src/html/html_tablesection_element.c | 312 +++++++++++++++++++++ src/html/html_tablesection_element.h | 47 ++++ test/DOMTSHandler.pm | 1 + .../level1/html/HTMLTableSectionElement01.xml | 44 +++ .../html/HTMLTableSectionElement01.xml.kfail | 44 --- .../level1/html/HTMLTableSectionElement02.xml | 44 +++ .../html/HTMLTableSectionElement02.xml.kfail | 44 --- .../level1/html/HTMLTableSectionElement03.xml | 44 +++ .../html/HTMLTableSectionElement03.xml.kfail | 44 --- .../level1/html/HTMLTableSectionElement04.xml | 44 +++ .../html/HTMLTableSectionElement04.xml.kfail | 44 --- .../level1/html/HTMLTableSectionElement05.xml | 44 +++ .../html/HTMLTableSectionElement05.xml.kfail | 44 --- .../level1/html/HTMLTableSectionElement06.xml | 44 +++ .../html/HTMLTableSectionElement06.xml.kfail | 44 --- .../level1/html/HTMLTableSectionElement07.xml | 43 +++ .../html/HTMLTableSectionElement07.xml.kfail | 43 --- .../level1/html/HTMLTableSectionElement08.xml | 43 +++ .../html/HTMLTableSectionElement08.xml.kfail | 43 --- .../level1/html/HTMLTableSectionElement09.xml | 43 +++ .../html/HTMLTableSectionElement09.xml.kfail | 43 --- .../level1/html/HTMLTableSectionElement10.xml | 44 +++ .../html/HTMLTableSectionElement10.xml.kfail | 44 --- .../level1/html/HTMLTableSectionElement11.xml | 44 +++ .../html/HTMLTableSectionElement11.xml.kfail | 44 --- .../level1/html/HTMLTableSectionElement12.xml | 44 +++ .../html/HTMLTableSectionElement12.xml.kfail | 44 --- .../level2/html/HTMLTableSectionElement25.xml | 48 ++++ .../html/HTMLTableSectionElement25.xml.kfail | 48 ---- .../level2/html/HTMLTableSectionElement26.xml | 48 ++++ .../html/HTMLTableSectionElement26.xml.kfail | 48 ---- .../level2/html/HTMLTableSectionElement27.xml | 48 ++++ .../html/HTMLTableSectionElement27.xml.kfail | 48 ---- .../level2/html/HTMLTableSectionElement28.xml | 48 ++++ .../html/HTMLTableSectionElement28.xml.kfail | 48 ---- .../level2/html/HTMLTableSectionElement29.xml | 47 ++++ .../html/HTMLTableSectionElement29.xml.kfail | 47 ---- .../html/HTMLTableSectionElement30.xml.kfail | 55 ---- .../html/HTMLTableSectionElement31.xml.kfail | 53 ---- .../tests/level2/html/files/tablesection.html | 62 ++++ .../tests/level2/html/files/tablesection.xhtml | 65 +++++ .../tests/level2/html/files/tablesection.xml | 65 +++++ 48 files changed, 1378 insertions(+), 876 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement04.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement05.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement05.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement06.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement06.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement07.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement07.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement08.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement08.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement09.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement09.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement10.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement10.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement11.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement11.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement12.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableSectionElement12.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement25.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement25.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement26.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement26.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement27.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement27.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement28.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement28.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement29.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement29.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail delete mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail create mode 100644 test/testcases/tests/level2/html/files/tablesection.html create mode 100644 test/testcases/tests/level2/html/files/tablesection.xhtml create mode 100644 test/testcases/tests/level2/html/files/tablesection.xml (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 52c0035..0745e10 100644 --- a/Makefile +++ b/Makefile @@ -126,6 +126,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_script_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablecaption_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablecell_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablecol_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablesection_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 51d12c4..071ca2c 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -85,6 +85,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_tablesection_element.h b/include/dom/html/html_tablesection_element.h index 2e182d5..e3b0065 100644 --- a/include/dom/html/html_tablesection_element.h +++ b/include/dom/html/html_tablesection_element.h @@ -3,5 +3,55 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_table_section_element_h_ +#define dom_html_table_section_element_h_ + +#include +#include +#include + +#include +#include + +typedef struct dom_html_table_section_element dom_html_table_section_element; + +dom_exception dom_html_table_section_element_get_align( + dom_html_table_section_element *table_section, dom_string **align); + +dom_exception dom_html_table_section_element_set_align( + dom_html_table_section_element *table_section, dom_string *align); + +dom_exception dom_html_table_section_element_get_ch( + dom_html_table_section_element *table_section, dom_string **ch); + +dom_exception dom_html_table_section_element_set_ch( + dom_html_table_section_element *table_section, dom_string *ch); + +dom_exception dom_html_table_section_element_get_ch_off( + dom_html_table_section_element *table_section, dom_string **ch_off); + +dom_exception dom_html_table_section_element_set_ch_off( + dom_html_table_section_element *table_section, dom_string *ch_off); + +dom_exception dom_html_table_section_element_get_v_align( + dom_html_table_section_element *table_section, dom_string **v_align); + +dom_exception dom_html_table_section_element_set_v_align( + dom_html_table_section_element *table_section, dom_string *v_align); + +dom_exception dom_html_table_section_element_get_rows( + dom_html_table_section_element *table_section, dom_html_collection **rows); + +dom_exception dom_html_table_section_element_insert_row( + dom_html_table_section_element *element, + int32_t index, dom_html_element **newRow); + +dom_exception dom_html_table_section_element_delete_row( + dom_html_table_section_element *element, + int32_t index); + +#endif + diff --git a/src/html/Makefile b/src/html/Makefile index c66e670..8fc029d 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -16,10 +16,10 @@ DIR_SOURCES := \ html_basefont_element.c html_image_element.c html_object_element.c \ html_param_element.c html_applet_element.c html_area_element.c \ html_map_element.c html_script_element.c html_tablecaption_element.c \ - html_tablecell_element.c html_tablecol_element.c + html_tablecell_element.c html_tablecol_element.c html_tablesection_element.c UNINMPLEMENTED_SOURCES := \ - html_table_element.c html_tablesection_element.c \ + html_table_element.c \ html_tablerow_element.c html_frameset_element.c \ html_frame_element.c html_iframe_element.c diff --git a/src/html/TODO b/src/html/TODO index 584de0e..50e905c 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -48,8 +48,8 @@ HTMLAreaElement html_area_element DONE HTMLScriptElement html_script_element DONE HTMLTableElement html_table_element MISSING HTMLTableCaptionElement html_tablecaption_element DONE -HTMLTableColElement html_tablecol_element MISSING -HTMLTableSectionElement html_tablesection_element MISSING +HTMLTableColElement html_tablecol_element DONE +HTMLTableSectionElement html_tablesection_element DONE HTMLTableRowElement html_tablerow_element MISSING HTMLTableCellElement html_tablecell_element DONE HTMLFrameSetElement html_frameset_element MISSING diff --git a/src/html/html_document.c b/src/html/html_document.c index 5aef359..692dd98 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -53,6 +53,7 @@ #include "html/html_tablecaption_element.h" #include "html/html_tablecell_element.h" #include "html/html_tablecol_element.h" +#include "html/html_tablesection_element.h" #include "core/attr.h" #include "core/string.h" @@ -347,6 +348,11 @@ _dom_html_document_create_element_internal(dom_html_document *html, ) { exc = _dom_html_table_col_element_create(html, tag_name, namespace, prefix, (dom_html_table_col_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_THEAD])|| + dom_string_caseless_isequal(tag_name, html->memoised[hds_TBODY])|| + dom_string_caseless_isequal(tag_name, html->memoised[hds_TBODY])) { + exc = _dom_html_table_section_element_create(html, tag_name, namespace, prefix, + (dom_html_table_section_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_tablesection_element.c b/src/html/html_tablesection_element.c index 2e182d5..7468d01 100644 --- a/src/html/html_tablesection_element.c +++ b/src/html/html_tablesection_element.c @@ -3,5 +3,317 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_tablesection_element.h" + +#include "html/html_collection.h" +#include "html/html_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_TABLE_SECTION_ELEMENT + }, + DOM_HTML_TABLE_SECTION_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_table_section_element object + * + * \table_section doc The document object + * \table_section ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_table_section_element_create(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, dom_string *prefix, + struct dom_html_table_section_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_table_section_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_table_section_element_initialise(doc, tag_name, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_table_section_element object + * + * \table_section doc The document object + * \table_section ele The dom_html_table_section_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_table_section_element_initialise(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, dom_string *prefix, + struct dom_html_table_section_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + tag_name, + namespace, prefix); +} + +/** + * Finalise a dom_html_table_section_element object + * + * \table_section ele The dom_html_table_section_element object + */ +void _dom_html_table_section_element_finalise(struct dom_html_table_section_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_table_section_element object + * + * \table_section ele The dom_html_table_section_element object + */ +void _dom_html_table_section_element_destroy(struct dom_html_table_section_element *ele) +{ + _dom_html_table_section_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_table_section_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_table_section_element_destroy(dom_node_internal *node) +{ + _dom_html_table_section_element_destroy((struct dom_html_table_section_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_table_section_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_table_section_element_get_##attr( \ + dom_html_table_section_element *element, \ + dom_string **attr) \ +{ \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)-> \ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ +} +#define SIMPLE_SET(attr) \ + dom_exception dom_html_table_section_element_set_##attr( \ + dom_html_table_section_element *element, \ + dom_string *attr) \ +{ \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)-> \ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ +} + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) +SIMPLE_GET_SET(align); +SIMPLE_GET_SET(ch); +SIMPLE_GET_SET(ch_off); +SIMPLE_GET_SET(v_align); + +/* The callback function for _dom_html_collection_create*/ +bool table_section_callback(struct dom_node_internal *node, void *ctx) +{ + if(node->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(node->name, + ((dom_html_document *)ctx)->memoised[hds_TR])) + { + return true; + } + return false; +} + +/** + * Get the rows collection + * + * \param element The dom_html_section_element object + * \param rows The Status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_section_element_get_rows( + dom_html_table_section_element *element, + dom_html_collection **rows) +{ + dom_html_document *doc = (dom_html_document *) ((dom_node_internal *) element)->owner; + _dom_html_collection_create(doc, (dom_node_internal *)element, + table_section_callback, (void *)doc, rows); + return DOM_NO_ERR; +} + +/** + * Insert Row before the given Index + * + * \param element The dom_html_section_element object + * \param index The Index of the Row node to be inserted + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_section_element_insert_row( + dom_html_table_section_element *element, + int32_t index, dom_html_element **newRow) { + dom_html_document *doc = (dom_html_document *) ((dom_node_internal *) element)->owner; + + dom_node *node; /*< The node at the (index)th position*/ + + dom_html_collection *rows; /*< The collection of rows in input table_section_element*/ + uint32_t len; /*< The size of the row collection */ + dom_exception exp; /*< Variable for getting the exceptions*/ + exp = _dom_html_element_create(doc, doc->memoised[hds_TR], + ((dom_node_internal *)element)->namespace, + ((dom_node_internal *)element)->prefix, + newRow); + if(exp != DOM_NO_ERR) + return exp; + + exp = dom_html_table_section_element_get_rows(element, &rows); + if(exp != DOM_NO_ERR) + return exp; + + exp = dom_html_collection_get_length(rows, &len); + if(exp != DOM_NO_ERR) + return exp; + + if(index < -1 || (uint32_t)index > len) { + /* Check for index validity */ + return DOM_INDEX_SIZE_ERR; + } else if((index == -1 || (uint32_t)index == len) + &&len != 0) { + dom_html_collection_item(rows, + len-1, &node); + + dom_node_internal *internal_node = (dom_node_internal *)node; /*< The dom_node_internal row object at the (len-1)th position*/ + + ((dom_node_internal *) *newRow)->next = internal_node->next; + ((dom_node_internal *) *newRow)->previous = internal_node; + internal_node->next = (dom_node_internal *)*newRow; + } else if(len != 0) { + dom_html_collection_item(rows, + index, &node); + + dom_node_internal *internal_node = (dom_node_internal *)node; /*< The dom_node_internal row object at the (index)th position*/ + + ((dom_node_internal *) *newRow)->next = internal_node; + ((dom_node_internal *) *newRow)->previous = internal_node->previous; + if(internal_node->previous != NULL) { + (internal_node->previous)->next = (dom_node_internal *)*newRow; + internal_node->previous = (dom_node_internal *)*newRow; + } + } + + /*Adjust parent's pointers*/ + ((dom_node_internal *) *newRow)->parent = (dom_node_internal *)element; + if(index == 0) + ((dom_node_internal *)element)->first_child = (dom_node_internal *)*newRow; + if((uint32_t)index == len) + ((dom_node_internal *)element)->last_child = (dom_node_internal *)*newRow; + + return DOM_NO_ERR; +} + +/** + * Delete Row at given Index + * + * \param element The dom_html_section_element object + * \param index The Index of the Row node to be deleted + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_section_element_delete_row( + dom_html_table_section_element *element, + int32_t index) { + dom_node *node; /*< The node at the (index)th position*/ + + dom_html_collection *rows; /*< The collection of rows in input table_section_element*/ + uint32_t len; /*< The size of the row collection */ + + dom_exception exp; /*< Temporary variable to store & check the exceptions*/ + + exp = dom_html_table_section_element_get_rows(element, &rows); + if(exp != DOM_NO_ERR) { + return exp; + } + + exp = dom_html_collection_get_length(rows, &len); + if(exp != DOM_NO_ERR) { + return exp; + } + + if(index < -1 || (uint32_t)index >= len) { + /* Check for index validity */ + return DOM_INDEX_SIZE_ERR; + } else if(index == -1) { + exp = dom_html_collection_item(rows, + len-1, &node); + } else { + exp = dom_html_collection_item(rows, + index, &node); + } + if(exp != DOM_NO_ERR) + return exp; + + dom_node_internal *internal_node = (dom_node_internal *)node; + + /*Fixing the sibling pointers*/ + if(internal_node->previous != NULL) { + (internal_node->previous)->next = internal_node->next; + } + if(internal_node->next != NULL) { + (internal_node->next)->previous = internal_node->previous; + } + + _dom_html_element_destroy(internal_node); + + return DOM_NO_ERR; +} diff --git a/src/html/html_tablesection_element.h b/src/html/html_tablesection_element.h index 2e182d5..fcab1cb 100644 --- a/src/html/html_tablesection_element.h +++ b/src/html/html_tablesection_element.h @@ -3,5 +3,52 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_table_section_element_h_ +#define dom_internal_html_table_section_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_table_section_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_table_section_element object */ +dom_exception _dom_html_table_section_element_create(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, dom_string *prefix, + struct dom_html_table_section_element **ele); + +/* Initialise a dom_html_table_section_element object */ +dom_exception _dom_html_table_section_element_initialise(struct dom_html_document *doc, + dom_string *tag_name, dom_string *namespace, dom_string *prefix, + struct dom_html_table_section_element *ele); + +/* Finalise a dom_html_table_section_element object */ +void _dom_html_table_section_element_finalise(struct dom_html_table_section_element *ele); + +/* Destroy a dom_html_table_section_element object */ +void _dom_html_table_section_element_destroy(struct dom_html_table_section_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_table_section_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_table_section_element_destroy(dom_node_internal *node); +dom_exception _dom_html_table_section_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_TABLE_SECTION_ELEMENT_PROTECT_VTABLE \ + _dom_html_table_section_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_TABLE_SECTION_ELEMENT \ + _dom_virtual_html_table_section_element_destroy, \ + _dom_html_table_section_element_copy + +#endif +bool table_section_callback(struct dom_node_internal *node, void *ctx); + diff --git a/test/DOMTSHandler.pm b/test/DOMTSHandler.pm index 6dfaae9..78d5e7e 100644 --- a/test/DOMTSHandler.pm +++ b/test/DOMTSHandler.pm @@ -43,6 +43,7 @@ our %special_type = ( CharacterData => "dom_characterdata *", CDATASection => "dom_cdata_section *", HTMLAnchorElement => "dom_html_anchor_element *", + HTMLElement => "dom_html_element *", ); our %special_prefix = ( DOMString => "dom_string", diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement01.xml b/test/testcases/tests/level1/html/HTMLTableSectionElement01.xml new file mode 100644 index 0000000..238dcb2 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableSectionElement01.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableSectionElement01 +NIST + + The align attribute specifies the horizontal alignment of data within + cells. + + Retrieve the align attribute of the first THEAD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLTableSectionElement01.xml.kfail deleted file mode 100644 index 238dcb2..0000000 --- a/test/testcases/tests/level1/html/HTMLTableSectionElement01.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableSectionElement01 -NIST - - The align attribute specifies the horizontal alignment of data within - cells. - - Retrieve the align attribute of the first THEAD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement02.xml b/test/testcases/tests/level1/html/HTMLTableSectionElement02.xml new file mode 100644 index 0000000..c4bdbf9 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableSectionElement02.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableSectionElement02 +NIST + + The align attribute specifies the horizontal alignment of data within + cells. + + Retrieve the align attribute of the first TFOOT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLTableSectionElement02.xml.kfail deleted file mode 100644 index c4bdbf9..0000000 --- a/test/testcases/tests/level1/html/HTMLTableSectionElement02.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableSectionElement02 -NIST - - The align attribute specifies the horizontal alignment of data within - cells. - - Retrieve the align attribute of the first TFOOT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement03.xml b/test/testcases/tests/level1/html/HTMLTableSectionElement03.xml new file mode 100644 index 0000000..2236435 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableSectionElement03.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableSectionElement03 +NIST + + The align attribute specifies the horizontal alignment of data within + cells. + + Retrieve the align attribute of the first TBODY element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLTableSectionElement03.xml.kfail deleted file mode 100644 index 2236435..0000000 --- a/test/testcases/tests/level1/html/HTMLTableSectionElement03.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableSectionElement03 -NIST - - The align attribute specifies the horizontal alignment of data within - cells. - - Retrieve the align attribute of the first TBODY element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement04.xml b/test/testcases/tests/level1/html/HTMLTableSectionElement04.xml new file mode 100644 index 0000000..2060f35 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableSectionElement04.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableSectionElement04 +NIST + + The ch attribute specifies the alignment character for cells in a + column. + + Retrieve the char attribute of the first THEAD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLTableSectionElement04.xml.kfail deleted file mode 100644 index 2060f35..0000000 --- a/test/testcases/tests/level1/html/HTMLTableSectionElement04.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableSectionElement04 -NIST - - The ch attribute specifies the alignment character for cells in a - column. - - Retrieve the char attribute of the first THEAD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement05.xml b/test/testcases/tests/level1/html/HTMLTableSectionElement05.xml new file mode 100644 index 0000000..32022bb --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableSectionElement05.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableSectionElement05 +NIST + + The ch attribute specifies the alignment character for cells in a + column. + + Retrieve the char attribute of the first TFOOT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement05.xml.kfail b/test/testcases/tests/level1/html/HTMLTableSectionElement05.xml.kfail deleted file mode 100644 index 32022bb..0000000 --- a/test/testcases/tests/level1/html/HTMLTableSectionElement05.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableSectionElement05 -NIST - - The ch attribute specifies the alignment character for cells in a - column. - - Retrieve the char attribute of the first TFOOT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement06.xml b/test/testcases/tests/level1/html/HTMLTableSectionElement06.xml new file mode 100644 index 0000000..be665e4 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableSectionElement06.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableSectionElement06 +NIST + + The ch attribute specifies the alignment character for cells in a + column. + + Retrieve the char attribute of the first TBODY element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLTableSectionElement06.xml.kfail deleted file mode 100644 index be665e4..0000000 --- a/test/testcases/tests/level1/html/HTMLTableSectionElement06.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableSectionElement06 -NIST - - The ch attribute specifies the alignment character for cells in a - column. - - Retrieve the char attribute of the first TBODY element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement07.xml b/test/testcases/tests/level1/html/HTMLTableSectionElement07.xml new file mode 100644 index 0000000..ecf38f3 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableSectionElement07.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableSectionElement07 +NIST + + The chOff attribute specifies the offset of alignment character. + + Retrieve the charoff attribute of the first THEAD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLTableSectionElement07.xml.kfail deleted file mode 100644 index ecf38f3..0000000 --- a/test/testcases/tests/level1/html/HTMLTableSectionElement07.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableSectionElement07 -NIST - - The chOff attribute specifies the offset of alignment character. - - Retrieve the charoff attribute of the first THEAD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement08.xml b/test/testcases/tests/level1/html/HTMLTableSectionElement08.xml new file mode 100644 index 0000000..48440ca --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableSectionElement08.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableSectionElement08 +NIST + + The chOff attribute specifies the offset of alignment character. + + Retrieve the charoff attribute of the first TFOOT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement08.xml.kfail b/test/testcases/tests/level1/html/HTMLTableSectionElement08.xml.kfail deleted file mode 100644 index 48440ca..0000000 --- a/test/testcases/tests/level1/html/HTMLTableSectionElement08.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableSectionElement08 -NIST - - The chOff attribute specifies the offset of alignment character. - - Retrieve the charoff attribute of the first TFOOT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement09.xml b/test/testcases/tests/level1/html/HTMLTableSectionElement09.xml new file mode 100644 index 0000000..501446b --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableSectionElement09.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableSectionElement09 +NIST + + The chOff attribute specifies the offset of alignment character. + + Retrieve the charoff attribute of the first TBODY element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement09.xml.kfail b/test/testcases/tests/level1/html/HTMLTableSectionElement09.xml.kfail deleted file mode 100644 index 501446b..0000000 --- a/test/testcases/tests/level1/html/HTMLTableSectionElement09.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableSectionElement09 -NIST - - The chOff attribute specifies the offset of alignment character. - - Retrieve the charoff attribute of the first TBODY element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement10.xml b/test/testcases/tests/level1/html/HTMLTableSectionElement10.xml new file mode 100644 index 0000000..3e011c1 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableSectionElement10.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableSectionElement10 +NIST + + The vAlign attribute specifies the vertical alignment of cell data in + column. + + Retrieve the vAlign attribute of the first THEAD element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement10.xml.kfail b/test/testcases/tests/level1/html/HTMLTableSectionElement10.xml.kfail deleted file mode 100644 index 3e011c1..0000000 --- a/test/testcases/tests/level1/html/HTMLTableSectionElement10.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableSectionElement10 -NIST - - The vAlign attribute specifies the vertical alignment of cell data in - column. - - Retrieve the vAlign attribute of the first THEAD element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement11.xml b/test/testcases/tests/level1/html/HTMLTableSectionElement11.xml new file mode 100644 index 0000000..ba5ae68 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableSectionElement11.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableSectionElement11 +NIST + + The vAlign attribute specifies the vertical alignment of cell data in + column. + + Retrieve the vAlign attribute of the first TFOOT element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement11.xml.kfail b/test/testcases/tests/level1/html/HTMLTableSectionElement11.xml.kfail deleted file mode 100644 index ba5ae68..0000000 --- a/test/testcases/tests/level1/html/HTMLTableSectionElement11.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableSectionElement11 -NIST - - The vAlign attribute specifies the vertical alignment of cell data in - column. - - Retrieve the vAlign attribute of the first TFOOT element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement12.xml b/test/testcases/tests/level1/html/HTMLTableSectionElement12.xml new file mode 100644 index 0000000..e649489 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableSectionElement12.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableSectionElement12 +NIST + + The vAlign attribute specifies the vertical alignment of cell data in + column. + + Retrieve the vAlign attribute of the first TBODY element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableSectionElement12.xml.kfail b/test/testcases/tests/level1/html/HTMLTableSectionElement12.xml.kfail deleted file mode 100644 index e649489..0000000 --- a/test/testcases/tests/level1/html/HTMLTableSectionElement12.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableSectionElement12 -NIST - - The vAlign attribute specifies the vertical alignment of cell data in - column. - - Retrieve the vAlign attribute of the first TBODY element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml new file mode 100644 index 0000000..8fbd1c2 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml @@ -0,0 +1,48 @@ + + + + + + +HTMLTableSectionElement25 +NIST + + The insertRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is greater than the number of rows. + + Retrieve the first THEAD element which has one row. Try + to insert a new row using an index of two. This should throw + a INDEX_SIZE_ERR DOMException since there is only one row. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml.kfail deleted file mode 100644 index 8fbd1c2..0000000 --- a/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml.kfail +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableSectionElement25 -NIST - - The insertRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is greater than the number of rows. - - Retrieve the first THEAD element which has one row. Try - to insert a new row using an index of two. This should throw - a INDEX_SIZE_ERR DOMException since there is only one row. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml new file mode 100644 index 0000000..206d91f --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml @@ -0,0 +1,48 @@ + + + + + + +HTMLTableSectionElement26 +NIST + + The insertRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is negative. + + Retrieve the first THEAD element which has one row. Try + to insert a new row using an index of negative two. This should throw + a INDEX_SIZE_ERR DOMException since the index is negative. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml.kfail deleted file mode 100644 index 206d91f..0000000 --- a/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml.kfail +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableSectionElement26 -NIST - - The insertRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is negative. - - Retrieve the first THEAD element which has one row. Try - to insert a new row using an index of negative two. This should throw - a INDEX_SIZE_ERR DOMException since the index is negative. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml new file mode 100644 index 0000000..3ab35a5 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml @@ -0,0 +1,48 @@ + + + + + + +HTMLTableSectionElement27 +NIST + + The deleteRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is greater than the number of rows. + + Retrieve the first THEAD element which has one row. Try + to delete a row using an index of two. This should throw + a INDEX_SIZE_ERR DOMException since the index is greater than the + number of rows. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml.kfail deleted file mode 100644 index 3ab35a5..0000000 --- a/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml.kfail +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableSectionElement27 -NIST - - The deleteRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is greater than the number of rows. - - Retrieve the first THEAD element which has one row. Try - to delete a row using an index of two. This should throw - a INDEX_SIZE_ERR DOMException since the index is greater than the - number of rows. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml new file mode 100644 index 0000000..5578ba5 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml @@ -0,0 +1,48 @@ + + + + + + +HTMLTableSectionElement28 +NIST + + The deleteRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is equal to the number of rows. + + Retrieve the first THEAD element which has one row. Try + to delete a row using an index of 1. This should throw + a INDEX_SIZE_ERR DOMException since the index is equal to the + number of rows. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml.kfail deleted file mode 100644 index 5578ba5..0000000 --- a/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml.kfail +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableSectionElement28 -NIST - - The deleteRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is equal to the number of rows. - - Retrieve the first THEAD element which has one row. Try - to delete a row using an index of 1. This should throw - a INDEX_SIZE_ERR DOMException since the index is equal to the - number of rows. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml new file mode 100644 index 0000000..0ddd852 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml @@ -0,0 +1,47 @@ + + + + + + +HTMLTableSectionElement29 +NIST + + The deleteRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is negative. + + Retrieve the first THEAD element which has one row. Try + to delete a row using an index of negative two. This should throw + a INDEX_SIZE_ERR DOMException since the index is negative. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml.kfail deleted file mode 100644 index 0ddd852..0000000 --- a/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml.kfail +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - -HTMLTableSectionElement29 -NIST - - The deleteRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is negative. - - Retrieve the first THEAD element which has one row. Try - to delete a row using an index of negative two. This should throw - a INDEX_SIZE_ERR DOMException since the index is negative. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail deleted file mode 100644 index 8fd17c2..0000000 --- a/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - -HTMLTableSectionElement30 -NIST - - The insertRow() method inserts a new empty table row. The new - row is inserted immediately before the current indexth row in this - section. If index is -1 or equal to the number of rows in this section, - the new row is appended. - - Retrieve the first THEAD element and invoke the insertRow() method - with an index of negative one. Since the index is negative one the - new row is appended. - After the new row is appended the number of rows in the THEAD - section is two. - -Rick Rivello -2002-11-07 - - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail deleted file mode 100644 index 55464e2..0000000 --- a/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - -HTMLTableSectionElement31 -NIST - - The deleteRow() method deletes a row from this section. The index - starts from 0 and is relative only to the rows contained inside - this section, not all the rows in the table. If the index is -1 - the last row will be deleted. - - Retrieve the second TBODY element and invoke the deleteRow() method - with an index of -1. The nuber of rows in the THEAD section before - the deletion of the row is two. After the row is deleted the number - of rows in the TBODY section is one. - -Rick Rivello -2002-11-07 - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/files/tablesection.html b/test/testcases/tests/level2/html/files/tablesection.html new file mode 100644 index 0000000..0c1a5f7 --- /dev/null +++ b/test/testcases/tests/level2/html/files/tablesection.html @@ -0,0 +1,62 @@ + + + + +NIST DOM HTML Test - TABLESECTION + + + + + + + + + + + +
    IdNamePositionSalary
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Caption
    Employee IdEmployee NamePositionSalaryGenderAddress
    next page ...next page ...next page ...next page ...next page ...next page ...
    EMP0001Margaret MartinAccountant56,000Female1230 North Ave. Dallas, Texas 98551
    EMP0002Martha RaynoldsSecretary35,000Female1900 Dallas Road Dallas, Texas 98554
    + + + + diff --git a/test/testcases/tests/level2/html/files/tablesection.xhtml b/test/testcases/tests/level2/html/files/tablesection.xhtml new file mode 100644 index 0000000..3498650 --- /dev/null +++ b/test/testcases/tests/level2/html/files/tablesection.xhtml @@ -0,0 +1,65 @@ + + + + +NIST DOM HTML Test - TABLESECTION + + + + + + + + + + + +
    IdNamePositionSalary
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Caption
    Employee IdEmployee NamePositionSalaryGenderAddress
    next page ...next page ...next page ...next page ...next page ...next page ...
    EMP0001Margaret MartinAccountant56,000Female1230 North Ave. Dallas, Texas 98551
    EMP0002Martha RaynoldsSecretary35,000Female1900 Dallas Road Dallas, Texas 98554
    + + + + + diff --git a/test/testcases/tests/level2/html/files/tablesection.xml b/test/testcases/tests/level2/html/files/tablesection.xml new file mode 100644 index 0000000..3498650 --- /dev/null +++ b/test/testcases/tests/level2/html/files/tablesection.xml @@ -0,0 +1,65 @@ + + + + +NIST DOM HTML Test - TABLESECTION + + + + + + + + + + + +
    IdNamePositionSalary
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Caption
    Employee IdEmployee NamePositionSalaryGenderAddress
    next page ...next page ...next page ...next page ...next page ...next page ...
    EMP0001Margaret MartinAccountant56,000Female1230 North Ave. Dallas, Texas 98551
    EMP0002Martha RaynoldsSecretary35,000Female1900 Dallas Road Dallas, Texas 98554
    + + + + + -- cgit v1.2.3 From f0a3c95cfc4a5595f930cd5dd14d6cbbf1f85312 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Sat, 31 May 2014 09:07:42 +0530 Subject: tableSectionElement Rev.2 && tableCellElement Rev.4 && tableElement Rev.1 && tableRowElement Rev.1 && DOMTSHandler(Test Suite) Revised and implemented inefficient ways to produce correct .c's && other minor bg fixes in HTMLCollection... Tests expecting 2nd attribute of dom_html_collection_get_length to be of type int32_t aren't enabled yet. Will be done in a later commit. --- Makefile | 2 + include/dom/dom.h | 2 + include/dom/html/html_table_element.h | 123 ++++ include/dom/html/html_tablerow_element.h | 62 ++ include/dom/html/html_tablesection_element.h | 4 +- src/html/Makefile | 6 +- src/html/TODO | 4 +- src/html/html_collection.c | 2 +- src/html/html_document.c | 10 +- src/html/html_document_strings.h | 5 + src/html/html_table_element.c | 740 +++++++++++++++++++++ src/html/html_table_element.h | 56 ++ src/html/html_tablecell_element.c | 19 +- src/html/html_tablerow_element.c | 368 ++++++++++ src/html/html_tablerow_element.h | 46 ++ src/html/html_tablesection_element.c | 77 +-- src/html/html_tablesection_element.h | 2 +- test/DOMTSHandler.pm | 91 ++- .../tests/level1/html/HTMLCollection01.xml.notimpl | 49 -- .../tests/level1/html/HTMLCollection02.xml.kfail | 49 -- .../tests/level1/html/HTMLCollection03.xml.kfail | 49 -- .../tests/level1/html/HTMLCollection04.xml.kfail | 59 ++ .../tests/level1/html/HTMLCollection05.xml.kfail | 46 ++ .../tests/level1/html/HTMLCollection09.xml.kfail | 47 ++ .../tests/level1/html/HTMLCollection12.xml.kfail | 50 ++ .../tests/level1/html/HTMLTableElement01.xml | 45 ++ .../tests/level1/html/HTMLTableElement01.xml.kfail | 45 -- .../tests/level1/html/HTMLTableElement02.xml | 44 ++ .../tests/level1/html/HTMLTableElement02.xml.kfail | 44 -- .../tests/level1/html/HTMLTableElement03.xml | 45 ++ .../tests/level1/html/HTMLTableElement03.xml.kfail | 45 -- .../tests/level1/html/HTMLTableElement04.xml | 44 ++ .../tests/level1/html/HTMLTableElement04.xml.kfail | 44 -- .../tests/level1/html/HTMLTableElement05.xml | 45 ++ .../tests/level1/html/HTMLTableElement05.xml.kfail | 45 -- .../tests/level1/html/HTMLTableElement06.xml | 44 ++ .../tests/level1/html/HTMLTableElement06.xml.kfail | 44 -- .../tests/level1/html/HTMLTableElement07.xml | 57 ++ .../tests/level1/html/HTMLTableElement07.xml.kfail | 57 -- .../tests/level1/html/HTMLTableElement08.xml | 54 ++ .../tests/level1/html/HTMLTableElement08.xml.kfail | 54 -- .../tests/level1/html/HTMLTableElement09.xml | 57 ++ .../tests/level1/html/HTMLTableElement09.xml.kfail | 57 -- .../tests/level1/html/HTMLTableElement10.xml | 44 ++ .../tests/level1/html/HTMLTableElement10.xml.kfail | 44 -- .../tests/level1/html/HTMLTableElement11.xml | 43 ++ .../tests/level1/html/HTMLTableElement11.xml.kfail | 43 -- .../tests/level1/html/HTMLTableElement12.xml | 43 ++ .../tests/level1/html/HTMLTableElement12.xml.kfail | 43 -- .../tests/level1/html/HTMLTableElement13.xml | 44 ++ .../tests/level1/html/HTMLTableElement13.xml.kfail | 44 -- .../tests/level1/html/HTMLTableElement14.xml | 44 ++ .../tests/level1/html/HTMLTableElement14.xml.kfail | 44 -- .../tests/level1/html/HTMLTableElement15.xml | 43 ++ .../tests/level1/html/HTMLTableElement15.xml.kfail | 43 -- .../tests/level1/html/HTMLTableElement16.xml | 43 ++ .../tests/level1/html/HTMLTableElement16.xml.kfail | 43 -- .../tests/level1/html/HTMLTableElement17.xml | 44 ++ .../tests/level1/html/HTMLTableElement17.xml.kfail | 44 -- .../tests/level1/html/HTMLTableElement18.xml | 43 ++ .../tests/level1/html/HTMLTableElement18.xml.kfail | 43 -- .../tests/level1/html/HTMLTableElement19.xml | 51 ++ .../tests/level1/html/HTMLTableElement19.xml.kfail | 51 -- .../tests/level1/html/HTMLTableElement20.xml | 50 ++ .../tests/level1/html/HTMLTableElement20.xml.kfail | 50 -- .../tests/level1/html/HTMLTableElement21.xml.kfail | 4 +- .../tests/level1/html/HTMLTableElement22.xml | 51 ++ .../tests/level1/html/HTMLTableElement22.xml.kfail | 51 -- .../tests/level1/html/HTMLTableElement23.xml | 50 ++ .../tests/level1/html/HTMLTableElement23.xml.kfail | 50 -- .../tests/level1/html/HTMLTableElement24.xml.kfail | 4 +- .../tests/level1/html/HTMLTableElement25.xml | 49 ++ .../tests/level1/html/HTMLTableElement25.xml.kfail | 49 -- .../tests/level1/html/HTMLTableElement26.xml | 52 ++ .../tests/level1/html/HTMLTableElement26.xml.kfail | 52 -- .../tests/level1/html/HTMLTableElement27.xml | 47 ++ .../tests/level1/html/HTMLTableElement27.xml.kfail | 47 -- .../tests/level1/html/HTMLTableRowElement01.xml | 46 ++ .../level1/html/HTMLTableRowElement01.xml.kfail | 46 -- .../tests/level1/html/HTMLTableRowElement02.xml | 44 ++ .../level1/html/HTMLTableRowElement02.xml.kfail | 44 -- .../tests/level1/html/HTMLTableRowElement03.xml | 44 ++ .../level1/html/HTMLTableRowElement03.xml.kfail | 44 -- .../tests/level1/html/HTMLTableRowElement04.xml | 44 ++ .../level1/html/HTMLTableRowElement04.xml.kfail | 44 -- .../tests/level1/html/HTMLTableRowElement06.xml | 44 ++ .../level1/html/HTMLTableRowElement06.xml.kfail | 44 -- .../tests/level1/html/HTMLTableRowElement07.xml | 43 ++ .../level1/html/HTMLTableRowElement07.xml.kfail | 43 -- .../tests/level1/html/HTMLTableRowElement08.xml | 43 ++ .../level1/html/HTMLTableRowElement08.xml.kfail | 43 -- .../tests/level1/html/HTMLTableRowElement09.xml | 43 ++ .../level1/html/HTMLTableRowElement09.xml.kfail | 43 -- .../tests/level1/html/HTMLTableRowElement10.xml | 44 ++ .../level1/html/HTMLTableRowElement10.xml.kfail | 44 -- test/testcases/tests/level1/html/anchor01.xml | 40 ++ .../tests/level1/html/anchor01.xml.notimpl | 40 -- test/testcases/tests/level1/html/anchor02.xml | 40 ++ .../tests/level1/html/anchor02.xml.notimpl | 40 -- test/testcases/tests/level1/html/anchor03.xml | 40 ++ .../tests/level1/html/anchor03.xml.notimpl | 40 -- .../testcases/tests/level1/html/anchor04.xml.kfail | 40 ++ .../tests/level1/html/anchor04.xml.notimpl | 40 -- test/testcases/tests/level1/html/anchor05.xml | 40 ++ .../tests/level1/html/anchor05.xml.notimpl | 40 -- test/testcases/tests/level1/html/anchor06.xml | 40 ++ .../tests/level1/html/anchor06.xml.notimpl | 40 -- test/testcases/tests/level1/html/dlist01.xml | 39 ++ .../tests/level1/html/dlist01.xml.notimpl | 39 -- test/testcases/tests/level1/html/table01.xml | 40 ++ test/testcases/tests/level1/html/table01.xml.kfail | 40 -- test/testcases/tests/level1/html/table02.xml | 42 ++ test/testcases/tests/level1/html/table02.xml.kfail | 42 -- test/testcases/tests/level1/html/table03.xml | 42 ++ test/testcases/tests/level1/html/table03.xml.kfail | 42 -- test/testcases/tests/level1/html/table04.xml | 42 ++ test/testcases/tests/level1/html/table04.xml.kfail | 42 -- test/testcases/tests/level1/html/table08.xml | 42 ++ test/testcases/tests/level1/html/table08.xml.kfail | 42 -- test/testcases/tests/level1/html/table09.xml | 42 ++ test/testcases/tests/level1/html/table09.xml.kfail | 42 -- test/testcases/tests/level1/html/table10.xml | 42 ++ test/testcases/tests/level1/html/table10.xml.kfail | 42 -- test/testcases/tests/level1/html/table12.xml | 42 ++ test/testcases/tests/level1/html/table12.xml.kfail | 42 -- test/testcases/tests/level1/html/table17.xml | 42 ++ test/testcases/tests/level1/html/table17.xml.kfail | 42 -- test/testcases/tests/level1/html/table18.xml | 40 ++ test/testcases/tests/level1/html/table18.xml.kfail | 40 -- test/testcases/tests/level1/html/table19.xml | 41 ++ test/testcases/tests/level1/html/table19.xml.kfail | 41 -- test/testcases/tests/level1/html/table20.xml | 40 ++ test/testcases/tests/level1/html/table20.xml.kfail | 40 -- test/testcases/tests/level1/html/table21.xml | 40 ++ test/testcases/tests/level1/html/table21.xml.kfail | 40 -- test/testcases/tests/level1/html/table22.xml | 40 ++ test/testcases/tests/level1/html/table22.xml.kfail | 40 -- test/testcases/tests/level1/html/table23.xml | 40 ++ test/testcases/tests/level1/html/table23.xml.kfail | 40 -- test/testcases/tests/level1/html/table24.xml | 40 ++ test/testcases/tests/level1/html/table24.xml.kfail | 40 -- test/testcases/tests/level1/html/table25.xml | 40 ++ test/testcases/tests/level1/html/table25.xml.kfail | 40 -- test/testcases/tests/level1/html/table26.xml | 39 ++ test/testcases/tests/level1/html/table26.xml.kfail | 39 -- test/testcases/tests/level1/html/table27.xml | 40 ++ test/testcases/tests/level1/html/table27.xml.kfail | 40 -- test/testcases/tests/level1/html/table28.xml | 40 ++ test/testcases/tests/level1/html/table28.xml.kfail | 40 -- test/testcases/tests/level1/html/table29.xml | 40 ++ test/testcases/tests/level1/html/table29.xml.kfail | 40 -- test/testcases/tests/level1/html/table30.xml | 40 ++ test/testcases/tests/level1/html/table30.xml.kfail | 40 -- test/testcases/tests/level1/html/table31.xml | 40 ++ test/testcases/tests/level1/html/table31.xml.kfail | 40 -- test/testcases/tests/level1/html/table32.xml | 40 ++ test/testcases/tests/level1/html/table32.xml.kfail | 40 -- test/testcases/tests/level1/html/table33.xml | 40 ++ test/testcases/tests/level1/html/table33.xml.kfail | 40 -- test/testcases/tests/level1/html/table34.xml | 40 ++ test/testcases/tests/level1/html/table34.xml.kfail | 40 -- test/testcases/tests/level1/html/table35.xml | 40 ++ test/testcases/tests/level1/html/table35.xml.kfail | 40 -- test/testcases/tests/level1/html/table36.xml | 40 ++ test/testcases/tests/level1/html/table36.xml.kfail | 40 -- test/testcases/tests/level1/html/table37.xml | 39 ++ test/testcases/tests/level1/html/table37.xml.kfail | 39 -- test/testcases/tests/level1/html/table38.xml | 40 ++ test/testcases/tests/level1/html/table38.xml.kfail | 40 -- test/testcases/tests/level1/html/table39.xml | 40 ++ test/testcases/tests/level1/html/table39.xml.kfail | 40 -- test/testcases/tests/level1/html/table40.xml | 40 ++ test/testcases/tests/level1/html/table40.xml.kfail | 40 -- test/testcases/tests/level1/html/table41.xml | 40 ++ test/testcases/tests/level1/html/table41.xml.kfail | 40 -- test/testcases/tests/level1/html/table42.xml | 40 ++ test/testcases/tests/level1/html/table42.xml.kfail | 40 -- test/testcases/tests/level1/html/table43.xml | 40 ++ test/testcases/tests/level1/html/table43.xml.kfail | 40 -- test/testcases/tests/level1/html/table44.xml | 40 ++ test/testcases/tests/level1/html/table44.xml.kfail | 40 -- test/testcases/tests/level1/html/table45.xml | 40 ++ test/testcases/tests/level1/html/table45.xml.kfail | 40 -- test/testcases/tests/level1/html/table46.xml | 40 ++ test/testcases/tests/level1/html/table46.xml.kfail | 40 -- test/testcases/tests/level1/html/table47.xml | 40 ++ test/testcases/tests/level1/html/table47.xml.kfail | 40 -- test/testcases/tests/level1/html/table48.xml | 40 ++ test/testcases/tests/level1/html/table48.xml.kfail | 40 -- test/testcases/tests/level1/html/table49.xml | 40 ++ test/testcases/tests/level1/html/table49.xml.kfail | 40 -- test/testcases/tests/level1/html/table50.xml | 40 ++ test/testcases/tests/level1/html/table50.xml.kfail | 40 -- test/testcases/tests/level1/html/table51.xml | 40 ++ test/testcases/tests/level1/html/table51.xml.kfail | 40 -- test/testcases/tests/level1/html/table52.xml | 40 ++ test/testcases/tests/level1/html/table52.xml.kfail | 40 -- test/testcases/tests/level1/html/table53.xml | 40 ++ test/testcases/tests/level1/html/table53.xml.kfail | 40 -- .../tests/level2/html/HTMLTableElement34.xml | 48 ++ .../tests/level2/html/HTMLTableElement34.xml.kfail | 48 -- .../tests/level2/html/HTMLTableElement35.xml | 48 ++ .../tests/level2/html/HTMLTableElement35.xml.kfail | 48 -- .../tests/level2/html/HTMLTableElement36.xml | 47 ++ .../tests/level2/html/HTMLTableElement36.xml.kfail | 47 -- .../tests/level2/html/HTMLTableElement37.xml | 48 ++ .../tests/level2/html/HTMLTableElement37.xml.kfail | 48 -- .../tests/level2/html/HTMLTableElement38.xml | 47 ++ .../tests/level2/html/HTMLTableElement38.xml.kfail | 47 -- .../tests/level2/html/HTMLTableElement39.xml.kfail | 5 + .../tests/level2/html/HTMLTableRowElement15.xml | 48 ++ .../level2/html/HTMLTableRowElement15.xml.kfail | 48 -- .../tests/level2/html/HTMLTableRowElement16.xml | 48 ++ .../level2/html/HTMLTableRowElement16.xml.kfail | 48 -- .../tests/level2/html/HTMLTableRowElement17.xml | 47 ++ .../level2/html/HTMLTableRowElement17.xml.kfail | 47 -- .../tests/level2/html/HTMLTableRowElement18.xml | 47 ++ .../level2/html/HTMLTableRowElement18.xml.kfail | 47 -- .../tests/level2/html/HTMLTableRowElement19.xml | 47 ++ .../level2/html/HTMLTableRowElement19.xml.kfail | 47 -- .../html/HTMLTableSectionElement30.xml.kfail | 55 ++ .../html/HTMLTableSectionElement31.xml.kfail | 53 ++ test/testcases/tests/level2/html/files/table.html | 78 +++ test/testcases/tests/level2/html/files/table.xhtml | 81 +++ test/testcases/tests/level2/html/files/table.xml | 81 +++ test/testcases/tests/level2/html/files/table1.html | 12 + .../testcases/tests/level2/html/files/table1.xhtml | 15 + test/testcases/tests/level2/html/files/table1.xml | 15 + .../tests/level2/html/files/tablerow.html | 59 ++ .../tests/level2/html/files/tablerow.xhtml | 62 ++ .../testcases/tests/level2/html/files/tablerow.xml | 62 ++ test/testutils/domtsasserts.c | 4 + 232 files changed, 6462 insertions(+), 4376 deletions(-) delete mode 100644 test/testcases/tests/level1/html/HTMLCollection01.xml.notimpl delete mode 100644 test/testcases/tests/level1/html/HTMLCollection02.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLCollection03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLCollection04.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLCollection05.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLCollection09.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLCollection12.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement04.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement05.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement05.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement06.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement06.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement07.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement07.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement08.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement08.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement09.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement09.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement10.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement10.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement11.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement11.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement12.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement12.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement13.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement13.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement14.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement14.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement15.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement15.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement16.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement16.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement17.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement17.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement18.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement18.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement19.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement19.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement20.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement20.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement22.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement22.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement23.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement23.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement25.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement25.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement26.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement26.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableElement27.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableElement27.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement04.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement06.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement06.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement07.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement07.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement08.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement08.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement09.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement09.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement10.xml delete mode 100644 test/testcases/tests/level1/html/HTMLTableRowElement10.xml.kfail create mode 100644 test/testcases/tests/level1/html/anchor01.xml delete mode 100644 test/testcases/tests/level1/html/anchor01.xml.notimpl create mode 100644 test/testcases/tests/level1/html/anchor02.xml delete mode 100644 test/testcases/tests/level1/html/anchor02.xml.notimpl create mode 100644 test/testcases/tests/level1/html/anchor03.xml delete mode 100644 test/testcases/tests/level1/html/anchor03.xml.notimpl create mode 100644 test/testcases/tests/level1/html/anchor04.xml.kfail delete mode 100644 test/testcases/tests/level1/html/anchor04.xml.notimpl create mode 100644 test/testcases/tests/level1/html/anchor05.xml delete mode 100644 test/testcases/tests/level1/html/anchor05.xml.notimpl create mode 100644 test/testcases/tests/level1/html/anchor06.xml delete mode 100644 test/testcases/tests/level1/html/anchor06.xml.notimpl create mode 100644 test/testcases/tests/level1/html/dlist01.xml delete mode 100644 test/testcases/tests/level1/html/dlist01.xml.notimpl create mode 100644 test/testcases/tests/level1/html/table01.xml delete mode 100644 test/testcases/tests/level1/html/table01.xml.kfail create mode 100644 test/testcases/tests/level1/html/table02.xml delete mode 100644 test/testcases/tests/level1/html/table02.xml.kfail create mode 100644 test/testcases/tests/level1/html/table03.xml delete mode 100644 test/testcases/tests/level1/html/table03.xml.kfail create mode 100644 test/testcases/tests/level1/html/table04.xml delete mode 100644 test/testcases/tests/level1/html/table04.xml.kfail create mode 100644 test/testcases/tests/level1/html/table08.xml delete mode 100644 test/testcases/tests/level1/html/table08.xml.kfail create mode 100644 test/testcases/tests/level1/html/table09.xml delete mode 100644 test/testcases/tests/level1/html/table09.xml.kfail create mode 100644 test/testcases/tests/level1/html/table10.xml delete mode 100644 test/testcases/tests/level1/html/table10.xml.kfail create mode 100644 test/testcases/tests/level1/html/table12.xml delete mode 100644 test/testcases/tests/level1/html/table12.xml.kfail create mode 100644 test/testcases/tests/level1/html/table17.xml delete mode 100644 test/testcases/tests/level1/html/table17.xml.kfail create mode 100644 test/testcases/tests/level1/html/table18.xml delete mode 100644 test/testcases/tests/level1/html/table18.xml.kfail create mode 100644 test/testcases/tests/level1/html/table19.xml delete mode 100644 test/testcases/tests/level1/html/table19.xml.kfail create mode 100644 test/testcases/tests/level1/html/table20.xml delete mode 100644 test/testcases/tests/level1/html/table20.xml.kfail create mode 100644 test/testcases/tests/level1/html/table21.xml delete mode 100644 test/testcases/tests/level1/html/table21.xml.kfail create mode 100644 test/testcases/tests/level1/html/table22.xml delete mode 100644 test/testcases/tests/level1/html/table22.xml.kfail create mode 100644 test/testcases/tests/level1/html/table23.xml delete mode 100644 test/testcases/tests/level1/html/table23.xml.kfail create mode 100644 test/testcases/tests/level1/html/table24.xml delete mode 100644 test/testcases/tests/level1/html/table24.xml.kfail create mode 100644 test/testcases/tests/level1/html/table25.xml delete mode 100644 test/testcases/tests/level1/html/table25.xml.kfail create mode 100644 test/testcases/tests/level1/html/table26.xml delete mode 100644 test/testcases/tests/level1/html/table26.xml.kfail create mode 100644 test/testcases/tests/level1/html/table27.xml delete mode 100644 test/testcases/tests/level1/html/table27.xml.kfail create mode 100644 test/testcases/tests/level1/html/table28.xml delete mode 100644 test/testcases/tests/level1/html/table28.xml.kfail create mode 100644 test/testcases/tests/level1/html/table29.xml delete mode 100644 test/testcases/tests/level1/html/table29.xml.kfail create mode 100644 test/testcases/tests/level1/html/table30.xml delete mode 100644 test/testcases/tests/level1/html/table30.xml.kfail create mode 100644 test/testcases/tests/level1/html/table31.xml delete mode 100644 test/testcases/tests/level1/html/table31.xml.kfail create mode 100644 test/testcases/tests/level1/html/table32.xml delete mode 100644 test/testcases/tests/level1/html/table32.xml.kfail create mode 100644 test/testcases/tests/level1/html/table33.xml delete mode 100644 test/testcases/tests/level1/html/table33.xml.kfail create mode 100644 test/testcases/tests/level1/html/table34.xml delete mode 100644 test/testcases/tests/level1/html/table34.xml.kfail create mode 100644 test/testcases/tests/level1/html/table35.xml delete mode 100644 test/testcases/tests/level1/html/table35.xml.kfail create mode 100644 test/testcases/tests/level1/html/table36.xml delete mode 100644 test/testcases/tests/level1/html/table36.xml.kfail create mode 100644 test/testcases/tests/level1/html/table37.xml delete mode 100644 test/testcases/tests/level1/html/table37.xml.kfail create mode 100644 test/testcases/tests/level1/html/table38.xml delete mode 100644 test/testcases/tests/level1/html/table38.xml.kfail create mode 100644 test/testcases/tests/level1/html/table39.xml delete mode 100644 test/testcases/tests/level1/html/table39.xml.kfail create mode 100644 test/testcases/tests/level1/html/table40.xml delete mode 100644 test/testcases/tests/level1/html/table40.xml.kfail create mode 100644 test/testcases/tests/level1/html/table41.xml delete mode 100644 test/testcases/tests/level1/html/table41.xml.kfail create mode 100644 test/testcases/tests/level1/html/table42.xml delete mode 100644 test/testcases/tests/level1/html/table42.xml.kfail create mode 100644 test/testcases/tests/level1/html/table43.xml delete mode 100644 test/testcases/tests/level1/html/table43.xml.kfail create mode 100644 test/testcases/tests/level1/html/table44.xml delete mode 100644 test/testcases/tests/level1/html/table44.xml.kfail create mode 100644 test/testcases/tests/level1/html/table45.xml delete mode 100644 test/testcases/tests/level1/html/table45.xml.kfail create mode 100644 test/testcases/tests/level1/html/table46.xml delete mode 100644 test/testcases/tests/level1/html/table46.xml.kfail create mode 100644 test/testcases/tests/level1/html/table47.xml delete mode 100644 test/testcases/tests/level1/html/table47.xml.kfail create mode 100644 test/testcases/tests/level1/html/table48.xml delete mode 100644 test/testcases/tests/level1/html/table48.xml.kfail create mode 100644 test/testcases/tests/level1/html/table49.xml delete mode 100644 test/testcases/tests/level1/html/table49.xml.kfail create mode 100644 test/testcases/tests/level1/html/table50.xml delete mode 100644 test/testcases/tests/level1/html/table50.xml.kfail create mode 100644 test/testcases/tests/level1/html/table51.xml delete mode 100644 test/testcases/tests/level1/html/table51.xml.kfail create mode 100644 test/testcases/tests/level1/html/table52.xml delete mode 100644 test/testcases/tests/level1/html/table52.xml.kfail create mode 100644 test/testcases/tests/level1/html/table53.xml delete mode 100644 test/testcases/tests/level1/html/table53.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableElement34.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableElement34.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableElement35.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableElement35.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableElement36.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableElement36.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableElement37.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableElement37.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableElement38.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableElement38.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement15.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement15.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement16.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement16.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement17.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement17.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement18.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement18.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement19.xml delete mode 100644 test/testcases/tests/level2/html/HTMLTableRowElement19.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail create mode 100644 test/testcases/tests/level2/html/files/table.html create mode 100644 test/testcases/tests/level2/html/files/table.xhtml create mode 100644 test/testcases/tests/level2/html/files/table.xml create mode 100644 test/testcases/tests/level2/html/files/table1.html create mode 100644 test/testcases/tests/level2/html/files/table1.xhtml create mode 100644 test/testcases/tests/level2/html/files/table1.xml create mode 100644 test/testcases/tests/level2/html/files/tablerow.html create mode 100644 test/testcases/tests/level2/html/files/tablerow.xhtml create mode 100644 test/testcases/tests/level2/html/files/tablerow.xml (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 0745e10..adb8d59 100644 --- a/Makefile +++ b/Makefile @@ -127,6 +127,8 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablecaption_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablecell_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablecol_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablesection_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_table_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablerow_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 071ca2c..fb39388 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -86,6 +86,8 @@ #include #include #include +#include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_table_element.h b/include/dom/html/html_table_element.h index 2e182d5..6fcd7ed 100644 --- a/include/dom/html/html_table_element.h +++ b/include/dom/html/html_table_element.h @@ -3,5 +3,128 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_table_element_h_ +#define dom_html_table_element_h_ + +#include +#include +#include + +#include +#include +#include +#include + +typedef struct dom_html_table_element dom_html_table_element; + +dom_exception dom_html_table_element_get_caption( + dom_html_table_element *element, dom_html_table_caption_element **caption); + +dom_exception dom_html_table_element_set_caption( + dom_html_table_element *element, dom_html_table_caption_element *caption); + +dom_exception dom_html_table_element_get_t_head( + dom_html_table_element *element, dom_html_table_section_element **t_head); + +dom_exception dom_html_table_element_set_t_head( + dom_html_table_element *element, dom_html_table_section_element *t_head); + +dom_exception dom_html_table_element_get_t_foot( + dom_html_table_element *element, dom_html_table_section_element **t_foot); + +dom_exception dom_html_table_element_set_t_foot( + dom_html_table_element *element, dom_html_table_section_element *t_foot); + +dom_exception dom_html_table_element_get_rows( + dom_html_table_element *element, dom_html_collection **rows); + +dom_exception dom_html_table_element_get_t_bodies( + dom_html_table_element *element, dom_html_collection **t_bodies); + +dom_exception dom_html_table_element_get_align( + dom_html_table_element *table, dom_string **align); + +dom_exception dom_html_table_element_set_align( + dom_html_table_element *table, dom_string *align); + +dom_exception dom_html_table_element_get_bg_color( + dom_html_table_element *table, dom_string **bg_color); + +dom_exception dom_html_table_element_set_bg_color( + dom_html_table_element *table, dom_string *bg_color); + +dom_exception dom_html_table_element_get_border( + dom_html_table_element *table, dom_string **border); + +dom_exception dom_html_table_element_set_border( + dom_html_table_element *table, dom_string *border); + +dom_exception dom_html_table_element_get_cell_padding( + dom_html_table_element *table, dom_string **cell_padding); + +dom_exception dom_html_table_element_set_cell_padding( + dom_html_table_element *table, dom_string *cell_padding); + +dom_exception dom_html_table_element_get_cell_spacing( + dom_html_table_element *table, dom_string **cell_spacing); + +dom_exception dom_html_table_element_set_cell_spacing( + dom_html_table_element *table, dom_string *cell_spacing); + +dom_exception dom_html_table_element_get_frame( + dom_html_table_element *table, dom_string **frame); + +dom_exception dom_html_table_element_set_frame( + dom_html_table_element *table, dom_string *frame); + +dom_exception dom_html_table_element_get_rules( + dom_html_table_element *table, dom_string **rules); + +dom_exception dom_html_table_element_set_rules( + dom_html_table_element *table, dom_string *rules); + +dom_exception dom_html_table_element_get_summary( + dom_html_table_element *table, dom_string **summary); + +dom_exception dom_html_table_element_set_summary( + dom_html_table_element *table, dom_string *summary); + +dom_exception dom_html_table_element_get_width( + dom_html_table_element *table, dom_string **width); + +dom_exception dom_html_table_element_set_width( + dom_html_table_element *table, dom_string *width); + +dom_exception dom_html_table_element_create_caption( + dom_html_table_element *element, + dom_html_element **caption); + +dom_exception dom_html_table_element_delete_caption( + dom_html_table_element *element); + +dom_exception dom_html_table_element_create_t_head( + dom_html_table_element *element, + dom_html_element **t_head); + +dom_exception dom_html_table_element_delete_t_head( + dom_html_table_element *element); + +dom_exception dom_html_table_element_create_t_foot( + dom_html_table_element *element, + dom_html_element **t_foot); + +dom_exception dom_html_table_element_delete_t_foot( + dom_html_table_element *element); + +dom_exception dom_html_table_element_insert_row( + dom_html_table_element *element, + int32_t index, dom_html_element **row); + +dom_exception dom_html_table_element_delete_row( + dom_html_table_element *element, + int32_t index); + +#endif diff --git a/include/dom/html/html_tablerow_element.h b/include/dom/html/html_tablerow_element.h index 2e182d5..897e243 100644 --- a/include/dom/html/html_tablerow_element.h +++ b/include/dom/html/html_tablerow_element.h @@ -3,5 +3,67 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_table_row_element_h_ +#define dom_html_table_row_element_h_ + +#include +#include +#include + +#include +#include + +typedef struct dom_html_table_row_element dom_html_table_row_element; + +dom_exception dom_html_table_row_element_get_align( + dom_html_table_row_element *table, dom_string **align); + +dom_exception dom_html_table_row_element_set_align( + dom_html_table_row_element *table, dom_string *align); + +dom_exception dom_html_table_row_element_get_bg_color( + dom_html_table_row_element *table, dom_string **bg_color); + +dom_exception dom_html_table_row_element_set_bg_color( + dom_html_table_row_element *table, dom_string *bg_color); + +dom_exception dom_html_table_row_element_get_ch( + dom_html_table_row_element *table, dom_string **ch); + +dom_exception dom_html_table_row_element_set_ch( + dom_html_table_row_element *table, dom_string *ch); + +dom_exception dom_html_table_row_element_get_ch_off( + dom_html_table_row_element *table, dom_string **ch_off); + +dom_exception dom_html_table_row_element_set_ch_off( + dom_html_table_row_element *table, dom_string *ch_off); + +dom_exception dom_html_table_row_element_get_v_align( + dom_html_table_row_element *table, dom_string **v_align); + +dom_exception dom_html_table_row_element_set_v_align( + dom_html_table_row_element *table, dom_string *v_align); + +dom_exception dom_html_table_row_element_get_row_index( + dom_html_table_row_element *table, int32_t *index); + +dom_exception dom_html_table_row_element_get_section_row_index( + dom_html_table_row_element *table_row, int32_t *section_row_index); + +dom_exception dom_html_table_row_element_get_cells( + dom_html_table_row_element *element, + dom_html_collection **cells); + +dom_exception dom_html_table_row_element_delete_cell( + dom_html_table_row_element *element, + int32_t index); + +dom_exception dom_html_table_row_element_insert_cell( + dom_html_table_row_element *element, + int32_t index, dom_html_element **cell); + +#endif diff --git a/include/dom/html/html_tablesection_element.h b/include/dom/html/html_tablesection_element.h index e3b0065..bceec18 100644 --- a/include/dom/html/html_tablesection_element.h +++ b/include/dom/html/html_tablesection_element.h @@ -16,6 +16,8 @@ #include #include +#include + typedef struct dom_html_table_section_element dom_html_table_section_element; dom_exception dom_html_table_section_element_get_align( @@ -47,7 +49,7 @@ dom_exception dom_html_table_section_element_get_rows( dom_exception dom_html_table_section_element_insert_row( dom_html_table_section_element *element, - int32_t index, dom_html_element **newRow); + int32_t index, dom_html_element **new_row); dom_exception dom_html_table_section_element_delete_row( dom_html_table_section_element *element, diff --git a/src/html/Makefile b/src/html/Makefile index 8fc029d..8c20362 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -16,11 +16,11 @@ DIR_SOURCES := \ html_basefont_element.c html_image_element.c html_object_element.c \ html_param_element.c html_applet_element.c html_area_element.c \ html_map_element.c html_script_element.c html_tablecaption_element.c \ - html_tablecell_element.c html_tablecol_element.c html_tablesection_element.c + html_tablecell_element.c html_tablecol_element.c html_tablesection_element.c \ + html_table_element.c html_tablerow_element.c UNINMPLEMENTED_SOURCES := \ - html_table_element.c \ - html_tablerow_element.c html_frameset_element.c \ + html_frameset_element.c \ html_frame_element.c html_iframe_element.c include $(NSBUILD)/Makefile.subdir diff --git a/src/html/TODO b/src/html/TODO index 50e905c..0a75535 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -46,11 +46,11 @@ HTMLAppletElement html_applet_element DONE HTMLMapElement html_map_element DONE HTMLAreaElement html_area_element DONE HTMLScriptElement html_script_element DONE -HTMLTableElement html_table_element MISSING +HTMLTableElement html_table_element DONE HTMLTableCaptionElement html_tablecaption_element DONE HTMLTableColElement html_tablecol_element DONE HTMLTableSectionElement html_tablesection_element DONE -HTMLTableRowElement html_tablerow_element MISSING +HTMLTableRowElement html_tablerow_element DONE HTMLTableCellElement html_tablecell_element DONE HTMLFrameSetElement html_frameset_element MISSING HTMLFrameElement html_frame_element MISSING diff --git a/src/html/html_collection.c b/src/html/html_collection.c index fb801d9..2b4d8aa 100644 --- a/src/html/html_collection.c +++ b/src/html/html_collection.c @@ -132,7 +132,7 @@ dom_exception dom_html_collection_get_length(dom_html_collection *col, /* No children and siblings */ struct dom_node_internal *parent = node->parent; - while (parent != col->root && + while (node != col->root && node == parent->last_child) { node = parent; parent = parent->parent; diff --git a/src/html/html_document.c b/src/html/html_document.c index 692dd98..25abca3 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -54,6 +54,8 @@ #include "html/html_tablecell_element.h" #include "html/html_tablecol_element.h" #include "html/html_tablesection_element.h" +#include "html/html_table_element.h" +#include "html/html_tablerow_element.h" #include "core/attr.h" #include "core/string.h" @@ -350,9 +352,15 @@ _dom_html_document_create_element_internal(dom_html_document *html, (dom_html_table_col_element **) result); } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_THEAD])|| dom_string_caseless_isequal(tag_name, html->memoised[hds_TBODY])|| - dom_string_caseless_isequal(tag_name, html->memoised[hds_TBODY])) { + dom_string_caseless_isequal(tag_name, html->memoised[hds_TFOOT])) { exc = _dom_html_table_section_element_create(html, tag_name, namespace, prefix, (dom_html_table_section_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_TABLE])) { + exc = _dom_html_table_element_create(html, namespace, prefix, + (dom_html_table_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_TD])) { + exc = _dom_html_table_row_element_create(html, namespace, prefix, + (dom_html_table_row_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index 38b0004..8ded892 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -102,6 +102,9 @@ HTML_DOCUMENT_STRINGS_ACTION1(abbr) HTML_DOCUMENT_STRINGS_ACTION1(axis) HTML_DOCUMENT_STRINGS_ACTION1(headers) HTML_DOCUMENT_STRINGS_ACTION1(scope) +HTML_DOCUMENT_STRINGS_ACTION1(frame) +HTML_DOCUMENT_STRINGS_ACTION1(rules) +HTML_DOCUMENT_STRINGS_ACTION1(summary) HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex) HTML_DOCUMENT_STRINGS_ACTION(html_for,for) HTML_DOCUMENT_STRINGS_ACTION(date_time,datetime) @@ -112,6 +115,8 @@ HTML_DOCUMENT_STRINGS_ACTION(value_type,valuetype) HTML_DOCUMENT_STRINGS_ACTION(v_align,valign) HTML_DOCUMENT_STRINGS_ACTION(ch,char) HTML_DOCUMENT_STRINGS_ACTION(ch_off,charoff) +HTML_DOCUMENT_STRINGS_ACTION(cell_padding,cellpadding) +HTML_DOCUMENT_STRINGS_ACTION(cell_spacing,cellspacing) /* HTML_DOCUMENT_STRINGS_ACTION1(type) */ HTML_DOCUMENT_STRINGS_ACTION(use_map,usemap) /* HTML_DOCUMENT_STRINGS_ACTION1(value) */ diff --git a/src/html/html_table_element.c b/src/html/html_table_element.c index 2e182d5..0f27fd3 100644 --- a/src/html/html_table_element.c +++ b/src/html/html_table_element.c @@ -3,5 +3,745 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_table_element.h" +#include "html/html_tablecaption_element.h" +#include "html/html_tablesection_element.h" +#include "html/html_tablerow_element.h" +#include "html/html_collection.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_TABLE_ELEMENT + }, + DOM_HTML_TABLE_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_table_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_table_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_table_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_table_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_table_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_table_element object + * + * \param doc The document object + * \param ele The dom_html_table_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_table_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_table_element *ele) +{ + ele->caption = NULL; + ele->t_head = NULL; + ele->t_foot = NULL; + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_TABLE], + namespace, prefix); +} + +/** + * Finalise a dom_html_table_element object + * + * \param ele The dom_html_table_element object + */ +void _dom_html_table_element_finalise(struct dom_html_table_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_table_element object + * + * \param ele The dom_html_table_element object + */ +void _dom_html_table_element_destroy(struct dom_html_table_element *ele) +{ + _dom_html_table_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_table_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_table_element_destroy(dom_node_internal *node) +{ + _dom_html_table_element_destroy((struct dom_html_table_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_table_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_table_element_get_##attr( \ + dom_html_table_element *element, \ + dom_string **attr) \ +{ \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)-> \ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ +} +#define SIMPLE_SET(attr) \ + dom_exception dom_html_table_element_set_##attr( \ + dom_html_table_element *element, \ + dom_string *attr) \ +{ \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)-> \ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ +} + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) +SIMPLE_GET_SET(align); +SIMPLE_GET_SET(bg_color); +SIMPLE_GET_SET(border); +SIMPLE_GET_SET(cell_padding); +SIMPLE_GET_SET(cell_spacing); +SIMPLE_GET_SET(frame); +SIMPLE_GET_SET(rules); +SIMPLE_GET_SET(summary); +SIMPLE_GET_SET(width); + +/** + * Get the caption Attribute + * + * \param table The dom_html_table_element object + */ +dom_exception dom_html_table_element_get_caption( + dom_html_table_element *table, dom_html_table_caption_element **caption) +{ + dom_node_internal *node_tmp = ((dom_node_internal *)table); + dom_html_document *doc = (dom_html_document *)(node_tmp->owner); + + if(table->caption == NULL) { + for (node_tmp = node_tmp->first_child; node_tmp != NULL; node_tmp = node_tmp->next) { + if((node_tmp->type == DOM_ELEMENT_NODE) && + dom_string_caseless_isequal(doc->memoised[hds_CAPTION],node_tmp->name)) { + break; + } + } + table->caption = (dom_html_table_caption_element *)node_tmp; + } + *caption = (table->caption); + return DOM_NO_ERR; +} + +/** + * Set the caption Attribute + * + * \param table The dom_html_table_element object + * \param table The dom_html_table_element object + */ +dom_exception dom_html_table_element_set_caption( + dom_html_table_element *table, dom_html_table_caption_element *caption) +{ + dom_node_internal *check_node = ((dom_node_internal *)caption); + dom_html_document *doc = (dom_html_document *)(((dom_node_internal *)table)->owner); + if(check_node == NULL) { + return DOM_HIERARCHY_REQUEST_ERR; + } + if(!dom_string_caseless_isequal(doc->memoised[hds_CAPTION],check_node->name)) { + return DOM_HIERARCHY_REQUEST_ERR; + } + table->caption = caption; + return DOM_NO_ERR; +} + +/** + * Get the t_head Attribute + * + * \param table The dom_html_table_element object + */ +dom_exception dom_html_table_element_get_t_head( + dom_html_table_element *table, dom_html_table_section_element **t_head) +{ + dom_node_internal *node_tmp = ((dom_node_internal *)table); + dom_html_document *doc = (dom_html_document *)(node_tmp->owner); + + if(table->t_head == NULL) { + for (node_tmp = node_tmp->first_child; node_tmp != NULL; node_tmp = node_tmp->next) { + if((node_tmp->type == DOM_ELEMENT_NODE) && + dom_string_caseless_isequal(doc->memoised[hds_THEAD],node_tmp->name)) { + break; + } + } + table->t_head = (dom_html_table_section_element *)node_tmp; + } + *t_head = table->t_head; + return DOM_NO_ERR; +} + +/** + * Set the t_head Attribute + * + * \param table The dom_html_table_element object + * \param table The dom_html_table_element object + */ +dom_exception dom_html_table_element_set_t_head( + dom_html_table_element *table, dom_html_table_section_element *t_head) +{ + dom_node_internal *check_node = ((dom_node_internal *)t_head); + dom_html_document *doc = (dom_html_document *)(((dom_node_internal *)table)->owner); + if(check_node == NULL) { + return DOM_HIERARCHY_REQUEST_ERR; + } + if(!dom_string_caseless_isequal(doc->memoised[hds_CAPTION],check_node->name)) { + return DOM_HIERARCHY_REQUEST_ERR; + } + table->t_head = t_head; + return DOM_NO_ERR; +} + +/** + * Get the t_foot Attribute + * + * \param table The dom_html_table_element object + */ +dom_exception dom_html_table_element_get_t_foot( + dom_html_table_element *table, dom_html_table_section_element **t_foot) +{ + dom_node_internal *node_tmp = ((dom_node_internal *)table); + dom_html_document *doc = (dom_html_document *)(node_tmp->owner); + + if(table->t_foot == NULL) { + for (node_tmp = node_tmp->first_child; node_tmp != NULL; node_tmp = node_tmp->next) { + if((node_tmp->type == DOM_ELEMENT_NODE) && + dom_string_caseless_isequal(doc->memoised[hds_TFOOT],node_tmp->name)) { + break; + } + } + table->t_foot = (dom_html_table_section_element *)node_tmp; + } + *t_foot = (table->t_foot); + return DOM_NO_ERR; +} + +/** + * Set the t_foot Attribute + * + * \param table The dom_html_table_element object + */ +dom_exception dom_html_table_element_set_t_foot( + dom_html_table_element *table, dom_html_table_section_element *t_foot) +{ + dom_node_internal *check_node = ((dom_node_internal *)t_foot); /*< temporary node to check for raised exceptions */ + dom_html_document *doc = (dom_html_document *)(((dom_node_internal *)table)->owner); + if(check_node == NULL) { + return DOM_HIERARCHY_REQUEST_ERR; + } + if(!dom_string_caseless_isequal(doc->memoised[hds_TFOOT],check_node->name)) { + return DOM_HIERARCHY_REQUEST_ERR; + } + table->t_foot = t_foot; + return DOM_NO_ERR; +} + +/** + * Callback for creating the rows collection + * + * \param node The dom_html_table_element object + * \param ctx The dom_html_document object (void *) + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +bool table_rows_callback(struct dom_node_internal *node, void *ctx) +{ + if(node->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(node->name, + ((dom_html_document *)ctx)->memoised[hds_TR])) { + return true; + } + return false; +} + +/** + * Get the rows collection + * + * \param element The dom_html_table_element object + * \param rows The Status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_element_get_rows( + dom_html_table_element *element, + dom_html_collection **rows) +{ + dom_html_document *doc = (dom_html_document *) ((dom_node_internal *) element)->owner; + return _dom_html_collection_create(doc, (dom_node_internal *)element, + table_rows_callback, (void *)doc, rows); +} + +/** + * Callback for creating the tbodies collection + * + * \param node The dom_html_table_element object + * \param ctx The dom_html_document object (void *) + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +bool table_t_bodies_callback(struct dom_node_internal *node, void *ctx) +{ + if(node->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(node->name, + ((dom_html_document *)ctx)->memoised[hds_TBODY])) { + return true; + } + return false; +} + +/** + * Get the tBodies collection + * + * \param element The dom_html_table_element object + * \param t_bodies The Status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_element_get_t_bodies( + dom_html_table_element *element, + dom_html_collection **t_bodies) +{ + dom_html_document *doc = (dom_html_document *) ((dom_node_internal *) element)->owner; + return _dom_html_collection_create(doc, (dom_node_internal *)element, + table_t_bodies_callback, (void *)doc, t_bodies); +} + +/** + * Get or Create the table caption + * + * \param element The dom_html_table_element object + * \param caption The Status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_element_create_caption( + dom_html_table_element *element, + dom_html_element **caption) +{ + dom_exception exp; + if((exp = dom_html_table_element_get_caption(element, + (dom_html_table_caption_element **)caption)) != DOM_NO_ERR) { + return exp; + } + if((*caption) == NULL) { + dom_html_document *doc = (dom_html_document *) + ((dom_node_internal *) element)->owner; + exp = _dom_html_table_caption_element_create(doc, + ((dom_node_internal *)element)->namespace, + ((dom_node_internal *)element)->prefix, + (dom_html_table_caption_element **)caption); + if(exp != DOM_NO_ERR) { + return exp; + } + _dom_node_append_child((dom_node_internal *)element, + (dom_node_internal *)*caption, + (dom_node_internal **)caption); + element->caption = (dom_html_table_caption_element *)*caption; + + } + return DOM_NO_ERR; +} + +/** + * Delete the table caption, if one exists + * + * \param element The dom_html_table_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_element_delete_caption( + dom_html_table_element *element) +{ + dom_html_table_caption_element *caption; + dom_html_table_element_get_caption(element, &caption); + _dom_node_remove_child((dom_node_internal *)element, + (dom_node_internal *)caption, + (dom_node_internal **)&caption); + element->caption = NULL; + return DOM_NO_ERR; +} + +/** + * Get or Create the table Foot + * + * \param element The dom_html_table_element object + * \param t_foot The Status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_element_create_t_foot( + dom_html_table_element *element, + dom_html_element **t_foot) +{ + dom_exception exp; + exp = dom_html_table_element_get_t_foot(element, + (dom_html_table_section_element **)t_foot); + if(exp !=DOM_NO_ERR) { + return exp; + } + if((*t_foot) == NULL) { + dom_html_document *doc = (dom_html_document *) + ((dom_node_internal *) element)->owner; + exp = _dom_html_table_section_element_create(doc, + doc->memoised[hds_TFOOT], + ((dom_node_internal *)element)->namespace, + ((dom_node_internal *)element)->prefix, + (dom_html_table_section_element **)t_foot); + if(exp != DOM_NO_ERR) { + return exp; + } + _dom_node_append_child((dom_node_internal *)element, + (dom_node_internal *)*t_foot, + (dom_node_internal **)t_foot); + element->t_foot = (dom_html_table_section_element *)*t_foot; + + } + return DOM_NO_ERR; +} + +/** + * Delete the table Foot, if one exists + * + * \param element The dom_html_table_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_element_delete_t_foot( + dom_html_table_element *element) +{ + dom_html_table_section_element *t_foot; + dom_html_table_element_get_t_foot(element, &t_foot); + _dom_node_remove_child((dom_node_internal *)element, + (dom_node_internal *)t_foot, + (dom_node_internal **)&t_foot); + element->t_foot = NULL; + return DOM_NO_ERR; +} + +/** + * Get or Create the table Head + * + * \param element The dom_html_table_element object + * \param t_head The Status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_element_create_t_head( + dom_html_table_element *element, + dom_html_element **t_head) +{ + dom_html_table_element_get_t_head(element, + (dom_html_table_section_element **)t_head); + if((*t_head) == NULL) { + dom_exception exp; + dom_html_document *doc = (dom_html_document *) + ((dom_node_internal *) element)->owner; + exp = _dom_html_table_section_element_create(doc, + doc->memoised[hds_THEAD], + ((dom_node_internal *)element)->namespace, + ((dom_node_internal *)element)->prefix, + (dom_html_table_section_element **)t_head); + if(exp != DOM_NO_ERR) { + return exp; + } + _dom_node_append_child((dom_node_internal *)element, + (dom_node_internal *)*t_head, + (dom_node_internal **)t_head); + element->t_head = (dom_html_table_section_element *)*t_head; + + } + return DOM_NO_ERR; +} + +/** + * Delete the table Head, if one exists + * + * \param element The dom_html_table_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_element_delete_t_head( + dom_html_table_element *element) +{ + dom_html_table_section_element *t_head; + dom_html_table_element_get_t_head(element, &t_head); + _dom_node_remove_child((dom_node_internal *)element, + (dom_node_internal *)t_head, + (dom_node_internal **)&t_head); + element->t_head = NULL; + return DOM_NO_ERR; +} + +/** + * Get or Create the table Body + * + * \param element The dom_html_table_element object + * \param t_head The Status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_element_create_t_body( + dom_html_table_element *element, + dom_html_table_section_element **t_body) +{ + dom_html_collection *t_bodies; + uint32_t len; + dom_html_table_element_get_t_bodies(element, + &t_bodies); + dom_html_collection_get_length(t_bodies, + &len); + + if(len == 0) { + dom_exception exp; + dom_html_document *doc = (dom_html_document *) + ((dom_node_internal *) element)->owner; + exp = _dom_html_table_section_element_create(doc, + doc->memoised[hds_TBODY], + ((dom_node_internal *)element)->namespace, + ((dom_node_internal *)element)->prefix, + t_body); + if(exp != DOM_NO_ERR) { + return exp; + } + return _dom_node_append_child((dom_node_internal *)element, + (dom_node_internal *)*t_body, + (dom_node_internal **)t_body); + + } else { + return dom_html_collection_item(t_bodies, + 0, (dom_node **)t_body); + } + return DOM_NO_ERR; +} +/** + * Insert a new Row into the table + * + * \param element The dom_html_table_element object + * \param index The Index to insert the Row + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_element_insert_row( + dom_html_table_element *element, + int32_t index, + dom_html_element **row) +{ + dom_exception exp; + dom_html_collection* rows; + uint32_t len; + dom_html_document *doc = (dom_html_document *) + ((dom_node_internal *) element)->owner; + + exp = dom_html_table_element_get_rows(element, + &rows); + if(exp != DOM_NO_ERR) { + return exp; + } + exp = dom_html_collection_get_length(rows, + &len); + + exp = _dom_html_table_row_element_create(doc, + ((dom_node_internal *)element)->namespace, + ((dom_node_internal *)element)->prefix, + (dom_html_table_row_element **)row); + if(exp != DOM_NO_ERR) { + return exp; + } + + if(index > (int32_t)len || index < -1) { + return DOM_INDEX_SIZE_ERR; + } else if(len == 0) { + dom_html_table_section_element *new_body; + exp = dom_html_table_element_create_t_body(element, + &new_body); + if(exp != DOM_NO_ERR) { + return exp; + } + + return _dom_node_append_child((dom_node_internal *)new_body, + (dom_node_internal *)*row, + (dom_node_internal **)row); + + } else { + if(index ==-1) { + index = (int32_t)len; + } + + dom_html_collection* rows; + dom_html_table_section_element *t_head; + dom_html_table_section_element *t_foot; + uint32_t window_len = 0, section_len; + + dom_html_table_element_get_t_head(element, &t_head); + dom_html_table_section_element_get_rows(t_head, &rows); + dom_html_collection_get_length(rows, §ion_len); + + if(window_len + section_len > (uint32_t)index || + window_len + section_len == len) { + return dom_html_table_section_element_insert_row(t_head, + index-window_len, row); + } + + window_len += section_len; + + dom_node_internal *n = (dom_node_internal *)element; + + for (n = n->first_child; n != NULL; n = n->next) { + if((n->type == DOM_ELEMENT_NODE) && + dom_string_caseless_isequal(doc->memoised[hds_TBODY],n->name)) { + + dom_html_table_section_element_get_rows((dom_html_table_section_element *)n, &rows); + dom_html_collection_get_length(rows, §ion_len); + + if(window_len + section_len > (uint32_t)index || + window_len + section_len == len) { + return dom_html_table_section_element_insert_row( + (dom_html_table_section_element *)n, + index-window_len, row); + } + + window_len += section_len; + } + } + dom_html_table_element_get_t_foot(element, &t_foot); + dom_html_table_section_element_get_rows(t_foot, &rows); + dom_html_collection_get_length(rows, §ion_len); + if(window_len + section_len > (uint32_t)index || + window_len +section_len == len) { + return dom_html_table_section_element_insert_row(t_foot, + index-window_len, row); + } + return DOM_INDEX_SIZE_ERR; + } +} +/** + * Delete the table Head, if one exists + * + * \param element The dom_html_table_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_element_delete_row( + dom_html_table_element *element, + int32_t index) +{ + dom_exception exp; + dom_html_collection* rows; + uint32_t len; + dom_html_document *doc = (dom_html_document *) + ((dom_node_internal *) element)->owner; + + exp = dom_html_table_element_get_rows(element, + &rows); + if(exp != DOM_NO_ERR) { + return exp; + } + exp = dom_html_collection_get_length(rows, + &len); + + if(exp != DOM_NO_ERR) { + return exp; + } + + if(index >= (int32_t)len || index < -1 || len ==0) { + return DOM_INDEX_SIZE_ERR; + } else { + if(index ==-1) { + index = (int32_t)len-1; + } + dom_html_collection* rows; + dom_html_table_section_element *t_head; + dom_html_table_section_element *t_foot; + uint32_t window_len = 0, section_len; + dom_html_table_element_get_t_head(element, &t_head); + dom_html_table_section_element_get_rows(t_head, &rows); + dom_html_collection_get_length(rows, §ion_len); + if(window_len + section_len > (uint32_t)index) { + return dom_html_table_section_element_delete_row(t_head, + index-window_len); + } + window_len += section_len; + dom_node_internal *n = (dom_node_internal *)element; + for (n = n->first_child; n != NULL; n = n->next) { + if((n->type == DOM_ELEMENT_NODE) && + dom_string_caseless_isequal(doc->memoised[hds_TBODY],n->name)) { + dom_html_table_section_element_get_rows((dom_html_table_section_element *)n, &rows); + dom_html_collection_get_length(rows, §ion_len); + if(window_len + section_len > (uint32_t)index) { + return dom_html_table_section_element_delete_row( + (dom_html_table_section_element *)n, + index-window_len); + } + window_len += section_len; + } + } + exp = dom_html_table_element_get_t_foot(element, &t_foot); + dom_html_table_section_element_get_rows(t_foot, &rows); + dom_html_collection_get_length(rows, §ion_len); + if(window_len + section_len > (uint32_t)index) { + return dom_html_table_section_element_delete_row(t_foot, + index-window_len); + } + return DOM_INDEX_SIZE_ERR; + } + +} diff --git a/src/html/html_table_element.h b/src/html/html_table_element.h index 2e182d5..caabbe8 100644 --- a/src/html/html_table_element.h +++ b/src/html/html_table_element.h @@ -3,5 +3,61 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_table_element_h_ +#define dom_internal_html_table_element_h_ + +#include +#include "html/html_element.h" + +struct dom_html_table_element { + struct dom_html_element base; + /**< The base class */ + dom_html_table_caption_element* caption; + /**< The caption associated with the table*/ + dom_html_table_section_element* t_head; + /**< The thead element associated with the table*/ + dom_html_table_section_element* t_foot; + /**< The tfoot element associated with the table*/ +}; + +/* Create a dom_html_table_element object */ +dom_exception _dom_html_table_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_table_element **ele); + +/* Initialise a dom_html_table_element object */ +dom_exception _dom_html_table_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_table_element *ele); + +/* Finalise a dom_html_table_element object */ +void _dom_html_table_element_finalise(struct dom_html_table_element *ele); + +/* Destroy a dom_html_table_element object */ +void _dom_html_table_element_destroy(struct dom_html_table_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_table_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_table_element_destroy(dom_node_internal *node); +dom_exception _dom_html_table_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_TABLE_ELEMENT_PROTECT_VTABLE \ + _dom_html_table_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_TABLE_ELEMENT \ + _dom_virtual_html_table_element_destroy, \ + _dom_html_table_element_copy + +#endif + +bool table_rows_callback(struct dom_node_internal *node, void *ctx); +bool table_t_bodies_callback(struct dom_node_internal *node, void *ctx); +dom_exception dom_html_table_element_create_t_body( + dom_html_table_element *element, + dom_html_table_section_element **t_body); diff --git a/src/html/html_tablecell_element.c b/src/html/html_tablecell_element.c index f8eaf01..cc596c1 100644 --- a/src/html/html_tablecell_element.c +++ b/src/html/html_tablecell_element.c @@ -191,6 +191,7 @@ dom_exception dom_html_table_cell_element_get_cell_index( } n = n->parent; } + dom_node_internal *root = n; while(n != NULL) { if(n == (dom_node_internal *)table_cell) { break; @@ -207,18 +208,16 @@ dom_exception dom_html_table_cell_element_get_cell_index( } else { /* No children and siblings */ struct dom_node_internal *parent = n->parent; - - while (parent !=NULL) { - if(n == parent->last_child) { - n = parent; - parent = parent->parent; - } else { - break; - } - + while (n == parent->last_child && + n != root) { + n = parent; + parent = parent->parent; } - if(parent == NULL) { + + if(n == root) { n = NULL; + } else { + n = n->next; } } } diff --git a/src/html/html_tablerow_element.c b/src/html/html_tablerow_element.c index 2e182d5..fb3e27b 100644 --- a/src/html/html_tablerow_element.c +++ b/src/html/html_tablerow_element.c @@ -3,5 +3,373 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include +#include + +#include "html/html_document.h" +#include "html/html_tablerow_element.h" +#include "html/html_collection.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_TABLE_ROW_ELEMENT + }, + DOM_HTML_TABLE_ROW_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_table_row_element table_row + * + * \param doc The document table_row + * \param ele The returned element table_row + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_table_row_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_table_row_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_table_row_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_table_row_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_table_row_element table_row + * + * \param doc The document table_row + * \param ele The dom_html_table_row_element table_row + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_table_row_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_table_row_element *ele) +{ + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_TR], + namespace, prefix); +} + +/** + * Finalise a dom_html_table_row_element table_row + * + * \param ele The dom_html_table_row_element table_row + */ +void _dom_html_table_row_element_finalise(struct dom_html_table_row_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_table_row_element table_row + * + * \param ele The dom_html_table_row_element table_row + */ +void _dom_html_table_row_element_destroy(struct dom_html_table_row_element *ele) +{ + _dom_html_table_row_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_table_row_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_table_row_element_destroy(dom_node_internal *node) +{ + _dom_html_table_row_element_destroy((struct dom_html_table_row_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_table_row_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_table_row_element_get_##attr( \ + dom_html_table_row_element *element, \ + dom_string **attr) \ +{ \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ +} +#define SIMPLE_SET(attr) \ + dom_exception dom_html_table_row_element_set_##attr( \ + dom_html_table_row_element *element, \ + dom_string *attr) \ +{ \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ +} + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(align); +SIMPLE_GET_SET(bg_color); +SIMPLE_GET_SET(ch); +SIMPLE_GET_SET(ch_off); +SIMPLE_GET_SET(v_align); + +/** + * Get the index of the Row in logical order + * + * \param element The dom_html_table_row_element object + * \param index The Status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_row_element_get_row_index( + dom_html_table_row_element *table_row, int32_t *row_index) +{ + dom_node_internal *n = ((dom_node_internal *)table_row)->parent; + dom_node_internal *parent = n; + dom_html_document *doc = (dom_html_document *) ((dom_node_internal *) table_row)->owner; + uint32_t count = 0; + for(n = n->first_child; n != (dom_node_internal *)table_row; + n = n->next) { + if(n->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(n->name,doc->memoised[hds_TR])) { + count += 1; + } + } + + if(dom_string_caseless_isequal((parent->parent)->name, doc->memoised[hds_TABLE]) && + dom_string_caseless_isequal(parent->name, doc->memoised[hds_THEAD]) + ) { + *row_index = count; + }else if(dom_string_caseless_isequal((parent->parent)->name, doc->memoised[hds_TABLE]) && + (dom_string_caseless_isequal(parent->name, doc->memoised[hds_TBODY]) || + dom_string_caseless_isequal(parent->name, doc->memoised[hds_TFOOT]))) { + uint32_t len; + n = parent->parent; + dom_html_table_section_element *t_head; + dom_html_collection *rows; + dom_html_table_element_get_t_head( + (dom_html_table_element *)(parent->parent), + &t_head); + dom_html_table_section_element_get_rows(t_head, + &rows); + dom_html_collection_get_length(rows, + &len); + count += len; + for(n = n->first_child;n != parent && n != NULL; + n = n->next) { + if(dom_string_caseless_isequal(n->name, doc->memoised[hds_TBODY])) { + dom_html_table_section_element_get_rows( + (dom_html_table_section_element *)n, + &rows); + dom_html_collection_get_length(rows, &len); + count += len; + } + } + *row_index = (int32_t)count; + + } else { + return DOM_HIERARCHY_REQUEST_ERR; + } + return DOM_NO_ERR; +} + +/** + * Get the index of a row within its Section + * + * \param element The dom_html_table_row_element object + * \param index The Status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_row_element_get_section_row_index( + dom_html_table_row_element *table_row, int32_t *section_row_index) +{ + dom_node_internal *n = ((dom_node_internal *)table_row)->parent; + dom_html_document *doc = (dom_html_document *) ((dom_node_internal *) table_row)->owner; + int32_t count = 0; + for(n = n->first_child; n != (dom_node_internal *)table_row; + n = n->next) { + if(n->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(n->name, doc->memoised[hds_TR])) { + count += 1; + } + } + *section_row_index = count; + return DOM_NO_ERR; +} + +/** + * Callback for creating the Cells collection + * + * \param node The dom_node_internal object + * \param ctx The dom_html_document object (void *) + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +bool table_cells_callback(struct dom_node_internal *node, void *ctx) +{ + if(node->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(node->name, + ((dom_html_document *)ctx)->memoised[hds_TD])) { + return true; + } + return false; +} + +/** + * Get the Cells collection + * + * \param element The dom_html_table_element object + * \param t_bodies The Status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_row_element_get_cells( + dom_html_table_row_element *element, + dom_html_collection **cells) +{ + dom_html_document *doc = (dom_html_document *) ((dom_node_internal *) element)->owner; + return _dom_html_collection_create(doc, (dom_node_internal *)element, + table_cells_callback, (void *)doc, cells); +} + +/** + * Insert Cell before the given Index + * + * \param element The dom_html_table_row_element object + * \param index The Index of the Cell node to be inserted + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_row_element_insert_cell( + dom_html_table_row_element *element, + int32_t index, dom_html_element **cell) { + dom_html_document *doc = (dom_html_document *) ((dom_node_internal *) element)->owner; + + dom_node *node; /*< The node at the (index)th position*/ + + dom_html_collection *cells; /*< The collection of cells in input table_row_element*/ + uint32_t len; /*< The size of the cell collection */ + dom_exception exp; /*< Variable for getting the exceptions*/ + exp = _dom_html_element_create(doc, doc->memoised[hds_TD], + ((dom_node_internal *)element)->namespace, + ((dom_node_internal *)element)->prefix, + cell); + if(exp != DOM_NO_ERR) + return exp; + + exp = dom_html_table_row_element_get_cells(element, &cells); + if(exp != DOM_NO_ERR) + return exp; + + exp = dom_html_collection_get_length(cells, &len); + if(exp != DOM_NO_ERR) + return exp; + + if(index < -1 || index > (int32_t)len) { + /* Check for index validity */ + return DOM_INDEX_SIZE_ERR; + } else if(index == -1 || index == (int32_t)len) { + return _dom_node_append_child((dom_node_internal *)element, + (dom_node_internal *)*cell, + (dom_node_internal **)cell); + } else { + dom_html_collection_item(cells, + index, &node); + return _dom_node_insert_before((dom_node_internal *)element, + (dom_node_internal *)*cell, (dom_node_internal *)node, + (dom_node_internal **)cell); + } +} + +/** + * Delete Cell at given Index + * + * \param element The dom_html_table_row_element object + * \param index The Index of the Cell node to be deleted + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_table_row_element_delete_cell( + dom_html_table_row_element *element, + int32_t index) { + dom_node *node; /*< The node at the (index)th position*/ + + dom_html_collection *cells; /*< The collection of rows in input table_row_element*/ + uint32_t len; /*< The size of the row collection */ + + dom_exception exp; /*< Temporary variable to store & check the exceptions*/ + + exp = dom_html_table_row_element_get_cells(element, &cells); + if(exp != DOM_NO_ERR) { + return exp; + } + + exp = dom_html_collection_get_length(cells, &len); + if(exp != DOM_NO_ERR) { + return exp; + } + + if(index < -1 || index >= (int32_t)len || len ==0) { + /* Check for index validity */ + return DOM_INDEX_SIZE_ERR; + } else if(index == -1) { + exp = dom_html_collection_item(cells, + len-1, &node); + } else { + exp = dom_html_collection_item(cells, + index, &node); + } + return _dom_node_remove_child((dom_node_internal *)element, + (dom_node_internal *)node, + (dom_node_internal **)&node); + +} + diff --git a/src/html/html_tablerow_element.h b/src/html/html_tablerow_element.h index 2e182d5..2401790 100644 --- a/src/html/html_tablerow_element.h +++ b/src/html/html_tablerow_element.h @@ -3,5 +3,51 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_table_row_element_h_ +#define dom_internal_html_table_row_element_h_ + +#include +#include "html/html_element.h" + +struct dom_html_table_row_element { + struct dom_html_element base; + /**< The base class */ +}; + +/* Create a dom_html_table_row_element object */ +dom_exception _dom_html_table_row_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_table_row_element **ele); + +/* Initialise a dom_html_table_row_element object */ +dom_exception _dom_html_table_row_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_table_row_element *ele); + +/* Finalise a dom_html_table_row_element object */ +void _dom_html_table_row_element_finalise(struct dom_html_table_row_element *ele); + +/* Destroy a dom_html_table_row_element object */ +void _dom_html_table_row_element_destroy(struct dom_html_table_row_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_table_row_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_table_row_element_destroy(dom_node_internal *node); +dom_exception _dom_html_table_row_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_TABLE_ROW_ELEMENT_PROTECT_VTABLE \ + _dom_html_table_row_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_TABLE_ROW_ELEMENT \ + _dom_virtual_html_table_row_element_destroy, \ + _dom_html_table_row_element_copy + +#endif +bool table_cells_callback(struct dom_node_internal *node, void *ctx); + diff --git a/src/html/html_tablesection_element.c b/src/html/html_tablesection_element.c index 7468d01..b35cfb4 100644 --- a/src/html/html_tablesection_element.c +++ b/src/html/html_tablesection_element.c @@ -12,6 +12,7 @@ #include "html/html_document.h" #include "html/html_tablesection_element.h" +#include "html/html_tablerow_element.h" #include "html/html_collection.h" #include "html/html_element.h" @@ -169,8 +170,7 @@ bool table_section_callback(struct dom_node_internal *node, void *ctx) { if(node->type == DOM_ELEMENT_NODE && dom_string_caseless_isequal(node->name, - ((dom_html_document *)ctx)->memoised[hds_TR])) - { + ((dom_html_document *)ctx)->memoised[hds_TR])) { return true; } return false; @@ -179,7 +179,7 @@ bool table_section_callback(struct dom_node_internal *node, void *ctx) /** * Get the rows collection * - * \param element The dom_html_section_element object + * \param element The dom_html_table_section_element object * \param rows The Status * \return DOM_NO_ERR on success, appropriate dom_exception on failure. */ @@ -188,21 +188,20 @@ dom_exception dom_html_table_section_element_get_rows( dom_html_collection **rows) { dom_html_document *doc = (dom_html_document *) ((dom_node_internal *) element)->owner; - _dom_html_collection_create(doc, (dom_node_internal *)element, + return _dom_html_collection_create(doc, (dom_node_internal *)element, table_section_callback, (void *)doc, rows); - return DOM_NO_ERR; } /** * Insert Row before the given Index * - * \param element The dom_html_section_element object + * \param element The dom_html_table_section_element object * \param index The Index of the Row node to be inserted * \return DOM_NO_ERR on success, appropriate dom_exception on failure. */ dom_exception dom_html_table_section_element_insert_row( dom_html_table_section_element *element, - int32_t index, dom_html_element **newRow) { + int32_t index, dom_html_element **new_row) { dom_html_document *doc = (dom_html_document *) ((dom_node_internal *) element)->owner; dom_node *node; /*< The node at the (index)th position*/ @@ -210,10 +209,10 @@ dom_exception dom_html_table_section_element_insert_row( dom_html_collection *rows; /*< The collection of rows in input table_section_element*/ uint32_t len; /*< The size of the row collection */ dom_exception exp; /*< Variable for getting the exceptions*/ - exp = _dom_html_element_create(doc, doc->memoised[hds_TR], + exp = _dom_html_table_row_element_create(doc, ((dom_node_internal *)element)->namespace, ((dom_node_internal *)element)->prefix, - newRow); + (dom_html_table_row_element **)new_row); if(exp != DOM_NO_ERR) return exp; @@ -225,47 +224,26 @@ dom_exception dom_html_table_section_element_insert_row( if(exp != DOM_NO_ERR) return exp; - if(index < -1 || (uint32_t)index > len) { + if(index < -1 || index > (int32_t)len) { /* Check for index validity */ return DOM_INDEX_SIZE_ERR; - } else if((index == -1 || (uint32_t)index == len) - &&len != 0) { - dom_html_collection_item(rows, - len-1, &node); - - dom_node_internal *internal_node = (dom_node_internal *)node; /*< The dom_node_internal row object at the (len-1)th position*/ - - ((dom_node_internal *) *newRow)->next = internal_node->next; - ((dom_node_internal *) *newRow)->previous = internal_node; - internal_node->next = (dom_node_internal *)*newRow; - } else if(len != 0) { + } else if(index == -1 || index == (int32_t)len) { + return _dom_node_append_child((dom_node_internal *)element, + (dom_node_internal *)*new_row, + (dom_node_internal **)new_row); + } else { dom_html_collection_item(rows, index, &node); - - dom_node_internal *internal_node = (dom_node_internal *)node; /*< The dom_node_internal row object at the (index)th position*/ - - ((dom_node_internal *) *newRow)->next = internal_node; - ((dom_node_internal *) *newRow)->previous = internal_node->previous; - if(internal_node->previous != NULL) { - (internal_node->previous)->next = (dom_node_internal *)*newRow; - internal_node->previous = (dom_node_internal *)*newRow; - } + return _dom_node_insert_before((dom_node_internal *)element, + (dom_node_internal *)*new_row, (dom_node_internal *)node, + (dom_node_internal **)new_row); } - - /*Adjust parent's pointers*/ - ((dom_node_internal *) *newRow)->parent = (dom_node_internal *)element; - if(index == 0) - ((dom_node_internal *)element)->first_child = (dom_node_internal *)*newRow; - if((uint32_t)index == len) - ((dom_node_internal *)element)->last_child = (dom_node_internal *)*newRow; - - return DOM_NO_ERR; } /** * Delete Row at given Index * - * \param element The dom_html_section_element object + * \param element The dom_html_table_section_element object * \param index The Index of the Row node to be deleted * \return DOM_NO_ERR on success, appropriate dom_exception on failure. */ @@ -289,7 +267,7 @@ dom_exception dom_html_table_section_element_delete_row( return exp; } - if(index < -1 || (uint32_t)index >= len) { + if(index < -1 || index >= (int32_t)len) { /* Check for index validity */ return DOM_INDEX_SIZE_ERR; } else if(index == -1) { @@ -299,20 +277,9 @@ dom_exception dom_html_table_section_element_delete_row( exp = dom_html_collection_item(rows, index, &node); } - if(exp != DOM_NO_ERR) - return exp; - - dom_node_internal *internal_node = (dom_node_internal *)node; - - /*Fixing the sibling pointers*/ - if(internal_node->previous != NULL) { - (internal_node->previous)->next = internal_node->next; - } - if(internal_node->next != NULL) { - (internal_node->next)->previous = internal_node->previous; - } - - _dom_html_element_destroy(internal_node); + exp = _dom_node_remove_child((dom_node_internal *)element, + (dom_node_internal *)node, + (dom_node_internal **)&node); return DOM_NO_ERR; } diff --git a/src/html/html_tablesection_element.h b/src/html/html_tablesection_element.h index fcab1cb..387882a 100644 --- a/src/html/html_tablesection_element.h +++ b/src/html/html_tablesection_element.h @@ -10,8 +10,8 @@ #define dom_internal_html_table_section_element_h_ #include -#include "html/html_element.h" +#include "html/html_element.h" struct dom_html_table_section_element { struct dom_html_element base; diff --git a/test/DOMTSHandler.pm b/test/DOMTSHandler.pm index 78d5e7e..8953047 100644 --- a/test/DOMTSHandler.pm +++ b/test/DOMTSHandler.pm @@ -44,6 +44,10 @@ our %special_type = ( CDATASection => "dom_cdata_section *", HTMLAnchorElement => "dom_html_anchor_element *", HTMLElement => "dom_html_element *", + HTMLTableCaptionElement => "dom_html_table_caption_element *", + HTMLTableSectionElement => "dom_html_table_section_element *", + HTMLTableElement => "dom_html_table_element *", + HTMLTableRowElement => "dom_html_table_row_element *", ); our %special_prefix = ( DOMString => "dom_string", @@ -57,6 +61,20 @@ our %special_prefix = ( HTMLHRElement => "dom_html_hr_element", HTMLBRElement => "dom_html_br_element", HTMLLIElement => "dom_html_li_element", + HTMLTableCaptionElement => "dom_html_table_caption_element", + HTMLTableSectionElement => "dom_html_table_section_element", + HTMLIsIndexElement => "dom_html_isindex_element", + caption => "dom_html_table_caption_element *", + section => "dom_html_table_section_element *", + createCaption => "dom_html_element *", + createTHead => "dom_html_element *", + createTFoot => "dom_html_element *", + deleteCaption => "dom_html_element *", + deleteTHead => "dom_html_element *", + deleteTFoot => "dom_html_element *", + insertRow => "dom_html_element *", + deleteRow => "dom_html_element *", + form => "dom_html_form_element *", ); our %unref_prefix = ( @@ -164,10 +182,14 @@ sub new { # The name of the current List/Collection list_name => "", # The number of items of the current List/Collection + list_last_name => [], + # The number of items of the current List/Collection list_num => 0, # Whether List/Collection has members list_hasmem => 0, # The type of the current List/Collection + member_list_declared => 0, + # The type of the current List/Collection list_type => "", # Whether we are in exception assertion exception => 0, @@ -389,6 +411,7 @@ int main(int argc, char **argv) perror("chdir (\\"$self->{chdir})\\""); return 1; } + int list_temp[100], count = -1; __EOF__ } @@ -442,7 +465,6 @@ sub generate_list { # Yes, we are in List/Collection declaration # Firstly, enclose the Array declaration print "};\n"; - # Now, we should create the list * for the List/Collection # Note, we should deal with "int" or "string" type with different params. if ($self->{"list_type"} eq "char *") { @@ -450,18 +472,37 @@ sub generate_list { } if ($self->{"list_type"} eq "int *") { print $self->{"list_name"}." = list_new(INT);\n"; + while(defined ($x = pop @{$self->{"list_last_name"}})) { + print $x." = list_new(INT);\n"; + } } + while(defined($x = pop(@{$self->{"list_last_name"}}))) { + print $x." = list_new(DOM_STRING);\n"; + } + $self->{"member_list_declared"} = 1; if ($self->{"list_type"} eq "") { die "A List/Collection has children member but no type is impossible!"; } - for (my $i = 0; $i < $self->{"list_num"}; $i++) { - # Use *(char **) to convert char *[] to char * - print "list_add(".$self->{"list_name"}.", *(char **)(".$self->{"list_name"}."Array + $i));\n"; + if ($self->{"list_type"} eq "int *") { + + for (my $i = 0; $i < $self->{"list_num"}; $i++) { + # Use *(char **) to convert char *[] to char * + print "list_add(".$self->{"list_name"}.", (int *)(".$self->{"list_name"}."Array) + $i);\n"; + } + } else { + for (my $i = 0; $i < $self->{"list_num"}; $i++) { + # Use *(char **) to convert char *[] to char * + print "list_add(".$self->{"list_name"}.", *(char **)(".$self->{"list_name"}."Array + $i));\n"; + } } } else { if ($self->{"list_name"} ne "") { #TODO: generally, we set the list type as dom_string, but it may be dom_node - print $self->{"list_name"}." = list_new(DOM_STRING);\n"; + if( $self->{"member_list_declared"} eq 1) { + print $self->{"list_name"}." = list_new(DOM_STRING);\n"; + } else { + push(@{$self->{"list_last_name"}}, $self->{"list_name"}); + } $self->{"list_type"} = "DOMString"; } } @@ -553,14 +594,19 @@ sub generate_framework_statement { if (exists $ats->{"obj"}) { $obj = $ats->{"obj"}; } else { - $obj = $ats->{"item"} + $obj = $ats->{"item"}; } - + if (not $self->{"var"}->{$col} =~ /^(List|Collection)/) { die "Append data to some non-list type!"; } - - print "list_add($col, $obj);\n"; + $type = $self->{"var"}->{$obj}; + if ($type eq "int") { + print "\nlist_temp[++count] =$obj;\n"; + print "list_add($col, &list_temp[count]);\n\n"; + } else { + print "list_add($col, $obj);\n"; + } } case [qw(plus subtract mult divide)] { @@ -681,6 +727,8 @@ sub generate_method { $method = to_cmethod($ats{'interface'}, $en); my $cast = to_attribute_cast($ats{'interface'}); + my $get_attribute = $node->getAttribute("name"); + my $cast_get_attribute = to_get_attribute_cast($get_attribute); my $ns = $dd->find("parameters/param", $node); my $params = "${cast}$ats{'obj'}"; for ($count = 1; $count <= $ns->size; $count++) { @@ -746,7 +794,7 @@ sub generate_method { # Indicate that we have created a temp node $temp_node = 1; } else { - $params = $params.", (void *) \&$ats{'var'}"; + $params = $params.", $cast_get_attribute\&$ats{'var'}"; $unref = $self->param_unref($ats{'var'}); } } @@ -808,6 +856,8 @@ sub generate_attribute_fetcher { my $fetcher = to_attribute_fetcher($ats{'interface'}, "$en"); my $cast = to_attribute_cast($ats{'interface'}); + my $get_attribute = $node->getAttribute("name"); + my $cast_get_attribute = to_get_attribute_cast($get_attribute); my $unref = 0; my $temp_node = 0; # Deal with the situation like @@ -833,7 +883,7 @@ sub generate_attribute_fetcher { $temp_node = 1; } else { $unref = $self->param_unref($ats{'var'}); - print "\texp = $fetcher(${cast}$ats{'obj'}, \&$ats{'var'});\n"; + print "\texp = $fetcher(${cast}$ats{'obj'}, ${cast_get_attribute}\&$ats{'var'});\n"; } @@ -1424,7 +1474,26 @@ sub get_prefix { } return $prefix; } +sub to_get_attribute_cast { + my $type = shift; + my $ret = get_get_attribute_prefix($type); + if($ret eq "") { + return $ret; + } + $ret =~ s/h_t_m_l/html/; + return "(${ret} *)"; +} +sub get_get_attribute_prefix { + my $type = shift; + + if (exists $special_prefix{$type}) { + $prefix = $special_prefix{$type}; + } else { + $prefix = ""; + } + return $prefix; +} # This function remain unsed sub get_suffix { my $type = shift; diff --git a/test/testcases/tests/level1/html/HTMLCollection01.xml.notimpl b/test/testcases/tests/level1/html/HTMLCollection01.xml.notimpl deleted file mode 100644 index fd2cfe4..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection01.xml.notimpl +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - -HTMLCollection01 -NIST - - An individual node may be accessed by either ordinal index, the node's - name or id attributes. (Test ordinal index). - - Retrieve the first TABLE element and create a HTMLCollection by invoking - the "rows" attribute. The item located at ordinal index 0 is further - retrieved and its "rowIndex" attribute is examined. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLCollection02.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection02.xml.kfail deleted file mode 100644 index 521d5ae..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection02.xml.kfail +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - -HTMLCollection02 -NIST - - An individual node may be accessed by either ordinal index, the node's - name or id attributes. (Test node name). - - Retrieve the first FORM element and create a HTMLCollection by invoking - the elements attribute. The first SELECT element is further retrieved - using the elements name attribute. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLCollection03.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection03.xml.kfail deleted file mode 100644 index 36d489e..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection03.xml.kfail +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - -HTMLCollection03 -NIST - - An individual node may be accessed by either ordinal index, the node's - name or id attributes. (Test id attribute). - - Retrieve the first FORM element and create a HTMLCollection by invoking - the "element" attribute. The first SELECT element is further retrieved - using the elements id. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLCollection04.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection04.xml.kfail new file mode 100644 index 0000000..5d78405 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLCollection04.xml.kfail @@ -0,0 +1,59 @@ + + + + + + + +HTMLCollection04 +NIST + + HTMLCollections are live, they are automatically updated when the + underlying document is changed. + + Create a HTMLCollection object by invoking the rows attribute of the + first TABLE element and examine its length, then add a new row and + re-examine the length. + +Rick Rivello +2002-05-01 + + + + + + + + + + + + +4 +5 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLCollection05.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection05.xml.kfail new file mode 100644 index 0000000..ffb7d13 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLCollection05.xml.kfail @@ -0,0 +1,46 @@ + + + + + + + +HTMLCollection05 +NIST + + The length attribute specifies the length or size of the list. + + Retrieve the first TABLE element and create a HTMLCollection by invoking + the "rows" attribute. Retrieve the length attribute of the HTMLCollection + object. + +Rick Rivello +2002-05-01 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLCollection09.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection09.xml.kfail new file mode 100644 index 0000000..f81e7af --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLCollection09.xml.kfail @@ -0,0 +1,47 @@ + + + + + + + +HTMLCollection09 +NIST + + The item(index) method returns null if the index is out of range. + + Retrieve the first TABLE element and create a HTMLCollection by invoking + the "rows" attribute. Invoke the item(index) method with an index + of 5. This index is out of range and should return null. + +Rick Rivello +2002-05-01 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLCollection12.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection12.xml.kfail new file mode 100644 index 0000000..d7feb3d --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLCollection12.xml.kfail @@ -0,0 +1,50 @@ + + + + + + + +HTMLCollection12 +NIST + + The namedItem(name) method retrieves a node using a name. It first + searches for a node with a matching id attribute. If it doesn't find + one, it then searches for a Node with a matching name attribute, but only + on those elements that are allowed a name attribute. If there isn't + a matching node the method returns null. + + Retrieve the first FORM element and create a HTMLCollection by invoking + the elements attribute. The method returns null since there is not a + match of the name or id attribute. + +Rick Rivello +2002-05-01 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement01.xml b/test/testcases/tests/level1/html/HTMLTableElement01.xml new file mode 100644 index 0000000..7135fd7 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement01.xml @@ -0,0 +1,45 @@ + + + + + + + +HTMLTableElement01 +NIST + + The caption attribute returns the tables CAPTION. + + Retrieve the align attribute of the CAPTION element from the second + TABLE element and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement01.xml.kfail deleted file mode 100644 index 7135fd7..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement01.xml.kfail +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - -HTMLTableElement01 -NIST - - The caption attribute returns the tables CAPTION. - - Retrieve the align attribute of the CAPTION element from the second - TABLE element and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement02.xml b/test/testcases/tests/level1/html/HTMLTableElement02.xml new file mode 100644 index 0000000..fb9fa8f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement02.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableElement02 +NIST + + The caption attribute returns the tables CAPTION or void if it does not + exist. + + Retrieve the CAPTION element from within the first TABLE element. + Since one does not exist it should be void. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement02.xml.kfail deleted file mode 100644 index fb9fa8f..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement02.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableElement02 -NIST - - The caption attribute returns the tables CAPTION or void if it does not - exist. - - Retrieve the CAPTION element from within the first TABLE element. - Since one does not exist it should be void. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement03.xml b/test/testcases/tests/level1/html/HTMLTableElement03.xml new file mode 100644 index 0000000..0b59fe6 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement03.xml @@ -0,0 +1,45 @@ + + + + + + + +HTMLTableElement03 +NIST + + The tHead attribute returns the tables THEAD. + + Retrieve the align attribute of the THEAD element from the second + TABLE element and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement03.xml.kfail deleted file mode 100644 index 0b59fe6..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement03.xml.kfail +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - -HTMLTableElement03 -NIST - - The tHead attribute returns the tables THEAD. - - Retrieve the align attribute of the THEAD element from the second - TABLE element and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement04.xml b/test/testcases/tests/level1/html/HTMLTableElement04.xml new file mode 100644 index 0000000..1e254b3 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement04.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableElement04 +NIST + + The tHead attribute returns the tables THEAD or null if it does not + exist. + + Retrieve the THEAD element from within the first TABLE element. + Since one does not exist it should be null. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement04.xml.kfail deleted file mode 100644 index 1e254b3..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement04.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableElement04 -NIST - - The tHead attribute returns the tables THEAD or null if it does not - exist. - - Retrieve the THEAD element from within the first TABLE element. - Since one does not exist it should be null. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement05.xml b/test/testcases/tests/level1/html/HTMLTableElement05.xml new file mode 100644 index 0000000..15de11c --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement05.xml @@ -0,0 +1,45 @@ + + + + + + + +HTMLTableElement05 +NIST + + The tFoot attribute returns the tables TFOOT. + + Retrieve the align attribute of the TFOOT element from the second + TABLE element and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement05.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement05.xml.kfail deleted file mode 100644 index 15de11c..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement05.xml.kfail +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - -HTMLTableElement05 -NIST - - The tFoot attribute returns the tables TFOOT. - - Retrieve the align attribute of the TFOOT element from the second - TABLE element and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement06.xml b/test/testcases/tests/level1/html/HTMLTableElement06.xml new file mode 100644 index 0000000..e18b8f8 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement06.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableElement06 +NIST + + The tFoot attribute returns the tables TFOOT or null if it does not + exist. + + Retrieve the TFOOT element from within the first TABLE element. + Since one does not exist it should be null. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement06.xml.kfail deleted file mode 100644 index e18b8f8..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement06.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableElement06 -NIST - - The tFoot attribute returns the tables TFOOT or null if it does not - exist. - - Retrieve the TFOOT element from within the first TABLE element. - Since one does not exist it should be null. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement07.xml b/test/testcases/tests/level1/html/HTMLTableElement07.xml new file mode 100644 index 0000000..44be1c3 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement07.xml @@ -0,0 +1,57 @@ + + + + + + + +HTMLTableElement07 +NIST + + The rows attribute returns a collection of all the rows in the table, + including al in THEAD, TFOOT, all TBODY elements. + + Retrieve the rows attribute from the second TABLE element and + examine the items of the returned collection. + +Mary Brady +2002-02-22 + + + + + + + + + + +"tr" +"tr" +"tr" +"tr" + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement07.xml.kfail deleted file mode 100644 index 44be1c3..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement07.xml.kfail +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - -HTMLTableElement07 -NIST - - The rows attribute returns a collection of all the rows in the table, - including al in THEAD, TFOOT, all TBODY elements. - - Retrieve the rows attribute from the second TABLE element and - examine the items of the returned collection. - -Mary Brady -2002-02-22 - - - - - - - - - - -"tr" -"tr" -"tr" -"tr" - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement08.xml b/test/testcases/tests/level1/html/HTMLTableElement08.xml new file mode 100644 index 0000000..1a744b1 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement08.xml @@ -0,0 +1,54 @@ + + + + + + + +HTMLTableElement08 +NIST + + The tBodies attribute returns a collection of all the defined + table bodies. + + Retrieve the tBodies attribute from the second TABLE element and + examine the items of the returned collection. + +Mary Brady +2002-02-22 + + + + + + + + + + +"tbody" + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement08.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement08.xml.kfail deleted file mode 100644 index 1a744b1..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement08.xml.kfail +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - -HTMLTableElement08 -NIST - - The tBodies attribute returns a collection of all the defined - table bodies. - - Retrieve the tBodies attribute from the second TABLE element and - examine the items of the returned collection. - -Mary Brady -2002-02-22 - - - - - - - - - - -"tbody" - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement09.xml b/test/testcases/tests/level1/html/HTMLTableElement09.xml new file mode 100644 index 0000000..a0aecf3 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement09.xml @@ -0,0 +1,57 @@ + + + + + + + +HTMLTableElement09 +NIST + + The tBodies attribute returns a collection of all the defined + table bodies. + + Retrieve the tBodies attribute from the third TABLE element and + examine the items of the returned collection. Tests multiple TBODY + elements. + +Mary Brady +2002-02-22 + + + + + + + + + + +"tbody" +"tbody" +"tbody" + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement09.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement09.xml.kfail deleted file mode 100644 index a0aecf3..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement09.xml.kfail +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - -HTMLTableElement09 -NIST - - The tBodies attribute returns a collection of all the defined - table bodies. - - Retrieve the tBodies attribute from the third TABLE element and - examine the items of the returned collection. Tests multiple TBODY - elements. - -Mary Brady -2002-02-22 - - - - - - - - - - -"tbody" -"tbody" -"tbody" - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement10.xml b/test/testcases/tests/level1/html/HTMLTableElement10.xml new file mode 100644 index 0000000..160afeb --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement10.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableElement10 +NIST + + The align attribute specifies the table's position with respect to the + rest of the document. + + Retrieve the align attribute of the first TABLE element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement10.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement10.xml.kfail deleted file mode 100644 index 160afeb..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement10.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableElement10 -NIST - - The align attribute specifies the table's position with respect to the - rest of the document. - - Retrieve the align attribute of the first TABLE element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement11.xml b/test/testcases/tests/level1/html/HTMLTableElement11.xml new file mode 100644 index 0000000..785c4d0 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement11.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableElement11 +NIST + + The bgColor attribute specifies cell background color. + + Retrieve the bgColor attribute of the first TABLE element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement11.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement11.xml.kfail deleted file mode 100644 index 785c4d0..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement11.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableElement11 -NIST - - The bgColor attribute specifies cell background color. - - Retrieve the bgColor attribute of the first TABLE element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement12.xml b/test/testcases/tests/level1/html/HTMLTableElement12.xml new file mode 100644 index 0000000..811a147 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement12.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableElement12 +NIST + + The border attribute specifies the width of the border around the table. + + Retrieve the border attribute of the first TABLE element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement12.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement12.xml.kfail deleted file mode 100644 index 811a147..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement12.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableElement12 -NIST - - The border attribute specifies the width of the border around the table. - - Retrieve the border attribute of the first TABLE element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement13.xml b/test/testcases/tests/level1/html/HTMLTableElement13.xml new file mode 100644 index 0000000..4a18d8d --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement13.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableElement13 +NIST + + The cellpadding attribute specifies the horizontal and vertical space + between cell content and cell borders. + + Retrieve the cellpadding attribute of the first TABLE element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement13.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement13.xml.kfail deleted file mode 100644 index 4a18d8d..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement13.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableElement13 -NIST - - The cellpadding attribute specifies the horizontal and vertical space - between cell content and cell borders. - - Retrieve the cellpadding attribute of the first TABLE element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement14.xml b/test/testcases/tests/level1/html/HTMLTableElement14.xml new file mode 100644 index 0000000..478e9c9 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement14.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableElement14 +NIST + + The cellSpacing attribute specifies the horizontal and vertical separation + between cells. + + Retrieve the cellSpacing attribute of the first TABLE element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement14.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement14.xml.kfail deleted file mode 100644 index 478e9c9..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement14.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableElement14 -NIST - - The cellSpacing attribute specifies the horizontal and vertical separation - between cells. - - Retrieve the cellSpacing attribute of the first TABLE element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement15.xml b/test/testcases/tests/level1/html/HTMLTableElement15.xml new file mode 100644 index 0000000..51f9763 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement15.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableElement15 +NIST + + The frame attribute specifies which external table borders to render. + + Retrieve the frame attribute of the first TABLE element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement15.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement15.xml.kfail deleted file mode 100644 index 51f9763..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement15.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableElement15 -NIST - - The frame attribute specifies which external table borders to render. - - Retrieve the frame attribute of the first TABLE element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement16.xml b/test/testcases/tests/level1/html/HTMLTableElement16.xml new file mode 100644 index 0000000..7166437 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement16.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableElement16 +NIST + + The rules attribute specifies which internal table borders to render. + + Retrieve the rules attribute of the first TABLE element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement16.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement16.xml.kfail deleted file mode 100644 index 7166437..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement16.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableElement16 -NIST - - The rules attribute specifies which internal table borders to render. - - Retrieve the rules attribute of the first TABLE element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement17.xml b/test/testcases/tests/level1/html/HTMLTableElement17.xml new file mode 100644 index 0000000..9337c09 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement17.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableElement17 +NIST + + The summary attribute is a description about the purpose or structure + of a table. + + Retrieve the summary attribute of the first TABLE element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement17.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement17.xml.kfail deleted file mode 100644 index 9337c09..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement17.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableElement17 -NIST - - The summary attribute is a description about the purpose or structure - of a table. - - Retrieve the summary attribute of the first TABLE element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement18.xml b/test/testcases/tests/level1/html/HTMLTableElement18.xml new file mode 100644 index 0000000..210e2b1 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement18.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableElement18 +NIST + + The width attribute specifies the desired table width. + + Retrieve the width attribute of the first TABLE element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement18.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement18.xml.kfail deleted file mode 100644 index 210e2b1..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement18.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableElement18 -NIST - - The width attribute specifies the desired table width. - - Retrieve the width attribute of the first TABLE element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement19.xml b/test/testcases/tests/level1/html/HTMLTableElement19.xml new file mode 100644 index 0000000..152174d --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement19.xml @@ -0,0 +1,51 @@ + + + + + + + +HTMLTableElement19 +NIST + + The createTHead() method creates a table header row or returns + an existing one. + + Create a new THEAD element on the first TABLE element. The first + TABLE element should return null to make sure one doesn't exist. + After creation of the THEAD element the value is once again + checked and should not be null. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement19.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement19.xml.kfail deleted file mode 100644 index 152174d..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement19.xml.kfail +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - -HTMLTableElement19 -NIST - - The createTHead() method creates a table header row or returns - an existing one. - - Create a new THEAD element on the first TABLE element. The first - TABLE element should return null to make sure one doesn't exist. - After creation of the THEAD element the value is once again - checked and should not be null. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement20.xml b/test/testcases/tests/level1/html/HTMLTableElement20.xml new file mode 100644 index 0000000..032725b --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement20.xml @@ -0,0 +1,50 @@ + + + + + + + +HTMLTableElement20 +NIST + + The createTHead() method creates a table header row or returns + an existing one. + + Try to create a new THEAD element on the second TABLE element. + Since a THEAD element already exists in the TABLE element a new + THEAD element is not created and information from the already + existing THEAD element is returned. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement20.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement20.xml.kfail deleted file mode 100644 index 032725b..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement20.xml.kfail +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - -HTMLTableElement20 -NIST - - The createTHead() method creates a table header row or returns - an existing one. - - Try to create a new THEAD element on the second TABLE element. - Since a THEAD element already exists in the TABLE element a new - THEAD element is not created and information from the already - existing THEAD element is returned. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement21.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement21.xml.kfail index 3903b69..b50a007 100644 --- a/test/testcases/tests/level1/html/HTMLTableElement21.xml.kfail +++ b/test/testcases/tests/level1/html/HTMLTableElement21.xml.kfail @@ -35,8 +35,8 @@ See W3C License http://www.w3.org/Consortium/Legal/ for more details. - - + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement22.xml b/test/testcases/tests/level1/html/HTMLTableElement22.xml new file mode 100644 index 0000000..6649b0f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement22.xml @@ -0,0 +1,51 @@ + + + + + + + +HTMLTableElement22 +NIST + + The createTFoot() method creates a table footer row or returns + an existing one. + + Create a new TFOOT element on the first TABLE element. The first + TABLE element should return null to make sure one doesn't exist. + After creation of the TFOOT element the value is once again + checked and should not be null. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement22.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement22.xml.kfail deleted file mode 100644 index 6649b0f..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement22.xml.kfail +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - -HTMLTableElement22 -NIST - - The createTFoot() method creates a table footer row or returns - an existing one. - - Create a new TFOOT element on the first TABLE element. The first - TABLE element should return null to make sure one doesn't exist. - After creation of the TFOOT element the value is once again - checked and should not be null. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement23.xml b/test/testcases/tests/level1/html/HTMLTableElement23.xml new file mode 100644 index 0000000..1f53f03 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement23.xml @@ -0,0 +1,50 @@ + + + + + + + +HTMLTableElement23 +NIST + + The createTFoot() method creates a table footer row or returns + an existing one. + + Try to create a new TFOOT element on the second TABLE element. + Since a TFOOT element already exists in the TABLE element a new + TFOOT element is not created and information from the already + existing TFOOT element is returned. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement23.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement23.xml.kfail deleted file mode 100644 index 1f53f03..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement23.xml.kfail +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - -HTMLTableElement23 -NIST - - The createTFoot() method creates a table footer row or returns - an existing one. - - Try to create a new TFOOT element on the second TABLE element. - Since a TFOOT element already exists in the TABLE element a new - TFOOT element is not created and information from the already - existing TFOOT element is returned. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement24.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement24.xml.kfail index d6f993c..58af66e 100644 --- a/test/testcases/tests/level1/html/HTMLTableElement24.xml.kfail +++ b/test/testcases/tests/level1/html/HTMLTableElement24.xml.kfail @@ -35,8 +35,8 @@ See W3C License http://www.w3.org/Consortium/Legal/ for more details. - - + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement25.xml b/test/testcases/tests/level1/html/HTMLTableElement25.xml new file mode 100644 index 0000000..a28ae65 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement25.xml @@ -0,0 +1,49 @@ + + + + + + + +HTMLTableElement25 +NIST + + The createCaption() method creates a new table caption object or returns + an existing one. + + Create a new CAPTION element on the first TABLE element. Since + one does not currently exist the CAPTION element is created. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement25.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement25.xml.kfail deleted file mode 100644 index a28ae65..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement25.xml.kfail +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - -HTMLTableElement25 -NIST - - The createCaption() method creates a new table caption object or returns - an existing one. - - Create a new CAPTION element on the first TABLE element. Since - one does not currently exist the CAPTION element is created. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement26.xml b/test/testcases/tests/level1/html/HTMLTableElement26.xml new file mode 100644 index 0000000..5517f2f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement26.xml @@ -0,0 +1,52 @@ + + + + + + + +HTMLTableElement26 +NIST + + The createCaption() method creates a new table caption object or returns + an existing one. + + Create a new CAPTION element on the first TABLE element. Since + one currently exists the CAPTION element is not created and you + can get the align attribute from the CAPTION element that exists. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement26.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement26.xml.kfail deleted file mode 100644 index 5517f2f..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement26.xml.kfail +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - -HTMLTableElement26 -NIST - - The createCaption() method creates a new table caption object or returns - an existing one. - - Create a new CAPTION element on the first TABLE element. Since - one currently exists the CAPTION element is not created and you - can get the align attribute from the CAPTION element that exists. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableElement27.xml b/test/testcases/tests/level1/html/HTMLTableElement27.xml new file mode 100644 index 0000000..c387d69 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableElement27.xml @@ -0,0 +1,47 @@ + + + + + + + +HTMLTableElement27 +NIST + + The deleteCaption() method deletes the table caption. + + Delete the CAPTION element on the second TABLE element. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableElement27.xml.kfail b/test/testcases/tests/level1/html/HTMLTableElement27.xml.kfail deleted file mode 100644 index c387d69..0000000 --- a/test/testcases/tests/level1/html/HTMLTableElement27.xml.kfail +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - -HTMLTableElement27 -NIST - - The deleteCaption() method deletes the table caption. - - Delete the CAPTION element on the second TABLE element. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement01.xml b/test/testcases/tests/level1/html/HTMLTableRowElement01.xml new file mode 100644 index 0000000..0dbd008 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableRowElement01.xml @@ -0,0 +1,46 @@ + + + + + + + +HTMLTableRowElement01 +NIST + + The rowIndex attribute specifies the index of the row, relative to the + entire table, starting from 0. This is in document tree order and + not display order. The rowIndex does not take into account sections + (THEAD, TFOOT, or TBODY) within the table. + + Retrieve the third TR element within the document and examine + its rowIndex value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLTableRowElement01.xml.kfail deleted file mode 100644 index 0dbd008..0000000 --- a/test/testcases/tests/level1/html/HTMLTableRowElement01.xml.kfail +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - -HTMLTableRowElement01 -NIST - - The rowIndex attribute specifies the index of the row, relative to the - entire table, starting from 0. This is in document tree order and - not display order. The rowIndex does not take into account sections - (THEAD, TFOOT, or TBODY) within the table. - - Retrieve the third TR element within the document and examine - its rowIndex value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement02.xml b/test/testcases/tests/level1/html/HTMLTableRowElement02.xml new file mode 100644 index 0000000..284bc84 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableRowElement02.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableRowElement02 +NIST + + The sectionRowIndex attribute specifies the index of this row, relative + to the current section(THEAD, TFOOT, or TBODY),starting from 0. + + Retrieve the second TR(1st In THEAD) element within the document and + examine its sectionRowIndex value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLTableRowElement02.xml.kfail deleted file mode 100644 index 284bc84..0000000 --- a/test/testcases/tests/level1/html/HTMLTableRowElement02.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableRowElement02 -NIST - - The sectionRowIndex attribute specifies the index of this row, relative - to the current section(THEAD, TFOOT, or TBODY),starting from 0. - - Retrieve the second TR(1st In THEAD) element within the document and - examine its sectionRowIndex value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement03.xml b/test/testcases/tests/level1/html/HTMLTableRowElement03.xml new file mode 100644 index 0000000..341c2a5 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableRowElement03.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableRowElement03 +NIST + + The sectionRowIndex attribute specifies the index of this row, relative + to the current section(THEAD, TFOOT, or TBODY),starting from 0. + + Retrieve the third TR(1st In TFOOT) element within the document and + examine its sectionRowIndex value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLTableRowElement03.xml.kfail deleted file mode 100644 index 341c2a5..0000000 --- a/test/testcases/tests/level1/html/HTMLTableRowElement03.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableRowElement03 -NIST - - The sectionRowIndex attribute specifies the index of this row, relative - to the current section(THEAD, TFOOT, or TBODY),starting from 0. - - Retrieve the third TR(1st In TFOOT) element within the document and - examine its sectionRowIndex value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement04.xml b/test/testcases/tests/level1/html/HTMLTableRowElement04.xml new file mode 100644 index 0000000..bca05d4 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableRowElement04.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableRowElement04 +NIST + + The sectionRowIndex attribute specifies the index of this row, relative + to the current section(THEAD, TFOOT, or TBODY),starting from 0. + + Retrieve the fifth TR(2nd In TBODY) element within the document and + examine its sectionRowIndex value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLTableRowElement04.xml.kfail deleted file mode 100644 index bca05d4..0000000 --- a/test/testcases/tests/level1/html/HTMLTableRowElement04.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableRowElement04 -NIST - - The sectionRowIndex attribute specifies the index of this row, relative - to the current section(THEAD, TFOOT, or TBODY),starting from 0. - - Retrieve the fifth TR(2nd In TBODY) element within the document and - examine its sectionRowIndex value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement06.xml b/test/testcases/tests/level1/html/HTMLTableRowElement06.xml new file mode 100644 index 0000000..55fc2ac --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableRowElement06.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableRowElement06 +NIST + + The align attribute specifies the horizontal alignment of data within + cells of this row. + + Retrieve the align attribute of the second TR element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLTableRowElement06.xml.kfail deleted file mode 100644 index 55fc2ac..0000000 --- a/test/testcases/tests/level1/html/HTMLTableRowElement06.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableRowElement06 -NIST - - The align attribute specifies the horizontal alignment of data within - cells of this row. - - Retrieve the align attribute of the second TR element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement07.xml b/test/testcases/tests/level1/html/HTMLTableRowElement07.xml new file mode 100644 index 0000000..c586f6a --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableRowElement07.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableRowElement07 +NIST + + The bgColor attribute specifies the background color of rows. + + Retrieve the bgColor attribute of the second TR element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLTableRowElement07.xml.kfail deleted file mode 100644 index c586f6a..0000000 --- a/test/testcases/tests/level1/html/HTMLTableRowElement07.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableRowElement07 -NIST - - The bgColor attribute specifies the background color of rows. - - Retrieve the bgColor attribute of the second TR element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement08.xml b/test/testcases/tests/level1/html/HTMLTableRowElement08.xml new file mode 100644 index 0000000..751ef9e --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableRowElement08.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableRowElement08 +NIST + + The ch attribute specifies the alignment character for cells in a column. + + Retrieve the char attribute of the second TR element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement08.xml.kfail b/test/testcases/tests/level1/html/HTMLTableRowElement08.xml.kfail deleted file mode 100644 index 751ef9e..0000000 --- a/test/testcases/tests/level1/html/HTMLTableRowElement08.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableRowElement08 -NIST - - The ch attribute specifies the alignment character for cells in a column. - - Retrieve the char attribute of the second TR element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement09.xml b/test/testcases/tests/level1/html/HTMLTableRowElement09.xml new file mode 100644 index 0000000..eda033b --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableRowElement09.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLTableRowElement09 +NIST + + The chOff attribute specifies the offset of alignment character. + + Retrieve the charoff attribute of the second TR element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement09.xml.kfail b/test/testcases/tests/level1/html/HTMLTableRowElement09.xml.kfail deleted file mode 100644 index eda033b..0000000 --- a/test/testcases/tests/level1/html/HTMLTableRowElement09.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLTableRowElement09 -NIST - - The chOff attribute specifies the offset of alignment character. - - Retrieve the charoff attribute of the second TR element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement10.xml b/test/testcases/tests/level1/html/HTMLTableRowElement10.xml new file mode 100644 index 0000000..3554fb6 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLTableRowElement10.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLTableRowElement10 +NIST + + The vAlign attribute specifies the vertical alignment of data within + cells of this row. + + Retrieve the vAlign attribute of the second TR element and examine + its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLTableRowElement10.xml.kfail b/test/testcases/tests/level1/html/HTMLTableRowElement10.xml.kfail deleted file mode 100644 index 3554fb6..0000000 --- a/test/testcases/tests/level1/html/HTMLTableRowElement10.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLTableRowElement10 -NIST - - The vAlign attribute specifies the vertical alignment of data within - cells of this row. - - Retrieve the vAlign attribute of the second TR element and examine - its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/anchor01.xml b/test/testcases/tests/level1/html/anchor01.xml new file mode 100644 index 0000000..19a2711 --- /dev/null +++ b/test/testcases/tests/level1/html/anchor01.xml @@ -0,0 +1,40 @@ + + + + + + +anchor01 +Netscape + +A single character access key to give access to the form control. +The value of attribute accessKey of the anchor element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-02 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/anchor01.xml.notimpl b/test/testcases/tests/level1/html/anchor01.xml.notimpl deleted file mode 100644 index 19a2711..0000000 --- a/test/testcases/tests/level1/html/anchor01.xml.notimpl +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -anchor01 -Netscape - -A single character access key to give access to the form control. -The value of attribute accessKey of the anchor element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-02 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/anchor02.xml b/test/testcases/tests/level1/html/anchor02.xml new file mode 100644 index 0000000..61486a7 --- /dev/null +++ b/test/testcases/tests/level1/html/anchor02.xml @@ -0,0 +1,40 @@ + + + + + + +anchor02 +Netscape + +The character encoding of the linked resource. +The value of attribute charset of the anchor element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-02 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/anchor02.xml.notimpl b/test/testcases/tests/level1/html/anchor02.xml.notimpl deleted file mode 100644 index 61486a7..0000000 --- a/test/testcases/tests/level1/html/anchor02.xml.notimpl +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -anchor02 -Netscape - -The character encoding of the linked resource. -The value of attribute charset of the anchor element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-02 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/anchor03.xml b/test/testcases/tests/level1/html/anchor03.xml new file mode 100644 index 0000000..e6bd32e --- /dev/null +++ b/test/testcases/tests/level1/html/anchor03.xml @@ -0,0 +1,40 @@ + + + + + + +anchor03 +Netscape + +Comma-separated list of lengths, defining an active region geometry. +The value of attribute coords of the anchor element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-02 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/anchor03.xml.notimpl b/test/testcases/tests/level1/html/anchor03.xml.notimpl deleted file mode 100644 index e6bd32e..0000000 --- a/test/testcases/tests/level1/html/anchor03.xml.notimpl +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -anchor03 -Netscape - -Comma-separated list of lengths, defining an active region geometry. -The value of attribute coords of the anchor element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-02 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/anchor04.xml.kfail b/test/testcases/tests/level1/html/anchor04.xml.kfail new file mode 100644 index 0000000..b5ce201 --- /dev/null +++ b/test/testcases/tests/level1/html/anchor04.xml.kfail @@ -0,0 +1,40 @@ + + + + + + +anchor04 +Netscape + +The URI of the linked resource. +The value of attribute href of the anchor element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-02 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/anchor04.xml.notimpl b/test/testcases/tests/level1/html/anchor04.xml.notimpl deleted file mode 100644 index b5ce201..0000000 --- a/test/testcases/tests/level1/html/anchor04.xml.notimpl +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -anchor04 -Netscape - -The URI of the linked resource. -The value of attribute href of the anchor element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-02 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/anchor05.xml b/test/testcases/tests/level1/html/anchor05.xml new file mode 100644 index 0000000..27b34ac --- /dev/null +++ b/test/testcases/tests/level1/html/anchor05.xml @@ -0,0 +1,40 @@ + + + + + + +anchor05 +Netscape + +Advisory content type. +The value of attribute type of the anchor element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-02 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/anchor05.xml.notimpl b/test/testcases/tests/level1/html/anchor05.xml.notimpl deleted file mode 100644 index 27b34ac..0000000 --- a/test/testcases/tests/level1/html/anchor05.xml.notimpl +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -anchor05 -Netscape - -Advisory content type. -The value of attribute type of the anchor element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-02 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/anchor06.xml b/test/testcases/tests/level1/html/anchor06.xml new file mode 100644 index 0000000..31190be --- /dev/null +++ b/test/testcases/tests/level1/html/anchor06.xml @@ -0,0 +1,40 @@ + + + + + + +anchor06 +Netscape + +The shape of the active area. The coordinates are given by coords +The value of attribute shape of the anchor element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-02 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/anchor06.xml.notimpl b/test/testcases/tests/level1/html/anchor06.xml.notimpl deleted file mode 100644 index 31190be..0000000 --- a/test/testcases/tests/level1/html/anchor06.xml.notimpl +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -anchor06 -Netscape - -The shape of the active area. The coordinates are given by coords -The value of attribute shape of the anchor element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-02 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/dlist01.xml b/test/testcases/tests/level1/html/dlist01.xml new file mode 100644 index 0000000..35cbe2c --- /dev/null +++ b/test/testcases/tests/level1/html/dlist01.xml @@ -0,0 +1,39 @@ + + + + + + +dlist01 +Netscape + + + +Sivakiran Tummala +2002-02-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/dlist01.xml.notimpl b/test/testcases/tests/level1/html/dlist01.xml.notimpl deleted file mode 100644 index 35cbe2c..0000000 --- a/test/testcases/tests/level1/html/dlist01.xml.notimpl +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - -dlist01 -Netscape - - - -Sivakiran Tummala -2002-02-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table01.xml b/test/testcases/tests/level1/html/table01.xml new file mode 100644 index 0000000..4cee6f7 --- /dev/null +++ b/test/testcases/tests/level1/html/table01.xml @@ -0,0 +1,40 @@ + + + + + + +table01 +Netscape + +Returns the table's CAPTION, or void if none exists. +The value of attribute caption of the table element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table01.xml.kfail b/test/testcases/tests/level1/html/table01.xml.kfail deleted file mode 100644 index 4cee6f7..0000000 --- a/test/testcases/tests/level1/html/table01.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table01 -Netscape - -Returns the table's CAPTION, or void if none exists. -The value of attribute caption of the table element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table02.xml b/test/testcases/tests/level1/html/table02.xml new file mode 100644 index 0000000..2433751 --- /dev/null +++ b/test/testcases/tests/level1/html/table02.xml @@ -0,0 +1,42 @@ + + + + + + +table02 +Netscape + +Caption alignment with respect to the table. +The value of attribute align of the tablecaption element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table02.xml.kfail b/test/testcases/tests/level1/html/table02.xml.kfail deleted file mode 100644 index 2433751..0000000 --- a/test/testcases/tests/level1/html/table02.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -table02 -Netscape - -Caption alignment with respect to the table. -The value of attribute align of the tablecaption element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table03.xml b/test/testcases/tests/level1/html/table03.xml new file mode 100644 index 0000000..b8c3ef6 --- /dev/null +++ b/test/testcases/tests/level1/html/table03.xml @@ -0,0 +1,42 @@ + + + + + + +table03 +Netscape + +Alignment character for cells in a column. +The value of attribute ch of the tablesection element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table03.xml.kfail b/test/testcases/tests/level1/html/table03.xml.kfail deleted file mode 100644 index b8c3ef6..0000000 --- a/test/testcases/tests/level1/html/table03.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -table03 -Netscape - -Alignment character for cells in a column. -The value of attribute ch of the tablesection element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table04.xml b/test/testcases/tests/level1/html/table04.xml new file mode 100644 index 0000000..2d4fcf8 --- /dev/null +++ b/test/testcases/tests/level1/html/table04.xml @@ -0,0 +1,42 @@ + + + + + + +table04 +Netscape + +Horizontal alignment of data in cells. +The value of attribute align of the tablesection element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table04.xml.kfail b/test/testcases/tests/level1/html/table04.xml.kfail deleted file mode 100644 index 2d4fcf8..0000000 --- a/test/testcases/tests/level1/html/table04.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -table04 -Netscape - -Horizontal alignment of data in cells. -The value of attribute align of the tablesection element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table08.xml b/test/testcases/tests/level1/html/table08.xml new file mode 100644 index 0000000..ea77b80 --- /dev/null +++ b/test/testcases/tests/level1/html/table08.xml @@ -0,0 +1,42 @@ + + + + + + +table08 +Netscape + +Horizontal alignment of data in cells. +The value of attribute align of the tablesection element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table08.xml.kfail b/test/testcases/tests/level1/html/table08.xml.kfail deleted file mode 100644 index ea77b80..0000000 --- a/test/testcases/tests/level1/html/table08.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -table08 -Netscape - -Horizontal alignment of data in cells. -The value of attribute align of the tablesection element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table09.xml b/test/testcases/tests/level1/html/table09.xml new file mode 100644 index 0000000..fcb9018 --- /dev/null +++ b/test/testcases/tests/level1/html/table09.xml @@ -0,0 +1,42 @@ + + + + + + +table09 +Netscape + +Vertical alignment of data in cells. +The value of attribute valign of the table element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table09.xml.kfail b/test/testcases/tests/level1/html/table09.xml.kfail deleted file mode 100644 index fcb9018..0000000 --- a/test/testcases/tests/level1/html/table09.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -table09 -Netscape - -Vertical alignment of data in cells. -The value of attribute valign of the table element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table10.xml b/test/testcases/tests/level1/html/table10.xml new file mode 100644 index 0000000..aa05594 --- /dev/null +++ b/test/testcases/tests/level1/html/table10.xml @@ -0,0 +1,42 @@ + + + + + + +table10 +Netscape + +Alignment character for cells in a column. +The value of attribute ch of the tablesection element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table10.xml.kfail b/test/testcases/tests/level1/html/table10.xml.kfail deleted file mode 100644 index aa05594..0000000 --- a/test/testcases/tests/level1/html/table10.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -table10 -Netscape - -Alignment character for cells in a column. -The value of attribute ch of the tablesection element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table12.xml b/test/testcases/tests/level1/html/table12.xml new file mode 100644 index 0000000..93e475b --- /dev/null +++ b/test/testcases/tests/level1/html/table12.xml @@ -0,0 +1,42 @@ + + + + + + +table12 +Netscape + +Offset of alignment character. +The value of attribute choff of the tablesection element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table12.xml.kfail b/test/testcases/tests/level1/html/table12.xml.kfail deleted file mode 100644 index 93e475b..0000000 --- a/test/testcases/tests/level1/html/table12.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -table12 -Netscape - -Offset of alignment character. -The value of attribute choff of the tablesection element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table17.xml b/test/testcases/tests/level1/html/table17.xml new file mode 100644 index 0000000..7223562 --- /dev/null +++ b/test/testcases/tests/level1/html/table17.xml @@ -0,0 +1,42 @@ + + + + + + +table17 +Netscape + +Offset of alignment character. +The value of attribute chOff of the tablesection element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table17.xml.kfail b/test/testcases/tests/level1/html/table17.xml.kfail deleted file mode 100644 index 7223562..0000000 --- a/test/testcases/tests/level1/html/table17.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -table17 -Netscape - -Offset of alignment character. -The value of attribute chOff of the tablesection element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table18.xml b/test/testcases/tests/level1/html/table18.xml new file mode 100644 index 0000000..db8c161 --- /dev/null +++ b/test/testcases/tests/level1/html/table18.xml @@ -0,0 +1,40 @@ + + + + + + +table18 +Netscape + +The index of this cell in the row. +The value of attribute cellIndex of the tablecell element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table18.xml.kfail b/test/testcases/tests/level1/html/table18.xml.kfail deleted file mode 100644 index db8c161..0000000 --- a/test/testcases/tests/level1/html/table18.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table18 -Netscape - -The index of this cell in the row. -The value of attribute cellIndex of the tablecell element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table19.xml b/test/testcases/tests/level1/html/table19.xml new file mode 100644 index 0000000..e88be88 --- /dev/null +++ b/test/testcases/tests/level1/html/table19.xml @@ -0,0 +1,41 @@ + + + + + + +table19 +Netscape + +Abbreviation for header cells. +The index of this cell in the row. +The value of attribute abbr of the tablecell element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table19.xml.kfail b/test/testcases/tests/level1/html/table19.xml.kfail deleted file mode 100644 index e88be88..0000000 --- a/test/testcases/tests/level1/html/table19.xml.kfail +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - -table19 -Netscape - -Abbreviation for header cells. -The index of this cell in the row. -The value of attribute abbr of the tablecell element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table20.xml b/test/testcases/tests/level1/html/table20.xml new file mode 100644 index 0000000..2205987 --- /dev/null +++ b/test/testcases/tests/level1/html/table20.xml @@ -0,0 +1,40 @@ + + + + + + +table20 +Netscape + +Names group of related headers. +The value of attribute axis of the tablecell element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table20.xml.kfail b/test/testcases/tests/level1/html/table20.xml.kfail deleted file mode 100644 index 2205987..0000000 --- a/test/testcases/tests/level1/html/table20.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table20 -Netscape - -Names group of related headers. -The value of attribute axis of the tablecell element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table21.xml b/test/testcases/tests/level1/html/table21.xml new file mode 100644 index 0000000..fa22103 --- /dev/null +++ b/test/testcases/tests/level1/html/table21.xml @@ -0,0 +1,40 @@ + + + + + + +table21 +Netscape + +Horizontal alignment of data in cell. +The value of attribute align of the tablecell element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table21.xml.kfail b/test/testcases/tests/level1/html/table21.xml.kfail deleted file mode 100644 index fa22103..0000000 --- a/test/testcases/tests/level1/html/table21.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table21 -Netscape - -Horizontal alignment of data in cell. -The value of attribute align of the tablecell element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table22.xml b/test/testcases/tests/level1/html/table22.xml new file mode 100644 index 0000000..7c097b4 --- /dev/null +++ b/test/testcases/tests/level1/html/table22.xml @@ -0,0 +1,40 @@ + + + + + + +table22 +Netscape + +Cell background color. +The value of attribute bgColor of the tablecell element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table22.xml.kfail b/test/testcases/tests/level1/html/table22.xml.kfail deleted file mode 100644 index 7c097b4..0000000 --- a/test/testcases/tests/level1/html/table22.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table22 -Netscape - -Cell background color. -The value of attribute bgColor of the tablecell element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table23.xml b/test/testcases/tests/level1/html/table23.xml new file mode 100644 index 0000000..4ea8ace --- /dev/null +++ b/test/testcases/tests/level1/html/table23.xml @@ -0,0 +1,40 @@ + + + + + + +table23 +Netscape + +Alignment character for cells in a column. +The value of attribute char of the tablecell element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table23.xml.kfail b/test/testcases/tests/level1/html/table23.xml.kfail deleted file mode 100644 index 4ea8ace..0000000 --- a/test/testcases/tests/level1/html/table23.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table23 -Netscape - -Alignment character for cells in a column. -The value of attribute char of the tablecell element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table24.xml b/test/testcases/tests/level1/html/table24.xml new file mode 100644 index 0000000..7606917 --- /dev/null +++ b/test/testcases/tests/level1/html/table24.xml @@ -0,0 +1,40 @@ + + + + + + +table24 +Netscape + +offset of alignment character. +The value of attribute chOff of the tablecell element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table24.xml.kfail b/test/testcases/tests/level1/html/table24.xml.kfail deleted file mode 100644 index 7606917..0000000 --- a/test/testcases/tests/level1/html/table24.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table24 -Netscape - -offset of alignment character. -The value of attribute chOff of the tablecell element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table25.xml b/test/testcases/tests/level1/html/table25.xml new file mode 100644 index 0000000..b8e10dd --- /dev/null +++ b/test/testcases/tests/level1/html/table25.xml @@ -0,0 +1,40 @@ + + + + + + +table25 +Netscape + +Number of columns spanned by cell. +The value of attribute colspan of the tablecell element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table25.xml.kfail b/test/testcases/tests/level1/html/table25.xml.kfail deleted file mode 100644 index b8e10dd..0000000 --- a/test/testcases/tests/level1/html/table25.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table25 -Netscape - -Number of columns spanned by cell. -The value of attribute colspan of the tablecell element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table26.xml b/test/testcases/tests/level1/html/table26.xml new file mode 100644 index 0000000..9f09d4f --- /dev/null +++ b/test/testcases/tests/level1/html/table26.xml @@ -0,0 +1,39 @@ + + + + + + +table26 +Netscape + +The value of attribute height of the tablecell element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table26.xml.kfail b/test/testcases/tests/level1/html/table26.xml.kfail deleted file mode 100644 index 9f09d4f..0000000 --- a/test/testcases/tests/level1/html/table26.xml.kfail +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - -table26 -Netscape - -The value of attribute height of the tablecell element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table27.xml b/test/testcases/tests/level1/html/table27.xml new file mode 100644 index 0000000..e0dc78d --- /dev/null +++ b/test/testcases/tests/level1/html/table27.xml @@ -0,0 +1,40 @@ + + + + + + +table27 +Netscape + +Suppress word wrapping. +The value of attribute nowrap of the tablecell element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table27.xml.kfail b/test/testcases/tests/level1/html/table27.xml.kfail deleted file mode 100644 index e0dc78d..0000000 --- a/test/testcases/tests/level1/html/table27.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table27 -Netscape - -Suppress word wrapping. -The value of attribute nowrap of the tablecell element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table28.xml b/test/testcases/tests/level1/html/table28.xml new file mode 100644 index 0000000..d445a1c --- /dev/null +++ b/test/testcases/tests/level1/html/table28.xml @@ -0,0 +1,40 @@ + + + + + + +table28 +Netscape + +Number of rows spanned by cell. +The value of attribute rowspan of the tablecell element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table28.xml.kfail b/test/testcases/tests/level1/html/table28.xml.kfail deleted file mode 100644 index d445a1c..0000000 --- a/test/testcases/tests/level1/html/table28.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table28 -Netscape - -Number of rows spanned by cell. -The value of attribute rowspan of the tablecell element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table29.xml b/test/testcases/tests/level1/html/table29.xml new file mode 100644 index 0000000..ae483d4 --- /dev/null +++ b/test/testcases/tests/level1/html/table29.xml @@ -0,0 +1,40 @@ + + + + + + +table29 +Netscape + +Scope covered by header cells. +The value of attribute scope of the tablecell element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table29.xml.kfail b/test/testcases/tests/level1/html/table29.xml.kfail deleted file mode 100644 index ae483d4..0000000 --- a/test/testcases/tests/level1/html/table29.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table29 -Netscape - -Scope covered by header cells. -The value of attribute scope of the tablecell element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table30.xml b/test/testcases/tests/level1/html/table30.xml new file mode 100644 index 0000000..837be29 --- /dev/null +++ b/test/testcases/tests/level1/html/table30.xml @@ -0,0 +1,40 @@ + + + + + + +table30 +Netscape + +List of id attribute values for header cells. +The value of attribute headers of the tablecell element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table30.xml.kfail b/test/testcases/tests/level1/html/table30.xml.kfail deleted file mode 100644 index 837be29..0000000 --- a/test/testcases/tests/level1/html/table30.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table30 -Netscape - -List of id attribute values for header cells. -The value of attribute headers of the tablecell element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table31.xml b/test/testcases/tests/level1/html/table31.xml new file mode 100644 index 0000000..f5c3fa6 --- /dev/null +++ b/test/testcases/tests/level1/html/table31.xml @@ -0,0 +1,40 @@ + + + + + + +table31 +Netscape + +Vertical alignment of data in cell. +The value of attribute valign of the tablecell element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table31.xml.kfail b/test/testcases/tests/level1/html/table31.xml.kfail deleted file mode 100644 index f5c3fa6..0000000 --- a/test/testcases/tests/level1/html/table31.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table31 -Netscape - -Vertical alignment of data in cell. -The value of attribute valign of the tablecell element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table32.xml b/test/testcases/tests/level1/html/table32.xml new file mode 100644 index 0000000..cf7e0cd --- /dev/null +++ b/test/testcases/tests/level1/html/table32.xml @@ -0,0 +1,40 @@ + + + + + + +table32 +Netscape + +cell width. +The value of attribute width of the table element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table32.xml.kfail b/test/testcases/tests/level1/html/table32.xml.kfail deleted file mode 100644 index cf7e0cd..0000000 --- a/test/testcases/tests/level1/html/table32.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table32 -Netscape - -cell width. -The value of attribute width of the table element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table33.xml b/test/testcases/tests/level1/html/table33.xml new file mode 100644 index 0000000..5c0e447 --- /dev/null +++ b/test/testcases/tests/level1/html/table33.xml @@ -0,0 +1,40 @@ + + + + + + +table33 +Netscape + +Specifies the table's position with respect to the rest of the document. +The value of attribute align of the table element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table33.xml.kfail b/test/testcases/tests/level1/html/table33.xml.kfail deleted file mode 100644 index 5c0e447..0000000 --- a/test/testcases/tests/level1/html/table33.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table33 -Netscape - -Specifies the table's position with respect to the rest of the document. -The value of attribute align of the table element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table34.xml b/test/testcases/tests/level1/html/table34.xml new file mode 100644 index 0000000..07443ef --- /dev/null +++ b/test/testcases/tests/level1/html/table34.xml @@ -0,0 +1,40 @@ + + + + + + +table34 +Netscape + +The width of the border around the table. +The value of attribute border of the table element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table34.xml.kfail b/test/testcases/tests/level1/html/table34.xml.kfail deleted file mode 100644 index 07443ef..0000000 --- a/test/testcases/tests/level1/html/table34.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table34 -Netscape - -The width of the border around the table. -The value of attribute border of the table element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table35.xml b/test/testcases/tests/level1/html/table35.xml new file mode 100644 index 0000000..32cce60 --- /dev/null +++ b/test/testcases/tests/level1/html/table35.xml @@ -0,0 +1,40 @@ + + + + + + +table35 +Netscape + +Cell background color. +The value of attribute bgcolor of the table element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table35.xml.kfail b/test/testcases/tests/level1/html/table35.xml.kfail deleted file mode 100644 index 32cce60..0000000 --- a/test/testcases/tests/level1/html/table35.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table35 -Netscape - -Cell background color. -The value of attribute bgcolor of the table element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table36.xml b/test/testcases/tests/level1/html/table36.xml new file mode 100644 index 0000000..2bdded8 --- /dev/null +++ b/test/testcases/tests/level1/html/table36.xml @@ -0,0 +1,40 @@ + + + + + + +table36 +Netscape + +Specifies which external table borders to render. +The value of attribute frame of the table element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table36.xml.kfail b/test/testcases/tests/level1/html/table36.xml.kfail deleted file mode 100644 index 2bdded8..0000000 --- a/test/testcases/tests/level1/html/table36.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table36 -Netscape - -Specifies which external table borders to render. -The value of attribute frame of the table element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table37.xml b/test/testcases/tests/level1/html/table37.xml new file mode 100644 index 0000000..cdf5b73 --- /dev/null +++ b/test/testcases/tests/level1/html/table37.xml @@ -0,0 +1,39 @@ + + + + + + +table37 +Netscape + +Specifies the horizontal and vertical space between cell content and cell borders. The value of attribute cellpadding of the table element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table37.xml.kfail b/test/testcases/tests/level1/html/table37.xml.kfail deleted file mode 100644 index cdf5b73..0000000 --- a/test/testcases/tests/level1/html/table37.xml.kfail +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - -table37 -Netscape - -Specifies the horizontal and vertical space between cell content and cell borders. The value of attribute cellpadding of the table element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table38.xml b/test/testcases/tests/level1/html/table38.xml new file mode 100644 index 0000000..fad8dfe --- /dev/null +++ b/test/testcases/tests/level1/html/table38.xml @@ -0,0 +1,40 @@ + + + + + + +table38 +Netscape + +Specifies the horizontal and vertical separation between cells. +The value of attribute cellspacing of the table element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table38.xml.kfail b/test/testcases/tests/level1/html/table38.xml.kfail deleted file mode 100644 index fad8dfe..0000000 --- a/test/testcases/tests/level1/html/table38.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table38 -Netscape - -Specifies the horizontal and vertical separation between cells. -The value of attribute cellspacing of the table element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table39.xml b/test/testcases/tests/level1/html/table39.xml new file mode 100644 index 0000000..1fd66db --- /dev/null +++ b/test/testcases/tests/level1/html/table39.xml @@ -0,0 +1,40 @@ + + + + + + +table39 +Netscape + +Supplementary description about the purpose or structure of a table. +The value of attribute summary of the table element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table39.xml.kfail b/test/testcases/tests/level1/html/table39.xml.kfail deleted file mode 100644 index 1fd66db..0000000 --- a/test/testcases/tests/level1/html/table39.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table39 -Netscape - -Supplementary description about the purpose or structure of a table. -The value of attribute summary of the table element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table40.xml b/test/testcases/tests/level1/html/table40.xml new file mode 100644 index 0000000..31a9763 --- /dev/null +++ b/test/testcases/tests/level1/html/table40.xml @@ -0,0 +1,40 @@ + + + + + + +table40 +Netscape + +Specifies which internal table borders to render. +The value of attribute rules of the table element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table40.xml.kfail b/test/testcases/tests/level1/html/table40.xml.kfail deleted file mode 100644 index 31a9763..0000000 --- a/test/testcases/tests/level1/html/table40.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table40 -Netscape - -Specifies which internal table borders to render. -The value of attribute rules of the table element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table41.xml b/test/testcases/tests/level1/html/table41.xml new file mode 100644 index 0000000..4030b09 --- /dev/null +++ b/test/testcases/tests/level1/html/table41.xml @@ -0,0 +1,40 @@ + + + + + + +table41 +Netscape + +Specifies the desired table width. +The value of attribute width of the table element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table41.xml.kfail b/test/testcases/tests/level1/html/table41.xml.kfail deleted file mode 100644 index 4030b09..0000000 --- a/test/testcases/tests/level1/html/table41.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table41 -Netscape - -Specifies the desired table width. -The value of attribute width of the table element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table42.xml b/test/testcases/tests/level1/html/table42.xml new file mode 100644 index 0000000..8fa86f1 --- /dev/null +++ b/test/testcases/tests/level1/html/table42.xml @@ -0,0 +1,40 @@ + + + + + + +table42 +Netscape + +Horizontal alignment of data within cells of this row. +The value of attribute align of the tablerow element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table42.xml.kfail b/test/testcases/tests/level1/html/table42.xml.kfail deleted file mode 100644 index 8fa86f1..0000000 --- a/test/testcases/tests/level1/html/table42.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table42 -Netscape - -Horizontal alignment of data within cells of this row. -The value of attribute align of the tablerow element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table43.xml b/test/testcases/tests/level1/html/table43.xml new file mode 100644 index 0000000..ea9e5de --- /dev/null +++ b/test/testcases/tests/level1/html/table43.xml @@ -0,0 +1,40 @@ + + + + + + +table43 +Netscape + +Background color for rows. +The value of attribute bgcolor of the tablerow element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table43.xml.kfail b/test/testcases/tests/level1/html/table43.xml.kfail deleted file mode 100644 index ea9e5de..0000000 --- a/test/testcases/tests/level1/html/table43.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table43 -Netscape - -Background color for rows. -The value of attribute bgcolor of the tablerow element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table44.xml b/test/testcases/tests/level1/html/table44.xml new file mode 100644 index 0000000..a893f76 --- /dev/null +++ b/test/testcases/tests/level1/html/table44.xml @@ -0,0 +1,40 @@ + + + + + + +table44 +Netscape + +Vertical alignment of data within cells of this row. +The value of attribute valign of the tablerow element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table44.xml.kfail b/test/testcases/tests/level1/html/table44.xml.kfail deleted file mode 100644 index a893f76..0000000 --- a/test/testcases/tests/level1/html/table44.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table44 -Netscape - -Vertical alignment of data within cells of this row. -The value of attribute valign of the tablerow element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table45.xml b/test/testcases/tests/level1/html/table45.xml new file mode 100644 index 0000000..b1717db --- /dev/null +++ b/test/testcases/tests/level1/html/table45.xml @@ -0,0 +1,40 @@ + + + + + + +table45 +Netscape + +Alignment character for cells in a column. +The value of attribute ch of the tablerow element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table45.xml.kfail b/test/testcases/tests/level1/html/table45.xml.kfail deleted file mode 100644 index b1717db..0000000 --- a/test/testcases/tests/level1/html/table45.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table45 -Netscape - -Alignment character for cells in a column. -The value of attribute ch of the tablerow element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table46.xml b/test/testcases/tests/level1/html/table46.xml new file mode 100644 index 0000000..096b892 --- /dev/null +++ b/test/testcases/tests/level1/html/table46.xml @@ -0,0 +1,40 @@ + + + + + + +table46 +Netscape + +Offset of alignment character. +The value of attribute choff of the tablerow element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table46.xml.kfail b/test/testcases/tests/level1/html/table46.xml.kfail deleted file mode 100644 index 096b892..0000000 --- a/test/testcases/tests/level1/html/table46.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table46 -Netscape - -Offset of alignment character. -The value of attribute choff of the tablerow element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table47.xml b/test/testcases/tests/level1/html/table47.xml new file mode 100644 index 0000000..4d8340b --- /dev/null +++ b/test/testcases/tests/level1/html/table47.xml @@ -0,0 +1,40 @@ + + + + + + +table47 +Netscape + +The index of this row, relative to the entire table. +The value of attribute rowIndex of the table element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table47.xml.kfail b/test/testcases/tests/level1/html/table47.xml.kfail deleted file mode 100644 index 4d8340b..0000000 --- a/test/testcases/tests/level1/html/table47.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table47 -Netscape - -The index of this row, relative to the entire table. -The value of attribute rowIndex of the table element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table48.xml b/test/testcases/tests/level1/html/table48.xml new file mode 100644 index 0000000..1910883 --- /dev/null +++ b/test/testcases/tests/level1/html/table48.xml @@ -0,0 +1,40 @@ + + + + + + +HTMLTableColElement align +Netscape + +Horizontal alignment of cell data in column. +The value of attribute align of the tablecol element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table48.xml.kfail b/test/testcases/tests/level1/html/table48.xml.kfail deleted file mode 100644 index 1910883..0000000 --- a/test/testcases/tests/level1/html/table48.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -HTMLTableColElement align -Netscape - -Horizontal alignment of cell data in column. -The value of attribute align of the tablecol element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table49.xml b/test/testcases/tests/level1/html/table49.xml new file mode 100644 index 0000000..1db690b --- /dev/null +++ b/test/testcases/tests/level1/html/table49.xml @@ -0,0 +1,40 @@ + + + + + + +table49 +Netscape + +Alignment character for cells in a column. +The value of attribute ch of the tablecol element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table49.xml.kfail b/test/testcases/tests/level1/html/table49.xml.kfail deleted file mode 100644 index 1db690b..0000000 --- a/test/testcases/tests/level1/html/table49.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table49 -Netscape - -Alignment character for cells in a column. -The value of attribute ch of the tablecol element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table50.xml b/test/testcases/tests/level1/html/table50.xml new file mode 100644 index 0000000..8f60638 --- /dev/null +++ b/test/testcases/tests/level1/html/table50.xml @@ -0,0 +1,40 @@ + + + + + + +table50 +Netscape + +Offset of alignment character. +The value of attribute choff of the tablecol element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table50.xml.kfail b/test/testcases/tests/level1/html/table50.xml.kfail deleted file mode 100644 index 8f60638..0000000 --- a/test/testcases/tests/level1/html/table50.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table50 -Netscape - -Offset of alignment character. -The value of attribute choff of the tablecol element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table51.xml b/test/testcases/tests/level1/html/table51.xml new file mode 100644 index 0000000..c917f27 --- /dev/null +++ b/test/testcases/tests/level1/html/table51.xml @@ -0,0 +1,40 @@ + + + + + + +table51 +Netscape + +Indicates the number of columns in a group or affected by a grouping. +The value of attribute span of the tablecol element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table51.xml.kfail b/test/testcases/tests/level1/html/table51.xml.kfail deleted file mode 100644 index c917f27..0000000 --- a/test/testcases/tests/level1/html/table51.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table51 -Netscape - -Indicates the number of columns in a group or affected by a grouping. -The value of attribute span of the tablecol element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table52.xml b/test/testcases/tests/level1/html/table52.xml new file mode 100644 index 0000000..bf94572 --- /dev/null +++ b/test/testcases/tests/level1/html/table52.xml @@ -0,0 +1,40 @@ + + + + + + +table52 +Netscape + +Vertical alignment of cell data in column. +The value of attribute valign of the tablecol element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table52.xml.kfail b/test/testcases/tests/level1/html/table52.xml.kfail deleted file mode 100644 index bf94572..0000000 --- a/test/testcases/tests/level1/html/table52.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table52 -Netscape - -Vertical alignment of cell data in column. -The value of attribute valign of the tablecol element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/table53.xml b/test/testcases/tests/level1/html/table53.xml new file mode 100644 index 0000000..210c7e1 --- /dev/null +++ b/test/testcases/tests/level1/html/table53.xml @@ -0,0 +1,40 @@ + + + + + + +table53 +Netscape + +Default column width. +The value of attribute width of the tablecol element is read and checked against the expected value. + +Sivakiran Tummala +2002-02-15 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/table53.xml.kfail b/test/testcases/tests/level1/html/table53.xml.kfail deleted file mode 100644 index 210c7e1..0000000 --- a/test/testcases/tests/level1/html/table53.xml.kfail +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -table53 -Netscape - -Default column width. -The value of attribute width of the tablecol element is read and checked against the expected value. - -Sivakiran Tummala -2002-02-15 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableElement34.xml b/test/testcases/tests/level2/html/HTMLTableElement34.xml new file mode 100644 index 0000000..d774498 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableElement34.xml @@ -0,0 +1,48 @@ + + + + + + +HTMLTableElement34 +NIST + + The insertRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is greater than the number of rows. + + Retrieve the second TABLE element which has four rows. Try + to insert a new row using an index of five. This should throw + a INDEX_SIZE_ERR DOMException since there are only four rows. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableElement34.xml.kfail b/test/testcases/tests/level2/html/HTMLTableElement34.xml.kfail deleted file mode 100644 index d774498..0000000 --- a/test/testcases/tests/level2/html/HTMLTableElement34.xml.kfail +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableElement34 -NIST - - The insertRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is greater than the number of rows. - - Retrieve the second TABLE element which has four rows. Try - to insert a new row using an index of five. This should throw - a INDEX_SIZE_ERR DOMException since there are only four rows. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableElement35.xml b/test/testcases/tests/level2/html/HTMLTableElement35.xml new file mode 100644 index 0000000..6410e89 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableElement35.xml @@ -0,0 +1,48 @@ + + + + + + +HTMLTableElement35 +NIST + + The insertRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is negative. + + Retrieve the second TABLE element which has four rows. Try + to insert a new row using an index of negative five. This should throw + a INDEX_SIZE_ERR DOMException since the index is negative. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableElement35.xml.kfail b/test/testcases/tests/level2/html/HTMLTableElement35.xml.kfail deleted file mode 100644 index 6410e89..0000000 --- a/test/testcases/tests/level2/html/HTMLTableElement35.xml.kfail +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableElement35 -NIST - - The insertRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is negative. - - Retrieve the second TABLE element which has four rows. Try - to insert a new row using an index of negative five. This should throw - a INDEX_SIZE_ERR DOMException since the index is negative. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableElement36.xml b/test/testcases/tests/level2/html/HTMLTableElement36.xml new file mode 100644 index 0000000..7a514e5 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableElement36.xml @@ -0,0 +1,47 @@ + + + + + + +HTMLTableElement36 +NIST + + The deleteRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is greater than the number of rows. + + Retrieve the second TABLE element which has four rows. Try + to delete a new row using an index of five. This should throw + a INDEX_SIZE_ERR DOMException since there are only four rows. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableElement36.xml.kfail b/test/testcases/tests/level2/html/HTMLTableElement36.xml.kfail deleted file mode 100644 index 7a514e5..0000000 --- a/test/testcases/tests/level2/html/HTMLTableElement36.xml.kfail +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - -HTMLTableElement36 -NIST - - The deleteRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is greater than the number of rows. - - Retrieve the second TABLE element which has four rows. Try - to delete a new row using an index of five. This should throw - a INDEX_SIZE_ERR DOMException since there are only four rows. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableElement37.xml b/test/testcases/tests/level2/html/HTMLTableElement37.xml new file mode 100644 index 0000000..097deb1 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableElement37.xml @@ -0,0 +1,48 @@ + + + + + + +HTMLTableElement37 +NIST + + The deleteRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is equal the number of rows. + + Retrieve the second TABLE element which has four rows. Try + to delete a new row using an index of four. This should throw + a INDEX_SIZE_ERR DOMException since the index is equal to the + number of rows. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableElement37.xml.kfail b/test/testcases/tests/level2/html/HTMLTableElement37.xml.kfail deleted file mode 100644 index 097deb1..0000000 --- a/test/testcases/tests/level2/html/HTMLTableElement37.xml.kfail +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableElement37 -NIST - - The deleteRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is equal the number of rows. - - Retrieve the second TABLE element which has four rows. Try - to delete a new row using an index of four. This should throw - a INDEX_SIZE_ERR DOMException since the index is equal to the - number of rows. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableElement38.xml b/test/testcases/tests/level2/html/HTMLTableElement38.xml new file mode 100644 index 0000000..0f5bccd --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableElement38.xml @@ -0,0 +1,47 @@ + + + + + + +HTMLTableElement38 +NIST + + The deleteRow() method throws a INDEX_SIZE_ERR DOMException + if the specified index is negative. + + Retrieve the second TABLE element which has four rows. Try + to delete a new row using an index of negative five. This should throw + a INDEX_SIZE_ERR DOMException since the index is negative. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableElement38.xml.kfail b/test/testcases/tests/level2/html/HTMLTableElement38.xml.kfail deleted file mode 100644 index 0f5bccd..0000000 --- a/test/testcases/tests/level2/html/HTMLTableElement38.xml.kfail +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - -HTMLTableElement38 -NIST - - The deleteRow() method throws a INDEX_SIZE_ERR DOMException - if the specified index is negative. - - Retrieve the second TABLE element which has four rows. Try - to delete a new row using an index of negative five. This should throw - a INDEX_SIZE_ERR DOMException since the index is negative. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableElement39.xml.kfail b/test/testcases/tests/level2/html/HTMLTableElement39.xml.kfail index 6631584..0a6fcfd 100644 --- a/test/testcases/tests/level2/html/HTMLTableElement39.xml.kfail +++ b/test/testcases/tests/level2/html/HTMLTableElement39.xml.kfail @@ -54,9 +54,14 @@ See W3C License http://www.w3.org/Consortium/Legal/ for more details. + diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement15.xml b/test/testcases/tests/level2/html/HTMLTableRowElement15.xml new file mode 100644 index 0000000..9e89674 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableRowElement15.xml @@ -0,0 +1,48 @@ + + + + + + +HTMLTableRowElement15 +NIST + + The insertCell() method throws a INDEX_SIZE_ERR DOMException + if the specified index is greater than the number of cells. + + Retrieve the fourth TR element which has six cells. Try + to insert a cell using an index of seven. This should throw + a INDEX_SIZE_ERR DOMException since there are only six cells. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement15.xml.kfail b/test/testcases/tests/level2/html/HTMLTableRowElement15.xml.kfail deleted file mode 100644 index 9e89674..0000000 --- a/test/testcases/tests/level2/html/HTMLTableRowElement15.xml.kfail +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableRowElement15 -NIST - - The insertCell() method throws a INDEX_SIZE_ERR DOMException - if the specified index is greater than the number of cells. - - Retrieve the fourth TR element which has six cells. Try - to insert a cell using an index of seven. This should throw - a INDEX_SIZE_ERR DOMException since there are only six cells. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement16.xml b/test/testcases/tests/level2/html/HTMLTableRowElement16.xml new file mode 100644 index 0000000..8471a2b --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableRowElement16.xml @@ -0,0 +1,48 @@ + + + + + + +HTMLTableRowElement16 +NIST + + The insertCell() method throws a INDEX_SIZE_ERR DOMException + if the specified index is negative. + + Retrieve the fourth TR element which has six cells. Try + to insert a cell using an index of negative seven. This should throw + a INDEX_SIZE_ERR DOMException since the index is negative. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement16.xml.kfail b/test/testcases/tests/level2/html/HTMLTableRowElement16.xml.kfail deleted file mode 100644 index 8471a2b..0000000 --- a/test/testcases/tests/level2/html/HTMLTableRowElement16.xml.kfail +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -HTMLTableRowElement16 -NIST - - The insertCell() method throws a INDEX_SIZE_ERR DOMException - if the specified index is negative. - - Retrieve the fourth TR element which has six cells. Try - to insert a cell using an index of negative seven. This should throw - a INDEX_SIZE_ERR DOMException since the index is negative. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement17.xml b/test/testcases/tests/level2/html/HTMLTableRowElement17.xml new file mode 100644 index 0000000..b469470 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableRowElement17.xml @@ -0,0 +1,47 @@ + + + + + + +HTMLTableRowElement17 +NIST + + The deleteCell() method throws a INDEX_SIZE_ERR DOMException + if the specified index is greater than the number of cells. + + Retrieve the fourth TR element which has six cells. Try + to delete a cell using an index of seven. This should throw + a INDEX_SIZE_ERR DOMException since there are only six cells. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement17.xml.kfail b/test/testcases/tests/level2/html/HTMLTableRowElement17.xml.kfail deleted file mode 100644 index b469470..0000000 --- a/test/testcases/tests/level2/html/HTMLTableRowElement17.xml.kfail +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - -HTMLTableRowElement17 -NIST - - The deleteCell() method throws a INDEX_SIZE_ERR DOMException - if the specified index is greater than the number of cells. - - Retrieve the fourth TR element which has six cells. Try - to delete a cell using an index of seven. This should throw - a INDEX_SIZE_ERR DOMException since there are only six cells. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement18.xml b/test/testcases/tests/level2/html/HTMLTableRowElement18.xml new file mode 100644 index 0000000..f296086 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableRowElement18.xml @@ -0,0 +1,47 @@ + + + + + + +HTMLTableRowElement18 +NIST + + The deleteCell() method throws a INDEX_SIZE_ERR DOMException + if the specified index is equal to the number of cells. + + Retrieve the fourth TR element which has six cells. Try + to delete a cell using an index of six. This should throw + a INDEX_SIZE_ERR DOMException since there are only six cells. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement18.xml.kfail b/test/testcases/tests/level2/html/HTMLTableRowElement18.xml.kfail deleted file mode 100644 index f296086..0000000 --- a/test/testcases/tests/level2/html/HTMLTableRowElement18.xml.kfail +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - -HTMLTableRowElement18 -NIST - - The deleteCell() method throws a INDEX_SIZE_ERR DOMException - if the specified index is equal to the number of cells. - - Retrieve the fourth TR element which has six cells. Try - to delete a cell using an index of six. This should throw - a INDEX_SIZE_ERR DOMException since there are only six cells. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement19.xml b/test/testcases/tests/level2/html/HTMLTableRowElement19.xml new file mode 100644 index 0000000..9a111f3 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableRowElement19.xml @@ -0,0 +1,47 @@ + + + + + + +HTMLTableRowElement19 +NIST + + The deleteCell() method throws a INDEX_SIZE_ERR DOMException + if the specified index is negative. + + Retrieve the fourth TR element which has six cells. Try + to delete a cell using an index of negative six. This should throw + a INDEX_SIZE_ERR DOMException since the index is negative. + +Rick Rivello +2002-05-02 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement19.xml.kfail b/test/testcases/tests/level2/html/HTMLTableRowElement19.xml.kfail deleted file mode 100644 index 9a111f3..0000000 --- a/test/testcases/tests/level2/html/HTMLTableRowElement19.xml.kfail +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - -HTMLTableRowElement19 -NIST - - The deleteCell() method throws a INDEX_SIZE_ERR DOMException - if the specified index is negative. - - Retrieve the fourth TR element which has six cells. Try - to delete a cell using an index of negative six. This should throw - a INDEX_SIZE_ERR DOMException since the index is negative. - -Rick Rivello -2002-05-02 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail new file mode 100644 index 0000000..8fd17c2 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail @@ -0,0 +1,55 @@ + + + + + + +HTMLTableSectionElement30 +NIST + + The insertRow() method inserts a new empty table row. The new + row is inserted immediately before the current indexth row in this + section. If index is -1 or equal to the number of rows in this section, + the new row is appended. + + Retrieve the first THEAD element and invoke the insertRow() method + with an index of negative one. Since the index is negative one the + new row is appended. + After the new row is appended the number of rows in the THEAD + section is two. + +Rick Rivello +2002-11-07 + + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail b/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail new file mode 100644 index 0000000..55464e2 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail @@ -0,0 +1,53 @@ + + + + + + +HTMLTableSectionElement31 +NIST + + The deleteRow() method deletes a row from this section. The index + starts from 0 and is relative only to the rows contained inside + this section, not all the rows in the table. If the index is -1 + the last row will be deleted. + + Retrieve the second TBODY element and invoke the deleteRow() method + with an index of -1. The nuber of rows in the THEAD section before + the deletion of the row is two. After the row is deleted the number + of rows in the TBODY section is one. + +Rick Rivello +2002-11-07 + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level2/html/files/table.html b/test/testcases/tests/level2/html/files/table.html new file mode 100644 index 0000000..b8f151e --- /dev/null +++ b/test/testcases/tests/level2/html/files/table.html @@ -0,0 +1,78 @@ + + + + +NIST DOM HTML Test - TABLE + + + + + + + + + +
    IdNamePositionSalary
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Caption
    Employee IdEmployee NamePositionSalaryGenderAddress
    next page ...next page ...next page ...next page ...next page ...next page ...
    EMP0001Margaret MartinAccountant56,000Female1230 North Ave. Dallas, Texas 98551
    EMP0002Martha RaynoldsSecretary35,000Female1900 Dallas Road Dallas, Texas 98554
    + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + diff --git a/test/testcases/tests/level2/html/files/table.xhtml b/test/testcases/tests/level2/html/files/table.xhtml new file mode 100644 index 0000000..8300b90 --- /dev/null +++ b/test/testcases/tests/level2/html/files/table.xhtml @@ -0,0 +1,81 @@ + + + + +NIST DOM HTML Test - TABLE + + + + + + + + + +
    IdNamePositionSalary
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Caption
    Employee IdEmployee NamePositionSalaryGenderAddress
    next page ...next page ...next page ...next page ...next page ...next page ...
    EMP0001Margaret MartinAccountant56,000Female1230 North Ave. Dallas, Texas 98551
    EMP0002Martha RaynoldsSecretary35,000Female1900 Dallas Road Dallas, Texas 98554
    + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + + diff --git a/test/testcases/tests/level2/html/files/table.xml b/test/testcases/tests/level2/html/files/table.xml new file mode 100644 index 0000000..8300b90 --- /dev/null +++ b/test/testcases/tests/level2/html/files/table.xml @@ -0,0 +1,81 @@ + + + + +NIST DOM HTML Test - TABLE + + + + + + + + + +
    IdNamePositionSalary
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Caption
    Employee IdEmployee NamePositionSalaryGenderAddress
    next page ...next page ...next page ...next page ...next page ...next page ...
    EMP0001Margaret MartinAccountant56,000Female1230 North Ave. Dallas, Texas 98551
    EMP0002Martha RaynoldsSecretary35,000Female1900 Dallas Road Dallas, Texas 98554
    + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + + diff --git a/test/testcases/tests/level2/html/files/table1.html b/test/testcases/tests/level2/html/files/table1.html new file mode 100644 index 0000000..8f5d19b --- /dev/null +++ b/test/testcases/tests/level2/html/files/table1.html @@ -0,0 +1,12 @@ + + + + +NIST DOM HTML Test - TABLE + + + + +
    HTML can't abide empty table
    + + diff --git a/test/testcases/tests/level2/html/files/table1.xhtml b/test/testcases/tests/level2/html/files/table1.xhtml new file mode 100644 index 0000000..e174c63 --- /dev/null +++ b/test/testcases/tests/level2/html/files/table1.xhtml @@ -0,0 +1,15 @@ + + + + +NIST DOM HTML Test - TABLE + + + + +
    XHTML can't abide empty table
    + + + diff --git a/test/testcases/tests/level2/html/files/table1.xml b/test/testcases/tests/level2/html/files/table1.xml new file mode 100644 index 0000000..e174c63 --- /dev/null +++ b/test/testcases/tests/level2/html/files/table1.xml @@ -0,0 +1,15 @@ + + + + +NIST DOM HTML Test - TABLE + + + + +
    XHTML can't abide empty table
    + + + diff --git a/test/testcases/tests/level2/html/files/tablerow.html b/test/testcases/tests/level2/html/files/tablerow.html new file mode 100644 index 0000000..9e76a4c --- /dev/null +++ b/test/testcases/tests/level2/html/files/tablerow.html @@ -0,0 +1,59 @@ + + + + +NIST DOM HTML Test - TABLEROW + + + + + + + + + +
    IdNamePositionSalary
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Caption
    Employee IdEmployee NamePositionSalaryGenderAddress
    next page ...next page ...next page ...next page ...next page ...next page ...
    EMP0001Margaret MartinAccountant56,000Female1230 North Ave. Dallas, Texas 98551
    EMP0002Martha RaynoldsSecretary35,000Female1900 Dallas Road Dallas, Texas 98554
    + + + diff --git a/test/testcases/tests/level2/html/files/tablerow.xhtml b/test/testcases/tests/level2/html/files/tablerow.xhtml new file mode 100644 index 0000000..b901e3c --- /dev/null +++ b/test/testcases/tests/level2/html/files/tablerow.xhtml @@ -0,0 +1,62 @@ + + + + +NIST DOM HTML Test - TABLE + + + + + + + + + +
    IdNamePositionSalary
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Caption
    Employee IdEmployee NamePositionSalaryGenderAddress
    next page ...next page ...next page ...next page ...next page ...next page ...
    EMP0001Margaret MartinAccountant56,000Female1230 North Ave. Dallas, Texas 98551
    EMP0002Martha RaynoldsSecretary35,000Female1900 Dallas Road Dallas, Texas 98554
    + + + + diff --git a/test/testcases/tests/level2/html/files/tablerow.xml b/test/testcases/tests/level2/html/files/tablerow.xml new file mode 100644 index 0000000..b901e3c --- /dev/null +++ b/test/testcases/tests/level2/html/files/tablerow.xml @@ -0,0 +1,62 @@ + + + + +NIST DOM HTML Test - TABLE + + + + + + + + + +
    IdNamePositionSalary
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Caption
    Employee IdEmployee NamePositionSalaryGenderAddress
    next page ...next page ...next page ...next page ...next page ...next page ...
    EMP0001Margaret MartinAccountant56,000Female1230 North Ave. Dallas, Texas 98551
    EMP0002Martha RaynoldsSecretary35,000Female1900 Dallas Road Dallas, Texas 98554
    + + + + diff --git a/test/testutils/domtsasserts.c b/test/testutils/domtsasserts.c index 41cacf2..cbb8ed0 100644 --- a/test/testutils/domtsasserts.c +++ b/test/testutils/domtsasserts.c @@ -124,7 +124,10 @@ bool is_equals_list(list *expected, list *actual, bool ignoreCase) comparator rcmp = NULL; if (expected->type == INT) + { cmp = int_comparator; + rcmp = int_comparator; + } if (expected->type == STRING) { if (actual->type == DOM_STRING) { cmp = ignoreCase? str_icmp : str_cmp; @@ -139,6 +142,7 @@ bool is_equals_list(list *expected, list *actual, bool ignoreCase) } assert(cmp != NULL); + assert(rcmp != NULL); return list_contains_all(expected, actual, cmp) && list_contains_all(actual, expected, rcmp); } -- cgit v1.2.3 From 47847ac9ba3d26771e8007761e5da50e61daf734 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Tue, 3 Jun 2014 06:43:00 +0530 Subject: Style Element --- Makefile | 2 + include/dom/dom.h | 1 + include/dom/html/html_isindex_element.h | 5 ++ include/dom/html/html_style_element.h | 13 ++++ src/html/TODO | 2 +- src/html/html_document.c | 4 ++ src/html/html_document_strings.h | 1 + src/html/html_style_element.c | 81 ++++++++++++++++++++++ src/html/html_style_element.h | 2 + .../tests/level1/html/HTMLBaseElement01.xml | 42 +++++++++++ .../tests/level1/html/HTMLBaseElement02.xml | 42 +++++++++++ .../tests/level1/html/HTMLStyleElement01.xml | 42 +++++++++++ .../tests/level1/html/HTMLStyleElement01.xml.kfail | 42 ----------- .../tests/level1/html/HTMLStyleElement02.xml | 42 +++++++++++ .../tests/level1/html/HTMLStyleElement02.xml.kfail | 42 ----------- .../tests/level1/html/HTMLStyleElement03.xml | 42 +++++++++++ .../tests/level1/html/HTMLStyleElement03.xml.kfail | 42 ----------- 17 files changed, 320 insertions(+), 127 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLBaseElement01.xml create mode 100644 test/testcases/tests/level1/html/HTMLBaseElement02.xml create mode 100644 test/testcases/tests/level1/html/HTMLStyleElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLStyleElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLStyleElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLStyleElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLStyleElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLStyleElement03.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index adb8d59..9b47c36 100644 --- a/Makefile +++ b/Makefile @@ -129,6 +129,8 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablecol_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablesection_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_table_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablerow_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_base_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_style_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 2c312f4..68ae227 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -89,6 +89,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_isindex_element.h b/include/dom/html/html_isindex_element.h index 4961ccc..966b2d2 100644 --- a/include/dom/html/html_isindex_element.h +++ b/include/dom/html/html_isindex_element.h @@ -22,5 +22,10 @@ typedef struct dom_html_isindex_element dom_html_isindex_element; dom_exception dom_html_isindex_element_get_form(dom_html_isindex_element *ele, struct dom_html_form_element **form); +dom_exception dom_html_isindex_element_get_prompt(dom_html_isindex_element *ele, + dom_string **prompt); + +dom_exception dom_html_isindex_element_set_prompt(dom_html_isindex_element *ele, + dom_string *prompt); #endif diff --git a/include/dom/html/html_style_element.h b/include/dom/html/html_style_element.h index 868a043..5b3cd41 100644 --- a/include/dom/html/html_style_element.h +++ b/include/dom/html/html_style_element.h @@ -10,6 +10,7 @@ #include #include +#include typedef struct dom_html_style_element dom_html_style_element; @@ -19,5 +20,17 @@ dom_exception dom_html_style_element_get_disabled(dom_html_style_element *ele, dom_exception dom_html_style_element_set_disabled(dom_html_style_element *ele, bool disabled); +dom_exception dom_html_style_element_get_media(dom_html_style_element *ele, + dom_string **media); + +dom_exception dom_html_style_element_set_media(dom_html_style_element *ele, + dom_string *media); + +dom_exception dom_html_style_element_get_type(dom_html_style_element *ele, + dom_string **type); + +dom_exception dom_html_style_element_set_type(dom_html_style_element *ele, + dom_string *type); + #endif diff --git a/src/html/TODO b/src/html/TODO index 97eab8e..d817e68 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -9,7 +9,7 @@ HTMLTitleElement html_title_element DONE HTMLMetaElement html_meta_element DONE HTMLBaseElement html_base_element DONE HTMLIsIndexElement html_isindex_element MISSING -HTMLStyleElement html_style_element MISSING +HTMLStyleElement html_style_element DONE HTMLBodyElement html_body_element MISSING HTMLFormElement html_form_element DONE HTMLSelectElement html_select_element MISSING diff --git a/src/html/html_document.c b/src/html/html_document.c index 25abca3..0e39f77 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -56,6 +56,7 @@ #include "html/html_tablesection_element.h" #include "html/html_table_element.h" #include "html/html_tablerow_element.h" +#include "html/html_style_element.h" #include "core/attr.h" #include "core/string.h" @@ -361,6 +362,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_TD])) { exc = _dom_html_table_row_element_create(html, namespace, prefix, (dom_html_table_row_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_STYLE])) { + exc = _dom_html_style_element_create(html, + (dom_html_style_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index 8ded892..5d5ddaf 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -105,6 +105,7 @@ HTML_DOCUMENT_STRINGS_ACTION1(scope) HTML_DOCUMENT_STRINGS_ACTION1(frame) HTML_DOCUMENT_STRINGS_ACTION1(rules) HTML_DOCUMENT_STRINGS_ACTION1(summary) +HTML_DOCUMENT_STRINGS_ACTION1(prompt) HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex) HTML_DOCUMENT_STRINGS_ACTION(html_for,for) HTML_DOCUMENT_STRINGS_ACTION(date_time,datetime) diff --git a/src/html/html_style_element.c b/src/html/html_style_element.c index 98eb79b..3b295f1 100644 --- a/src/html/html_style_element.c +++ b/src/html/html_style_element.c @@ -8,6 +8,7 @@ #include #include "html/html_style_element.h" +#include "html/html_document.h" #include "core/node.h" #include "utils/utils.h" @@ -54,13 +55,20 @@ dom_exception _dom_html_style_element_initialise(struct dom_html_document *doc, struct dom_html_style_element *ele) { dom_string *name = NULL; + dom_string *media_default = NULL; dom_exception err; err = dom_string_create((const uint8_t *) "STYLE", SLEN("STYLE"), &name); if (err != DOM_NO_ERR) return err; + + err = dom_string_create((const uint8_t *) "screen", SLEN("screen"), + &media_default); + if (err != DOM_NO_ERR) + return err; + ele->media = media_default; err = _dom_html_element_initialise(doc, &ele->base, name, NULL, NULL); dom_string_unref(name); @@ -119,9 +127,49 @@ dom_exception _dom_html_style_element_copy(dom_node_internal *old, return _dom_html_element_copy(old, copy); } + /*-----------------------------------------------------------------------*/ /* Public APIs */ +#define SIMPLE_GET(attr) \ + dom_exception dom_html_style_element_get_##attr( \ + dom_html_style_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_style_element_set_##attr( \ + dom_html_style_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) +SIMPLE_GET_SET(type); +SIMPLE_SET(media); + /** * Get the disabled property * @@ -150,3 +198,36 @@ dom_exception dom_html_style_element_set_disabled(dom_html_style_element *ele, SLEN("disabled"), disabled); } +/** + * Get the media property + * + * \param ele The dom_html_style_element object + * \param media The returned status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_style_element_get_media(dom_html_style_element *ele, + dom_string **media) +{ + dom_html_document *doc; + bool has_value = false; + dom_exception err; + + doc = (dom_html_document *) ((dom_node_internal *) ele)->owner; + + err = dom_element_has_attribute(ele, + doc->memoised[hds_media], &has_value); + if(err !=DOM_NO_ERR) + return err; + + if(has_value) { + return dom_element_get_attribute(ele, + doc->memoised[hds_media], media); + } + + *media = ele->media; + if (*media != NULL) + dom_string_ref(*media); + return DOM_NO_ERR; + +} + diff --git a/src/html/html_style_element.h b/src/html/html_style_element.h index e7a47e5..285da94 100644 --- a/src/html/html_style_element.h +++ b/src/html/html_style_element.h @@ -15,6 +15,8 @@ struct dom_html_style_element { struct dom_html_element base; /**< The base class */ + dom_string *media; + /**< The default string value for the media attribute*/ }; /* Create a dom_html_style_element object */ diff --git a/test/testcases/tests/level1/html/HTMLBaseElement01.xml b/test/testcases/tests/level1/html/HTMLBaseElement01.xml new file mode 100644 index 0000000..fa6eacc --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLBaseElement01.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLBaseElement01 +NIST + + The href attribute specifies the base URI. + + Retrieve the href attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLBaseElement02.xml b/test/testcases/tests/level1/html/HTMLBaseElement02.xml new file mode 100644 index 0000000..d2a20a5 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLBaseElement02.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLBaseElement02 +NIST + + The target attribute specifies the default target frame. + + Retrieve the target attribute and examine its value. + +Rick Rivello +2002-07-18 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLStyleElement01.xml b/test/testcases/tests/level1/html/HTMLStyleElement01.xml new file mode 100644 index 0000000..60c2e57 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLStyleElement01.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLStyleElement01 +NIST + + The disabled attribute enables/disables the stylesheet. + + Retrieve the disabled attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLStyleElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLStyleElement01.xml.kfail deleted file mode 100644 index 60c2e57..0000000 --- a/test/testcases/tests/level1/html/HTMLStyleElement01.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLStyleElement01 -NIST - - The disabled attribute enables/disables the stylesheet. - - Retrieve the disabled attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLStyleElement02.xml b/test/testcases/tests/level1/html/HTMLStyleElement02.xml new file mode 100644 index 0000000..727df54 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLStyleElement02.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLStyleElement02 +NIST + + The media attribute identifies the intended medium of the style info. + + Retrieve the media attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLStyleElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLStyleElement02.xml.kfail deleted file mode 100644 index 727df54..0000000 --- a/test/testcases/tests/level1/html/HTMLStyleElement02.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLStyleElement02 -NIST - - The media attribute identifies the intended medium of the style info. - - Retrieve the media attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLStyleElement03.xml b/test/testcases/tests/level1/html/HTMLStyleElement03.xml new file mode 100644 index 0000000..54394e3 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLStyleElement03.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLStyleElement03 +NIST + + The type attribute specifies the style sheet language(Internet media type). + + Retrieve the type attribute and examine its value. + +Mary Brady +2002-02-22 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLStyleElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLStyleElement03.xml.kfail deleted file mode 100644 index 54394e3..0000000 --- a/test/testcases/tests/level1/html/HTMLStyleElement03.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLStyleElement03 -NIST - - The type attribute specifies the style sheet language(Internet media type). - - Retrieve the type attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - -- cgit v1.2.3 From 26610a3b631ecf53356c95fa72ba822b0cb12d86 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Thu, 5 Jun 2014 21:06:09 +0530 Subject: FrameSet Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_frameset_element.h | 22 ++ src/html/Makefile | 4 +- src/html/html_document.c | 4 + src/html/html_document_strings.h | 2 + src/html/html_frameset_element.c | 229 +++++++++++++++++++++ src/html/html_frameset_element.h | 46 +++++ .../tests/level1/html/HTMLFrameSetElement01.xml | 44 ++++ .../level1/html/HTMLFrameSetElement01.xml.kfail | 44 ---- .../tests/level1/html/HTMLFrameSetElement02.xml | 44 ++++ .../level1/html/HTMLFrameSetElement02.xml.kfail | 44 ---- 12 files changed, 395 insertions(+), 90 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLFrameSetElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLFrameSetElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLFrameSetElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLFrameSetElement02.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 9b47c36..2de8d0c 100644 --- a/Makefile +++ b/Makefile @@ -131,6 +131,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_table_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablerow_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_base_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_style_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_frameset_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 68ae227..376ef14 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -90,6 +90,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_frameset_element.h b/include/dom/html/html_frameset_element.h index 2e182d5..c0de3b4 100644 --- a/include/dom/html/html_frameset_element.h +++ b/include/dom/html/html_frameset_element.h @@ -3,5 +3,27 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_frame_set_element_h_ +#define dom_html_frame_set_element_h_ +#include +#include +#include + +typedef struct dom_html_frame_set_element dom_html_frame_set_element; + +dom_exception dom_html_frame_set_element_get_rows( + dom_html_frame_set_element *element, dom_string **rows); + +dom_exception dom_html_frame_set_element_set_rows( + dom_html_frame_set_element *element, dom_string *rows); + +dom_exception dom_html_frame_set_element_set_cols( + dom_html_frame_set_element *ele, dom_string *cols); + +dom_exception dom_html_frame_set_element_get_cols( + dom_html_frame_set_element *ele, dom_string **cols); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index 2cb85d9..a9532cd 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -17,10 +17,10 @@ DIR_SOURCES := \ html_param_element.c html_applet_element.c html_area_element.c \ html_map_element.c html_script_element.c html_tablecaption_element.c \ html_tablecell_element.c html_tablecol_element.c html_tablesection_element.c \ - html_table_element.c html_tablerow_element.c + html_table_element.c html_tablerow_element.c html_frameset_element.c UNINMPLEMENTED_SOURCES := \ - html_frameset_element.c html_isindex_element.c \ + html_isindex_element.c \ html_frame_element.c html_iframe_element.c include $(NSBUILD)/Makefile.subdir diff --git a/src/html/html_document.c b/src/html/html_document.c index 0e39f77..a4ba62b 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -57,6 +57,7 @@ #include "html/html_table_element.h" #include "html/html_tablerow_element.h" #include "html/html_style_element.h" +#include "html/html_frameset_element.h" #include "core/attr.h" #include "core/string.h" @@ -365,6 +366,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_STYLE])) { exc = _dom_html_style_element_create(html, (dom_html_style_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_FRAMESET])) { + exc = _dom_html_frame_set_element_create(html, namespace, prefix, + (dom_html_frame_set_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index 5d5ddaf..10ec80d 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -106,6 +106,8 @@ HTML_DOCUMENT_STRINGS_ACTION1(frame) HTML_DOCUMENT_STRINGS_ACTION1(rules) HTML_DOCUMENT_STRINGS_ACTION1(summary) HTML_DOCUMENT_STRINGS_ACTION1(prompt) +HTML_DOCUMENT_STRINGS_ACTION1(rows) +HTML_DOCUMENT_STRINGS_ACTION1(cols) HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex) HTML_DOCUMENT_STRINGS_ACTION(html_for,for) HTML_DOCUMENT_STRINGS_ACTION(date_time,datetime) diff --git a/src/html/html_frameset_element.c b/src/html/html_frameset_element.c index 2e182d5..b096156 100644 --- a/src/html/html_frameset_element.c +++ b/src/html/html_frameset_element.c @@ -3,5 +3,234 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include +#include + +#include "html/html_document.h" +#include "html/html_frameset_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_FRAME_SET_ELEMENT + }, + DOM_HTML_FRAME_SET_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_frame_set_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_frame_set_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_frame_set_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_frame_set_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_frame_set_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_frame_set_element object + * + * \param doc The document object + * \param ele The dom_html_frame_set_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_frame_set_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_frame_set_element *ele) +{ + dom_string *cols_rows_default = NULL; + dom_exception err; + err = dom_string_create((const uint8_t *) "100%", SLEN("100%"), &cols_rows_default); + if (err != DOM_NO_ERR) + return err; + + err = _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_FRAMESET], + namespace, prefix); + ele->cols_rows_default = cols_rows_default; + return err; +} + +/** + * Finalise a dom_html_frame_set_element object + * + * \param ele The dom_html_frame_set_element object + */ +void _dom_html_frame_set_element_finalise(struct dom_html_frame_set_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_frame_set_element object + * + * \param ele The dom_html_frame_set_element object + */ +void _dom_html_frame_set_element_destroy(struct dom_html_frame_set_element *ele) +{ + _dom_html_frame_set_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_frame_set_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_frame_set_element_destroy(dom_node_internal *node) +{ + _dom_html_frame_set_element_destroy((struct dom_html_frame_set_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_frame_set_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_frame_set_element_get_##attr( \ + dom_html_frame_set_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_frame_set_element_set_##attr( \ + dom_html_frame_set_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_SET(rows); +SIMPLE_SET(cols); + +/** + * Get the rows property + * + * \param ele The dom_html_frame_set_element object + * \param rows The returned status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_frame_set_element_get_rows( + dom_html_frame_set_element *ele, + dom_string **rows) +{ + dom_html_document *doc; + bool has_value = false; + dom_exception err; + + doc = (dom_html_document *) ((dom_node_internal *) ele)->owner; + + err = dom_element_has_attribute(ele, + doc->memoised[hds_rows], &has_value); + if(err !=DOM_NO_ERR) + return err; + + if(has_value) { + return dom_element_get_attribute(ele, + doc->memoised[hds_rows], rows); + } + + *rows = ele->cols_rows_default; + if (*rows != NULL) + dom_string_ref(*rows); + + return DOM_NO_ERR; +} + +/** + * Get the cols property + * + * \param ele The dom_html_frame_set_element object + * \param cols The returned status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_frame_set_element_get_cols( + dom_html_frame_set_element *ele, + dom_string **cols) +{ + dom_html_document *doc; + bool has_value = false; + dom_exception err; + + doc = (dom_html_document *) ((dom_node_internal *) ele)->owner; + + err = dom_element_has_attribute(ele, + doc->memoised[hds_cols], &has_value); + if(err !=DOM_NO_ERR) + return err; + + if(has_value) { + return dom_element_get_attribute(ele, + doc->memoised[hds_cols], cols); + } + + *cols = ele->cols_rows_default; + if (*cols != NULL) + dom_string_ref(*cols); + return DOM_NO_ERR; +} diff --git a/src/html/html_frameset_element.h b/src/html/html_frameset_element.h index 2e182d5..fd1c255 100644 --- a/src/html/html_frameset_element.h +++ b/src/html/html_frameset_element.h @@ -3,5 +3,51 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_frame_set_element_h_ +#define dom_internal_html_frame_set_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_frame_set_element { + struct dom_html_element base; + /**< The base class */ + dom_string *cols_rows_default; +}; + +/* Create a dom_html_frame_set_element object */ +dom_exception _dom_html_frame_set_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_frame_set_element **ele); + +/* Initialise a dom_html_frame_set_element object */ +dom_exception _dom_html_frame_set_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_frame_set_element *ele); + +/* Finalise a dom_html_frame_set_element object */ +void _dom_html_frame_set_element_finalise(struct dom_html_frame_set_element *ele); + +/* Destroy a dom_html_frame_set_element object */ +void _dom_html_frame_set_element_destroy(struct dom_html_frame_set_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_frame_set_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_frame_set_element_destroy(dom_node_internal *node); +dom_exception _dom_html_frame_set_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_FRAME_SET_ELEMENT_PROTECT_VTABLE \ + _dom_html_frame_set_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_FRAME_SET_ELEMENT \ + _dom_virtual_html_frame_set_element_destroy, \ + _dom_html_frame_set_element_copy + +#endif diff --git a/test/testcases/tests/level1/html/HTMLFrameSetElement01.xml b/test/testcases/tests/level1/html/HTMLFrameSetElement01.xml new file mode 100644 index 0000000..18e5ff5 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFrameSetElement01.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLFrameSetElement01 +NIST + + The cols attribute specifies the number of columns of frames in the + frameset. + + Retrieve the cols attribute of the first FRAMESET element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLFrameSetElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLFrameSetElement01.xml.kfail deleted file mode 100644 index 18e5ff5..0000000 --- a/test/testcases/tests/level1/html/HTMLFrameSetElement01.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLFrameSetElement01 -NIST - - The cols attribute specifies the number of columns of frames in the - frameset. - - Retrieve the cols attribute of the first FRAMESET element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLFrameSetElement02.xml b/test/testcases/tests/level1/html/HTMLFrameSetElement02.xml new file mode 100644 index 0000000..e598cef --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFrameSetElement02.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLFrameSetElement02 +NIST + + The rows attribute specifies the number of rows of frames in the + frameset. + + Retrieve the rows attribute of the second FRAMESET element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLFrameSetElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLFrameSetElement02.xml.kfail deleted file mode 100644 index e598cef..0000000 --- a/test/testcases/tests/level1/html/HTMLFrameSetElement02.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLFrameSetElement02 -NIST - - The rows attribute specifies the number of rows of frames in the - frameset. - - Retrieve the rows attribute of the second FRAMESET element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - -- cgit v1.2.3 From eb735d3cd022b9fc8284b2e86570a8db5854d56a Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Fri, 6 Jun 2014 01:43:58 +0530 Subject: Frame Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_frame_element.h | 63 +++++ src/html/Makefile | 5 +- src/html/html_document.c | 4 + src/html/html_document_strings.h | 4 + src/html/html_frame_element.c | 280 +++++++++++++++++++++ src/html/html_frame_element.h | 47 ++++ test/DOMTSHandler.pm | 1 + test/dom1-interfaces.xml | 42 ++-- .../tests/level1/html/HTMLFrameElement01.xml | 45 ++++ .../tests/level1/html/HTMLFrameElement01.xml.kfail | 45 ---- .../tests/level1/html/HTMLFrameElement02.xml | 44 ++++ .../tests/level1/html/HTMLFrameElement02.xml.kfail | 44 ---- .../tests/level1/html/HTMLFrameElement03.xml | 43 ++++ .../tests/level1/html/HTMLFrameElement03.xml.kfail | 43 ---- .../tests/level1/html/HTMLFrameElement04.xml | 43 ++++ .../tests/level1/html/HTMLFrameElement04.xml.kfail | 43 ---- .../tests/level1/html/HTMLFrameElement05.xml | 44 ++++ .../tests/level1/html/HTMLFrameElement05.xml.kfail | 44 ---- .../tests/level1/html/HTMLFrameElement06.xml | 44 ++++ .../tests/level1/html/HTMLFrameElement06.xml.kfail | 44 ---- .../tests/level1/html/HTMLFrameElement07.xml | 44 ++++ .../tests/level1/html/HTMLFrameElement07.xml.kfail | 44 ---- .../tests/level1/html/HTMLFrameElement08.xml | 43 ++++ .../tests/level1/html/HTMLFrameElement08.xml.kfail | 43 ---- .../tests/level2/html/HTMLFrameElement09.xml | 42 ++++ .../tests/level2/html/HTMLFrameElement09.xml.kfail | 42 ---- 28 files changed, 820 insertions(+), 412 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLFrameElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLFrameElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLFrameElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLFrameElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLFrameElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLFrameElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLFrameElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLFrameElement04.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLFrameElement05.xml delete mode 100644 test/testcases/tests/level1/html/HTMLFrameElement05.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLFrameElement06.xml delete mode 100644 test/testcases/tests/level1/html/HTMLFrameElement06.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLFrameElement07.xml delete mode 100644 test/testcases/tests/level1/html/HTMLFrameElement07.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLFrameElement08.xml delete mode 100644 test/testcases/tests/level1/html/HTMLFrameElement08.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLFrameElement09.xml delete mode 100644 test/testcases/tests/level2/html/HTMLFrameElement09.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 2de8d0c..4dc8af6 100644 --- a/Makefile +++ b/Makefile @@ -132,6 +132,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_tablerow_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_base_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_style_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_frameset_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_frame_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 376ef14..d8245ac 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -91,6 +91,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_frame_element.h b/include/dom/html/html_frame_element.h index 2e182d5..1202f5c 100644 --- a/include/dom/html/html_frame_element.h +++ b/include/dom/html/html_frame_element.h @@ -3,5 +3,68 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_html_frame_element_h_ +#define dom_html_frame_element_h_ +#include +#include +#include + +#include +typedef struct dom_html_frame_element dom_html_frame_element; + +dom_exception dom_html_frame_element_get_frame_border( + dom_html_frame_element *element, dom_string **frame_border); + +dom_exception dom_html_frame_element_set_frame_border( + dom_html_frame_element *element, dom_string *frame_border); + +dom_exception dom_html_frame_element_set_long_desc( + dom_html_frame_element *ele, dom_string *long_desc); + +dom_exception dom_html_frame_element_get_long_desc( + dom_html_frame_element *ele, dom_string **long_desc); + +dom_exception dom_html_frame_element_get_margin_height( + dom_html_frame_element *element, dom_string **margin_height); + +dom_exception dom_html_frame_element_set_margin_height( + dom_html_frame_element *element, dom_string *margin_height); + +dom_exception dom_html_frame_element_get_margin_width( + dom_html_frame_element *element, dom_string **margin_width); + +dom_exception dom_html_frame_element_set_margin_width( + dom_html_frame_element *element, dom_string *margin_width); + +dom_exception dom_html_frame_element_get_name( + dom_html_frame_element *element, dom_string **name); + +dom_exception dom_html_frame_element_set_name( + dom_html_frame_element *element, dom_string *name); + +dom_exception dom_html_frame_element_get_scrolling( + dom_html_frame_element *element, dom_string **scrolling); + +dom_exception dom_html_frame_element_set_scrolling( + dom_html_frame_element *element, dom_string *scrolling); + +dom_exception dom_html_frame_element_get_src( + dom_html_frame_element *element, dom_string **src); + +dom_exception dom_html_frame_element_set_src( + dom_html_frame_element *element, dom_string *src); + +dom_exception dom_html_frame_element_set_no_resize(dom_html_frame_element *ele, + bool no_resize); + +dom_exception dom_html_frame_element_get_no_resize(dom_html_frame_element *ele, + bool *no_resize); + +dom_exception dom_html_frame_element_get_content_document( + dom_html_frame_element *ele, + dom_document **content_document); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index a9532cd..fa707d4 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -17,10 +17,11 @@ DIR_SOURCES := \ html_param_element.c html_applet_element.c html_area_element.c \ html_map_element.c html_script_element.c html_tablecaption_element.c \ html_tablecell_element.c html_tablecol_element.c html_tablesection_element.c \ - html_table_element.c html_tablerow_element.c html_frameset_element.c + html_table_element.c html_tablerow_element.c html_frameset_element.c \ + html_frame_element.c UNINMPLEMENTED_SOURCES := \ html_isindex_element.c \ - html_frame_element.c html_iframe_element.c + html_iframe_element.c include $(NSBUILD)/Makefile.subdir diff --git a/src/html/html_document.c b/src/html/html_document.c index a4ba62b..cf8d1aa 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -58,6 +58,7 @@ #include "html/html_tablerow_element.h" #include "html/html_style_element.h" #include "html/html_frameset_element.h" +#include "html/html_frame_element.h" #include "core/attr.h" #include "core/string.h" @@ -369,6 +370,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_FRAMESET])) { exc = _dom_html_frame_set_element_create(html, namespace, prefix, (dom_html_frame_set_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_FRAME])) { + exc = _dom_html_frame_element_create(html, namespace, prefix, + (dom_html_frame_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h index 10ec80d..35fca73 100644 --- a/src/html/html_document_strings.h +++ b/src/html/html_document_strings.h @@ -108,6 +108,7 @@ HTML_DOCUMENT_STRINGS_ACTION1(summary) HTML_DOCUMENT_STRINGS_ACTION1(prompt) HTML_DOCUMENT_STRINGS_ACTION1(rows) HTML_DOCUMENT_STRINGS_ACTION1(cols) +HTML_DOCUMENT_STRINGS_ACTION1(scrolling) HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex) HTML_DOCUMENT_STRINGS_ACTION(html_for,for) HTML_DOCUMENT_STRINGS_ACTION(date_time,datetime) @@ -120,6 +121,9 @@ HTML_DOCUMENT_STRINGS_ACTION(ch,char) HTML_DOCUMENT_STRINGS_ACTION(ch_off,charoff) HTML_DOCUMENT_STRINGS_ACTION(cell_padding,cellpadding) HTML_DOCUMENT_STRINGS_ACTION(cell_spacing,cellspacing) +HTML_DOCUMENT_STRINGS_ACTION(frame_border,frameborder) +HTML_DOCUMENT_STRINGS_ACTION(margin_height,marginheight) +HTML_DOCUMENT_STRINGS_ACTION(margin_width,marginwidth) /* HTML_DOCUMENT_STRINGS_ACTION1(type) */ HTML_DOCUMENT_STRINGS_ACTION(use_map,usemap) /* HTML_DOCUMENT_STRINGS_ACTION1(value) */ diff --git a/src/html/html_frame_element.c b/src/html/html_frame_element.c index 2e182d5..16534b5 100644 --- a/src/html/html_frame_element.c +++ b/src/html/html_frame_element.c @@ -3,5 +3,285 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#include +#include + +#include + +#include "html/html_document.h" +#include "html/html_frame_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_FRAME_ELEMENT + }, + DOM_HTML_FRAME_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_frame_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_frame_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_frame_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_frame_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_frame_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_frame_element object + * + * \param doc The document object + * \param ele The dom_html_frame_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_frame_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_frame_element *ele) +{ + dom_string *scrolling_default = NULL; + dom_exception err; + err = dom_string_create((const uint8_t *) "auto", SLEN("auto"), &scrolling_default); + if (err != DOM_NO_ERR) + return err; + + + dom_string *frame_border_default = NULL; + err = dom_string_create((const uint8_t *) "1", SLEN("1"), &frame_border_default); + if (err != DOM_NO_ERR) + return err; + + err = _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_FRAME], + namespace, prefix); + + ele->scrolling_default = scrolling_default; + ele->frame_border_default = frame_border_default; + + return err; +} + +/** + * Finalise a dom_html_frame_element object + * + * \param ele The dom_html_frame_element object + */ +void _dom_html_frame_element_finalise(struct dom_html_frame_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_frame_element object + * + * \param ele The dom_html_frame_element object + */ +void _dom_html_frame_element_destroy(struct dom_html_frame_element *ele) +{ + _dom_html_frame_element_finalise(ele); + free(ele); +} + +/** + * Get the no_resize property + * + * \param ele The dom_html_frame_element object + * \param no_resize The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_frame_element_get_no_resize(dom_html_frame_element *ele, + bool *no_resize) +{ + return dom_html_element_get_bool_property(&ele->base, "noresize", + SLEN("noresize"), no_resize); +} + +/** + * Set the no_resize property + * + * \param ele The dom_html_frame_element object + * \param no_resize The status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_frame_element_set_no_resize(dom_html_frame_element *ele, + bool no_resize) +{ + return dom_html_element_set_bool_property(&ele->base, "noresize", + SLEN("noresize"), no_resize); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_frame_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_frame_element_destroy(dom_node_internal *node) +{ + _dom_html_frame_element_destroy((struct dom_html_frame_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_frame_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_frame_element_get_##attr( \ + dom_html_frame_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_frame_element_set_##attr( \ + dom_html_frame_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(long_desc); +SIMPLE_GET_SET(name); +SIMPLE_GET_SET(src); +SIMPLE_SET(frame_border); +SIMPLE_GET_SET(margin_width); +SIMPLE_GET_SET(margin_height); +SIMPLE_SET(scrolling); + + +/** + * Get the frame_border property + * + * \param ele The dom_html_frame_element object + * \param frame_border The returned status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_frame_element_get_frame_border( + dom_html_frame_element *ele, + dom_string **frame_border) +{ + dom_html_document *doc; + bool has_value = false; + dom_exception err; + + doc = (dom_html_document *) ((dom_node_internal *) ele)->owner; + + err = dom_element_has_attribute(ele, + doc->memoised[hds_frame_border], &has_value); + if(err !=DOM_NO_ERR) + return err; + + if(has_value) { + return dom_element_get_attribute(ele, + doc->memoised[hds_frame_border], frame_border); + } + + *frame_border = ele->frame_border_default; + if (*frame_border != NULL) + dom_string_ref(*frame_border); + return DOM_NO_ERR; +} + +/** + * Get the frame_border property + * + * \param ele The dom_html_frame_element object + * \param scrolling The returned status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_frame_element_get_scrolling( + dom_html_frame_element *ele, + dom_string **scrolling) +{ + dom_html_document *doc; + bool has_value = false; + dom_exception err; + + doc = (dom_html_document *) ((dom_node_internal *) ele)->owner; + + err = dom_element_has_attribute(ele, + doc->memoised[hds_scrolling], &has_value); + if(err !=DOM_NO_ERR) + return err; + + if(has_value) { + return dom_element_get_attribute(ele, + doc->memoised[hds_scrolling], scrolling); + } + + *scrolling = ele->scrolling_default; + if (*scrolling != NULL) + dom_string_ref(*scrolling); + return DOM_NO_ERR; +} + +dom_exception dom_html_frame_element_get_content_document( + dom_html_frame_element *ele, + dom_document **content_document) +{ + *content_document = dom_node_get_owner(ele); + return DOM_NO_ERR; +} diff --git a/src/html/html_frame_element.h b/src/html/html_frame_element.h index 2e182d5..77a137b 100644 --- a/src/html/html_frame_element.h +++ b/src/html/html_frame_element.h @@ -3,5 +3,52 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang + * Copyright 2014 Rupinder Singh Khokhar */ +#ifndef dom_internal_html_frame_element_h_ +#define dom_internal_html_frame_element_h_ + +#include +#include "html/html_element.h" + + +struct dom_html_frame_element { + struct dom_html_element base; + /**< The base class */ + dom_string *scrolling_default; + dom_string *frame_border_default; +}; + +/* Create a dom_html_frame_element object */ +dom_exception _dom_html_frame_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_frame_element **ele); + +/* Initialise a dom_html_frame_element object */ +dom_exception _dom_html_frame_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_frame_element *ele); + +/* Finalise a dom_html_frame_element object */ +void _dom_html_frame_element_finalise(struct dom_html_frame_element *ele); + +/* Destroy a dom_html_frame_element object */ +void _dom_html_frame_element_destroy(struct dom_html_frame_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_frame_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_frame_element_destroy(dom_node_internal *node); +dom_exception _dom_html_frame_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_FRAME_ELEMENT_PROTECT_VTABLE \ + _dom_html_frame_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_FRAME_ELEMENT \ + _dom_virtual_html_frame_element_destroy, \ + _dom_html_frame_element_copy + +#endif diff --git a/test/DOMTSHandler.pm b/test/DOMTSHandler.pm index 47dcf75..ee9298c 100644 --- a/test/DOMTSHandler.pm +++ b/test/DOMTSHandler.pm @@ -82,6 +82,7 @@ our %unref_prefix = ( NamedNodeMap => "dom_namednodemap", NodeList => "dom_nodelist", HTMLCollection => "dom_html_collection", + HTMLDocument => "dom_html_document", ); our %special_method = ( diff --git a/test/dom1-interfaces.xml b/test/dom1-interfaces.xml index 0c2488e..25d29d8 100644 --- a/test/dom1-interfaces.xml +++ b/test/dom1-interfaces.xml @@ -160,6 +160,25 @@ See W3C License http://www.w3.org/Consortium/Legal/ for more details. + + +

    Returns the Element whoseidis given by elementId. If no such element exists, returnsnull. Behavior is not defined if more than one element has thisid.

    +
    + + + +

    The uniqueidvalue for an element.

    +
    + +
    + + +

    The matching element.

    +
    +
    + +
    +

    Creates an emptyDocumentFragmentobject.

    @@ -1564,24 +1583,6 @@ See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    - - -

    Returns the Element whoseidis given by elementId. If no such element exists, returnsnull. Behavior is not defined if more than one element has thisid.

    -
    - - - -

    The uniqueidvalue for an element.

    -
    - -
    - - -

    The matching element.

    -
    -
    - -

    Returns the (possibly empty) collection of elements whosenamevalue is given byelementName.

    @@ -3606,6 +3607,11 @@ See W3C License http://www.w3.org/Consortium/Legal/ for more details.

    A URI designating the initial frame contents. See thesrc attribute definitionin HTML 4.0.

    + + +

    + + diff --git a/test/testcases/tests/level1/html/HTMLFrameElement01.xml b/test/testcases/tests/level1/html/HTMLFrameElement01.xml new file mode 100644 index 0000000..e74ef5e --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFrameElement01.xml @@ -0,0 +1,45 @@ + + + + + + + +HTMLFrameElement01 +NIST + + The frameBorder attribute specifies the request for frame borders. + (frameBorder=1 A border is drawn) + (FrameBorder=0 A border is not drawn) + + Retrieve the frameBorder attribute of the first FRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLFrameElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLFrameElement01.xml.kfail deleted file mode 100644 index e74ef5e..0000000 --- a/test/testcases/tests/level1/html/HTMLFrameElement01.xml.kfail +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - -HTMLFrameElement01 -NIST - - The frameBorder attribute specifies the request for frame borders. - (frameBorder=1 A border is drawn) - (FrameBorder=0 A border is not drawn) - - Retrieve the frameBorder attribute of the first FRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLFrameElement02.xml b/test/testcases/tests/level1/html/HTMLFrameElement02.xml new file mode 100644 index 0000000..e6197e7 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFrameElement02.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLFrameElement02 +NIST + + The longDesc attribute specifies a URI designating a long description + of this image or frame. + + Retrieve the longDesc attribute of the first FRAME element and examine + its value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLFrameElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLFrameElement02.xml.kfail deleted file mode 100644 index e6197e7..0000000 --- a/test/testcases/tests/level1/html/HTMLFrameElement02.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLFrameElement02 -NIST - - The longDesc attribute specifies a URI designating a long description - of this image or frame. - - Retrieve the longDesc attribute of the first FRAME element and examine - its value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLFrameElement03.xml b/test/testcases/tests/level1/html/HTMLFrameElement03.xml new file mode 100644 index 0000000..601ad32 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFrameElement03.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLFrameElement03 +NIST + + The marginHeight attribute specifies the frame margin height, in pixels. + + Retrieve the marginHeight attribute of the first FRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLFrameElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLFrameElement03.xml.kfail deleted file mode 100644 index 601ad32..0000000 --- a/test/testcases/tests/level1/html/HTMLFrameElement03.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLFrameElement03 -NIST - - The marginHeight attribute specifies the frame margin height, in pixels. - - Retrieve the marginHeight attribute of the first FRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLFrameElement04.xml b/test/testcases/tests/level1/html/HTMLFrameElement04.xml new file mode 100644 index 0000000..85a6b3e --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFrameElement04.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLFrameElement04 +NIST + + The marginWidth attribute specifies the frame margin width, in pixels. + + Retrieve the marginWidth attribute of the first FRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLFrameElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLFrameElement04.xml.kfail deleted file mode 100644 index 85a6b3e..0000000 --- a/test/testcases/tests/level1/html/HTMLFrameElement04.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLFrameElement04 -NIST - - The marginWidth attribute specifies the frame margin width, in pixels. - - Retrieve the marginWidth attribute of the first FRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLFrameElement05.xml b/test/testcases/tests/level1/html/HTMLFrameElement05.xml new file mode 100644 index 0000000..8df7700 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFrameElement05.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLFrameElement05 +NIST + + The name attribute specifies the frame name(object of the target + attribute). + + Retrieve the name attribute of the first FRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLFrameElement05.xml.kfail b/test/testcases/tests/level1/html/HTMLFrameElement05.xml.kfail deleted file mode 100644 index 8df7700..0000000 --- a/test/testcases/tests/level1/html/HTMLFrameElement05.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLFrameElement05 -NIST - - The name attribute specifies the frame name(object of the target - attribute). - - Retrieve the name attribute of the first FRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLFrameElement06.xml b/test/testcases/tests/level1/html/HTMLFrameElement06.xml new file mode 100644 index 0000000..43f46e1 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFrameElement06.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLFrameElement06 +NIST + + The noResize attribute specifies if the user can resize the frame. When + true, forbid user from resizing frame. + + Retrieve the noResize attribute of the first FRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLFrameElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLFrameElement06.xml.kfail deleted file mode 100644 index 43f46e1..0000000 --- a/test/testcases/tests/level1/html/HTMLFrameElement06.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLFrameElement06 -NIST - - The noResize attribute specifies if the user can resize the frame. When - true, forbid user from resizing frame. - - Retrieve the noResize attribute of the first FRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLFrameElement07.xml b/test/testcases/tests/level1/html/HTMLFrameElement07.xml new file mode 100644 index 0000000..a7fdea4 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFrameElement07.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLFrameElement07 +NIST + + The scrolling attribute specifies whether or not the frame should have + scrollbars. + + Retrieve the scrolling attribute of the first FRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLFrameElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLFrameElement07.xml.kfail deleted file mode 100644 index a7fdea4..0000000 --- a/test/testcases/tests/level1/html/HTMLFrameElement07.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLFrameElement07 -NIST - - The scrolling attribute specifies whether or not the frame should have - scrollbars. - - Retrieve the scrolling attribute of the first FRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLFrameElement08.xml b/test/testcases/tests/level1/html/HTMLFrameElement08.xml new file mode 100644 index 0000000..4b2843a --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLFrameElement08.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLFrameElement08 +NIST + + The src attribute specifies a URI designating the initial frame contents. + + Retrieve the src attribute of the first FRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLFrameElement08.xml.kfail b/test/testcases/tests/level1/html/HTMLFrameElement08.xml.kfail deleted file mode 100644 index 4b2843a..0000000 --- a/test/testcases/tests/level1/html/HTMLFrameElement08.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLFrameElement08 -NIST - - The src attribute specifies a URI designating the initial frame contents. - - Retrieve the src attribute of the first FRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLFrameElement09.xml b/test/testcases/tests/level2/html/HTMLFrameElement09.xml new file mode 100644 index 0000000..9ae0e16 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLFrameElement09.xml @@ -0,0 +1,42 @@ + + + + + + +HTMLFrameElement09 +NIST + + The contentDocument attribute specifies the document this frame contains, + if there is any and it is available, or null otherwise. + + Retrieve the contentDocument attribute of the first FRAME element + and examine its TITLE value. + +Rick Rivello +2002-07-03 + + + + + + + + + + +<assertEquals actual="vtitle" expected='"NIST DOM HTML Test - FRAME2"' id="titleLink" ignoreCase="false" /> +</test> diff --git a/test/testcases/tests/level2/html/HTMLFrameElement09.xml.kfail b/test/testcases/tests/level2/html/HTMLFrameElement09.xml.kfail deleted file mode 100644 index d6fc5cc..0000000 --- a/test/testcases/tests/level2/html/HTMLFrameElement09.xml.kfail +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - -Copyright (c) 2001-2004 World Wide Web Consortium, -(Massachusetts Institute of Technology, Institut National de -Recherche en Informatique et en Automatique, Keio University). All -Rights Reserved. This program is distributed under the W3C's Software -Intellectual Property License. This program is distributed in the -hope that it will be useful, but WITHOUT ANY WARRANTY; without even -the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. - -See W3C License http://www.w3.org/Consortium/Legal/ for more details. - ---> -<!DOCTYPE test SYSTEM "dom2.dtd"> -<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-2" name="HTMLFrameElement09"> -<metadata> -<title>HTMLFrameElement09 -NIST - - The contentDocument attribute specifies the document this frame contains, - if there is any and it is available, or null otherwise. - - Retrieve the contentDocument attribute of the first FRAME element - and examine its TITLE value. - -Rick Rivello -2002-07-03 - - - - - - - - - - -<assertEquals actual="vtitle" expected='"NIST DOM HTML Test - FRAMESET"' id="titleLink" ignoreCase="false" /> -</test> -- cgit v1.2.3 From c7f3d0def9dc71deb135b5afedcddac1c92b9c3e Mon Sep 17 00:00:00 2001 From: rsk1994 <rsk1coder99@gmail.com> Date: Fri, 6 Jun 2014 06:19:49 +0530 Subject: IFrame Element --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_iframe_element.h | 75 ++++++ src/html/Makefile | 3 +- src/html/html_document.c | 4 + src/html/html_frame_element.h | 2 +- src/html/html_iframe_element.c | 262 +++++++++++++++++++++ src/html/html_iframe_element.h | 48 ++++ test/DOMTSHandler.pm | 1 + test/dom1-interfaces.xml | 6 + .../tests/level1/html/HTMLIFrameElement01.xml | 44 ++++ .../level1/html/HTMLIFrameElement01.xml.kfail | 44 ---- .../tests/level1/html/HTMLIFrameElement02.xml | 45 ++++ .../level1/html/HTMLIFrameElement02.xml.kfail | 45 ---- .../tests/level1/html/HTMLIFrameElement03.xml | 43 ++++ .../level1/html/HTMLIFrameElement03.xml.kfail | 43 ---- .../tests/level1/html/HTMLIFrameElement04.xml | 44 ++++ .../level1/html/HTMLIFrameElement04.xml.kfail | 44 ---- .../tests/level1/html/HTMLIFrameElement05.xml | 43 ++++ .../level1/html/HTMLIFrameElement05.xml.kfail | 43 ---- .../tests/level1/html/HTMLIFrameElement06.xml | 43 ++++ .../level1/html/HTMLIFrameElement06.xml.kfail | 43 ---- .../tests/level1/html/HTMLIFrameElement07.xml | 44 ++++ .../level1/html/HTMLIFrameElement07.xml.kfail | 44 ---- .../tests/level1/html/HTMLIFrameElement08.xml | 44 ++++ .../level1/html/HTMLIFrameElement08.xml.kfail | 44 ---- .../tests/level1/html/HTMLIFrameElement09.xml | 43 ++++ .../level1/html/HTMLIFrameElement09.xml.kfail | 43 ---- .../tests/level1/html/HTMLIFrameElement10.xml | 43 ++++ .../level1/html/HTMLIFrameElement10.xml.kfail | 43 ---- .../tests/level2/html/HTMLIFrameElement11.xml | 39 +++ .../level2/html/HTMLIFrameElement11.xml.kfail | 39 --- 32 files changed, 875 insertions(+), 478 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement01.xml delete mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement01.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement02.xml delete mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement02.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement03.xml delete mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement04.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement05.xml delete mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement05.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement06.xml delete mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement06.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement07.xml delete mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement07.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement08.xml delete mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement08.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement09.xml delete mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement09.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement10.xml delete mode 100644 test/testcases/tests/level1/html/HTMLIFrameElement10.xml.kfail create mode 100644 test/testcases/tests/level2/html/HTMLIFrameElement11.xml delete mode 100644 test/testcases/tests/level2/html/HTMLIFrameElement11.xml.kfail (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 4dc8af6..569e554 100644 --- a/Makefile +++ b/Makefile @@ -133,6 +133,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_base_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_style_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_frameset_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_frame_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_iframe_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index d8245ac..1392ee0 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -92,6 +92,7 @@ #include <dom/html/html_style_element.h> #include <dom/html/html_frameset_element.h> #include <dom/html/html_frame_element.h> +#include <dom/html/html_iframe_element.h> /* DOM Events header */ #include <dom/events/events.h> diff --git a/include/dom/html/html_iframe_element.h b/include/dom/html/html_iframe_element.h index 2e182d5..f064cfe 100644 --- a/include/dom/html/html_iframe_element.h +++ b/include/dom/html/html_iframe_element.h @@ -3,5 +3,80 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang <struggleyb.nku@gmail.com> + * Copyright 2014 Rupinder Singh Khokhar <rsk1coder99@gmail.com> */ +#ifndef dom_html_iframe_element_h_ +#define dom_html_iframe_element_h_ +#include <stdbool.h> +#include <dom/core/exceptions.h> +#include <dom/core/string.h> + +#include <dom/html/html_document.h> +typedef struct dom_html_iframe_element dom_html_iframe_element; + +dom_exception dom_html_iframe_element_get_frame_border( + dom_html_iframe_element *element, dom_string **frame_border); + +dom_exception dom_html_iframe_element_set_frame_border( + dom_html_iframe_element *element, dom_string *frame_border); + +dom_exception dom_html_iframe_element_get_align( + dom_html_iframe_element *element, dom_string **align); + +dom_exception dom_html_iframe_element_set_align( + dom_html_iframe_element *element, dom_string *align); + +dom_exception dom_html_iframe_element_set_long_desc( + dom_html_iframe_element *ele, dom_string *long_desc); + +dom_exception dom_html_iframe_element_get_long_desc( + dom_html_iframe_element *ele, dom_string **long_desc); + +dom_exception dom_html_iframe_element_get_margin_height( + dom_html_iframe_element *element, dom_string **margin_height); + +dom_exception dom_html_iframe_element_set_margin_height( + dom_html_iframe_element *element, dom_string *margin_height); + +dom_exception dom_html_iframe_element_get_margin_width( + dom_html_iframe_element *element, dom_string **margin_width); + +dom_exception dom_html_iframe_element_set_margin_width( + dom_html_iframe_element *element, dom_string *margin_width); + +dom_exception dom_html_iframe_element_get_name( + dom_html_iframe_element *element, dom_string **name); + +dom_exception dom_html_iframe_element_set_name( + dom_html_iframe_element *element, dom_string *name); + +dom_exception dom_html_iframe_element_get_scrolling( + dom_html_iframe_element *element, dom_string **scrolling); + +dom_exception dom_html_iframe_element_set_scrolling( + dom_html_iframe_element *element, dom_string *scrolling); + +dom_exception dom_html_iframe_element_get_src( + dom_html_iframe_element *element, dom_string **src); + +dom_exception dom_html_iframe_element_set_src( + dom_html_iframe_element *element, dom_string *src); + +dom_exception dom_html_iframe_element_get_height( + dom_html_iframe_element *element, dom_string **height); + +dom_exception dom_html_iframe_element_set_height( + dom_html_iframe_element *element, dom_string *height); + +dom_exception dom_html_iframe_element_get_width( + dom_html_iframe_element *element, dom_string **width); + +dom_exception dom_html_iframe_element_set_width( + dom_html_iframe_element *element, dom_string *width); + +dom_exception dom_html_iframe_element_get_content_document( + dom_html_iframe_element *ele, + dom_document **content_document); + +#endif diff --git a/src/html/Makefile b/src/html/Makefile index fa707d4..95550ab 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -18,10 +18,9 @@ DIR_SOURCES := \ html_map_element.c html_script_element.c html_tablecaption_element.c \ html_tablecell_element.c html_tablecol_element.c html_tablesection_element.c \ html_table_element.c html_tablerow_element.c html_frameset_element.c \ - html_frame_element.c + html_frame_element.c html_iframe_element.c UNINMPLEMENTED_SOURCES := \ html_isindex_element.c \ - html_iframe_element.c include $(NSBUILD)/Makefile.subdir diff --git a/src/html/html_document.c b/src/html/html_document.c index cf8d1aa..5d68d51 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -59,6 +59,7 @@ #include "html/html_style_element.h" #include "html/html_frameset_element.h" #include "html/html_frame_element.h" +#include "html/html_iframe_element.h" #include "core/attr.h" #include "core/string.h" @@ -373,6 +374,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_FRAME])) { exc = _dom_html_frame_element_create(html, namespace, prefix, (dom_html_frame_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_IFRAME])) { + exc = _dom_html_iframe_element_create(html, namespace, prefix, + (dom_html_iframe_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_frame_element.h b/src/html/html_frame_element.h index 77a137b..c313cbc 100644 --- a/src/html/html_frame_element.h +++ b/src/html/html_frame_element.h @@ -9,7 +9,7 @@ #ifndef dom_internal_html_frame_element_h_ #define dom_internal_html_frame_element_h_ -#include <dom/html/html_frameset_element.h> +#include <dom/html/html_frame_element.h> #include "html/html_element.h" diff --git a/src/html/html_iframe_element.c b/src/html/html_iframe_element.c index 2e182d5..6f15b3e 100644 --- a/src/html/html_iframe_element.c +++ b/src/html/html_iframe_element.c @@ -3,5 +3,267 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang <struggleyb.nku@gmail.com> + * Copyright 2014 Rupinder Singh Khokhar<rsk1coder99@gmail.com> */ +#include <assert.h> +#include <stdlib.h> + +#include <dom/html/html_iframe_element.h> + +#include "html/html_document.h" +#include "html/html_iframe_element.h" + +#include "core/node.h" +#include "core/attr.h" +#include "utils/utils.h" + +static struct dom_element_protected_vtable _protect_vtable = { + { + DOM_NODE_PROTECT_VTABLE_HTML_IFRAME_ELEMENT + }, + DOM_HTML_IFRAME_ELEMENT_PROTECT_VTABLE +}; + +/** + * Create a dom_html_iframe_element object + * + * \param doc The document object + * \param ele The returned element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_iframe_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_iframe_element **ele) +{ + struct dom_node_internal *node; + + *ele = malloc(sizeof(dom_html_iframe_element)); + if (*ele == NULL) + return DOM_NO_MEM_ERR; + + /* Set up vtables */ + node = (struct dom_node_internal *) *ele; + node->base.vtable = &_dom_html_element_vtable; + node->vtable = &_protect_vtable; + + return _dom_html_iframe_element_initialise(doc, namespace, prefix, *ele); +} + +/** + * Initialise a dom_html_iframe_element object + * + * \param doc The document object + * \param ele The dom_html_iframe_element object + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception _dom_html_iframe_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_iframe_element *ele) +{ + dom_string *scrolling_default = NULL; + dom_exception err; + err = dom_string_create((const uint8_t *) "auto", SLEN("auto"), &scrolling_default); + if (err != DOM_NO_ERR) + return err; + + + dom_string *frame_border_default = NULL; + err = dom_string_create((const uint8_t *) "1", SLEN("1"), &frame_border_default); + if (err != DOM_NO_ERR) + return err; + + err = _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_IFRAME], + namespace, prefix); + + ele->scrolling_default = scrolling_default; + ele->frame_border_default = frame_border_default; + + return err; +} + +/** + * Finalise a dom_html_iframe_element object + * + * \param ele The dom_html_iframe_element object + */ +void _dom_html_iframe_element_finalise(struct dom_html_iframe_element *ele) +{ + _dom_html_element_finalise(&ele->base); +} + +/** + * Destroy a dom_html_iframe_element object + * + * \param ele The dom_html_iframe_element object + */ +void _dom_html_iframe_element_destroy(struct dom_html_iframe_element *ele) +{ + _dom_html_iframe_element_finalise(ele); + free(ele); +} + +/*------------------------------------------------------------------------*/ +/* The protected virtual functions */ + +/* The virtual function used to parse attribute value, see src/core/element.c + * for detail */ +dom_exception _dom_html_iframe_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed) +{ + UNUSED(ele); + UNUSED(name); + + dom_string_ref(value); + *parsed = value; + + return DOM_NO_ERR; +} + +/* The virtual destroy function, see src/core/node.c for detail */ +void _dom_virtual_html_iframe_element_destroy(dom_node_internal *node) +{ + _dom_html_iframe_element_destroy((struct dom_html_iframe_element *) node); +} + +/* The virtual copy function, see src/core/node.c for detail */ +dom_exception _dom_html_iframe_element_copy(dom_node_internal *old, + dom_node_internal **copy) +{ + return _dom_html_element_copy(old, copy); +} + +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_iframe_element_get_##attr( \ + dom_html_iframe_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_iframe_element_set_##attr( \ + dom_html_iframe_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) + +SIMPLE_GET_SET(long_desc); +SIMPLE_GET_SET(align); +SIMPLE_GET_SET(name); +SIMPLE_GET_SET(src); +SIMPLE_GET_SET(margin_width); +SIMPLE_GET_SET(margin_height); +SIMPLE_SET(scrolling); +SIMPLE_SET(frame_border); +SIMPLE_GET_SET(width); +SIMPLE_GET_SET(height); + + +/** + * Get the frame_border property + * + * \param ele The dom_html_iframe_element object + * \param iframe_border The returned status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_iframe_element_get_frame_border( + dom_html_iframe_element *ele, + dom_string **frame_border) +{ + dom_html_document *doc; + bool has_value = false; + dom_exception err; + + doc = (dom_html_document *) ((dom_node_internal *) ele)->owner; + + err = dom_element_has_attribute(ele, + doc->memoised[hds_frame_border], &has_value); + if(err !=DOM_NO_ERR) + return err; + + if(has_value) { + return dom_element_get_attribute(ele, + doc->memoised[hds_frame_border], frame_border); + } + + *frame_border = ele->frame_border_default; + if (*frame_border != NULL) + dom_string_ref(*frame_border); + return DOM_NO_ERR; +} + +/** + * Get the frame_border property + * + * \param ele The dom_html_iframe_element object + * \param scrolling The returned status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_iframe_element_get_scrolling( + dom_html_iframe_element *ele, + dom_string **scrolling) +{ + dom_html_document *doc; + bool has_value = false; + dom_exception err; + + doc = (dom_html_document *) ((dom_node_internal *) ele)->owner; + + err = dom_element_has_attribute(ele, + doc->memoised[hds_scrolling], &has_value); + if(err !=DOM_NO_ERR) + return err; + + if(has_value) { + return dom_element_get_attribute(ele, + doc->memoised[hds_scrolling], scrolling); + } + + *scrolling = ele->scrolling_default; + if (*scrolling != NULL) + dom_string_ref(*scrolling); + return DOM_NO_ERR; +} + +/** + * Get the frame_border property + * + * \param ele The dom_html_iframe_element object + * \param content_document The returned status + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +dom_exception dom_html_iframe_element_get_content_document( + dom_html_iframe_element *ele, + dom_document **content_document) +{ + *content_document = dom_node_get_owner(ele); + return DOM_NO_ERR; +} diff --git a/src/html/html_iframe_element.h b/src/html/html_iframe_element.h index 2e182d5..dafc9e1 100644 --- a/src/html/html_iframe_element.h +++ b/src/html/html_iframe_element.h @@ -3,5 +3,53 @@ * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang <struggleyb.nku@gmail.com> + * Copyright 2014 Rupinder Singh Khokhar <rsk1coder99@gmail.com> */ +#ifndef dom_internal_html_iframe_element_h_ +#define dom_internal_html_iframe_element_h_ + +#include <dom/html/html_iframe_element.h> +#include "html/html_element.h" + + +struct dom_html_iframe_element { + struct dom_html_element base; + /**< The base class */ + dom_string *scrolling_default; + dom_string *frame_border_default; +}; + +/* Create a dom_html_iframe_element object */ +dom_exception _dom_html_iframe_element_create(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_iframe_element **ele); + +/* Initialise a dom_html_iframe_element object */ +dom_exception _dom_html_iframe_element_initialise(struct dom_html_document *doc, + dom_string *namespace, dom_string *prefix, + struct dom_html_iframe_element *ele); + +/* Finalise a dom_html_iframe_element object */ +void _dom_html_iframe_element_finalise(struct dom_html_iframe_element *ele); + +/* Destroy a dom_html_iframe_element object */ +void _dom_html_iframe_element_destroy(struct dom_html_iframe_element *ele); + +/* The protected virtual functions */ +dom_exception _dom_html_iframe_element_parse_attribute(dom_element *ele, + dom_string *name, dom_string *value, + dom_string **parsed); +void _dom_virtual_html_iframe_element_destroy(dom_node_internal *node); +dom_exception _dom_html_iframe_element_copy(dom_node_internal *old, + dom_node_internal **copy); + +#define DOM_HTML_IFRAME_ELEMENT_PROTECT_VTABLE \ + _dom_html_iframe_element_parse_attribute + +#define DOM_NODE_PROTECT_VTABLE_HTML_IFRAME_ELEMENT \ + _dom_virtual_html_iframe_element_destroy, \ + _dom_html_iframe_element_copy + +#endif + diff --git a/test/DOMTSHandler.pm b/test/DOMTSHandler.pm index ee9298c..304ac29 100644 --- a/test/DOMTSHandler.pm +++ b/test/DOMTSHandler.pm @@ -64,6 +64,7 @@ our %special_prefix = ( HTMLTableCaptionElement => "dom_html_table_caption_element", HTMLTableSectionElement => "dom_html_table_section_element", HTMLIsIndexElement => "dom_html_isindex_element", + HTMLIFrameElement => "dom_html_iframe_element", caption => "dom_html_table_caption_element *", section => "dom_html_table_section_element *", createCaption => "dom_html_element *", diff --git a/test/dom1-interfaces.xml b/test/dom1-interfaces.xml index 25d29d8..fc88b80 100644 --- a/test/dom1-interfaces.xml +++ b/test/dom1-interfaces.xml @@ -3667,5 +3667,11 @@ See W3C License http://www.w3.org/Consortium/Legal/ for more details. <p>Frame width. See the<loc href="http://www.w3.org/TR/REC-html40/present/frames.html#adef-width-IFRAME" form="simple" show="embed" actuate="auto">width attribute definition</loc>in HTML 4.0.</p> </descr> </attribute> +<attribute readonly="yes" type="Document" name="contentDocument" id="contentDoc"> +<descr> +<p/> +</descr> +</attribute> + </interface> </library> diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement01.xml b/test/testcases/tests/level1/html/HTMLIFrameElement01.xml new file mode 100644 index 0000000..1280955 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLIFrameElement01.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet href="test-to-html.xml" type="text/xml"?> + +<!-- + +Copyright (c) 2001 World Wide Web Consortium, +(Massachusetts Institute of Technology, Institut National de +Recherche en Informatique et en Automatique, Keio University). All +Rights Reserved. This program is distributed under the W3C's Software +Intellectual Property License. This program is distributed in the +hope that it will be useful, but WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. + +See W3C License http://www.w3.org/Consortium/Legal/ for more details. + +--> +<!DOCTYPE test SYSTEM "dom1.dtd"> +<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLIFrameElement01"> +<metadata> +<title>HTMLIFrameElement01 +NIST + + The align attribute aligns this object(vertically or horizontally with + respect to its surrounding text. + + Retrieve the align attribute of the first IFRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLIFrameElement01.xml.kfail deleted file mode 100644 index 1280955..0000000 --- a/test/testcases/tests/level1/html/HTMLIFrameElement01.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLIFrameElement01 -NIST - - The align attribute aligns this object(vertically or horizontally with - respect to its surrounding text. - - Retrieve the align attribute of the first IFRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement02.xml b/test/testcases/tests/level1/html/HTMLIFrameElement02.xml new file mode 100644 index 0000000..c815c67 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLIFrameElement02.xml @@ -0,0 +1,45 @@ + + + + + + + +HTMLIFrameElement02 +NIST + + The frameBorder attribute specifies the request for frame borders. + (frameBorder=1 A border is drawn) + (FrameBorder=0 A border is not drawn) + + Retrieve the frameBorder attribute of the first IFRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLIFrameElement02.xml.kfail deleted file mode 100644 index c815c67..0000000 --- a/test/testcases/tests/level1/html/HTMLIFrameElement02.xml.kfail +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - -HTMLIFrameElement02 -NIST - - The frameBorder attribute specifies the request for frame borders. - (frameBorder=1 A border is drawn) - (FrameBorder=0 A border is not drawn) - - Retrieve the frameBorder attribute of the first IFRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement03.xml b/test/testcases/tests/level1/html/HTMLIFrameElement03.xml new file mode 100644 index 0000000..3842aa3 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLIFrameElement03.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLIFrameElement03 +NIST + + The height attribute specifies the frame height. + + Retrieve the height attribute of the first IFRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLIFrameElement03.xml.kfail deleted file mode 100644 index 3842aa3..0000000 --- a/test/testcases/tests/level1/html/HTMLIFrameElement03.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLIFrameElement03 -NIST - - The height attribute specifies the frame height. - - Retrieve the height attribute of the first IFRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement04.xml b/test/testcases/tests/level1/html/HTMLIFrameElement04.xml new file mode 100644 index 0000000..65535fd --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLIFrameElement04.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLIFrameElement04 +NIST + + The longDesc attribute specifies a URI designating a long description + of this image or frame. + + Retrieve the longDesc attribute of the first IFRAME element and examine + its value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLIFrameElement04.xml.kfail deleted file mode 100644 index 65535fd..0000000 --- a/test/testcases/tests/level1/html/HTMLIFrameElement04.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLIFrameElement04 -NIST - - The longDesc attribute specifies a URI designating a long description - of this image or frame. - - Retrieve the longDesc attribute of the first IFRAME element and examine - its value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement05.xml b/test/testcases/tests/level1/html/HTMLIFrameElement05.xml new file mode 100644 index 0000000..5ba9855 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLIFrameElement05.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLIFrameElement05 +NIST + + The marginWidth attribute specifies the frame margin width, in pixels. + + Retrieve the marginWidth attribute of the first FRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement05.xml.kfail b/test/testcases/tests/level1/html/HTMLIFrameElement05.xml.kfail deleted file mode 100644 index 5ba9855..0000000 --- a/test/testcases/tests/level1/html/HTMLIFrameElement05.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLIFrameElement05 -NIST - - The marginWidth attribute specifies the frame margin width, in pixels. - - Retrieve the marginWidth attribute of the first FRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement06.xml b/test/testcases/tests/level1/html/HTMLIFrameElement06.xml new file mode 100644 index 0000000..85654d7 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLIFrameElement06.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLIFrameElement06 +NIST + + The marginHeight attribute specifies the frame margin height, in pixels. + + Retrieve the marginHeight attribute of the first IFRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLIFrameElement06.xml.kfail deleted file mode 100644 index 85654d7..0000000 --- a/test/testcases/tests/level1/html/HTMLIFrameElement06.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLIFrameElement06 -NIST - - The marginHeight attribute specifies the frame margin height, in pixels. - - Retrieve the marginHeight attribute of the first IFRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement07.xml b/test/testcases/tests/level1/html/HTMLIFrameElement07.xml new file mode 100644 index 0000000..8143aa5 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLIFrameElement07.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLIFrameElement07 +NIST + + The name attribute specifies the frame name(object of the target + attribute). + + Retrieve the name attribute of the first IFRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLIFrameElement07.xml.kfail deleted file mode 100644 index 8143aa5..0000000 --- a/test/testcases/tests/level1/html/HTMLIFrameElement07.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLIFrameElement07 -NIST - - The name attribute specifies the frame name(object of the target - attribute). - - Retrieve the name attribute of the first IFRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement08.xml b/test/testcases/tests/level1/html/HTMLIFrameElement08.xml new file mode 100644 index 0000000..729c1a9 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLIFrameElement08.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLIFrameElement08 +NIST + + The scrolling attribute specifies whether or not the frame should have + scrollbars. + + Retrieve the scrolling attribute of the first FRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement08.xml.kfail b/test/testcases/tests/level1/html/HTMLIFrameElement08.xml.kfail deleted file mode 100644 index 729c1a9..0000000 --- a/test/testcases/tests/level1/html/HTMLIFrameElement08.xml.kfail +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLIFrameElement08 -NIST - - The scrolling attribute specifies whether or not the frame should have - scrollbars. - - Retrieve the scrolling attribute of the first FRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement09.xml b/test/testcases/tests/level1/html/HTMLIFrameElement09.xml new file mode 100644 index 0000000..e9cc84b --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLIFrameElement09.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLIFrameElement09 +NIST + + The src attribute specifies a URI designating the initial frame contents. + + Retrieve the src attribute of the first FRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement09.xml.kfail b/test/testcases/tests/level1/html/HTMLIFrameElement09.xml.kfail deleted file mode 100644 index e9cc84b..0000000 --- a/test/testcases/tests/level1/html/HTMLIFrameElement09.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLIFrameElement09 -NIST - - The src attribute specifies a URI designating the initial frame contents. - - Retrieve the src attribute of the first FRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement10.xml b/test/testcases/tests/level1/html/HTMLIFrameElement10.xml new file mode 100644 index 0000000..7278bb4 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLIFrameElement10.xml @@ -0,0 +1,43 @@ + + + + + + + +HTMLIFrameElement10 +NIST + + The width attribute specifies the frame width. + + Retrieve the width attribute of the first IFRAME element and examine + it's value. + +Rick Rivello +2002-05-08 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLIFrameElement10.xml.kfail b/test/testcases/tests/level1/html/HTMLIFrameElement10.xml.kfail deleted file mode 100644 index 7278bb4..0000000 --- a/test/testcases/tests/level1/html/HTMLIFrameElement10.xml.kfail +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - -HTMLIFrameElement10 -NIST - - The width attribute specifies the frame width. - - Retrieve the width attribute of the first IFRAME element and examine - it's value. - -Rick Rivello -2002-05-08 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level2/html/HTMLIFrameElement11.xml b/test/testcases/tests/level2/html/HTMLIFrameElement11.xml new file mode 100644 index 0000000..4220a43 --- /dev/null +++ b/test/testcases/tests/level2/html/HTMLIFrameElement11.xml @@ -0,0 +1,39 @@ + + + + + + +HTMLIFrameElement11 +NIST + + Retrieve the contentDocument attribute of the second IFRAME element + and examine its title. + +Rick Rivello +2002-07-03 + + + + + + + + + + +<assertEquals actual="vtitle" expected='"NIST DOM HTML Test - IFRAME2"' id="titleLink" ignoreCase="false" /> +</test> diff --git a/test/testcases/tests/level2/html/HTMLIFrameElement11.xml.kfail b/test/testcases/tests/level2/html/HTMLIFrameElement11.xml.kfail deleted file mode 100644 index c77d2f4..0000000 --- a/test/testcases/tests/level2/html/HTMLIFrameElement11.xml.kfail +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - -Copyright (c) 2001-2004 World Wide Web Consortium, -(Massachusetts Institute of Technology, Institut National de -Recherche en Informatique et en Automatique, Keio University). All -Rights Reserved. This program is distributed under the W3C's Software -Intellectual Property License. This program is distributed in the -hope that it will be useful, but WITHOUT ANY WARRANTY; without even -the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. - -See W3C License http://www.w3.org/Consortium/Legal/ for more details. - ---> -<!DOCTYPE test SYSTEM "dom2.dtd"> -<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-2" name="HTMLIFrameElement11"> -<metadata> -<title>HTMLIFrameElement11 -NIST - - Retrieve the contentDocument attribute of the second IFRAME element - and examine its title. - -Rick Rivello -2002-07-03 - - - - - - - - - - -<assertEquals actual="vtitle" expected='"NIST DOM HTML Test - FRAME"' id="titleLink" ignoreCase="false" /> -</test> -- cgit v1.2.3 From 248159cc63965706c08f0b92aa5a41ab819b1c7d Mon Sep 17 00:00:00 2001 From: Rupinder Singh Khokhar <rsk1coder99@gmail.com> Date: Sun, 8 Jun 2014 11:18:42 +0530 Subject: HTMLDocument Element incomplete & test generator minor fix --- include/dom/html/html_document.h | 10 +- src/html/html_document.c | 228 ++++++++++++++++++--- src/html/html_document.h | 7 + test/DOMTSHandler.pm | 3 +- .../testcases/tests/level1/html/HTMLDocument02.xml | 40 ---- .../tests/level1/html/HTMLDocument02.xml.kfail | 40 ++++ .../testcases/tests/level1/html/HTMLDocument03.xml | 40 ---- .../tests/level1/html/HTMLDocument03.xml.kfail | 40 ++++ .../tests/level1/html/HTMLDocument04.xml.kfail | 39 ++++ .../tests/level1/html/HTMLDocument04.xml.notimpl | 39 ---- .../testcases/tests/level1/html/HTMLDocument05.xml | 42 ++++ .../tests/level1/html/HTMLDocument05.xml.notimpl | 42 ---- .../testcases/tests/level1/html/HTMLDocument07.xml | 41 ++++ .../tests/level1/html/HTMLDocument07.xml.notimpl | 41 ---- .../tests/level1/html/HTMLDocument08.xml.kfail | 43 ++++ .../tests/level1/html/HTMLDocument08.xml.notimpl | 42 ---- .../testcases/tests/level1/html/HTMLDocument09.xml | 42 ++++ .../tests/level1/html/HTMLDocument09.xml.notimpl | 42 ---- .../testcases/tests/level1/html/HTMLDocument10.xml | 41 ++++ .../tests/level1/html/HTMLDocument10.xml.notimpl | 41 ---- .../testcases/tests/level1/html/HTMLDocument11.xml | 42 ++++ .../tests/level1/html/HTMLDocument11.xml.notimpl | 42 ---- .../tests/level1/html/HTMLDocument12.xml.kfail | 38 ++++ .../tests/level1/html/HTMLDocument12.xml.notimpl | 38 ---- .../tests/level1/html/HTMLDocument13.xml.kfail | 39 ++++ .../tests/level1/html/HTMLDocument13.xml.notimpl | 39 ---- .../tests/level1/html/HTMLDocument14.xml.kfail | 40 ++++ .../tests/level1/html/HTMLDocument14.xml.notimpl | 40 ---- .../testcases/tests/level1/html/HTMLDocument15.xml | 44 ++++ .../tests/level1/html/HTMLDocument15.xml.notimpl | 44 ---- .../testcases/tests/level1/html/HTMLDocument16.xml | 44 ++++ .../tests/level1/html/HTMLDocument16.xml.notimpl | 44 ---- .../tests/level1/html/HTMLDocument17.xml.kfail | 41 ++++ .../tests/level1/html/HTMLDocument17.xml.notimpl | 41 ---- .../tests/level1/html/HTMLDocument18.xml.kfail | 32 +++ .../tests/level1/html/HTMLDocument18.xml.notimpl | 32 --- .../tests/level1/html/HTMLDocument19.xml.kfail | 51 +++++ .../tests/level1/html/HTMLDocument19.xml.notimpl | 51 ----- .../tests/level1/html/HTMLDocument20.xml.kfail | 51 +++++ .../tests/level1/html/HTMLDocument20.xml.notimpl | 51 ----- .../tests/level1/html/HTMLDocument21.xml.kfail | 60 ++++++ .../tests/level1/html/HTMLDocument21.xml.notimpl | 60 ------ test/testcases/tests/level1/html/doc01.xml | 34 +++ test/testcases/tests/level1/html/doc01.xml.notimpl | 34 --- 44 files changed, 1057 insertions(+), 878 deletions(-) delete mode 100644 test/testcases/tests/level1/html/HTMLDocument02.xml create mode 100644 test/testcases/tests/level1/html/HTMLDocument02.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLDocument03.xml create mode 100644 test/testcases/tests/level1/html/HTMLDocument03.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLDocument04.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLDocument04.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument05.xml delete mode 100644 test/testcases/tests/level1/html/HTMLDocument05.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument07.xml delete mode 100644 test/testcases/tests/level1/html/HTMLDocument07.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument08.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLDocument08.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument09.xml delete mode 100644 test/testcases/tests/level1/html/HTMLDocument09.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument10.xml delete mode 100644 test/testcases/tests/level1/html/HTMLDocument10.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument11.xml delete mode 100644 test/testcases/tests/level1/html/HTMLDocument11.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument12.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLDocument12.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument13.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLDocument13.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument14.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLDocument14.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument15.xml delete mode 100644 test/testcases/tests/level1/html/HTMLDocument15.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument16.xml delete mode 100644 test/testcases/tests/level1/html/HTMLDocument16.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument17.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLDocument17.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument18.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLDocument18.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument19.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLDocument19.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument20.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLDocument20.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLDocument21.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLDocument21.xml.notimpl create mode 100644 test/testcases/tests/level1/html/doc01.xml delete mode 100644 test/testcases/tests/level1/html/doc01.xml.notimpl (limited to 'src/html/html_document.c') diff --git a/include/dom/html/html_document.h b/include/dom/html/html_document.h index 1f868a5..936ea69 100644 --- a/include/dom/html/html_document.h +++ b/include/dom/html/html_document.h @@ -114,7 +114,7 @@ static inline dom_exception dom_html_document_get_body(dom_html_document *doc, get_body(doc, body); } #define dom_html_document_get_body(d, b) \ - dom_html_document_get_title((dom_html_document *) (d), \ + dom_html_document_get_body((dom_html_document *) (d), \ (struct dom_html_element **) (b)) static inline dom_exception dom_html_document_set_body(dom_html_document *doc, @@ -174,7 +174,7 @@ static inline dom_exception dom_html_document_get_anchors(dom_html_document *doc get_anchors(doc, col); } #define dom_html_document_get_anchors(d, c) \ - dom_html_document_get_title((dom_html_document *) (d), \ + dom_html_document_get_anchors((dom_html_document *) (d), \ (struct dom_html_collection **) (c)) static inline dom_exception dom_html_document_get_cookie(dom_html_document *doc, @@ -184,7 +184,7 @@ static inline dom_exception dom_html_document_get_cookie(dom_html_document *doc, get_cookie(doc, cookie); } #define dom_html_document_get_cookie(d, c) \ - dom_html_document_get_title((dom_html_document *) (d), (c)) + dom_html_document_get_cookie((dom_html_document *) (d), (c)) static inline dom_exception dom_html_document_set_cookie(dom_html_document *doc, dom_string *cookie) @@ -237,8 +237,8 @@ static inline dom_exception dom_html_document_get_elements_by_name(dom_html_docu return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> get_elements_by_name(doc, name, list); } -#define dom_html_document_get_elements_by_name(d, n, l) \ - dom_html_document_get_element_by_name((dom_html_document *) (d), \ +#define dom_html_document_get_element_by_name(d, n, l) \ + dom_html_document_get_elements_by_name((dom_html_document *) (d), \ (n), (struct dom_nodelist **) (l)) #endif diff --git a/src/html/html_document.c b/src/html/html_document.c index 5d68d51..83c4801 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -126,16 +126,17 @@ dom_exception _dom_html_document_initialise(dom_html_document *doc, doc->domain = NULL; doc->url = NULL; doc->cookie = NULL; - + doc->body = NULL; + doc->memoised = calloc(sizeof(dom_string *), hds_COUNT); if (doc->memoised == NULL) { error = DOM_NO_MEM_ERR; goto out; } - + #define HTML_DOCUMENT_STRINGS_ACTION(attr,str) \ error = dom_string_create_interned((const uint8_t *) #str, \ - SLEN(#str), &doc->memoised[hds_##attr]); \ + SLEN(#str), &doc->memoised[hds_##attr]); \ if (error != DOM_NO_ERR) { \ goto out; \ } @@ -639,57 +640,193 @@ dom_exception _dom_html_document_get_url(dom_html_document *doc, dom_exception _dom_html_document_get_body(dom_html_document *doc, struct dom_html_element **body) { - UNUSED(doc); - UNUSED(body); + dom_exception exc = DOM_NO_ERR; - return DOM_NOT_SUPPORTED_ERR; + if (doc->body != NULL) { + *body = doc->body; + } else { + dom_element *node; + dom_nodelist *nodes; + uint32_t len; + + exc = dom_document_get_elements_by_tag_name(doc, + doc->memoised[hds_BODY], + &nodes); + if (exc != DOM_NO_ERR) { + return exc; + } + + exc = dom_nodelist_get_length(nodes, &len); + if (exc != DOM_NO_ERR) { + dom_nodelist_unref(nodes); + return exc; + } + + if (len == 0) { + exc = dom_document_get_elements_by_tag_name(doc, + doc->memoised[hds_FRAMESET], + &nodes); + if (exc != DOM_NO_ERR) { + return exc; + } + exc = dom_nodelist_get_length(nodes, &len); + if (exc != DOM_NO_ERR) { + dom_nodelist_unref(nodes); + return exc; + } + if(len == 0) { + dom_nodelist_unref(nodes); + return DOM_NO_ERR; + } + } + + exc = dom_nodelist_item(nodes, 0, (void *) &node); + dom_nodelist_unref(nodes); + if (exc != DOM_NO_ERR) { + return exc; + } + + *body = (dom_html_element *)node; + dom_node_unref(node); + } + + return exc; } dom_exception _dom_html_document_set_body(dom_html_document *doc, struct dom_html_element *body) { - UNUSED(doc); - UNUSED(body); + doc->body = body; + return DOM_NO_ERR; +} - return DOM_NOT_SUPPORTED_ERR; +/** + * Callback for creating the images collection + * + * \param node The dom_node_internal object + * \param ctx The dom_html_document object (void *) + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +bool images_callback(struct dom_node_internal *node, void *ctx) +{ + if(node->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(node->name, + ((dom_html_document *)ctx)->memoised[hds_IMG])) { + return true; + } + return false; } dom_exception _dom_html_document_get_images(dom_html_document *doc, struct dom_html_collection **col) { - UNUSED(doc); - UNUSED(col); + dom_html_document *root; + dom_exception err; + err = dom_document_get_document_element(doc, &root); + if (err != DOM_NO_ERR) + return err; - return DOM_NOT_SUPPORTED_ERR; + return _dom_html_collection_create(doc, (dom_node_internal *) root, + images_callback, doc, col); +} + +bool applet_callback(struct dom_node_internal * node, void *ctx) +{ + if(node->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(node->name, + ((dom_html_document *)ctx)->memoised[hds_APPLET])) { + return true; + } + return false; +} +/** + * Callback for creating the applets collection + * + * \param node The dom_node_internal object + * \param ctx The dom_html_document object (void *) + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +bool applets_callback(struct dom_node_internal *node, void *ctx) +{ + if(node->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(node->name, + ((dom_html_document *)ctx)->memoised[hds_OBJECT])) { + uint32_t len = 0; + dom_html_collection *applets; + _dom_html_collection_create(ctx, node, + applet_callback, ctx, &applets); + + dom_html_collection_get_length(applets, &len); + if(len != 0) + return true; + } + return false; } dom_exception _dom_html_document_get_applets(dom_html_document *doc, struct dom_html_collection **col) { - UNUSED(doc); - UNUSED(col); + dom_html_document *root; + dom_exception err; + err = dom_document_get_document_element(doc, &root); + if (err != DOM_NO_ERR) + return err; - return DOM_NOT_SUPPORTED_ERR; + return _dom_html_collection_create(doc, (dom_node_internal *) root, + applets_callback, doc, col); +} + +/** + * Callback for creating the links collection + * + * \param node The dom_node_internal object + * \param ctx The dom_html_document object (void *) + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +bool links_callback(struct dom_node_internal *node, void *ctx) +{ + if(node->type == DOM_ELEMENT_NODE && + (dom_string_caseless_isequal(node->name, + ((dom_html_document *)ctx)->memoised[hds_A]) || + dom_string_caseless_isequal(node->name, + ((dom_html_document *)ctx)->memoised[hds_AREA])) + ) { + bool has_value = false; + dom_exception err; + + err = dom_element_has_attribute(node, + ((dom_html_document *)ctx)->memoised[hds_href], &has_value); + if(err !=DOM_NO_ERR) + return err; + + if(has_value) + return true; + } + return false; } dom_exception _dom_html_document_get_links(dom_html_document *doc, struct dom_html_collection **col) { - UNUSED(doc); - UNUSED(col); + dom_html_document *root; + dom_exception err; + err = dom_document_get_document_element(doc, &root); + if (err != DOM_NO_ERR) + return err; - return DOM_NOT_SUPPORTED_ERR; + return _dom_html_collection_create(doc, (dom_node_internal *) root, + links_callback, doc, col); } static bool __dom_html_document_node_is_form(dom_node_internal *node, - void *ctx) + void *ctx) { dom_html_document *doc = (dom_html_document *)node->owner; - + UNUSED(ctx); - + return dom_string_caseless_isequal(node->name, - doc->memoised[hds_FORM]); + doc->memoised[hds_FORM]); } dom_exception _dom_html_document_get_forms(dom_html_document *doc, @@ -717,13 +854,43 @@ dom_exception _dom_html_document_get_forms(dom_html_document *doc, return DOM_NO_ERR; } +/** + * Callback for creating the anchors collection + * + * \param node The dom_node_internal object + * \param ctx The dom_html_document object (void *) + * \return DOM_NO_ERR on success, appropriate dom_exception on failure. + */ +bool anchors_callback(struct dom_node_internal *node, void *ctx) +{ + if(node->type == DOM_ELEMENT_NODE && + dom_string_caseless_isequal(node->name, + ((dom_html_document *)ctx)->memoised[hds_A])) { + bool has_value = false; + dom_exception err; + + err = dom_element_has_attribute(node, + ((dom_html_document *)ctx)->memoised[hds_name], &has_value); + if(err !=DOM_NO_ERR) + return err; + + if(has_value) + return true; + } + return false; +} + dom_exception _dom_html_document_get_anchors(dom_html_document *doc, struct dom_html_collection **col) { - UNUSED(doc); - UNUSED(col); + dom_html_document *root; + dom_exception err; + err = dom_document_get_document_element(doc, &root); + if (err != DOM_NO_ERR) + return err; - return DOM_NOT_SUPPORTED_ERR; + return _dom_html_collection_create(doc, (dom_node_internal *) root, + anchors_callback, doc, col); } dom_exception _dom_html_document_get_cookie(dom_html_document *doc, @@ -731,7 +898,7 @@ dom_exception _dom_html_document_get_cookie(dom_html_document *doc, { UNUSED(doc); UNUSED(cookie); - + /*todo implement this after updating client interface */ return DOM_NOT_SUPPORTED_ERR; } @@ -740,7 +907,7 @@ dom_exception _dom_html_document_set_cookie(dom_html_document *doc, { UNUSED(doc); UNUSED(cookie); - + /*todo implement this after updating client interface */ return DOM_NOT_SUPPORTED_ERR; } @@ -748,13 +915,14 @@ dom_exception _dom_html_document_open(dom_html_document *doc) { UNUSED(doc); + /*todo implement this after updating client interface */ return DOM_NOT_SUPPORTED_ERR; } dom_exception _dom_html_document_close(dom_html_document *doc) { UNUSED(doc); - + /*todo implement this after updating client interface */ return DOM_NOT_SUPPORTED_ERR; } @@ -764,6 +932,7 @@ dom_exception _dom_html_document_write(dom_html_document *doc, UNUSED(doc); UNUSED(text); + /*todo implement this after updating client interface */ return DOM_NOT_SUPPORTED_ERR; } @@ -773,6 +942,7 @@ dom_exception _dom_html_document_writeln(dom_html_document *doc, UNUSED(doc); UNUSED(text); + /*todo implement this after _dom_html_document_write */ return DOM_NOT_SUPPORTED_ERR; } @@ -782,7 +952,7 @@ dom_exception _dom_html_document_get_elements_by_name(dom_html_document *doc, UNUSED(doc); UNUSED(name); UNUSED(list); - + /*todo implement after updating core nodelist interface */ return DOM_NOT_SUPPORTED_ERR; } diff --git a/src/html/html_document.h b/src/html/html_document.h index 67250f5..c00529b 100644 --- a/src/html/html_document.h +++ b/src/html/html_document.h @@ -9,6 +9,7 @@ #define dom_internal_html_document_h_ #include <dom/html/html_document.h> +#include <dom/html/html_element.h> #include "core/document.h" @@ -23,6 +24,7 @@ struct dom_html_document { dom_string *domain; /**< HTML document domain */ dom_string *url; /**< HTML document URL */ dom_string *cookie; /**< HTML document cookie */ + dom_html_element *body; /**< HTML BodyElement */ /** Cached strings for html objects to use */ dom_string **memoised; @@ -126,6 +128,11 @@ dom_exception _dom_html_document_create_attribute(dom_document *doc, dom_exception _dom_html_document_create_attribute_ns(dom_document *doc, dom_string *namespace, dom_string *qname, dom_attr **result); +bool images_callback(struct dom_node_internal *node, void *ctx); +bool applets_callback(struct dom_node_internal *node, void *ctx); +bool applet_callback(struct dom_node_internal *node, void *ctx); +bool links_callback(struct dom_node_internal *node, void *ctx); +bool anchors_callback(struct dom_node_internal *node, void *ctx); #define DOM_DOCUMENT_VTABLE_HTML \ _dom_document_get_doctype, \ diff --git a/test/DOMTSHandler.pm b/test/DOMTSHandler.pm index 304ac29..fa71365 100644 --- a/test/DOMTSHandler.pm +++ b/test/DOMTSHandler.pm @@ -91,6 +91,7 @@ our %special_method = ( our %special_attribute = ( namespaceURI => "namespace", + URL => "url", ); our %no_unref = ( @@ -1210,7 +1211,7 @@ sub generate_assertion { $fragment = $ats->{fragment}; } if (exists $ats->{isAbsolute}) { - $isAbsolute = $ats->{isAbsolute}; + $isAbsolute = "\"$ats->{isAbsolute}\""; } print "is_uri_equals($scheme, $path, $host, $file, $name, $query, $fragment, $isAbsolute, $actual)" diff --git a/test/testcases/tests/level1/html/HTMLDocument02.xml b/test/testcases/tests/level1/html/HTMLDocument02.xml deleted file mode 100644 index 24bd58f..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument02.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<?xml-stylesheet href="test-to-html.xml" type="text/xml"?> - -<!-- - -Copyright (c) 2001 World Wide Web Consortium, -(Massachusetts Institute of Technology, Institut National de -Recherche en Informatique et en Automatique, Keio University). All -Rights Reserved. This program is distributed under the W3C's Software -Intellectual Property License. This program is distributed in the -hope that it will be useful, but WITHOUT ANY WARRANTY; without even -the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. - -See W3C License http://www.w3.org/Consortium/Legal/ for more details. - ---> -<!DOCTYPE test SYSTEM "dom1.dtd"> -<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLDocument02"> -<metadata> -<title>HTMLDocument02 -NIST - - The referrer attribute returns the URI of the page that linked to this - page. - - Retrieve the referrer attribute and examine its value. - -Mary Brady -2002-01-18 - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument02.xml.kfail b/test/testcases/tests/level1/html/HTMLDocument02.xml.kfail new file mode 100644 index 0000000..24bd58f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument02.xml.kfail @@ -0,0 +1,40 @@ + + + + + + + +HTMLDocument02 +NIST + + The referrer attribute returns the URI of the page that linked to this + page. + + Retrieve the referrer attribute and examine its value. + +Mary Brady +2002-01-18 + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument03.xml b/test/testcases/tests/level1/html/HTMLDocument03.xml deleted file mode 100644 index 97e291d..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument03.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - -HTMLDocument03 -NIST - - The domain attribute specifies the domain name of the server that served - the document, or null if the server cannot be identified by a domain name. - - Retrieve the domain attribute and examine its value. - -Mary Brady -2002-01-18 - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument03.xml.kfail b/test/testcases/tests/level1/html/HTMLDocument03.xml.kfail new file mode 100644 index 0000000..97e291d --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument03.xml.kfail @@ -0,0 +1,40 @@ + + + + + + + +HTMLDocument03 +NIST + + The domain attribute specifies the domain name of the server that served + the document, or null if the server cannot be identified by a domain name. + + Retrieve the domain attribute and examine its value. + +Mary Brady +2002-01-18 + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument04.xml.kfail b/test/testcases/tests/level1/html/HTMLDocument04.xml.kfail new file mode 100644 index 0000000..223d426 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument04.xml.kfail @@ -0,0 +1,39 @@ + + + + + + + +HTMLDocument04 +NIST + + The URL attribute specifies the absolute URI of the document. + + Retrieve the URL attribute and examine its value. + +Mary Brady +2002-01-18 + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument04.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument04.xml.notimpl deleted file mode 100644 index 223d426..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument04.xml.notimpl +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - -HTMLDocument04 -NIST - - The URL attribute specifies the absolute URI of the document. - - Retrieve the URL attribute and examine its value. - -Mary Brady -2002-01-18 - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument05.xml b/test/testcases/tests/level1/html/HTMLDocument05.xml new file mode 100644 index 0000000..a764b35 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument05.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLDocument05 +NIST + + The body attribute is the element that contains the content for the + document. + + Retrieve the body attribute and examine its value for the id attribute. + +Mary Brady +2002-01-18 + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument05.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument05.xml.notimpl deleted file mode 100644 index a764b35..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument05.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLDocument05 -NIST - - The body attribute is the element that contains the content for the - document. - - Retrieve the body attribute and examine its value for the id attribute. - -Mary Brady -2002-01-18 - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument07.xml b/test/testcases/tests/level1/html/HTMLDocument07.xml new file mode 100644 index 0000000..a08972f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument07.xml @@ -0,0 +1,41 @@ + + + + + + + +HTMLDocument07 +NIST + + The images attribute returns a collection of all IMG elements in a document. + + Retrieve the images attribute from the document and examine its value. + +Rick Rivello +2002-04-30 + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument07.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument07.xml.notimpl deleted file mode 100644 index a08972f..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument07.xml.notimpl +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - -HTMLDocument07 -NIST - - The images attribute returns a collection of all IMG elements in a document. - - Retrieve the images attribute from the document and examine its value. - -Rick Rivello -2002-04-30 - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument08.xml.kfail b/test/testcases/tests/level1/html/HTMLDocument08.xml.kfail new file mode 100644 index 0000000..f4b3e3d --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument08.xml.kfail @@ -0,0 +1,43 @@ + + + + + + + +HTMLDocument08 +NIST + + The applets attribute returns a collection of all OBJECT elements that + include applets abd APPLET elements in a document. + + Retrieve the applets attribute from the document and examine its value. + +Rick Rivello +2002-04-30 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument08.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument08.xml.notimpl deleted file mode 100644 index fcc8147..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument08.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLDocument08 -NIST - - The applets attribute returns a collection of all OBJECT elements that - include applets abd APPLET elements in a document. - - Retrieve the applets attribute from the document and examine its value. - -Rick Rivello -2002-04-30 - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument09.xml b/test/testcases/tests/level1/html/HTMLDocument09.xml new file mode 100644 index 0000000..037811f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument09.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLDocument09 +NIST + + The links attribute returns a collection of all AREA and A elements + in a document with a value for the href attribute. + + Retrieve the links attribute from the document and examine its value. + +Rick Rivello +2002-04-30 + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument09.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument09.xml.notimpl deleted file mode 100644 index 037811f..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument09.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLDocument09 -NIST - - The links attribute returns a collection of all AREA and A elements - in a document with a value for the href attribute. - - Retrieve the links attribute from the document and examine its value. - -Rick Rivello -2002-04-30 - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument10.xml b/test/testcases/tests/level1/html/HTMLDocument10.xml new file mode 100644 index 0000000..700cebd --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument10.xml @@ -0,0 +1,41 @@ + + + + + + + +HTMLDocument10 +NIST + + The forms attribute returns a collection of all the forms in a document. + + Retrieve the forms attribute from the document and examine its value. + +Rick Rivello +2002-04-30 + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument10.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument10.xml.notimpl deleted file mode 100644 index 700cebd..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument10.xml.notimpl +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - -HTMLDocument10 -NIST - - The forms attribute returns a collection of all the forms in a document. - - Retrieve the forms attribute from the document and examine its value. - -Rick Rivello -2002-04-30 - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument11.xml b/test/testcases/tests/level1/html/HTMLDocument11.xml new file mode 100644 index 0000000..308131f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument11.xml @@ -0,0 +1,42 @@ + + + + + + + +HTMLDocument11 +NIST + + The anchors attribute returns a collection of all A elements with values + for the name attribute. + + Retrieve the anchors attribute from the document and examine its value. + +Rick Rivello +2002-04-30 + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument11.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument11.xml.notimpl deleted file mode 100644 index 308131f..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument11.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLDocument11 -NIST - - The anchors attribute returns a collection of all A elements with values - for the name attribute. - - Retrieve the anchors attribute from the document and examine its value. - -Rick Rivello -2002-04-30 - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument12.xml.kfail b/test/testcases/tests/level1/html/HTMLDocument12.xml.kfail new file mode 100644 index 0000000..964e70c --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument12.xml.kfail @@ -0,0 +1,38 @@ + + + + + + + +HTMLDocument02 +NIST + + The cookie attribute returns the cookies associated with this document. + + Retrieve the cookie attribute and examine its value. + +Rick Rivello +2002-04-30 + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument12.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument12.xml.notimpl deleted file mode 100644 index 964e70c..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument12.xml.notimpl +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - -HTMLDocument02 -NIST - - The cookie attribute returns the cookies associated with this document. - - Retrieve the cookie attribute and examine its value. - -Rick Rivello -2002-04-30 - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument13.xml.kfail b/test/testcases/tests/level1/html/HTMLDocument13.xml.kfail new file mode 100644 index 0000000..fc7244b --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument13.xml.kfail @@ -0,0 +1,39 @@ + + + + + + + +HTMLDocument13 +NIST + + The getElementsByName method returns the (possibly empty) collection + of elements whose name value is given by the elementName. + + Retrieve all the elements whose name attribute is "mapid". + Check the length of the nodelist. It should be 1. + +Rick Rivello +2002-07-15 + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument13.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument13.xml.notimpl deleted file mode 100644 index fc7244b..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument13.xml.notimpl +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - -HTMLDocument13 -NIST - - The getElementsByName method returns the (possibly empty) collection - of elements whose name value is given by the elementName. - - Retrieve all the elements whose name attribute is "mapid". - Check the length of the nodelist. It should be 1. - -Rick Rivello -2002-07-15 - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument14.xml.kfail b/test/testcases/tests/level1/html/HTMLDocument14.xml.kfail new file mode 100644 index 0000000..c41fe14 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument14.xml.kfail @@ -0,0 +1,40 @@ + + + + + + + +HTMLDocument14 +NIST + + The getElementsByName method returns the (possibly empty) collection + of elements whose name value is given by the elementName. + + Retrieve all the elements whose name attribute is "noid". + Check the length of the nodelist. It should be 0 since + the id "noid" does not exist. + +Rick Rivello +2002-07-15 + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument14.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument14.xml.notimpl deleted file mode 100644 index c41fe14..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument14.xml.notimpl +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - -HTMLDocument14 -NIST - - The getElementsByName method returns the (possibly empty) collection - of elements whose name value is given by the elementName. - - Retrieve all the elements whose name attribute is "noid". - Check the length of the nodelist. It should be 0 since - the id "noid" does not exist. - -Rick Rivello -2002-07-15 - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument15.xml b/test/testcases/tests/level1/html/HTMLDocument15.xml new file mode 100644 index 0000000..e01d4ca --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument15.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLDocument15 +NIST + + The getElementById method returns the Element whose id is given by + elementId. If no such element exists, returns null. + + Retrieve the element whose id is "mapid". + Check the value of the element. + + +Rick Rivello +2002-07-15 + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument15.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument15.xml.notimpl deleted file mode 100644 index e01d4ca..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument15.xml.notimpl +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLDocument15 -NIST - - The getElementById method returns the Element whose id is given by - elementId. If no such element exists, returns null. - - Retrieve the element whose id is "mapid". - Check the value of the element. - - -Rick Rivello -2002-07-15 - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument16.xml b/test/testcases/tests/level1/html/HTMLDocument16.xml new file mode 100644 index 0000000..1bb1fa7 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument16.xml @@ -0,0 +1,44 @@ + + + + + + + +HTMLDocument16 +NIST + + The getElementById method returns the Element whose id is given by + elementId. If no such element exists, returns null. + + Retrieve the element whose id is "noid". + The value returned should be null since there are not any elements with + an id of "noid". + + +Rick Rivello +2002-07-15 + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument16.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument16.xml.notimpl deleted file mode 100644 index 1bb1fa7..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument16.xml.notimpl +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -HTMLDocument16 -NIST - - The getElementById method returns the Element whose id is given by - elementId. If no such element exists, returns null. - - Retrieve the element whose id is "noid". - The value returned should be null since there are not any elements with - an id of "noid". - - -Rick Rivello -2002-07-15 - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument17.xml.kfail b/test/testcases/tests/level1/html/HTMLDocument17.xml.kfail new file mode 100644 index 0000000..6c89504 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument17.xml.kfail @@ -0,0 +1,41 @@ + + + + + + + +HTMLDocument17 +Curt Arnold + +Clears the current document using HTMLDocument.open immediately followed by close. + +2002-03-18 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument17.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument17.xml.notimpl deleted file mode 100644 index 6c89504..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument17.xml.notimpl +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - -HTMLDocument17 -Curt Arnold - -Clears the current document using HTMLDocument.open immediately followed by close. - -2002-03-18 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument18.xml.kfail b/test/testcases/tests/level1/html/HTMLDocument18.xml.kfail new file mode 100644 index 0000000..7454a15 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument18.xml.kfail @@ -0,0 +1,32 @@ + + + + + + + +HTMLDocument18 +Curt Arnold + +Calls HTMLDocument.close on a document that has not been opened for modification. + +2002-03-18 + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument18.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument18.xml.notimpl deleted file mode 100644 index 7454a15..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument18.xml.notimpl +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - -HTMLDocument18 -Curt Arnold - -Calls HTMLDocument.close on a document that has not been opened for modification. - -2002-03-18 - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument19.xml.kfail b/test/testcases/tests/level1/html/HTMLDocument19.xml.kfail new file mode 100644 index 0000000..3fa1a81 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument19.xml.kfail @@ -0,0 +1,51 @@ + + + + + + + +HTMLDocument19 +Curt Arnold + +Replaces the current document with a valid HTML document using HTMLDocument.open, write and close. + +2002-03-18 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument19.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument19.xml.notimpl deleted file mode 100644 index 3fa1a81..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument19.xml.notimpl +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - -HTMLDocument19 -Curt Arnold - -Replaces the current document with a valid HTML document using HTMLDocument.open, write and close. - -2002-03-18 - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument20.xml.kfail b/test/testcases/tests/level1/html/HTMLDocument20.xml.kfail new file mode 100644 index 0000000..0b03356 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument20.xml.kfail @@ -0,0 +1,51 @@ + + + + + + + +HTMLDocument20 +Curt Arnold + +Replaces the current document with a valid HTML document using HTMLDocument.open, writeln and close. + +2002-03-18 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument20.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument20.xml.notimpl deleted file mode 100644 index 0b03356..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument20.xml.notimpl +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - -HTMLDocument20 -Curt Arnold - -Replaces the current document with a valid HTML document using HTMLDocument.open, writeln and close. - -2002-03-18 - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLDocument21.xml.kfail b/test/testcases/tests/level1/html/HTMLDocument21.xml.kfail new file mode 100644 index 0000000..4942f45 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLDocument21.xml.kfail @@ -0,0 +1,60 @@ + + + + + + + +HTMLDocument21 +Curt Arnold + +Replaces the current document checks that writeln adds a new line. + +2002-03-18 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLDocument21.xml.notimpl b/test/testcases/tests/level1/html/HTMLDocument21.xml.notimpl deleted file mode 100644 index 4942f45..0000000 --- a/test/testcases/tests/level1/html/HTMLDocument21.xml.notimpl +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - -HTMLDocument21 -Curt Arnold - -Replaces the current document checks that writeln adds a new line. - -2002-03-18 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/doc01.xml b/test/testcases/tests/level1/html/doc01.xml new file mode 100644 index 0000000..cb0c897 --- /dev/null +++ b/test/testcases/tests/level1/html/doc01.xml @@ -0,0 +1,34 @@ + + + + + + +doc01 +Netscape + +Retrieve the title attribute of HTMLDocument and examine it's value. + +Sivakiran Tummala +2002-02-08 + + + + + + +<assertEquals actual="vtitle" expected='"NIST DOM HTML Test - Anchor"' id="titleLink" ignoreCase="false"/> +</test> diff --git a/test/testcases/tests/level1/html/doc01.xml.notimpl b/test/testcases/tests/level1/html/doc01.xml.notimpl deleted file mode 100644 index cb0c897..0000000 --- a/test/testcases/tests/level1/html/doc01.xml.notimpl +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - -Copyright (c) 2001 World Wide Web Consortium, -(Massachusetts Institute of Technology, Institut National de -Recherche en Informatique et en Automatique, Keio University). All -Rights Reserved. This program is distributed under the W3C's Software -Intellectual Property License. This program is distributed in the -hope that it will be useful, but WITHOUT ANY WARRANTY; without even -the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. - -See W3C License http://www.w3.org/Consortium/Legal/ for more details. - ---> -<!DOCTYPE test SYSTEM "dom1.dtd"> -<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="doc01"> -<metadata> -<title>doc01 -Netscape - -Retrieve the title attribute of HTMLDocument and examine it's value. - -Sivakiran Tummala -2002-02-08 - - - - - - -<assertEquals actual="vtitle" expected='"NIST DOM HTML Test - Anchor"' id="titleLink" ignoreCase="false"/> -</test> -- cgit v1.2.3 From 067d862e55500d89e8e96637a4678cf25cae478b Mon Sep 17 00:00:00 2001 From: Rupinder Singh Khokhar <rsk1coder99@gmail.com> Date: Mon, 9 Jun 2014 09:33:23 +0530 Subject: HTMLCollection --- src/html/html_collection.c | 25 +++++++-- src/html/html_document.c | 1 + .../tests/level1/html/HTMLCollection04.xml | 59 ++++++++++++++++++++++ .../tests/level1/html/HTMLCollection04.xml.kfail | 59 ---------------------- .../tests/level1/html/HTMLCollection04.xml.notimpl | 59 ---------------------- .../tests/level1/html/HTMLCollection05.xml | 46 +++++++++++++++++ .../tests/level1/html/HTMLCollection05.xml.kfail | 46 ----------------- .../tests/level1/html/HTMLCollection05.xml.notimpl | 46 ----------------- .../tests/level1/html/HTMLCollection06.xml | 50 ++++++++++++++++++ .../tests/level1/html/HTMLCollection06.xml.notimpl | 50 ------------------ .../tests/level1/html/HTMLCollection07.xml | 49 ++++++++++++++++++ .../tests/level1/html/HTMLCollection07.xml.notimpl | 49 ------------------ .../tests/level1/html/HTMLCollection08.xml | 49 ++++++++++++++++++ .../tests/level1/html/HTMLCollection08.xml.notimpl | 49 ------------------ .../tests/level1/html/HTMLCollection09.xml | 47 +++++++++++++++++ .../tests/level1/html/HTMLCollection09.xml.kfail | 47 ----------------- .../tests/level1/html/HTMLCollection09.xml.notimpl | 47 ----------------- .../tests/level1/html/HTMLCollection10.xml | 51 +++++++++++++++++++ .../tests/level1/html/HTMLCollection10.xml.kfail | 51 ------------------- .../tests/level1/html/HTMLCollection11.xml | 51 +++++++++++++++++++ .../tests/level1/html/HTMLCollection11.xml.kfail | 51 ------------------- .../tests/level1/html/HTMLCollection12.xml.kfail | 50 ------------------ 22 files changed, 424 insertions(+), 608 deletions(-) create mode 100644 test/testcases/tests/level1/html/HTMLCollection04.xml delete mode 100644 test/testcases/tests/level1/html/HTMLCollection04.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLCollection04.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLCollection05.xml delete mode 100644 test/testcases/tests/level1/html/HTMLCollection05.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLCollection05.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLCollection06.xml delete mode 100644 test/testcases/tests/level1/html/HTMLCollection06.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLCollection07.xml delete mode 100644 test/testcases/tests/level1/html/HTMLCollection07.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLCollection08.xml delete mode 100644 test/testcases/tests/level1/html/HTMLCollection08.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLCollection09.xml delete mode 100644 test/testcases/tests/level1/html/HTMLCollection09.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLCollection09.xml.notimpl create mode 100644 test/testcases/tests/level1/html/HTMLCollection10.xml delete mode 100644 test/testcases/tests/level1/html/HTMLCollection10.xml.kfail create mode 100644 test/testcases/tests/level1/html/HTMLCollection11.xml delete mode 100644 test/testcases/tests/level1/html/HTMLCollection11.xml.kfail delete mode 100644 test/testcases/tests/level1/html/HTMLCollection12.xml.kfail (limited to 'src/html/html_document.c') diff --git a/src/html/html_collection.c b/src/html/html_collection.c index 2b4d8aa..43a26c5 100644 --- a/src/html/html_collection.c +++ b/src/html/html_collection.c @@ -11,6 +11,7 @@ #include <libwapcaplet/libwapcaplet.h> #include "html/html_collection.h" +#include "html/html_document.h" #include "core/node.h" #include "core/element.h" @@ -182,7 +183,7 @@ dom_exception dom_html_collection_item(dom_html_collection *col, /* No children and siblings */ struct dom_node_internal *parent = n->parent; - while (parent != col->root && + while (n != col->root && n == parent->last_child) { n = parent; parent = parent->parent; @@ -212,8 +213,8 @@ dom_exception dom_html_collection_named_item(dom_html_collection *col, dom_string *name, struct dom_node **node) { struct dom_node_internal *n = col->root; + dom_html_document *doc = (dom_html_document *)dom_node_get_owner(n); dom_exception err; - while (n != NULL) { if (n->type == DOM_ELEMENT_NODE && col->ic(n, col->ctx) == true) { @@ -235,6 +236,22 @@ dom_exception dom_html_collection_named_item(dom_html_collection *col, if (id != NULL) dom_string_unref(id); + + /* Check for Name attr if id not matched/found */ + dom_string *id_name = NULL; + err = _dom_element_get_attribute((dom_element *)n, + doc->memoised[hds_name], &id_name); + if(err != DOM_NO_ERR) { + return err; + } + if (id_name != NULL && dom_string_isequal(name, id_name)) { + *node = (struct dom_node *) n; + dom_node_ref(n); + dom_string_unref(id_name); + + return DOM_NO_ERR; + } + } /* Depth first iterating */ @@ -246,13 +263,13 @@ dom_exception dom_html_collection_named_item(dom_html_collection *col, /* No children and siblings */ struct dom_node_internal *parent = n->parent; - while (parent != col->root && + while (n != col->root && n == parent->last_child) { n = parent; parent = parent->parent; } - if (parent == col->root) + if (n == col->root) n = NULL; else n = n->next; diff --git a/src/html/html_document.c b/src/html/html_document.c index 83c4801..cd062a2 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -907,6 +907,7 @@ dom_exception _dom_html_document_set_cookie(dom_html_document *doc, { UNUSED(doc); UNUSED(cookie); + /*todo implement this after updating client interface */ return DOM_NOT_SUPPORTED_ERR; } diff --git a/test/testcases/tests/level1/html/HTMLCollection04.xml b/test/testcases/tests/level1/html/HTMLCollection04.xml new file mode 100644 index 0000000..5d78405 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLCollection04.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet href="test-to-html.xml" type="text/xml"?> + +<!-- + +Copyright (c) 2001 World Wide Web Consortium, +(Massachusetts Institute of Technology, Institut National de +Recherche en Informatique et en Automatique, Keio University). All +Rights Reserved. This program is distributed under the W3C's Software +Intellectual Property License. This program is distributed in the +hope that it will be useful, but WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. + +See W3C License http://www.w3.org/Consortium/Legal/ for more details. + +--> +<!DOCTYPE test SYSTEM "dom1.dtd"> +<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLCollection04"> +<metadata> +<title>HTMLCollection04 +NIST + + HTMLCollections are live, they are automatically updated when the + underlying document is changed. + + Create a HTMLCollection object by invoking the rows attribute of the + first TABLE element and examine its length, then add a new row and + re-examine the length. + +Rick Rivello +2002-05-01 + + + + + + + + + + + + +4 +5 + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLCollection04.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection04.xml.kfail deleted file mode 100644 index 5d78405..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection04.xml.kfail +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -HTMLCollection04 -NIST - - HTMLCollections are live, they are automatically updated when the - underlying document is changed. - - Create a HTMLCollection object by invoking the rows attribute of the - first TABLE element and examine its length, then add a new row and - re-examine the length. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - -4 -5 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLCollection04.xml.notimpl b/test/testcases/tests/level1/html/HTMLCollection04.xml.notimpl deleted file mode 100644 index 5d78405..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection04.xml.notimpl +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - -HTMLCollection04 -NIST - - HTMLCollections are live, they are automatically updated when the - underlying document is changed. - - Create a HTMLCollection object by invoking the rows attribute of the - first TABLE element and examine its length, then add a new row and - re-examine the length. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - -4 -5 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLCollection05.xml b/test/testcases/tests/level1/html/HTMLCollection05.xml new file mode 100644 index 0000000..ffb7d13 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLCollection05.xml @@ -0,0 +1,46 @@ + + + + + + + +HTMLCollection05 +NIST + + The length attribute specifies the length or size of the list. + + Retrieve the first TABLE element and create a HTMLCollection by invoking + the "rows" attribute. Retrieve the length attribute of the HTMLCollection + object. + +Rick Rivello +2002-05-01 + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLCollection05.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection05.xml.kfail deleted file mode 100644 index ffb7d13..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection05.xml.kfail +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - -HTMLCollection05 -NIST - - The length attribute specifies the length or size of the list. - - Retrieve the first TABLE element and create a HTMLCollection by invoking - the "rows" attribute. Retrieve the length attribute of the HTMLCollection - object. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLCollection05.xml.notimpl b/test/testcases/tests/level1/html/HTMLCollection05.xml.notimpl deleted file mode 100644 index ffb7d13..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection05.xml.notimpl +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - -HTMLCollection05 -NIST - - The length attribute specifies the length or size of the list. - - Retrieve the first TABLE element and create a HTMLCollection by invoking - the "rows" attribute. Retrieve the length attribute of the HTMLCollection - object. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLCollection06.xml b/test/testcases/tests/level1/html/HTMLCollection06.xml new file mode 100644 index 0000000..1026310 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLCollection06.xml @@ -0,0 +1,50 @@ + + + + + + + +HTMLCollection06 +NIST + + An item(index) method retrieves an item specified by ordinal index + (Test for index=0). + + Retrieve the first TABLE element and create a HTMLCollection by invoking + the "rows" attribute. The item located at ordinal index 0 is further + retrieved and its "rowIndex" attribute is examined. + +Rick Rivello +2002-05-01 + + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLCollection06.xml.notimpl b/test/testcases/tests/level1/html/HTMLCollection06.xml.notimpl deleted file mode 100644 index 1026310..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection06.xml.notimpl +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - -HTMLCollection06 -NIST - - An item(index) method retrieves an item specified by ordinal index - (Test for index=0). - - Retrieve the first TABLE element and create a HTMLCollection by invoking - the "rows" attribute. The item located at ordinal index 0 is further - retrieved and its "rowIndex" attribute is examined. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLCollection07.xml b/test/testcases/tests/level1/html/HTMLCollection07.xml new file mode 100644 index 0000000..55e392f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLCollection07.xml @@ -0,0 +1,49 @@ + + + + + + + +HTMLCollection07 +NIST + + An item(index) method retrieves an item specified by ordinal index + (Test for index=3). + + Retrieve the first TABLE element and create a HTMLCollection by invoking + the "rows" attribute. The item located at ordinal index 3 is further + retrieved and its "rowIndex" attribute is examined. + +Rick Rivello +2002-05-01 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLCollection07.xml.notimpl b/test/testcases/tests/level1/html/HTMLCollection07.xml.notimpl deleted file mode 100644 index e0a21a2..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection07.xml.notimpl +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - -HTMLCollection07 -NIST - - An item(index) method retrieves an item specified by ordinal index - (Test for index=3). - - Retrieve the first TABLE element and create a HTMLCollection by invoking - the "rows" attribute. The item located at ordinal index 3 is further - retrieved and its "rowIndex" attribute is examined. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLCollection08.xml b/test/testcases/tests/level1/html/HTMLCollection08.xml new file mode 100644 index 0000000..8f7f138 --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLCollection08.xml @@ -0,0 +1,49 @@ + + + + + + + +HTMLCollection08 +NIST + + Nodes in a HTMLCollection object are numbered in tree order. + (Depth-first traversal order). + + Retrieve the first TABLE element and create a HTMLCollection by invoking + the "rows" attribute. Access the item in the third ordinal index. The + resulting rowIndex attribute is examined and should be two. + +Rick Rivello +2002-05-01 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLCollection08.xml.notimpl b/test/testcases/tests/level1/html/HTMLCollection08.xml.notimpl deleted file mode 100644 index dfc2e10..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection08.xml.notimpl +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - -HTMLCollection08 -NIST - - Nodes in a HTMLCollection object are numbered in tree order. - (Depth-first traversal order). - - Retrieve the first TABLE element and create a HTMLCollection by invoking - the "rows" attribute. Access the item in the third ordinal index. The - resulting rowIndex attribute is examined and should be two. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLCollection09.xml b/test/testcases/tests/level1/html/HTMLCollection09.xml new file mode 100644 index 0000000..f81e7af --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLCollection09.xml @@ -0,0 +1,47 @@ + + + + + + + +HTMLCollection09 +NIST + + The item(index) method returns null if the index is out of range. + + Retrieve the first TABLE element and create a HTMLCollection by invoking + the "rows" attribute. Invoke the item(index) method with an index + of 5. This index is out of range and should return null. + +Rick Rivello +2002-05-01 + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLCollection09.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection09.xml.kfail deleted file mode 100644 index f81e7af..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection09.xml.kfail +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - -HTMLCollection09 -NIST - - The item(index) method returns null if the index is out of range. - - Retrieve the first TABLE element and create a HTMLCollection by invoking - the "rows" attribute. Invoke the item(index) method with an index - of 5. This index is out of range and should return null. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLCollection09.xml.notimpl b/test/testcases/tests/level1/html/HTMLCollection09.xml.notimpl deleted file mode 100644 index f81e7af..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection09.xml.notimpl +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - -HTMLCollection09 -NIST - - The item(index) method returns null if the index is out of range. - - Retrieve the first TABLE element and create a HTMLCollection by invoking - the "rows" attribute. Invoke the item(index) method with an index - of 5. This index is out of range and should return null. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLCollection10.xml b/test/testcases/tests/level1/html/HTMLCollection10.xml new file mode 100644 index 0000000..78f4c9a --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLCollection10.xml @@ -0,0 +1,51 @@ + + + + + + + +HTMLCollection10 +NIST + + The namedItem(name) method retrieves a node using a name. It first + searches for a node with a matching id attribute. If it doesn't find + one, it then searches for a Node with a matching name attribute, but only + on those elements that are allowed a name attribute. + + Retrieve the first FORM element and create a HTMLCollection by invoking + the elements attribute. The first SELECT element is further retrieved + using the elements name attribute since the id attribute doesn't match. + +Rick Rivello +2002-05-01 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLCollection10.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection10.xml.kfail deleted file mode 100644 index 78f4c9a..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection10.xml.kfail +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - -HTMLCollection10 -NIST - - The namedItem(name) method retrieves a node using a name. It first - searches for a node with a matching id attribute. If it doesn't find - one, it then searches for a Node with a matching name attribute, but only - on those elements that are allowed a name attribute. - - Retrieve the first FORM element and create a HTMLCollection by invoking - the elements attribute. The first SELECT element is further retrieved - using the elements name attribute since the id attribute doesn't match. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLCollection11.xml b/test/testcases/tests/level1/html/HTMLCollection11.xml new file mode 100644 index 0000000..ebf217f --- /dev/null +++ b/test/testcases/tests/level1/html/HTMLCollection11.xml @@ -0,0 +1,51 @@ + + + + + + + +HTMLCollection11 +NIST + + The namedItem(name) method retrieves a node using a name. It first + searches for a node with a matching id attribute. If it doesn't find + one, it then searches for a Node with a matching name attribute, but only + on those elements that are allowed a name attribute. + + Retrieve the first FORM element and create a HTMLCollection by invoking + the elements attribute. The first SELECT element is further retrieved + using the elements id attribute. + +Rick Rivello +2002-05-01 + + + + + + + + + + + + + + + + + diff --git a/test/testcases/tests/level1/html/HTMLCollection11.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection11.xml.kfail deleted file mode 100644 index ebf217f..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection11.xml.kfail +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - -HTMLCollection11 -NIST - - The namedItem(name) method retrieves a node using a name. It first - searches for a node with a matching id attribute. If it doesn't find - one, it then searches for a Node with a matching name attribute, but only - on those elements that are allowed a name attribute. - - Retrieve the first FORM element and create a HTMLCollection by invoking - the elements attribute. The first SELECT element is further retrieved - using the elements id attribute. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLCollection12.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection12.xml.kfail deleted file mode 100644 index d7feb3d..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection12.xml.kfail +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - -HTMLCollection12 -NIST - - The namedItem(name) method retrieves a node using a name. It first - searches for a node with a matching id attribute. If it doesn't find - one, it then searches for a Node with a matching name attribute, but only - on those elements that are allowed a name attribute. If there isn't - a matching node the method returns null. - - Retrieve the first FORM element and create a HTMLCollection by invoking - the elements attribute. The method returns null since there is not a - match of the name or id attribute. - -Rick Rivello -2002-05-01 - - - - - - - - - - - - - - - -- cgit v1.2.3 From d293e6e7ffdc9224ffba9593f4cc8f73701f2cd5 Mon Sep 17 00:00:00 2001 From: Rupinder Singh Khokhar Date: Tue, 10 Jun 2014 20:17:18 +0530 Subject: This tag gave me a headache for a day or two :P. The problem is that the parser isnt handling the isindex element properly. I have left this tag incomplete right now. Will look at it later on. --- Makefile | 1 + include/dom/dom.h | 1 + include/dom/html/html_isindex_element.h | 1 + src/html/Makefile | 3 +- src/html/html_document.c | 4 ++ src/html/html_isindex_element.c | 81 ++++++++++++++++++++++----------- src/html/html_isindex_element.h | 4 +- 7 files changed, 65 insertions(+), 30 deletions(-) (limited to 'src/html/html_document.c') diff --git a/Makefile b/Makefile index 569e554..bcbc27b 100644 --- a/Makefile +++ b/Makefile @@ -134,6 +134,7 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_style_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_frameset_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_frame_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_iframe_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_isindex_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) diff --git a/include/dom/dom.h b/include/dom/dom.h index 1392ee0..0dba25d 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -93,6 +93,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_isindex_element.h b/include/dom/html/html_isindex_element.h index 966b2d2..d41a149 100644 --- a/include/dom/html/html_isindex_element.h +++ b/include/dom/html/html_isindex_element.h @@ -9,6 +9,7 @@ #define dom_html_isindex_element_h_ #include +#include struct dom_html_form_element; diff --git a/src/html/Makefile b/src/html/Makefile index 95550ab..c98ce9a 100644 --- a/src/html/Makefile +++ b/src/html/Makefile @@ -18,9 +18,8 @@ DIR_SOURCES := \ html_map_element.c html_script_element.c html_tablecaption_element.c \ html_tablecell_element.c html_tablecol_element.c html_tablesection_element.c \ html_table_element.c html_tablerow_element.c html_frameset_element.c \ - html_frame_element.c html_iframe_element.c + html_frame_element.c html_iframe_element.c html_isindex_element.c \ UNINMPLEMENTED_SOURCES := \ - html_isindex_element.c \ include $(NSBUILD)/Makefile.subdir diff --git a/src/html/html_document.c b/src/html/html_document.c index cd062a2..6adfedd 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -60,6 +60,7 @@ #include "html/html_frameset_element.h" #include "html/html_frame_element.h" #include "html/html_iframe_element.h" +#include "html/html_isindex_element.h" #include "core/attr.h" #include "core/string.h" @@ -378,6 +379,9 @@ _dom_html_document_create_element_internal(dom_html_document *html, } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_IFRAME])) { exc = _dom_html_iframe_element_create(html, namespace, prefix, (dom_html_iframe_element **) result); + } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_ISINDEX])) { + exc = _dom_html_isindex_element_create(html, namespace, prefix, + (dom_html_isindex_element **) result); } else { exc = _dom_html_element_create(html, tag_name, namespace, prefix, result); diff --git a/src/html/html_isindex_element.c b/src/html/html_isindex_element.c index 6dc96b9..e79e011 100644 --- a/src/html/html_isindex_element.c +++ b/src/html/html_isindex_element.c @@ -7,9 +7,13 @@ #include +#include + +#include "html/html_document.h" #include "html/html_isindex_element.h" #include "core/node.h" +#include "core/attr.h" #include "utils/utils.h" static struct dom_element_protected_vtable _protect_vtable = { @@ -22,55 +26,41 @@ static struct dom_element_protected_vtable _protect_vtable = { /** * Create a dom_html_isindex_element object * - * \param doc The document object - * \param form The form element which contains this element - * \param ele The returned element object + * \param doc The document object + * \param ele The returned element object * \return DOM_NO_ERR on success, appropriate dom_exception on failure. */ dom_exception _dom_html_isindex_element_create(struct dom_html_document *doc, - struct dom_html_form_element *form, + dom_string *namespace, dom_string *prefix, struct dom_html_isindex_element **ele) { struct dom_node_internal *node; - *ele = malloc(sizeof(dom_html_isindex_element)); if (*ele == NULL) return DOM_NO_MEM_ERR; - + /* Set up vtables */ node = (struct dom_node_internal *) *ele; node->base.vtable = &_dom_html_element_vtable; node->vtable = &_protect_vtable; - return _dom_html_isindex_element_initialise(doc, form, *ele); + return _dom_html_isindex_element_initialise(doc, namespace, prefix, *ele); } /** * Initialise a dom_html_isindex_element object * - * \param doc The document object - * \param form The form element which contains this element - * \param ele The dom_html_isindex_element object + * \param doc The document object + * \param ele The dom_html_isindex_element object * \return DOM_NO_ERR on success, appropriate dom_exception on failure. */ dom_exception _dom_html_isindex_element_initialise(struct dom_html_document *doc, - struct dom_html_form_element *form, + dom_string *namespace, dom_string *prefix, struct dom_html_isindex_element *ele) { - dom_string *name = NULL; - dom_exception err; - - UNUSED(form); - - err = dom_string_create((const uint8_t *) "ISINDEX", SLEN("ISINDEX"), - &name); - if (err != DOM_NO_ERR) - return err; - - err = _dom_html_element_initialise(doc, &ele->base, name, NULL, NULL); - dom_string_unref(name); - - return err; + return _dom_html_element_initialise(doc, &ele->base, + doc->memoised[hds_ISINDEX], + namespace, prefix); } /** @@ -125,7 +115,46 @@ dom_exception _dom_html_isindex_element_copy(dom_node_internal *old, return _dom_html_element_copy(old, copy); } - +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_isindex_element_get_##attr( \ + dom_html_isindex_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_isindex_element_set_##attr( \ + dom_html_isindex_element *element, \ + dom_string *attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_set_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } + +#define SIMPLE_GET_SET(attr) SIMPLE_GET(attr) SIMPLE_SET(attr) +SIMPLE_GET_SET(prompt); /*-----------------------------------------------------------------------*/ /* Public APIs */ diff --git a/src/html/html_isindex_element.h b/src/html/html_isindex_element.h index 12ad26e..a39170b 100644 --- a/src/html/html_isindex_element.h +++ b/src/html/html_isindex_element.h @@ -19,12 +19,12 @@ struct dom_html_isindex_element { /* Create a dom_html_isindex_element object */ dom_exception _dom_html_isindex_element_create(struct dom_html_document *doc, - struct dom_html_form_element *form, + dom_string *namespace, dom_string *prefix, struct dom_html_isindex_element **ele); /* Initialise a dom_html_isindex_element object */ dom_exception _dom_html_isindex_element_initialise(struct dom_html_document *doc, - struct dom_html_form_element *form, + dom_string *namespace, dom_string *prefix, struct dom_html_isindex_element *ele); /* Finalise a dom_html_isindex_element object */ -- cgit v1.2.3