summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/dom/html/html_select_element.h11
-rw-r--r--src/html/html_select_element.c4
-rw-r--r--test/DOMTSHandler.pm7
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement01.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement01.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement02.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement02.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement03.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement03.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement04.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement04.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement05.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement05.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement06.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement06.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement07.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement07.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement08.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement08.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement09.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement09.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement10.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement10.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement11.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement11.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement12.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement12.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement13.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement13.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement14.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement14.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement15.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement15.xml.kfail)0
-rw-r--r--test/testcases/tests/level1/html/HTMLSelectElement17.xml (renamed from test/testcases/tests/level1/html/HTMLSelectElement17.xml.kfail)0
-rw-r--r--test/testutils/foreach.c26
-rw-r--r--test/testutils/foreach.h4
21 files changed, 48 insertions, 4 deletions
diff --git a/include/dom/html/html_select_element.h b/include/dom/html/html_select_element.h
index 89b6844..b92abd6 100644
--- a/include/dom/html/html_select_element.h
+++ b/include/dom/html/html_select_element.h
@@ -40,9 +40,12 @@ dom_exception dom_html_select_element_set_length(
dom_exception dom_html_select_element_get_form(
dom_html_select_element *ele, dom_html_form_element **form);
-dom_exception dom_html_select_element_get_options(
+dom_exception dom__html_select_element_get_options(
dom_html_select_element *ele,
struct dom_html_options_collection **col);
+#define dom_html_select_element_get_options(e, c) \
+ dom__html_select_element_get_options((dom_html_select_element *) (e), \
+ (struct dom_html_options_collection **) (c))
dom_exception dom_html_select_element_get_disabled(
dom_html_select_element *ele, bool *disabled);
@@ -70,8 +73,12 @@ dom_exception dom_html_select_element_set_tab_index(
dom_html_select_element *ele, unsigned long tab_index);
/* Functions */
-dom_exception dom_html_select_element_add(dom_html_select_element *select,
+dom_exception dom__html_select_element_add(dom_html_select_element *select,
struct dom_html_element *ele, struct dom_html_element *before);
+#define dom_html_select_element_add(s, e, b) \
+ dom__html_select_element_add((dom_html_select_element *) (s), \
+ (struct dom_html_element *) (e), \
+ (struct dom_html_element *) (b))
dom_exception dom_html_select_element_remove(dom_html_select_element *ele,
long index);
dom_exception dom_html_select_element_blur(struct dom_html_select_element *ele);
diff --git a/src/html/html_select_element.c b/src/html/html_select_element.c
index 9992376..89e46a9 100644
--- a/src/html/html_select_element.c
+++ b/src/html/html_select_element.c
@@ -361,7 +361,7 @@ dom_exception dom_html_select_element_get_form(
* \param col THe returned collection object
* \return DOM_NO_ERR on success.
*/
-dom_exception dom_html_select_element_get_options(
+dom_exception dom__html_select_element_get_options(
dom_html_select_element *ele,
struct dom_html_options_collection **col)
{
@@ -524,7 +524,7 @@ dom_exception dom_html_select_element_set_tab_index(
/* Functions */
-dom_exception dom_html_select_element_add(dom_html_select_element *select,
+dom_exception dom__html_select_element_add(dom_html_select_element *select,
struct dom_html_element *ele, struct dom_html_element *before)
{
UNUSED(select);
diff --git a/test/DOMTSHandler.pm b/test/DOMTSHandler.pm
index 890a8ff..93a97e9 100644
--- a/test/DOMTSHandler.pm
+++ b/test/DOMTSHandler.pm
@@ -1244,6 +1244,13 @@ sub generate_control_statement {
print "foreach_initialise_domnamednodemap($coll, \&iterator$iterator_index);\n";
print "while(get_next_domnamednodemap($coll, \&iterator$iterator_index, \&$member)) {\n";
}
+
+ if ($self->{"var"}->{$coll} eq "HTMLCollection") {
+ $iterator_index++;
+ print "unsigned int iterator$iterator_index = 0;";
+ print "foreach_initialise_domhtmlcollection($coll, \&iterator$iterator_index);\n";
+ print "while(get_next_domhtmlcollection($coll, \&iterator$iterator_index, \&$member)) {\n";
+ }
}
}
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement01.xml
index 3b08881..3b08881 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement01.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement01.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement02.xml
index f9e865d..f9e865d 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement02.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement02.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement03.xml
index 97d217c..97d217c 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement03.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement03.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement04.xml
index 11ff6ee..11ff6ee 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement04.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement04.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement05.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement05.xml
index 16c78e1..16c78e1 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement05.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement05.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement06.xml
index 8ff66a0..8ff66a0 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement06.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement06.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement07.xml
index 218b9d6..218b9d6 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement07.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement07.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement08.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement08.xml
index 12593fe..12593fe 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement08.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement08.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement09.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement09.xml
index 382510d..382510d 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement09.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement09.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement10.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement10.xml
index b9f5762..b9f5762 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement10.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement10.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement11.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement11.xml
index ebb4d1b..ebb4d1b 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement11.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement11.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement12.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement12.xml
index 5559f5d..5559f5d 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement12.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement12.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement13.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement13.xml
index 2c0aafb..2c0aafb 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement13.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement13.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement14.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement14.xml
index df22987..df22987 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement14.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement14.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement15.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement15.xml
index dcc2f6d..dcc2f6d 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement15.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement15.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement17.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement17.xml
index 03549ff..03549ff 100644
--- a/test/testcases/tests/level1/html/HTMLSelectElement17.xml.kfail
+++ b/test/testcases/tests/level1/html/HTMLSelectElement17.xml
diff --git a/test/testutils/foreach.c b/test/testutils/foreach.c
index 764920c..bbc8a47 100644
--- a/test/testutils/foreach.c
+++ b/test/testutils/foreach.c
@@ -34,6 +34,11 @@ void foreach_initialise_domnamednodemap(dom_namednodemap *map, unsigned int *ite
*iterator = 0;
}
+void foreach_initialise_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator)
+{
+ (void)coll;
+ *iterator = 0;
+}
bool _get_next_domnodelist(dom_nodelist *list, unsigned int *iterator, dom_node **ret)
{
@@ -97,3 +102,24 @@ bool _get_next_domnamednodemap(dom_namednodemap *map, unsigned int *iterator, do
return true;
}
+
+bool _get_next_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator, dom_node **ret)
+{
+ dom_exception err;
+ unsigned long len;
+
+ err = dom_html_collection_get_length(coll, &len);
+ if (err != DOM_NO_ERR)
+ return false;
+
+ if (*iterator >= len)
+ return false;
+
+ err = dom_html_collection_item(coll, (*iterator), ret);
+ if (err != DOM_NO_ERR)
+ return false;
+
+ (*iterator)++;
+
+ return true;
+}
diff --git a/test/testutils/foreach.h b/test/testutils/foreach.h
index 75874bc..aa9543d 100644
--- a/test/testutils/foreach.h
+++ b/test/testutils/foreach.h
@@ -26,6 +26,7 @@
void foreach_initialise_domnodelist(dom_nodelist *list, unsigned int *iterator);
void foreach_initialise_list(list *list, unsigned int *iterator);
void foreach_initialise_domnamednodemap(dom_namednodemap *map, unsigned int *iterator);
+void foreach_initialise_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator);
bool _get_next_domnodelist(dom_nodelist *list, unsigned int *iterator, dom_node **ret);
#define get_next_domnodelist(l, i, r) _get_next_domnodelist( \
@@ -37,5 +38,8 @@ bool _get_next_domnamednodemap(dom_namednodemap *map, unsigned int *iterator, do
#define get_next_domnamednodemap(m, i, r) _get_next_domnamednodemap( \
(dom_namednodemap *) (m), (unsigned int *) (i), (dom_node **) (r))
+bool _get_next_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator, dom_node **ret);
+#define get_next_domhtmlcollection(c, i, r) _get_next_domhtmlcollection( \
+ (dom_html_collection *) (c), (unsigned int *) (i), (dom_node **) (r))
#endif