diff options
-rw-r--r-- | src/html/html_collection.c | 25 | ||||
-rw-r--r-- | src/html/html_document.c | 1 | ||||
-rw-r--r-- | test/testcases/tests/level1/html/HTMLCollection04.xml (renamed from test/testcases/tests/level1/html/HTMLCollection04.xml.kfail) | 0 | ||||
-rw-r--r-- | test/testcases/tests/level1/html/HTMLCollection04.xml.notimpl | 59 | ||||
-rw-r--r-- | test/testcases/tests/level1/html/HTMLCollection05.xml (renamed from test/testcases/tests/level1/html/HTMLCollection05.xml.kfail) | 0 | ||||
-rw-r--r-- | test/testcases/tests/level1/html/HTMLCollection05.xml.notimpl | 46 | ||||
-rw-r--r-- | test/testcases/tests/level1/html/HTMLCollection06.xml (renamed from test/testcases/tests/level1/html/HTMLCollection06.xml.notimpl) | 0 | ||||
-rw-r--r-- | test/testcases/tests/level1/html/HTMLCollection07.xml (renamed from test/testcases/tests/level1/html/HTMLCollection07.xml.notimpl) | 2 | ||||
-rw-r--r-- | test/testcases/tests/level1/html/HTMLCollection08.xml (renamed from test/testcases/tests/level1/html/HTMLCollection08.xml.notimpl) | 2 | ||||
-rw-r--r-- | test/testcases/tests/level1/html/HTMLCollection09.xml (renamed from test/testcases/tests/level1/html/HTMLCollection09.xml.kfail) | 0 | ||||
-rw-r--r-- | test/testcases/tests/level1/html/HTMLCollection09.xml.notimpl | 47 | ||||
-rw-r--r-- | test/testcases/tests/level1/html/HTMLCollection10.xml (renamed from test/testcases/tests/level1/html/HTMLCollection10.xml.kfail) | 0 | ||||
-rw-r--r-- | test/testcases/tests/level1/html/HTMLCollection11.xml (renamed from test/testcases/tests/level1/html/HTMLCollection11.xml.kfail) | 0 | ||||
-rw-r--r-- | test/testcases/tests/level1/html/HTMLCollection12.xml.kfail | 50 |
14 files changed, 24 insertions, 208 deletions
diff --git a/src/html/html_collection.c b/src/html/html_collection.c index 2b4d8aa..43a26c5 100644 --- a/src/html/html_collection.c +++ b/src/html/html_collection.c @@ -11,6 +11,7 @@ #include <libwapcaplet/libwapcaplet.h> #include "html/html_collection.h" +#include "html/html_document.h" #include "core/node.h" #include "core/element.h" @@ -182,7 +183,7 @@ dom_exception dom_html_collection_item(dom_html_collection *col, /* No children and siblings */ struct dom_node_internal *parent = n->parent; - while (parent != col->root && + while (n != col->root && n == parent->last_child) { n = parent; parent = parent->parent; @@ -212,8 +213,8 @@ dom_exception dom_html_collection_named_item(dom_html_collection *col, dom_string *name, struct dom_node **node) { struct dom_node_internal *n = col->root; + dom_html_document *doc = (dom_html_document *)dom_node_get_owner(n); dom_exception err; - while (n != NULL) { if (n->type == DOM_ELEMENT_NODE && col->ic(n, col->ctx) == true) { @@ -235,6 +236,22 @@ dom_exception dom_html_collection_named_item(dom_html_collection *col, if (id != NULL) dom_string_unref(id); + + /* Check for Name attr if id not matched/found */ + dom_string *id_name = NULL; + err = _dom_element_get_attribute((dom_element *)n, + doc->memoised[hds_name], &id_name); + if(err != DOM_NO_ERR) { + return err; + } + if (id_name != NULL && dom_string_isequal(name, id_name)) { + *node = (struct dom_node *) n; + dom_node_ref(n); + dom_string_unref(id_name); + + return DOM_NO_ERR; + } + } /* Depth first iterating */ @@ -246,13 +263,13 @@ dom_exception dom_html_collection_named_item(dom_html_collection *col, /* No children and siblings */ struct dom_node_internal *parent = n->parent; - while (parent != col->root && + while (n != col->root && n == parent->last_child) { n = parent; parent = parent->parent; } - if (parent == col->root) + if (n == col->root) n = NULL; else n = n->next; diff --git a/src/html/html_document.c b/src/html/html_document.c index 83c4801..cd062a2 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -907,6 +907,7 @@ dom_exception _dom_html_document_set_cookie(dom_html_document *doc, { UNUSED(doc); UNUSED(cookie); + /*todo implement this after updating client interface */ return DOM_NOT_SUPPORTED_ERR; } diff --git a/test/testcases/tests/level1/html/HTMLCollection04.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection04.xml index 5d78405..5d78405 100644 --- a/test/testcases/tests/level1/html/HTMLCollection04.xml.kfail +++ b/test/testcases/tests/level1/html/HTMLCollection04.xml diff --git a/test/testcases/tests/level1/html/HTMLCollection04.xml.notimpl b/test/testcases/tests/level1/html/HTMLCollection04.xml.notimpl deleted file mode 100644 index 5d78405..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection04.xml.notimpl +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<?xml-stylesheet href="test-to-html.xml" type="text/xml"?> - -<!-- - -Copyright (c) 2001 World Wide Web Consortium, -(Massachusetts Institute of Technology, Institut National de -Recherche en Informatique et en Automatique, Keio University). All -Rights Reserved. This program is distributed under the W3C's Software -Intellectual Property License. This program is distributed in the -hope that it will be useful, but WITHOUT ANY WARRANTY; without even -the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. - -See W3C License http://www.w3.org/Consortium/Legal/ for more details. - ---> -<!DOCTYPE test SYSTEM "dom1.dtd"> -<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLCollection04"> -<metadata> -<title>HTMLCollection04</title> -<creator>NIST</creator> -<description> - HTMLCollections are live, they are automatically updated when the - underlying document is changed. - - Create a HTMLCollection object by invoking the rows attribute of the - first TABLE element and examine its length, then add a new row and - re-examine the length. -</description> -<contributor>Rick Rivello</contributor> -<date qualifier="created">2002-05-01</date> -<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-40057551"/> -</metadata> -<var name="nodeList" type="NodeList"/> -<var name="testNode" type="Node"/> -<var name="rowLength1" type="int"/> -<var name="rowLength2" type="int"/> -<var name="rowsnodeList" type="HTMLCollection"/> -<var name="newRow" type="HTMLElement"/> -<var name="vrowindex" type="int" /> -<var name="doc" type="Document"/> -<var name="result" type="List"/> -<var name="expectedResult" type="List"> -<member>4</member> -<member>5</member> -</var> -<load var="doc" href="collection" willBeModified="true"/> -<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"table"'/> -<assertSize collection="nodeList" size="1" id="Asize"/> -<item interface="NodeList" obj="nodeList" var="testNode" index="0"/> -<rows interface="HTMLTableElement" obj="testNode" var="rowsnodeList"/> -<length interface="HTMLCollection" obj="rowsnodeList" var="rowLength1"/> -<append collection="result" item="rowLength1"/> -<insertRow interface="HTMLTableElement" obj="testNode" var="newRow" index="4"/> -<length interface="HTMLCollection" obj="rowsnodeList" var="rowLength2"/> -<append collection="result" item="rowLength2"/> -<assertEquals actual="result" expected="expectedResult" id="rowIndexLink" ignoreCase="false"/> -</test> diff --git a/test/testcases/tests/level1/html/HTMLCollection05.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection05.xml index ffb7d13..ffb7d13 100644 --- a/test/testcases/tests/level1/html/HTMLCollection05.xml.kfail +++ b/test/testcases/tests/level1/html/HTMLCollection05.xml diff --git a/test/testcases/tests/level1/html/HTMLCollection05.xml.notimpl b/test/testcases/tests/level1/html/HTMLCollection05.xml.notimpl deleted file mode 100644 index ffb7d13..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection05.xml.notimpl +++ /dev/null @@ -1,46 +0,0 @@ -<?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="HTMLCollection05"> -<metadata> -<title>HTMLCollection05</title> -<creator>NIST</creator> -<description> - The length attribute specifies the length or size of the list. - - Retrieve the first TABLE element and create a HTMLCollection by invoking - the "rows" attribute. Retrieve the length attribute of the HTMLCollection - object. -</description> -<contributor>Rick Rivello</contributor> -<date qualifier="created">2002-05-01</date> -<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-40057551"/> -</metadata> -<var name="nodeList" type="NodeList"/> -<var name="testNode" type="Node"/> -<var name="rowsnodeList" type="HTMLCollection"/> -<var name="rowLength" type="int" /> -<var name="doc" type="Document"/> -<load var="doc" href="collection" willBeModified="false"/> -<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"table"'/> -<assertSize collection="nodeList" size="1" id="Asize"/> -<item interface="NodeList" obj="nodeList" var="testNode" index="0"/> -<rows interface="HTMLTableElement" obj="testNode" var="rowsnodeList"/> -<length interface="HTMLCollection" obj="rowsnodeList" var="rowLength"/> -<assertEquals actual="rowLength" expected="4" id="rowIndexLink" ignoreCase="false"/> -</test> diff --git a/test/testcases/tests/level1/html/HTMLCollection06.xml.notimpl b/test/testcases/tests/level1/html/HTMLCollection06.xml index 1026310..1026310 100644 --- a/test/testcases/tests/level1/html/HTMLCollection06.xml.notimpl +++ b/test/testcases/tests/level1/html/HTMLCollection06.xml diff --git a/test/testcases/tests/level1/html/HTMLCollection07.xml.notimpl b/test/testcases/tests/level1/html/HTMLCollection07.xml index e0a21a2..55e392f 100644 --- a/test/testcases/tests/level1/html/HTMLCollection07.xml.notimpl +++ b/test/testcases/tests/level1/html/HTMLCollection07.xml @@ -45,5 +45,5 @@ See W3C License http://www.w3.org/Consortium/Legal/ for more details. <rows interface="HTMLTableElement" obj="testNode" var="rowsnodeList"/> <item interface="HTMLCollection" obj="rowsnodeList" var="rowNode" index="3"/> <rowIndex interface="HTMLTableRowElement" obj="rowNode" var="vrowindex"/> -<assertEquals actual="vrowindex" expected="3" id="rowIndexLink" ignoreCase="false"/> +<assertEquals actual="vrowindex" expected="2" id="rowIndexLink" ignoreCase="false"/> </test> diff --git a/test/testcases/tests/level1/html/HTMLCollection08.xml.notimpl b/test/testcases/tests/level1/html/HTMLCollection08.xml index dfc2e10..8f7f138 100644 --- a/test/testcases/tests/level1/html/HTMLCollection08.xml.notimpl +++ b/test/testcases/tests/level1/html/HTMLCollection08.xml @@ -43,7 +43,7 @@ See W3C License http://www.w3.org/Consortium/Legal/ for more details. <assertSize collection="nodeList" size="1" id="Asize"/> <item interface="NodeList" obj="nodeList" var="testNode" index="0"/> <rows interface="HTMLTableElement" obj="testNode" var="rowsnodeList"/> -<item interface="HTMLCollection" obj="rowsnodeList" var="rowNode" index="2"/> +<item interface="HTMLCollection" obj="rowsnodeList" var="rowNode" index="3"/> <rowIndex interface="HTMLTableRowElement" obj="rowNode" var="vrowindex"/> <assertEquals actual="vrowindex" expected="2" id="rowIndexLink" ignoreCase="false"/> </test> diff --git a/test/testcases/tests/level1/html/HTMLCollection09.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection09.xml index f81e7af..f81e7af 100644 --- a/test/testcases/tests/level1/html/HTMLCollection09.xml.kfail +++ b/test/testcases/tests/level1/html/HTMLCollection09.xml diff --git a/test/testcases/tests/level1/html/HTMLCollection09.xml.notimpl b/test/testcases/tests/level1/html/HTMLCollection09.xml.notimpl deleted file mode 100644 index f81e7af..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection09.xml.notimpl +++ /dev/null @@ -1,47 +0,0 @@ -<?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="HTMLCollection09"> -<metadata> -<title>HTMLCollection09</title> -<creator>NIST</creator> -<description> - The item(index) method returns null if the index is out of range. - - Retrieve the first TABLE element and create a HTMLCollection by invoking - the "rows" attribute. Invoke the item(index) method with an index - of 5. This index is out of range and should return null. -</description> -<contributor>Rick Rivello</contributor> -<date qualifier="created">2002-05-01</date> -<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-33262535"/> -</metadata> -<var name="nodeList" type="NodeList"/> -<var name="testNode" type="Node"/> -<var name="rowNode" type="Node"/> -<var name="rowsnodeList" type="HTMLCollection"/> -<var name="vrowindex" type="int" /> -<var name="doc" type="Document"/> -<load var="doc" href="collection" willBeModified="false"/> -<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"table"'/> -<assertSize collection="nodeList" size="1" id="Asize"/> -<item interface="NodeList" obj="nodeList" var="testNode" index="0"/> -<rows interface="HTMLTableElement" obj="testNode" var="rowsnodeList"/> -<item interface="HTMLCollection" obj="rowsnodeList" var="rowNode" index="5"/> -<assertNull actual="rowNode" id="rowIndexLink"/> -</test> diff --git a/test/testcases/tests/level1/html/HTMLCollection10.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection10.xml index 78f4c9a..78f4c9a 100644 --- a/test/testcases/tests/level1/html/HTMLCollection10.xml.kfail +++ b/test/testcases/tests/level1/html/HTMLCollection10.xml diff --git a/test/testcases/tests/level1/html/HTMLCollection11.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection11.xml index ebf217f..ebf217f 100644 --- a/test/testcases/tests/level1/html/HTMLCollection11.xml.kfail +++ b/test/testcases/tests/level1/html/HTMLCollection11.xml diff --git a/test/testcases/tests/level1/html/HTMLCollection12.xml.kfail b/test/testcases/tests/level1/html/HTMLCollection12.xml.kfail deleted file mode 100644 index d7feb3d..0000000 --- a/test/testcases/tests/level1/html/HTMLCollection12.xml.kfail +++ /dev/null @@ -1,50 +0,0 @@ -<?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="HTMLCollection12"> -<metadata> -<title>HTMLCollection12</title> -<creator>NIST</creator> -<description> - The namedItem(name) method retrieves a node using a name. It first - searches for a node with a matching id attribute. If it doesn't find - one, it then searches for a Node with a matching name attribute, but only - on those elements that are allowed a name attribute. If there isn't - a matching node the method returns null. - - Retrieve the first FORM element and create a HTMLCollection by invoking - the elements attribute. The method returns null since there is not a - match of the name or id attribute. -</description> -<contributor>Rick Rivello</contributor> -<date qualifier="created">2002-05-01</date> -<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-21069976"/> -</metadata> -<var name="nodeList" type="NodeList"/> -<var name="testNode" type="Node"/> -<var name="formNode" type="Node"/> -<var name="formsnodeList" type="HTMLCollection"/> -<var name="doc" type="Document"/> -<load var="doc" href="collection" willBeModified="false"/> -<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"form"'/> -<assertSize collection="nodeList" size="1" id="Asize"/> -<item interface="NodeList" obj="nodeList" var="testNode" index="0"/> -<elements interface="HTMLFormElement" obj="testNode" var="formsnodeList"/> -<namedItem obj="formsnodeList" var="formNode" name='"select9"'/> -<assertNull actual="formNode" id="nameIndexLink" /> -</test> |