summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrsk1994 <rsk1coder99@gmail.com>2014-05-14 14:44:31 (GMT)
committer Rupinder Singh Khokhar <rsk1coder99@gmail.com>2014-06-10 22:57:07 (GMT)
commit7bf86def02f275eac1c1f0c634461e9aed545a14 (patch)
treec1e4837c185ee38a6eb16ce0f4e7c61fa611bcc7
parent8e45e8ddbec0eb239f780254d5658160ecb0387c (diff)
downloadlibdom-7bf86def02f275eac1c1f0c634461e9aed545a14.tar.gz
libdom-7bf86def02f275eac1c1f0c634461e9aed545a14.tar.bz2
Including Level2 tests & the Basefont Element , also a minor change in level2 basefontElement test
-rw-r--r--Makefile1
-rw-r--r--include/dom/dom.h1
-rw-r--r--include/dom/html/html_basefont_element.h27
-rw-r--r--src/html/Makefile5
-rw-r--r--src/html/TODO4
-rw-r--r--src/html/html_basefont_element.c177
-rw-r--r--src/html/html_basefont_element.h45
-rw-r--r--src/html/html_document.c4
-rw-r--r--test/Makefile3
-rw-r--r--test/testcases/tests/level1/html/HTMLFontElement01.xml (copied from test/testcases/tests/level2/html/HTMLAppletElement07.xml)84
-rw-r--r--test/testcases/tests/level1/html/HTMLFontElement02.xml (copied from test/testcases/tests/level2/html/HTMLAppletElement07.xml)29
-rw-r--r--test/testcases/tests/level1/html/HTMLFontElement03.xml (copied from test/testcases/tests/level2/html/HTMLAppletElement07.xml)84
-rw-r--r--test/testcases/tests/level2/html/HTMLAppletElement07.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLAppletElement07.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLAppletElement09.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLAppletElement09.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLBaseFontElement03.xml2
-rw-r--r--test/testcases/tests/level2/html/HTMLBodyElement07.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLBodyElement07.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLBodyElement08.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLBodyElement08.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLBodyElement09.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLBodyElement09.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLBodyElement10.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLBodyElement10.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLBodyElement11.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLBodyElement11.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLBodyElement12.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLBodyElement12.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLDocument22.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLDocument22.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLDocument23.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLDocument23.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLDocument24.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLDocument24.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLDocument25.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLDocument25.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLDocument26.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLDocument26.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLDocument27.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLDocument27.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLFrameElement09.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLFrameElement09.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLIFrameElement11.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLIFrameElement11.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLImageElement05.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLImageElement05.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLImageElement06.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLImageElement06.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLImageElement11.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLImageElement11.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLImageElement12.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLImageElement12.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLInputElement13.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLInputElement13.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLObjectElement11.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLObjectElement11.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLObjectElement16.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLObjectElement16.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLObjectElement20.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLObjectElement20.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLOptionsCollection01.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLOptionsCollection01.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLOptionsCollection02.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLOptionsCollection02.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLOptionsCollection03.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLOptionsCollection03.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLOptionsCollection04.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLOptionsCollection04.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLOptionsCollection05.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLOptionsCollection05.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLOptionsCollection06.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLOptionsCollection06.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLOptionsCollection07.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLOptionsCollection07.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLSelectElement20.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLSelectElement20.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableElement34.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableElement34.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableElement35.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableElement35.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableElement36.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableElement36.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableElement37.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableElement37.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableElement38.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableElement38.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableElement39.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableElement39.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableElement40.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableElement40.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableRowElement15.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableRowElement15.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableRowElement16.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableRowElement16.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableRowElement17.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableRowElement17.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableRowElement18.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableRowElement18.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableRowElement19.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableRowElement19.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableRowElement20.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableRowElement20.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableRowElement21.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableRowElement21.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableSectionElement25.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableSectionElement25.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableSectionElement26.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableSectionElement26.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableSectionElement27.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableSectionElement27.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableSectionElement28.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableSectionElement28.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableSectionElement29.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableSectionElement29.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableSectionElement30.xml)0
-rw-r--r--test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail (renamed from test/testcases/tests/level2/html/HTMLTableSectionElement31.xml)0
-rw-r--r--test/testcases/tests/level2/html/files/basefont.html12
-rw-r--r--test/testcases/tests/level2/html/files/basefont.xhtml14
-rw-r--r--test/testcases/tests/level2/html/files/basefont.xml14
-rw-r--r--test/testcases/tests/level2/html/hasFeature02.xml.kfail (renamed from test/testcases/tests/level2/html/hasFeature02.xml)0
-rw-r--r--test/testcases/tests/level2/html/hasFeature03.xml.kfail (renamed from test/testcases/tests/level2/html/hasFeature03.xml)0
-rw-r--r--test/testcases/tests/level2/html/hasFeature04.xml.kfail (renamed from test/testcases/tests/level2/html/hasFeature04.xml)0
-rw-r--r--test/testcases/tests/level2/html/hasFeature05.xml.kfail (renamed from test/testcases/tests/level2/html/hasFeature05.xml)0
-rw-r--r--test/testcases/tests/level2/html/hasFeature06.xml.kfail (renamed from test/testcases/tests/level2/html/hasFeature06.xml)0
-rw-r--r--test/testcases/tests/level2/html/metadata.xml.kfail (renamed from test/testcases/tests/level2/html/metadata.xml)0
-rw-r--r--test/testcases/tests/level2/html/object08.xml.kfail (renamed from test/testcases/tests/level2/html/object08.xml)0
-rw-r--r--test/testcases/tests/level2/html/object13.xml.kfail (renamed from test/testcases/tests/level2/html/object13.xml)0
77 files changed, 403 insertions, 103 deletions
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 <dom/html/html_font_element.h>
#include <dom/html/html_mod_element.h>
#include <dom/html/html_anchor_element.h>
+#include <dom/html/html_basefont_element.h>
/* DOM Events header */
#include <dom/events/events.h>
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 <struggleyb.nku@gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar <rsk1coder99@gmail.com>
*/
+#ifndef dom_html_base_font_element_h_
+#define dom_html_base_font_element_h_
+#include <stdbool.h>
+#include <dom/core/exceptions.h>
+#include <dom/core/string.h>
+
+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 <struggleyb.nku@gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar<rsk1coder99@gmail.com>
*/
+#include <assert.h>
+#include <stdlib.h>
+#include <dom/html/html_basefont_element.h>
+
+#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 <struggleyb.nku@gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar <rsk1coder99@gmail.com>
*/
+#ifndef dom_internal_html_basefont_element_h_
+#define dom_internal_html_basefont_element_h_
+
+#include <dom/html/html_basefont_element.h>
+#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/level2/html/HTMLAppletElement07.xml b/test/testcases/tests/level1/html/HTMLFontElement01.xml
index 07a6c0d..48f0994 100644
--- a/test/testcases/tests/level2/html/HTMLAppletElement07.xml
+++ b/test/testcases/tests/level1/html/HTMLFontElement01.xml
@@ -1,42 +1,42 @@
-<?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="HTMLAppletElement07">
-<metadata>
-<title>HTMLAppletElement07</title>
-<creator>NIST</creator>
-<description>
- 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.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2001-12-03</date>
-<subject resource="http://www.w3.org/TR/DOM-Level-2-HTML/html#ID-1567197"/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vhspace" type="int"/>
-<var name="doc" type="Node"/>
-<load var="doc" href="applet" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname="&quot;applet&quot;"/>
-<assertSize collection="nodeList" size="1" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<hspace interface="HTMLAppletElement" obj="testNode" var="vhspace"/>
-<assertEquals actual="vhspace" expected="0" id="hspaceLink" ignoreCase="false"/>
-</test>
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" 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="HTMLFontElement01">
+<metadata>
+<title>HTMLFontElement01</title>
+<creator>NIST</creator>
+<description>
+ The color attribute specifies the font's color.
+
+ Retrieve the color attribute and examine its value.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-53532975"/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vcolor" type="DOMString" />
+<var name="doc" type="Document"/>
+<load var="doc" href="font" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"font"'/>
+<assertSize collection="nodeList" size="1" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<color interface="HTMLFontElement" obj="testNode" var="vcolor"/>
+<assertEquals actual="vcolor" expected='"#000000"' id="colorLink" ignoreCase="false"/>
+</test>
diff --git a/test/testcases/tests/level2/html/HTMLAppletElement07.xml b/test/testcases/tests/level1/html/HTMLFontElement02.xml
index 07a6c0d..48e405e 100644
--- a/test/testcases/tests/level2/html/HTMLAppletElement07.xml
+++ b/test/testcases/tests/level1/html/HTMLFontElement02.xml
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
<!--
@@ -14,29 +15,29 @@ 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="HTMLAppletElement07">
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLFontElement02">
<metadata>
-<title>HTMLAppletElement07</title>
+<title>HTMLFontElement02</title>
<creator>NIST</creator>
<description>
- The hspace attribute specifies the horizontal space to the left
- and right of this image, applet, or object.
+ The face attribute specifies the font's face identifier.
- Retrieve the hspace attribute and examine it's value.
+ Retrieve the face attribute and examine its value.
</description>
<contributor>Mary Brady</contributor>
-<date qualifier="created">2001-12-03</date>
-<subject resource="http://www.w3.org/TR/DOM-Level-2-HTML/html#ID-1567197"/>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-55715655"/>
+<subject resource="http://www.w3.org/TR/DOM-Level-2-HTML/html#HTML-HTMLFormElement-length"/>
</metadata>
<var name="nodeList" type="NodeList"/>
<var name="testNode" type="Node"/>
-<var name="vhspace" type="int"/>
-<var name="doc" type="Node"/>
-<load var="doc" href="applet" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname="&quot;applet&quot;"/>
+<var name="vface" type="DOMString" />
+<var name="doc" type="Document"/>
+<load var="doc" href="font" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"font"'/>
<assertSize collection="nodeList" size="1" id="Asize"/>
<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<hspace interface="HTMLAppletElement" obj="testNode" var="vhspace"/>
-<assertEquals actual="vhspace" expected="0" id="hspaceLink" ignoreCase="false"/>
+<face interface="HTMLFontElement" obj="testNode" var="vface"/>
+<assertEquals actual="vface" expected='"arial,helvetica"' id="faceLink" ignoreCase="false"/>
</test>
diff --git a/test/testcases/tests/level2/html/HTMLAppletElement07.xml b/test/testcases/tests/level1/html/HTMLFontElement03.xml
index 07a6c0d..82ced1a 100644
--- a/test/testcases/tests/level2/html/HTMLAppletElement07.xml
+++ b/test/testcases/tests/level1/html/HTMLFontElement03.xml
@@ -1,42 +1,42 @@
-<?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="HTMLAppletElement07">
-<metadata>
-<title>HTMLAppletElement07</title>
-<creator>NIST</creator>
-<description>
- 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.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2001-12-03</date>
-<subject resource="http://www.w3.org/TR/DOM-Level-2-HTML/html#ID-1567197"/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vhspace" type="int"/>
-<var name="doc" type="Node"/>
-<load var="doc" href="applet" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname="&quot;applet&quot;"/>
-<assertSize collection="nodeList" size="1" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<hspace interface="HTMLAppletElement" obj="testNode" var="vhspace"/>
-<assertEquals actual="vhspace" expected="0" id="hspaceLink" ignoreCase="false"/>
-</test>
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" 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="HTMLFontElement03">
+<metadata>
+<title>HTMLFontElement03</title>
+<creator>NIST</creator>
+<description>
+ The size attribute specifies the font's size.
+
+ Retrieve the size attribute and examine its value.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-90127284"/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vsize" type="DOMString" />
+<var name="doc" type="Document"/>
+<load var="doc" href="font" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"font"'/>
+<assertSize collection="nodeList" size="1" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<size interface="HTMLFontElement" obj="testNode" var="vsize"/>
+<assertEquals actual="vsize" expected='"4"' id="sizeLink" ignoreCase="false"/>
+</test>
diff --git a/test/testcases/tests/level2/html/HTMLAppletElement07.xml b/test/testcases/tests/level2/html/HTMLAppletElement07.xml.kfail
index 07a6c0d..07a6c0d 100644
--- a/test/testcases/tests/level2/html/HTMLAppletElement07.xml
+++ b/test/testcases/tests/level2/html/HTMLAppletElement07.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLAppletElement09.xml b/test/testcases/tests/level2/html/HTMLAppletElement09.xml.kfail
index b602397..b602397 100644
--- a/test/testcases/tests/level2/html/HTMLAppletElement09.xml
+++ b/test/testcases/tests/level2/html/HTMLAppletElement09.xml.kfail
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.
<var name="nodeList" type="NodeList"/>
<var name="testNode" type="Node"/>
<var name="vsize" type="int"/>
-<var name="doc" type="Node"/>
+<var name="doc" type="Document"/>
<load var="doc" href="basefont" willBeModified="false"/>
<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname="&quot;basefont&quot;"/>
<assertSize collection="nodeList" size="1" id="Asize"/>
diff --git a/test/testcases/tests/level2/html/HTMLBodyElement07.xml b/test/testcases/tests/level2/html/HTMLBodyElement07.xml.kfail
index 2c759f8..2c759f8 100644
--- a/test/testcases/tests/level2/html/HTMLBodyElement07.xml
+++ b/test/testcases/tests/level2/html/HTMLBodyElement07.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLBodyElement08.xml b/test/testcases/tests/level2/html/HTMLBodyElement08.xml.kfail
index 50b411d..50b411d 100644
--- a/test/testcases/tests/level2/html/HTMLBodyElement08.xml
+++ b/test/testcases/tests/level2/html/HTMLBodyElement08.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLBodyElement09.xml b/test/testcases/tests/level2/html/HTMLBodyElement09.xml.kfail
index 150b4a8..150b4a8 100644
--- a/test/testcases/tests/level2/html/HTMLBodyElement09.xml
+++ b/test/testcases/tests/level2/html/HTMLBodyElement09.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLBodyElement10.xml b/test/testcases/tests/level2/html/HTMLBodyElement10.xml.kfail
index 691739e..691739e 100644
--- a/test/testcases/tests/level2/html/HTMLBodyElement10.xml
+++ b/test/testcases/tests/level2/html/HTMLBodyElement10.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLBodyElement11.xml b/test/testcases/tests/level2/html/HTMLBodyElement11.xml.kfail
index 3c83437..3c83437 100644
--- a/test/testcases/tests/level2/html/HTMLBodyElement11.xml
+++ b/test/testcases/tests/level2/html/HTMLBodyElement11.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLBodyElement12.xml b/test/testcases/tests/level2/html/HTMLBodyElement12.xml.kfail
index 6255dbb..6255dbb 100644
--- a/test/testcases/tests/level2/html/HTMLBodyElement12.xml
+++ b/test/testcases/tests/level2/html/HTMLBodyElement12.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLDocument22.xml b/test/testcases/tests/level2/html/HTMLDocument22.xml.kfail
index 414f065..414f065 100644
--- a/test/testcases/tests/level2/html/HTMLDocument22.xml
+++ b/test/testcases/tests/level2/html/HTMLDocument22.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLDocument23.xml b/test/testcases/tests/level2/html/HTMLDocument23.xml.kfail
index 7896dbd..7896dbd 100644
--- a/test/testcases/tests/level2/html/HTMLDocument23.xml
+++ b/test/testcases/tests/level2/html/HTMLDocument23.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLDocument24.xml b/test/testcases/tests/level2/html/HTMLDocument24.xml.kfail
index 186062d..186062d 100644
--- a/test/testcases/tests/level2/html/HTMLDocument24.xml
+++ b/test/testcases/tests/level2/html/HTMLDocument24.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLDocument25.xml b/test/testcases/tests/level2/html/HTMLDocument25.xml.kfail
index 42a1996..42a1996 100644
--- a/test/testcases/tests/level2/html/HTMLDocument25.xml
+++ b/test/testcases/tests/level2/html/HTMLDocument25.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLDocument26.xml b/test/testcases/tests/level2/html/HTMLDocument26.xml.kfail
index 032cead..032cead 100644
--- a/test/testcases/tests/level2/html/HTMLDocument26.xml
+++ b/test/testcases/tests/level2/html/HTMLDocument26.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLDocument27.xml b/test/testcases/tests/level2/html/HTMLDocument27.xml.kfail
index fa2b184..fa2b184 100644
--- a/test/testcases/tests/level2/html/HTMLDocument27.xml
+++ b/test/testcases/tests/level2/html/HTMLDocument27.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLFrameElement09.xml b/test/testcases/tests/level2/html/HTMLFrameElement09.xml.kfail
index d6fc5cc..d6fc5cc 100644
--- a/test/testcases/tests/level2/html/HTMLFrameElement09.xml
+++ b/test/testcases/tests/level2/html/HTMLFrameElement09.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLIFrameElement11.xml b/test/testcases/tests/level2/html/HTMLIFrameElement11.xml.kfail
index c77d2f4..c77d2f4 100644
--- a/test/testcases/tests/level2/html/HTMLIFrameElement11.xml
+++ b/test/testcases/tests/level2/html/HTMLIFrameElement11.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLImageElement05.xml b/test/testcases/tests/level2/html/HTMLImageElement05.xml.kfail
index 92e536b..92e536b 100644
--- a/test/testcases/tests/level2/html/HTMLImageElement05.xml
+++ b/test/testcases/tests/level2/html/HTMLImageElement05.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLImageElement06.xml b/test/testcases/tests/level2/html/HTMLImageElement06.xml.kfail
index 19fb7b0..19fb7b0 100644
--- a/test/testcases/tests/level2/html/HTMLImageElement06.xml
+++ b/test/testcases/tests/level2/html/HTMLImageElement06.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLImageElement11.xml b/test/testcases/tests/level2/html/HTMLImageElement11.xml.kfail
index 10f3608..10f3608 100644
--- a/test/testcases/tests/level2/html/HTMLImageElement11.xml
+++ b/test/testcases/tests/level2/html/HTMLImageElement11.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLImageElement12.xml b/test/testcases/tests/level2/html/HTMLImageElement12.xml.kfail
index 738f1c3..738f1c3 100644
--- a/test/testcases/tests/level2/html/HTMLImageElement12.xml
+++ b/test/testcases/tests/level2/html/HTMLImageElement12.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLInputElement13.xml b/test/testcases/tests/level2/html/HTMLInputElement13.xml.kfail
index e243035..e243035 100644
--- a/test/testcases/tests/level2/html/HTMLInputElement13.xml
+++ b/test/testcases/tests/level2/html/HTMLInputElement13.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLObjectElement11.xml b/test/testcases/tests/level2/html/HTMLObjectElement11.xml.kfail
index b4f172b..b4f172b 100644
--- a/test/testcases/tests/level2/html/HTMLObjectElement11.xml
+++ b/test/testcases/tests/level2/html/HTMLObjectElement11.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLObjectElement16.xml b/test/testcases/tests/level2/html/HTMLObjectElement16.xml.kfail
index e849620..e849620 100644
--- a/test/testcases/tests/level2/html/HTMLObjectElement16.xml
+++ b/test/testcases/tests/level2/html/HTMLObjectElement16.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLObjectElement20.xml b/test/testcases/tests/level2/html/HTMLObjectElement20.xml.kfail
index 5694760..5694760 100644
--- a/test/testcases/tests/level2/html/HTMLObjectElement20.xml
+++ b/test/testcases/tests/level2/html/HTMLObjectElement20.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection01.xml b/test/testcases/tests/level2/html/HTMLOptionsCollection01.xml.kfail
index 80df1a3..80df1a3 100644
--- a/test/testcases/tests/level2/html/HTMLOptionsCollection01.xml
+++ b/test/testcases/tests/level2/html/HTMLOptionsCollection01.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection02.xml b/test/testcases/tests/level2/html/HTMLOptionsCollection02.xml.kfail
index 44b5431..44b5431 100644
--- a/test/testcases/tests/level2/html/HTMLOptionsCollection02.xml
+++ b/test/testcases/tests/level2/html/HTMLOptionsCollection02.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection03.xml b/test/testcases/tests/level2/html/HTMLOptionsCollection03.xml.kfail
index 280b2bf..280b2bf 100644
--- a/test/testcases/tests/level2/html/HTMLOptionsCollection03.xml
+++ b/test/testcases/tests/level2/html/HTMLOptionsCollection03.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection04.xml b/test/testcases/tests/level2/html/HTMLOptionsCollection04.xml.kfail
index 83e59d3..83e59d3 100644
--- a/test/testcases/tests/level2/html/HTMLOptionsCollection04.xml
+++ b/test/testcases/tests/level2/html/HTMLOptionsCollection04.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection05.xml b/test/testcases/tests/level2/html/HTMLOptionsCollection05.xml.kfail
index d2f44d7..d2f44d7 100644
--- a/test/testcases/tests/level2/html/HTMLOptionsCollection05.xml
+++ b/test/testcases/tests/level2/html/HTMLOptionsCollection05.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection06.xml b/test/testcases/tests/level2/html/HTMLOptionsCollection06.xml.kfail
index fbde429..fbde429 100644
--- a/test/testcases/tests/level2/html/HTMLOptionsCollection06.xml
+++ b/test/testcases/tests/level2/html/HTMLOptionsCollection06.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLOptionsCollection07.xml b/test/testcases/tests/level2/html/HTMLOptionsCollection07.xml.kfail
index a2731e5..a2731e5 100644
--- a/test/testcases/tests/level2/html/HTMLOptionsCollection07.xml
+++ b/test/testcases/tests/level2/html/HTMLOptionsCollection07.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLSelectElement20.xml b/test/testcases/tests/level2/html/HTMLSelectElement20.xml.kfail
index ddbe2f7..ddbe2f7 100644
--- a/test/testcases/tests/level2/html/HTMLSelectElement20.xml
+++ b/test/testcases/tests/level2/html/HTMLSelectElement20.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableElement34.xml b/test/testcases/tests/level2/html/HTMLTableElement34.xml.kfail
index d774498..d774498 100644
--- a/test/testcases/tests/level2/html/HTMLTableElement34.xml
+++ b/test/testcases/tests/level2/html/HTMLTableElement34.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableElement35.xml b/test/testcases/tests/level2/html/HTMLTableElement35.xml.kfail
index 6410e89..6410e89 100644
--- a/test/testcases/tests/level2/html/HTMLTableElement35.xml
+++ b/test/testcases/tests/level2/html/HTMLTableElement35.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableElement36.xml b/test/testcases/tests/level2/html/HTMLTableElement36.xml.kfail
index 7a514e5..7a514e5 100644
--- a/test/testcases/tests/level2/html/HTMLTableElement36.xml
+++ b/test/testcases/tests/level2/html/HTMLTableElement36.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableElement37.xml b/test/testcases/tests/level2/html/HTMLTableElement37.xml.kfail
index 097deb1..097deb1 100644
--- a/test/testcases/tests/level2/html/HTMLTableElement37.xml
+++ b/test/testcases/tests/level2/html/HTMLTableElement37.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableElement38.xml b/test/testcases/tests/level2/html/HTMLTableElement38.xml.kfail
index 0f5bccd..0f5bccd 100644
--- a/test/testcases/tests/level2/html/HTMLTableElement38.xml
+++ b/test/testcases/tests/level2/html/HTMLTableElement38.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableElement39.xml b/test/testcases/tests/level2/html/HTMLTableElement39.xml.kfail
index 6631584..6631584 100644
--- a/test/testcases/tests/level2/html/HTMLTableElement39.xml
+++ b/test/testcases/tests/level2/html/HTMLTableElement39.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableElement40.xml b/test/testcases/tests/level2/html/HTMLTableElement40.xml.kfail
index 154b348..154b348 100644
--- a/test/testcases/tests/level2/html/HTMLTableElement40.xml
+++ b/test/testcases/tests/level2/html/HTMLTableElement40.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement15.xml b/test/testcases/tests/level2/html/HTMLTableRowElement15.xml.kfail
index 9e89674..9e89674 100644
--- a/test/testcases/tests/level2/html/HTMLTableRowElement15.xml
+++ b/test/testcases/tests/level2/html/HTMLTableRowElement15.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement16.xml b/test/testcases/tests/level2/html/HTMLTableRowElement16.xml.kfail
index 8471a2b..8471a2b 100644
--- a/test/testcases/tests/level2/html/HTMLTableRowElement16.xml
+++ b/test/testcases/tests/level2/html/HTMLTableRowElement16.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement17.xml b/test/testcases/tests/level2/html/HTMLTableRowElement17.xml.kfail
index b469470..b469470 100644
--- a/test/testcases/tests/level2/html/HTMLTableRowElement17.xml
+++ b/test/testcases/tests/level2/html/HTMLTableRowElement17.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement18.xml b/test/testcases/tests/level2/html/HTMLTableRowElement18.xml.kfail
index f296086..f296086 100644
--- a/test/testcases/tests/level2/html/HTMLTableRowElement18.xml
+++ b/test/testcases/tests/level2/html/HTMLTableRowElement18.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement19.xml b/test/testcases/tests/level2/html/HTMLTableRowElement19.xml.kfail
index 9a111f3..9a111f3 100644
--- a/test/testcases/tests/level2/html/HTMLTableRowElement19.xml
+++ b/test/testcases/tests/level2/html/HTMLTableRowElement19.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement20.xml b/test/testcases/tests/level2/html/HTMLTableRowElement20.xml.kfail
index a879e13..a879e13 100644
--- a/test/testcases/tests/level2/html/HTMLTableRowElement20.xml
+++ b/test/testcases/tests/level2/html/HTMLTableRowElement20.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableRowElement21.xml b/test/testcases/tests/level2/html/HTMLTableRowElement21.xml.kfail
index 9d5a598..9d5a598 100644
--- a/test/testcases/tests/level2/html/HTMLTableRowElement21.xml
+++ b/test/testcases/tests/level2/html/HTMLTableRowElement21.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml.kfail
index 8fbd1c2..8fbd1c2 100644
--- a/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml
+++ b/test/testcases/tests/level2/html/HTMLTableSectionElement25.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml.kfail
index 206d91f..206d91f 100644
--- a/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml
+++ b/test/testcases/tests/level2/html/HTMLTableSectionElement26.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml.kfail
index 3ab35a5..3ab35a5 100644
--- a/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml
+++ b/test/testcases/tests/level2/html/HTMLTableSectionElement27.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml.kfail
index 5578ba5..5578ba5 100644
--- a/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml
+++ b/test/testcases/tests/level2/html/HTMLTableSectionElement28.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml.kfail
index 0ddd852..0ddd852 100644
--- a/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml
+++ b/test/testcases/tests/level2/html/HTMLTableSectionElement29.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail
index 8fd17c2..8fd17c2 100644
--- a/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml
+++ b/test/testcases/tests/level2/html/HTMLTableSectionElement30.xml.kfail
diff --git a/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml b/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail
index 55464e2..55464e2 100644
--- a/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml
+++ b/test/testcases/tests/level2/html/HTMLTableSectionElement31.xml.kfail
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
--- a/dev/null
+++ b/test/testcases/tests/level2/html/files/basefont.html
@@ -0,0 +1,12 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
+<TITLE>NIST DOM HTML Test - BaseFont</TITLE>
+</HEAD>
+<BODY onload="parent.loadComplete()">
+<P>
+<BASEFONT COLOR="#000000" FACE="arial,helvitica" SIZE="4">
+</P>
+</BODY>
+</HTML>
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
--- a/dev/null
+++ b/test/testcases/tests/level2/html/files/basefont.xhtml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - BaseFont</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<basefont color="#000000" face="arial,helvitica" size="4"/>
+</p>
+</body>
+</html>
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
--- a/dev/null
+++ b/test/testcases/tests/level2/html/files/basefont.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>NIST DOM HTML Test - BaseFont</title>
+</head>
+<body onload="parent.loadComplete()">
+<p>
+<basefont color="#000000" face="arial,helvitica" size="4"/>
+</p>
+</body>
+</html>
diff --git a/test/testcases/tests/level2/html/hasFeature02.xml b/test/testcases/tests/level2/html/hasFeature02.xml.kfail
index 560a60c..560a60c 100644
--- a/test/testcases/tests/level2/html/hasFeature02.xml
+++ b/test/testcases/tests/level2/html/hasFeature02.xml.kfail
diff --git a/test/testcases/tests/level2/html/hasFeature03.xml b/test/testcases/tests/level2/html/hasFeature03.xml.kfail
index 49fb3b5..49fb3b5 100644
--- a/test/testcases/tests/level2/html/hasFeature03.xml
+++ b/test/testcases/tests/level2/html/hasFeature03.xml.kfail
diff --git a/test/testcases/tests/level2/html/hasFeature04.xml b/test/testcases/tests/level2/html/hasFeature04.xml.kfail
index 077b913..077b913 100644
--- a/test/testcases/tests/level2/html/hasFeature04.xml
+++ b/test/testcases/tests/level2/html/hasFeature04.xml.kfail
diff --git a/test/testcases/tests/level2/html/hasFeature05.xml b/test/testcases/tests/level2/html/hasFeature05.xml.kfail
index c79f90b..c79f90b 100644
--- a/test/testcases/tests/level2/html/hasFeature05.xml
+++ b/test/testcases/tests/level2/html/hasFeature05.xml.kfail
diff --git a/test/testcases/tests/level2/html/hasFeature06.xml b/test/testcases/tests/level2/html/hasFeature06.xml.kfail
index 162e5cf..162e5cf 100644
--- a/test/testcases/tests/level2/html/hasFeature06.xml
+++ b/test/testcases/tests/level2/html/hasFeature06.xml.kfail
diff --git a/test/testcases/tests/level2/html/metadata.xml b/test/testcases/tests/level2/html/metadata.xml.kfail
index be6715a..be6715a 100644
--- a/test/testcases/tests/level2/html/metadata.xml
+++ b/test/testcases/tests/level2/html/metadata.xml.kfail
diff --git a/test/testcases/tests/level2/html/object08.xml b/test/testcases/tests/level2/html/object08.xml.kfail
index 32d32cf..32d32cf 100644
--- a/test/testcases/tests/level2/html/object08.xml
+++ b/test/testcases/tests/level2/html/object08.xml.kfail
diff --git a/test/testcases/tests/level2/html/object13.xml b/test/testcases/tests/level2/html/object13.xml.kfail
index a3a603a..a3a603a 100644
--- a/test/testcases/tests/level2/html/object13.xml
+++ b/test/testcases/tests/level2/html/object13.xml.kfail