source: webkit/trunk/LayoutTests/fast/doctypes/resources/TestDoctype.js @ 30431

Last change on this file since 30431 was 30431, checked in by hyatt@apple.com, 16 years ago

Fix for bug 12751, doctype nodes aren't part of the Document (Acid3).

Reviewed by Sam Weinig

Many tests added in fast/doctypes.

  • dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createDocument): (WebCore::DOMImplementation::createHTMLDocument):
  • dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::setDocType): (WebCore::Document::attach): (WebCore::Document::getImageMap):
  • dom/Document.h: (WebCore::Document::doctype): (WebCore::Document::): (WebCore::Document::determineParseMode): (WebCore::Document::setParseMode): (WebCore::Document::parseMode): (WebCore::Document::inCompatMode): (WebCore::Document::inAlmostStrictMode): (WebCore::Document::inStrictMode):
  • dom/DocumentType.cpp: (WebCore::DocumentType::cloneNode): (WebCore::DocumentType::insertedIntoDocument): (WebCore::DocumentType::removedFromDocument):
  • dom/DocumentType.h:
  • dom/Node.cpp: (WebCore::Node::childAllowed):
  • dom/StyledElement.cpp: (WebCore::StyledElement::attributeChanged):
  • dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::internalSubset): (WebCore::):
  • editing/markup.cpp: (WebCore::appendStartMarkup):
  • html/HTMLAppletElement.cpp: (WebCore::HTMLAppletElement::createRenderer):
  • html/HTMLDocument.cpp: (WebCore::HTMLDocument::HTMLDocument): (WebCore::HTMLDocument::childAllowed): (WebCore::HTMLDocument::determineParseMode):
  • html/HTMLDocument.h:
  • html/HTMLMapElement.cpp: (WebCore::HTMLMapElement::parseMappedAttribute):
  • html/HTMLParamElement.cpp: (WebCore::HTMLParamElement::parseMappedAttribute):
  • html/HTMLParser.cpp: (WebCore::HTMLParser::parseDoctypeToken):
  • html/HTMLParser.h:
  • html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::reset): (WebCore::HTMLTokenizer::parseDoctype): (WebCore::HTMLTokenizer::parseTag): (WebCore::HTMLTokenizer::write): (WebCore::HTMLTokenizer::finish): (WebCore::HTMLTokenizer::processDoctypeToken):
  • html/HTMLTokenizer.h: (WebCore::): (WebCore::DoctypeToken::DoctypeToken): (WebCore::DoctypeToken::reset): (WebCore::DoctypeToken::state): (WebCore::DoctypeToken::setState): (WebCore::HTMLTokenizer::State::inDoctype): (WebCore::HTMLTokenizer::State::setInDoctype): (WebCore::HTMLTokenizer::State::needsSpecialWriteHandling): (WebCore::HTMLTokenizer::State::):
  • html/HTMLViewSourceDocument.cpp: (WebCore::HTMLViewSourceDocument::addViewSourceToken): (WebCore::HTMLViewSourceDocument::addViewSourceDoctypeToken):
  • html/HTMLViewSourceDocument.h:
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::write): (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
  • page/Frame.cpp: (WebCore::Frame::documentTypeString):
  • page/inspector/utilities.js:
  • xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::createDocumentFromSource):
File size: 1.3 KB
Line 
1log = function(msg)
2{
3    document.getElementById('console').appendChild(document.createTextNode(msg + "\n"));
4}
5
6hasAlmostStandardsModeQuirk = function(doc)
7{
8    var div = doc.createElement('div');
9    div.innerHTML = "<img src='http://www.google.com/intl/en_ALL/images/logo.gif' style='background-color: green; width: 100px; height: 100px'><br><img src='http://www.google.com/intl/en_ALL/images/logo.gif' style='background-color: green; width: 100px; height: 100px'>";
10    doc.body.appendChild(div);
11    var hasQuirk = doc.defaultView.getComputedStyle(div, "").getPropertyValue("height") == "200px";
12    doc.body.removeChild(div);
13    return hasQuirk;
14}
15
16testDoctype = function(doc, expected, doctype)
17{
18    var mode = "NOT SET";
19    if (doc.compatMode == "CSS1Compat") {
20        if (hasAlmostStandardsModeQuirk(doc)) {
21            mode = "Almost Standards";
22        } else {
23            mode = "Standards";
24        }
25    } else if (doc.compatMode == "BackCompat") {
26        mode = "Quirks";
27    } else {
28        mode = "Your browser does not support document.compatMode";
29    }
30
31    if (mode == expected) {
32        log("PASS: the Doctype was " + mode + " as expected.");
33    } else {
34        log("FAIL: the Doctype was " + mode + ".  It was expected to be " + expected + ".  Doctype: " + doctype);
35    }
36}
Note: See TracBrowser for help on using the repository browser.