From cd055419fb5e2c046046d8e132105909c9f7c874 Mon Sep 17 00:00:00 2001 From: rsk1994 Date: Sat, 31 May 2014 09:59:54 +0530 Subject: Base Element --- include/dom/dom.h | 1 + include/dom/html/html_base_element.h | 16 ++++++++ src/html/TODO | 6 +-- src/html/html_base_element.c | 43 ++++++++++++++++++++++ .../level1/html/HTMLBaseElement01.xml.notimpl | 42 --------------------- .../level1/html/HTMLBaseElement02.xml.notimpl | 42 --------------------- 6 files changed, 63 insertions(+), 87 deletions(-) delete mode 100644 test/testcases/tests/level1/html/HTMLBaseElement01.xml.notimpl delete mode 100644 test/testcases/tests/level1/html/HTMLBaseElement02.xml.notimpl diff --git a/include/dom/dom.h b/include/dom/dom.h index fb39388..2c312f4 100644 --- a/include/dom/dom.h +++ b/include/dom/dom.h @@ -88,6 +88,7 @@ #include #include #include +#include /* DOM Events header */ #include diff --git a/include/dom/html/html_base_element.h b/include/dom/html/html_base_element.h index 5ff28ee..c8283f3 100644 --- a/include/dom/html/html_base_element.h +++ b/include/dom/html/html_base_element.h @@ -8,7 +8,23 @@ #ifndef dom_html_base_element_h_ #define dom_html_base_element_h_ +#include +#include +#include + typedef struct dom_html_base_element dom_html_base_element; +dom_exception dom_html_base_element_get_href( + dom_html_base_element *element, dom_string **href); + +dom_exception dom_html_base_element_set_href( + dom_html_base_element *element, dom_string *href); + +dom_exception dom_html_base_element_get_target( + dom_html_base_element *element, dom_string **target); + +dom_exception dom_html_base_element_set_target( + dom_html_base_element *element, dom_string *target); + #endif diff --git a/src/html/TODO b/src/html/TODO index 0a75535..97eab8e 100644 --- a/src/html/TODO +++ b/src/html/TODO @@ -4,10 +4,10 @@ as far as the test suite is concerned. HTMLElement html_element DONE HTMLHtmlElement html_html_element DONE HTMLHeadElement html_head_element DONE -HTMLLinkElement html_link_element MISSING +HTMLLinkElement html_link_element DONE HTMLTitleElement html_title_element DONE -HTMLMetaElement html_meta_element MISSING -HTMLBaseElement html_base_element MISSING +HTMLMetaElement html_meta_element DONE +HTMLBaseElement html_base_element DONE HTMLIsIndexElement html_isindex_element MISSING HTMLStyleElement html_style_element MISSING HTMLBodyElement html_body_element MISSING diff --git a/src/html/html_base_element.c b/src/html/html_base_element.c index 150ef37..6be8e3a 100644 --- a/src/html/html_base_element.c +++ b/src/html/html_base_element.c @@ -7,6 +7,7 @@ #include +#include "html/html_document.h" #include "html/html_base_element.h" #include "core/node.h" @@ -118,3 +119,45 @@ dom_exception _dom_html_base_element_copy(dom_node_internal *old, return _dom_html_element_copy(old, copy); } +/*-----------------------------------------------------------------------*/ +/* API functions */ + +#define SIMPLE_GET(attr) \ + dom_exception dom_html_base_element_get_##attr( \ + dom_html_base_element *element, \ + dom_string **attr) \ + { \ + dom_exception ret; \ + dom_string *_memo_##attr; \ + \ + _memo_##attr = \ + ((struct dom_html_document *) \ + ((struct dom_node_internal *)element)->owner)->\ + memoised[hds_##attr]; \ + \ + ret = dom_element_get_attribute(element, _memo_##attr, attr); \ + \ + return ret; \ + } +#define SIMPLE_SET(attr) \ +dom_exception dom_html_base_element_set_##attr( \ + dom_html_base_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(href); +SIMPLE_GET_SET(target); diff --git a/test/testcases/tests/level1/html/HTMLBaseElement01.xml.notimpl b/test/testcases/tests/level1/html/HTMLBaseElement01.xml.notimpl deleted file mode 100644 index fa6eacc..0000000 --- a/test/testcases/tests/level1/html/HTMLBaseElement01.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLBaseElement01 -NIST - - The href attribute specifies the base URI. - - Retrieve the href attribute and examine its value. - -Mary Brady -2002-02-22 - - - - - - - - - - - - - diff --git a/test/testcases/tests/level1/html/HTMLBaseElement02.xml.notimpl b/test/testcases/tests/level1/html/HTMLBaseElement02.xml.notimpl deleted file mode 100644 index d2a20a5..0000000 --- a/test/testcases/tests/level1/html/HTMLBaseElement02.xml.notimpl +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -HTMLBaseElement02 -NIST - - The target attribute specifies the default target frame. - - Retrieve the target attribute and examine its value. - -Rick Rivello -2002-07-18 - - - - - - - - - - - - - -- cgit v1.2.3