Gitweb links:
...log
http://git.netsurf-browser.org/libdom.git/shortlog/a3bba726a05d1c4e642591...
...commit
http://git.netsurf-browser.org/libdom.git/commit/a3bba726a05d1c4e642591ac...
...tree
http://git.netsurf-browser.org/libdom.git/tree/a3bba726a05d1c4e642591ac93...
The branch, rupindersingh/libdom has been updated
via a3bba726a05d1c4e642591ac930d313b02f4cb3d (commit)
via 29172c690b8fdc7e0b029e56ec8ede10d293d1b8 (commit)
from f9bfe2c42e3e259cd2f65932bffa52f49e0238ca (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/libdom.git/commit/?id=a3bba726a05d1c4e6425...
commit a3bba726a05d1c4e642591ac930d313b02f4cb3d
Author: rsk1994 <rsk1coder99(a)gmail.com>
Commit: rsk1994 <rsk1coder99(a)gmail.com>
Frame Element without the contentDocument
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 <dom/html/html_base_element.h>
#include <dom/html/html_style_element.h>
#include <dom/html/html_frameset_element.h>
+#include <dom/html/html_frame_element.h>
/* DOM Events header */
#include <dom/events/events.h>
diff --git a/include/dom/html/html_frame_element.h
b/include/dom/html/html_frame_element.h
index 2e182d5..95d8b48 100644
--- a/include/dom/html/html_frame_element.h
+++ b/include/dom/html/html_frame_element.h
@@ -3,5 +3,64 @@
* Licensed under the MIT License,
*
http://www.opensource.org/licenses/mit-license.php
* Copyright 2009 Bo Yang <struggleyb.nku(a)gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar <rsk1coder99(a)gmail.com>
*/
+#ifndef dom_html_frame_element_h_
+#define dom_html_frame_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_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);
+
+#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_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..23d9a92 100644
--- a/src/html/html_frame_element.c
+++ b/src/html/html_frame_element.c
@@ -3,5 +3,278 @@
* Licensed under the MIT License,
*
http://www.opensource.org/licenses/mit-license.php
* Copyright 2009 Bo Yang <struggleyb.nku(a)gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar<rsk1coder99(a)gmail.com>
*/
+#include <assert.h>
+#include <stdlib.h>
+
+#include <dom/html/html_frame_element.h>
+
+#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;
+}
+
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 <struggleyb.nku(a)gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar <rsk1coder99(a)gmail.com>
*/
+#ifndef dom_internal_html_frame_element_h_
+#define dom_internal_html_frame_element_h_
+
+#include <dom/html/html_frameset_element.h>
+#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/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 @@
+<?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="HTMLFrameElement01">
+<metadata>
+<title>HTMLFrameElement01</title>
+<creator>NIST</creator>
+<description>
+ 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.
+</description>
+<contributor>Rick Rivello</contributor>
+<date qualifier="created">2002-05-08</date>
+<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vframeborder" type="DOMString" />
+<var name="doc" type="Document"/>
+<load var="doc" href="frame"
willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
+<assertSize collection="nodeList" size="2"
id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
+<frameBorder interface="HTMLFrameElement" obj="testNode"
var="vframeborder"/>
+<assertEquals actual="vframeborder" expected='"1"'
id="frameborderLink" ignoreCase="false"/>
+</test>
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 @@
-<?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="HTMLFrameElement01">
-<metadata>
-<title>HTMLFrameElement01</title>
-<creator>NIST</creator>
-<description>
- 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.
-</description>
-<contributor>Rick Rivello</contributor>
-<date qualifier="created">2002-05-08</date>
-<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vframeborder" type="DOMString" />
-<var name="doc" type="Document"/>
-<load var="doc" href="frame"
willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
-<assertSize collection="nodeList" size="2"
id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
-<frameBorder interface="HTMLFrameElement" obj="testNode"
var="vframeborder"/>
-<assertEquals actual="vframeborder" expected='"1"'
id="frameborderLink" ignoreCase="false"/>
-</test>
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xml" type="text/xml"?>
+
+<!--
+
+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 "dom1.dtd">
+<test
xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1"
name="HTMLFrameElement02">
+<metadata>
+<title>HTMLFrameElement02</title>
+<creator>NIST</creator>
+<description>
+ 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.
+</description>
+<contributor>Rick Rivello</contributor>
+<date qualifier="created">2002-05-08</date>
+<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vlongdesc" type="DOMString" />
+<var name="doc" type="Document"/>
+<load var="doc" href="frame"
willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
+<assertSize collection="nodeList" size="2"
id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
+<longDesc interface="HTMLFrameElement" obj="testNode"
var="vlongdesc"/>
+<assertEquals actual="vlongdesc" expected='"about:blank"'
ignoreCase="false" id="longdescLink"/>
+</test>
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 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xml" type="text/xml"?>
-
-<!--
-
-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 "dom1.dtd">
-<test
xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1"
name="HTMLFrameElement02">
-<metadata>
-<title>HTMLFrameElement02</title>
-<creator>NIST</creator>
-<description>
- 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.
-</description>
-<contributor>Rick Rivello</contributor>
-<date qualifier="created">2002-05-08</date>
-<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vlongdesc" type="DOMString" />
-<var name="doc" type="Document"/>
-<load var="doc" href="frame"
willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
-<assertSize collection="nodeList" size="2"
id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
-<longDesc interface="HTMLFrameElement" obj="testNode"
var="vlongdesc"/>
-<assertEquals actual="vlongdesc" expected='"about:blank"'
ignoreCase="false" id="longdescLink"/>
-</test>
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 @@
+<?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="HTMLFrameElement03">
+<metadata>
+<title>HTMLFrameElement03</title>
+<creator>NIST</creator>
+<description>
+ The marginHeight attribute specifies the frame margin height, in pixels.
+
+ Retrieve the marginHeight attribute of the first FRAME element and examine
+ it's value.
+</description>
+<contributor>Rick Rivello</contributor>
+<date qualifier="created">2002-05-08</date>
+<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vmarginheight" type="DOMString" />
+<var name="doc" type="Document"/>
+<load var="doc" href="frame"
willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
+<assertSize collection="nodeList" size="2"
id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
+<marginHeight interface="HTMLFrameElement" obj="testNode"
var="vmarginheight"/>
+<assertEquals actual="vmarginheight" expected='"10"'
id="marginheightLink" ignoreCase="false"/>
+</test>
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 @@
-<?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="HTMLFrameElement03">
-<metadata>
-<title>HTMLFrameElement03</title>
-<creator>NIST</creator>
-<description>
- The marginHeight attribute specifies the frame margin height, in pixels.
-
- Retrieve the marginHeight attribute of the first FRAME element and examine
- it's value.
-</description>
-<contributor>Rick Rivello</contributor>
-<date qualifier="created">2002-05-08</date>
-<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vmarginheight" type="DOMString" />
-<var name="doc" type="Document"/>
-<load var="doc" href="frame"
willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
-<assertSize collection="nodeList" size="2"
id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
-<marginHeight interface="HTMLFrameElement" obj="testNode"
var="vmarginheight"/>
-<assertEquals actual="vmarginheight" expected='"10"'
id="marginheightLink" ignoreCase="false"/>
-</test>
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 @@
+<?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="HTMLFrameElement04">
+<metadata>
+<title>HTMLFrameElement04</title>
+<creator>NIST</creator>
+<description>
+ The marginWidth attribute specifies the frame margin width, in pixels.
+
+ Retrieve the marginWidth attribute of the first FRAME element and examine
+ it's value.
+</description>
+<contributor>Rick Rivello</contributor>
+<date qualifier="created">2002-05-08</date>
+<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vmarginwidth" type="DOMString" />
+<var name="doc" type="Document"/>
+<load var="doc" href="frame"
willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
+<assertSize collection="nodeList" size="2"
id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
+<marginWidth interface="HTMLFrameElement" obj="testNode"
var="vmarginwidth"/>
+<assertEquals actual="vmarginwidth" expected='"5"'
id="marginwidthLink" ignoreCase="false"/>
+</test>
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 @@
-<?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="HTMLFrameElement04">
-<metadata>
-<title>HTMLFrameElement04</title>
-<creator>NIST</creator>
-<description>
- The marginWidth attribute specifies the frame margin width, in pixels.
-
- Retrieve the marginWidth attribute of the first FRAME element and examine
- it's value.
-</description>
-<contributor>Rick Rivello</contributor>
-<date qualifier="created">2002-05-08</date>
-<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vmarginwidth" type="DOMString" />
-<var name="doc" type="Document"/>
-<load var="doc" href="frame"
willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
-<assertSize collection="nodeList" size="2"
id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
-<marginWidth interface="HTMLFrameElement" obj="testNode"
var="vmarginwidth"/>
-<assertEquals actual="vmarginwidth" expected='"5"'
id="marginwidthLink" ignoreCase="false"/>
-</test>
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 @@
+<?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="HTMLFrameElement05">
+<metadata>
+<title>HTMLFrameElement05</title>
+<creator>NIST</creator>
+<description>
+ 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.
+</description>
+<contributor>Rick Rivello</contributor>
+<date qualifier="created">2002-05-08</date>
+<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vname" type="DOMString" />
+<var name="doc" type="Document"/>
+<load var="doc" href="frame"
willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
+<assertSize collection="nodeList" size="2"
id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
+<name interface="HTMLFrameElement" obj="testNode"
var="vname"/>
+<assertEquals actual="vname" expected='"Frame1"'
id="nameLink" ignoreCase="false"/>
+</test>
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 @@
-<?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="HTMLFrameElement05">
-<metadata>
-<title>HTMLFrameElement05</title>
-<creator>NIST</creator>
-<description>
- 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.
-</description>
-<contributor>Rick Rivello</contributor>
-<date qualifier="created">2002-05-08</date>
-<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vname" type="DOMString" />
-<var name="doc" type="Document"/>
-<load var="doc" href="frame"
willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
-<assertSize collection="nodeList" size="2"
id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
-<name interface="HTMLFrameElement" obj="testNode"
var="vname"/>
-<assertEquals actual="vname" expected='"Frame1"'
id="nameLink" ignoreCase="false"/>
-</test>
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 @@
+<?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="HTMLFrameElement06">
+<metadata>
+<title>HTMLFrameElement06</title>
+<creator>NIST</creator>
+<description>
+ 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.
+</description>
+<contributor>Rick Rivello</contributor>
+<date qualifier="created">2002-05-08</date>
+<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vnoresize" type="boolean" />
+<var name="doc" type="Document"/>
+<load var="doc" href="frame"
willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
+<assertSize collection="nodeList" size="2"
id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
+<noResize interface="HTMLFrameElement" obj="testNode"
var="vnoresize"/>
+<assertTrue actual="vnoresize" id="noresizeLink"/>
+</test>
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 @@
-<?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="HTMLFrameElement06">
-<metadata>
-<title>HTMLFrameElement06</title>
-<creator>NIST</creator>
-<description>
- 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.
-</description>
-<contributor>Rick Rivello</contributor>
-<date qualifier="created">2002-05-08</date>
-<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vnoresize" type="boolean" />
-<var name="doc" type="Document"/>
-<load var="doc" href="frame"
willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
-<assertSize collection="nodeList" size="2"
id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
-<noResize interface="HTMLFrameElement" obj="testNode"
var="vnoresize"/>
-<assertTrue actual="vnoresize" id="noresizeLink"/>
-</test>
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 @@
+<?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="HTMLFrameElement07">
+<metadata>
+<title>HTMLFrameElement07</title>
+<creator>NIST</creator>
+<description>
+ 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.
+</description>
+<contributor>Rick Rivello</contributor>
+<date qualifier="created">2002-05-08</date>
+<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vscrolling" type="DOMString" />
+<var name="doc" type="Document"/>
+<load var="doc" href="frame"
willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
+<assertSize collection="nodeList" size="2"
id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
+<scrolling interface="HTMLFrameElement" obj="testNode"
var="vscrolling"/>
+<assertEquals actual="vscrolling" expected='"yes"'
id="scrollingLink" ignoreCase="false"/>
+</test>
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 @@
-<?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="HTMLFrameElement07">
-<metadata>
-<title>HTMLFrameElement07</title>
-<creator>NIST</creator>
-<description>
- 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.
-</description>
-<contributor>Rick Rivello</contributor>
-<date qualifier="created">2002-05-08</date>
-<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vscrolling" type="DOMString" />
-<var name="doc" type="Document"/>
-<load var="doc" href="frame"
willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
-<assertSize collection="nodeList" size="2"
id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
-<scrolling interface="HTMLFrameElement" obj="testNode"
var="vscrolling"/>
-<assertEquals actual="vscrolling" expected='"yes"'
id="scrollingLink" ignoreCase="false"/>
-</test>
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 @@
+<?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="HTMLFrameElement08">
+<metadata>
+<title>HTMLFrameElement08</title>
+<creator>NIST</creator>
+<description>
+ 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.
+</description>
+<contributor>Rick Rivello</contributor>
+<date qualifier="created">2002-05-08</date>
+<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vsrc" type="DOMString" />
+<var name="doc" type="Document"/>
+<load var="doc" href="frame"
willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
+<assertSize collection="nodeList" size="2"
id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
+<src interface="HTMLFrameElement" obj="testNode"
var="vsrc"/>
+<assertURIEquals actual="vsrc" name='"right"'
id="srcLink"/>
+</test>
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 @@
-<?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="HTMLFrameElement08">
-<metadata>
-<title>HTMLFrameElement08</title>
-<creator>NIST</creator>
-<description>
- 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.
-</description>
-<contributor>Rick Rivello</contributor>
-<date qualifier="created">2002-05-08</date>
-<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vsrc" type="DOMString" />
-<var name="doc" type="Document"/>
-<load var="doc" href="frame"
willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frame"'/>
-<assertSize collection="nodeList" size="2"
id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
-<src interface="HTMLFrameElement" obj="testNode"
var="vsrc"/>
-<assertURIEquals actual="vsrc" name='"right"'
id="srcLink"/>
-</test>
commitdiff
http://git.netsurf-browser.org/libdom.git/commit/?id=29172c690b8fdc7e0b02...
commit 29172c690b8fdc7e0b029e56ec8ede10d293d1b8
Author: rsk1994 <rsk1coder99(a)gmail.com>
Commit: rsk1994 <rsk1coder99(a)gmail.com>
FrameSet Element
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 <dom/html/html_tablerow_element.h>
#include <dom/html/html_base_element.h>
#include <dom/html/html_style_element.h>
+#include <dom/html/html_frameset_element.h>
/* DOM Events header */
#include <dom/events/events.h>
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 <struggleyb.nku(a)gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar <rsk1coder99(a)gmail.com>
*/
+#ifndef dom_html_frame_set_element_h_
+#define dom_html_frame_set_element_h_
+#include <stdbool.h>
+#include <dom/core/exceptions.h>
+#include <dom/core/string.h>
+
+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 <struggleyb.nku(a)gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar<rsk1coder99(a)gmail.com>
*/
+#include <assert.h>
+#include <stdlib.h>
+#include <dom/html/html_frameset_element.h>
+
+#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 <struggleyb.nku(a)gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar <rsk1coder99(a)gmail.com>
*/
+#ifndef dom_internal_html_frame_set_element_h_
+#define dom_internal_html_frame_set_element_h_
+
+#include <dom/html/html_frameset_element.h>
+#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 @@
+<?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="HTMLFrameSetElement01">
+<metadata>
+<title>HTMLFrameSetElement01</title>
+<creator>NIST</creator>
+<description>
+ 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.
+</description>
+<contributor>Rick Rivello</contributor>
+<date qualifier="created">2002-05-08</date>
+<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vcols" type="DOMString" />
+<var name="doc" type="Document"/>
+<load var="doc" href="frameset"
willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frameset"'/>
+<assertSize collection="nodeList" size="2"
id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
+<cols interface="HTMLFrameSetElement" obj="testNode"
var="vcols"/>
+<assertEquals actual="vcols" expected='"20, 80"'
id="colsLink" ignoreCase="false"/>
+</test>
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 @@
-<?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="HTMLFrameSetElement01">
-<metadata>
-<title>HTMLFrameSetElement01</title>
-<creator>NIST</creator>
-<description>
- 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.
-</description>
-<contributor>Rick Rivello</contributor>
-<date qualifier="created">2002-05-08</date>
-<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vcols" type="DOMString" />
-<var name="doc" type="Document"/>
-<load var="doc" href="frameset"
willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frameset"'/>
-<assertSize collection="nodeList" size="2"
id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode"
index="0"/>
-<cols interface="HTMLFrameSetElement" obj="testNode"
var="vcols"/>
-<assertEquals actual="vcols" expected='"20, 80"'
id="colsLink" ignoreCase="false"/>
-</test>
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 @@
+<?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="HTMLFrameSetElement02">
+<metadata>
+<title>HTMLFrameSetElement02</title>
+<creator>NIST</creator>
+<description>
+ 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.
+</description>
+<contributor>Rick Rivello</contributor>
+<date qualifier="created">2002-05-08</date>
+<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vrows" type="DOMString" />
+<var name="doc" type="Document"/>
+<load var="doc" href="frameset"
willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frameset"'/>
+<assertSize collection="nodeList" size="2"
id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode"
index="1"/>
+<rows interface="HTMLFrameSetElement" obj="testNode"
var="vrows"/>
+<assertEquals actual="vrows" expected='"100, 200"'
id="rowsLink" ignoreCase="false"/>
+</test>
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 @@
-<?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="HTMLFrameSetElement02">
-<metadata>
-<title>HTMLFrameSetElement02</title>
-<creator>NIST</creator>
-<description>
- 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.
-</description>
-<contributor>Rick Rivello</contributor>
-<date qualifier="created">2002-05-08</date>
-<subject
resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-o...
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vrows" type="DOMString" />
-<var name="doc" type="Document"/>
-<load var="doc" href="frameset"
willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc"
var="nodeList" tagname='"frameset"'/>
-<assertSize collection="nodeList" size="2"
id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode"
index="1"/>
-<rows interface="HTMLFrameSetElement" obj="testNode"
var="vrows"/>
-<assertEquals actual="vrows" expected='"100, 200"'
id="rowsLink" ignoreCase="false"/>
-</test>
-----------------------------------------------------------------------
Summary of changes:
Makefile | 2 +
include/dom/dom.h | 2 +
include/dom/html/html_frame_element.h | 59 +++++
include/dom/html/html_frameset_element.h | 22 ++
src/html/Makefile | 7 +-
src/html/html_document.c | 4 +
src/html/html_document_strings.h | 6 +
src/html/html_frame_element.c | 273 ++++++++++++++++++++
src/html/html_frame_element.h | 47 ++++
src/html/html_frameset_element.c | 229 ++++++++++++++++
src/html/html_frameset_element.h | 46 ++++
...eElement01.xml.kfail => HTMLFrameElement01.xml} | 0
...eElement02.xml.kfail => HTMLFrameElement02.xml} | 0
...eElement03.xml.kfail => HTMLFrameElement03.xml} | 0
...eElement04.xml.kfail => HTMLFrameElement04.xml} | 0
...eElement05.xml.kfail => HTMLFrameElement05.xml} | 0
...eElement06.xml.kfail => HTMLFrameElement06.xml} | 0
...eElement07.xml.kfail => HTMLFrameElement07.xml} | 0
...eElement08.xml.kfail => HTMLFrameElement08.xml} | 0
...ement01.xml.kfail => HTMLFrameSetElement01.xml} | 0
...ement02.xml.kfail => HTMLFrameSetElement02.xml} | 0
21 files changed, 694 insertions(+), 3 deletions(-)
rename test/testcases/tests/level1/html/{HTMLFrameElement01.xml.kfail =>
HTMLFrameElement01.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLFrameElement02.xml.kfail =>
HTMLFrameElement02.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLFrameElement03.xml.kfail =>
HTMLFrameElement03.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLFrameElement04.xml.kfail =>
HTMLFrameElement04.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLFrameElement05.xml.kfail =>
HTMLFrameElement05.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLFrameElement06.xml.kfail =>
HTMLFrameElement06.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLFrameElement07.xml.kfail =>
HTMLFrameElement07.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLFrameElement08.xml.kfail =>
HTMLFrameElement08.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLFrameSetElement01.xml.kfail =>
HTMLFrameSetElement01.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLFrameSetElement02.xml.kfail =>
HTMLFrameSetElement02.xml} (100%)
diff --git a/Makefile b/Makefile
index 9b47c36..4dc8af6 100644
--- a/Makefile
+++ b/Makefile
@@ -131,6 +131,8 @@ 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) $(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 68ae227..d8245ac 100644
--- a/include/dom/dom.h
+++ b/include/dom/dom.h
@@ -90,6 +90,8 @@
#include <dom/html/html_tablerow_element.h>
#include <dom/html/html_base_element.h>
#include <dom/html/html_style_element.h>
+#include <dom/html/html_frameset_element.h>
+#include <dom/html/html_frame_element.h>
/* DOM Events header */
#include <dom/events/events.h>
diff --git a/include/dom/html/html_frame_element.h
b/include/dom/html/html_frame_element.h
index 2e182d5..95d8b48 100644
--- a/include/dom/html/html_frame_element.h
+++ b/include/dom/html/html_frame_element.h
@@ -3,5 +3,64 @@
* Licensed under the MIT License,
*
http://www.opensource.org/licenses/mit-license.php
* Copyright 2009 Bo Yang <struggleyb.nku(a)gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar <rsk1coder99(a)gmail.com>
*/
+#ifndef dom_html_frame_element_h_
+#define dom_html_frame_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_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);
+
+#endif
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 <struggleyb.nku(a)gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar <rsk1coder99(a)gmail.com>
*/
+#ifndef dom_html_frame_set_element_h_
+#define dom_html_frame_set_element_h_
+#include <stdbool.h>
+#include <dom/core/exceptions.h>
+#include <dom/core/string.h>
+
+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..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_table_element.c html_tablerow_element.c html_frameset_element.c \
+ html_frame_element.c
UNINMPLEMENTED_SOURCES := \
- html_frameset_element.c html_isindex_element.c \
- html_frame_element.c html_iframe_element.c
+ 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 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..35fca73 100644
--- a/src/html/html_document_strings.h
+++ b/src/html/html_document_strings.h
@@ -106,6 +106,9 @@ 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_ACTION1(scrolling)
HTML_DOCUMENT_STRINGS_ACTION(tab_index,tabindex)
HTML_DOCUMENT_STRINGS_ACTION(html_for,for)
HTML_DOCUMENT_STRINGS_ACTION(date_time,datetime)
@@ -118,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..23d9a92 100644
--- a/src/html/html_frame_element.c
+++ b/src/html/html_frame_element.c
@@ -3,5 +3,278 @@
* Licensed under the MIT License,
*
http://www.opensource.org/licenses/mit-license.php
* Copyright 2009 Bo Yang <struggleyb.nku(a)gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar<rsk1coder99(a)gmail.com>
*/
+#include <assert.h>
+#include <stdlib.h>
+
+#include <dom/html/html_frame_element.h>
+
+#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;
+}
+
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 <struggleyb.nku(a)gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar <rsk1coder99(a)gmail.com>
*/
+#ifndef dom_internal_html_frame_element_h_
+#define dom_internal_html_frame_element_h_
+
+#include <dom/html/html_frameset_element.h>
+#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/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 <struggleyb.nku(a)gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar<rsk1coder99(a)gmail.com>
*/
+#include <assert.h>
+#include <stdlib.h>
+#include <dom/html/html_frameset_element.h>
+
+#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 <struggleyb.nku(a)gmail.com>
+ * Copyright 2014 Rupinder Singh Khokhar <rsk1coder99(a)gmail.com>
*/
+#ifndef dom_internal_html_frame_set_element_h_
+#define dom_internal_html_frame_set_element_h_
+
+#include <dom/html/html_frameset_element.h>
+#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/HTMLFrameElement01.xml.kfail
b/test/testcases/tests/level1/html/HTMLFrameElement01.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLFrameElement01.xml.kfail
rename to test/testcases/tests/level1/html/HTMLFrameElement01.xml
diff --git a/test/testcases/tests/level1/html/HTMLFrameElement02.xml.kfail
b/test/testcases/tests/level1/html/HTMLFrameElement02.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLFrameElement02.xml.kfail
rename to test/testcases/tests/level1/html/HTMLFrameElement02.xml
diff --git a/test/testcases/tests/level1/html/HTMLFrameElement03.xml.kfail
b/test/testcases/tests/level1/html/HTMLFrameElement03.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLFrameElement03.xml.kfail
rename to test/testcases/tests/level1/html/HTMLFrameElement03.xml
diff --git a/test/testcases/tests/level1/html/HTMLFrameElement04.xml.kfail
b/test/testcases/tests/level1/html/HTMLFrameElement04.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLFrameElement04.xml.kfail
rename to test/testcases/tests/level1/html/HTMLFrameElement04.xml
diff --git a/test/testcases/tests/level1/html/HTMLFrameElement05.xml.kfail
b/test/testcases/tests/level1/html/HTMLFrameElement05.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLFrameElement05.xml.kfail
rename to test/testcases/tests/level1/html/HTMLFrameElement05.xml
diff --git a/test/testcases/tests/level1/html/HTMLFrameElement06.xml.kfail
b/test/testcases/tests/level1/html/HTMLFrameElement06.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLFrameElement06.xml.kfail
rename to test/testcases/tests/level1/html/HTMLFrameElement06.xml
diff --git a/test/testcases/tests/level1/html/HTMLFrameElement07.xml.kfail
b/test/testcases/tests/level1/html/HTMLFrameElement07.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLFrameElement07.xml.kfail
rename to test/testcases/tests/level1/html/HTMLFrameElement07.xml
diff --git a/test/testcases/tests/level1/html/HTMLFrameElement08.xml.kfail
b/test/testcases/tests/level1/html/HTMLFrameElement08.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLFrameElement08.xml.kfail
rename to test/testcases/tests/level1/html/HTMLFrameElement08.xml
diff --git a/test/testcases/tests/level1/html/HTMLFrameSetElement01.xml.kfail
b/test/testcases/tests/level1/html/HTMLFrameSetElement01.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLFrameSetElement01.xml.kfail
rename to test/testcases/tests/level1/html/HTMLFrameSetElement01.xml
diff --git a/test/testcases/tests/level1/html/HTMLFrameSetElement02.xml.kfail
b/test/testcases/tests/level1/html/HTMLFrameSetElement02.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLFrameSetElement02.xml.kfail
rename to test/testcases/tests/level1/html/HTMLFrameSetElement02.xml
--
Document Object Model library