Reviewed by Maciej.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 31 Aug 2005 04:55:12 +0000 (04:55 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 31 Aug 2005 04:55:12 +0000 (04:55 +0000)
        - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4574
          HTML parser does not put attributes on the <isindex> element

        * layout-tests/dom/html/level2/html/HTMLIsIndexElement01-expected.txt:
        * layout-tests/dom/html/level2/html/HTMLIsIndexElement02-expected.txt:
        * layout-tests/dom/html/level2/html/HTMLIsIndexElement03-expected.txt:
        Updated to expect success.

        * khtml/html/htmlparser.cpp: (HTMLParser::handleIsindex): Updated to
        put the attributes on the <isindex> element.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@10403 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/dom/html/level2/html/HTMLIsIndexElement01-expected.txt
LayoutTests/dom/html/level2/html/HTMLIsIndexElement02-expected.txt
LayoutTests/dom/html/level2/html/HTMLIsIndexElement03-expected.txt
WebCore/ChangeLog-2005-12-19
WebCore/khtml/html/htmlparser.cpp

index 2b72fb86044f9cec0d046e2a4e2c34791c43a639..6a742d4b9d37e5792e1e10ef9721462b73b8221d 100644 (file)
@@ -1,3 +1,2 @@
-Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLIsIndexElement01  
-Status:        failure
-Detail:        IsIndex.Prompt: assertEquals failed, actual , expected New Employee: .
+Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLIsIndexElement01
+Status:        Success
index 1466847c977b5f803e8237c7cd7c618c298de423..9ddeb3009b1ff8fcd0777a2880f590f0cd2f0205 100644 (file)
@@ -1,3 +1,3 @@
 Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLIsIndexElement02  
 Status:        failure
-Detail:        IsIndex.Prompt: assertEquals failed, actual , expected Old Employee: .
+Detail:        formNullLink: assertNull failed, actual [object FORM]
index a6c6b8ba0c4da5b5333972a36ed0c386a7f4950a..c889eb76c8f56d8b265870a07df84c630b8585a3 100644 (file)
@@ -1,3 +1,2 @@
-Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLIsIndexElement03  
-Status:        failure
-Detail:        promptLink: assertEquals failed, actual , expected New Employee: .
+Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLIsIndexElement03
+Status:        Success
index 2e239dc9c5a0db67701dc99749c6fea13e63b3d7..16015129a75855481376491e4ea473cb3615f9e8 100644 (file)
@@ -1,3 +1,18 @@
+2005-08-30  Darin Adler  <darin@apple.com>
+
+        Reviewed by Maciej.
+
+        - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4574
+          HTML parser does not put attributes on the <isindex> element
+
+        * layout-tests/dom/html/level2/html/HTMLIsIndexElement01-expected.txt:
+        * layout-tests/dom/html/level2/html/HTMLIsIndexElement02-expected.txt:
+        * layout-tests/dom/html/level2/html/HTMLIsIndexElement03-expected.txt:
+        Updated to expect success.
+
+        * khtml/html/htmlparser.cpp: (HTMLParser::handleIsindex): Updated to
+        put the attributes on the <isindex> element.
+
 2005-08-30  Darin Adler  <darin@apple.com>
 
         Reviewed by Maciej.
index 700676feb8aeecd00ef9d16b69fb27c477fca4f2..16252b806c169715f3477db761a43c4fb0752a30 100644 (file)
@@ -1316,28 +1316,34 @@ NodeImpl *HTMLParser::handleIsindex( Token *t )
 {
     NodeImpl *n;
     HTMLFormElementImpl *myform = form;
-    if ( !myform ) {
+    if (!myform) {
         myform = new HTMLFormElementImpl(document);
         n = myform;
     } else
-        n = new HTMLDivElementImpl( document );
-    NodeImpl *child = new HTMLHRElementImpl( document );
-    n->addChild( child );
-    AttributeImpl* a = t->attrs ? t->attrs->getAttributeItem(promptAttr) : 0;
+        n = new HTMLDivElementImpl(document);
+
+    NamedMappedAttrMapImpl *attrs = t->attrs;
+    t->attrs = NULL;
+
+    HTMLIsIndexElementImpl *isIndex = new HTMLIsIndexElementImpl(document, myform);
+    isIndex->setAttributeMap(attrs);
+    isIndex->setAttribute(typeAttr, "khtml_isindex");
+
 #if APPLE_CHANGES
     DOMString text = searchableIndexIntroduction();
 #else
     DOMString text = i18n("This is a searchable index. Enter search keywords: ");
 #endif
-    if (a)
-        text = DOMString(a->value()) + " ";
-    child = new TextImpl(document, text);
-    n->addChild( child );
-    child = new HTMLIsIndexElementImpl(document, myform);
-    static_cast<ElementImpl *>(child)->setAttribute(typeAttr, "khtml_isindex");
-    n->addChild( child );
-    child = new HTMLHRElementImpl( document );
-    n->addChild( child );
+    if (attrs)
+        if (AttributeImpl *a = attrs->getAttributeItem(promptAttr))
+            text = a->value().domString() + " ";
+
+    attrs->deref();
+
+    n->addChild(new HTMLHRElementImpl(document));
+    n->addChild(new TextImpl(document, text));
+    n->addChild(isIndex);
+    n->addChild(new HTMLHRElementImpl(document));
 
     return n;
 }