#include #include #include #include #if TESTNUMBER & 1 #define CLONE_WHOLE_DOCUMENT #endif #if TESTNUMBER & 2 #define INCLUDE_PREFIX #endif int main(int argc, char** argv) { GdomeException exc; GdomeDOMImplementation *impl; GdomeDocumentType *dt; GdomeDocument *doc1 #ifdef CLONE_WHOLE_DOCUMENT , *doc2 #endif ; GdomeElement *de1, *de2; GdomeDOMString *str1, *str2, *str3; impl = gdome_di_mkref(); assert(impl); str1 = gdome_str_mkref_own(strdup("foo")); str2 = gdome_str_mkref_own(strdup("bar")); str3 = gdome_str_mkref_own(strdup("baz")); dt = gdome_di_createDocumentType(impl, str1, str2, str3, &exc); gdome_str_unref(str1); gdome_str_unref(str2); gdome_str_unref(str3); assert(GDOME_EXCEPTION_CODE(exc) == GDOME_NOEXCEPTION_ERR); assert(dt); str1 = gdome_str_mkref_own(strdup("http://www.example.org/URN/testcase")); str2 = gdome_str_mkref_own(strdup( #ifdef INCLUDE_PREFIX "myel:" #endif "testelement")); doc1 = gdome_di_createDocument(impl, str1, str2, dt, &exc); gdome_str_unref(str1); gdome_str_unref(str2); assert(GDOME_EXCEPTION_CODE(exc) == GDOME_NOEXCEPTION_ERR); assert(doc1); #ifdef CLONE_WHOLE_DOCUMENT doc2 = GDOME_DOC(gdome_doc_cloneNode(doc1, TRUE, &exc)); assert(GDOME_EXCEPTION_CODE(exc) == GDOME_NOEXCEPTION_ERR); assert(doc2); #endif de1 = gdome_doc_documentElement(doc1, &exc); assert(GDOME_EXCEPTION_CODE(exc) == GDOME_NOEXCEPTION_ERR); assert(de1); #ifdef CLONE_WHOLE_DOCUMENT de2 = gdome_doc_documentElement(doc2, &exc); assert(GDOME_EXCEPTION_CODE(exc) == GDOME_NOEXCEPTION_ERR); #else de2 = GDOME_EL(gdome_el_cloneNode(de1, TRUE, &exc)); assert(GDOME_EXCEPTION_CODE(exc) == GDOME_NOEXCEPTION_ERR); #endif assert(de2); str1 = gdome_el_namespaceURI(de1, &exc); assert(GDOME_EXCEPTION_CODE(exc) == GDOME_NOEXCEPTION_ERR); assert(str1); assert(str1->str); str2 = gdome_el_namespaceURI(de2, &exc); assert(GDOME_EXCEPTION_CODE(exc) == GDOME_NOEXCEPTION_ERR); assert(str2); assert(str2->str); printf("de1->namespaceURI() = %s\n" "de2->namespaceURI() = %s\n", str1->str, str2->str); return 0; }