Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tokenizer test on html5test.com fails #10982

Open
jdm opened this issue May 3, 2016 · 1 comment
Open

Tokenizer test on html5test.com fails #10982

jdm opened this issue May 3, 2016 · 1 comment
Labels

Comments

@jdm
Copy link
Member

@jdm jdm commented May 3, 2016

var result = true;
var e = document.createElement('div');  

try {
    e.innerHTML = "<div<div>";
    result &= e.firstChild && e.firstChild.nodeName == "DIV<DIV";

    e.innerHTML = "<div foo<bar=''>";
    result &= e.firstChild.attributes[0].nodeName == "foo<bar" || e.firstChild.attributes[0].name == "foo<bar";

    e.innerHTML = "<div foo=`bar`>";
    result &= e.firstChild.getAttribute("foo") == "`bar`";

    e.innerHTML = "<div \"foo=''>";
    result &= e.firstChild && (e.firstChild.attributes[0].nodeName == "\"foo" || e.firstChild.attributes[0].name == "\"foo");

    e.innerHTML = "<a href='\nbar'></a>";
    result &= e.firstChild && e.firstChild.getAttribute("href") == "\nbar";

    e.innerHTML = "<!DOCTYPE html>";
    result &= e.firstChild == null;

    e.innerHTML = "\u000D";
    result &= e.firstChild && e.firstChild.nodeValue == "\u000A";

    e.innerHTML = "&lang;&rang;";
    result &= e.firstChild.nodeValue == "\u27E8\u27E9";

    e.innerHTML = "&apos;";
    result &= e.firstChild.nodeValue == "'";

    e.innerHTML = "&ImaginaryI;";
    result &= e.firstChild.nodeValue == "\u2148";

    e.innerHTML = "&Kopf;";
    result &= e.firstChild.nodeValue == "\uD835\uDD42";

    e.innerHTML = "&notinva;";
    result &= e.firstChild.nodeValue == "\u2209";

    e.innerHTML = '<?import namespace="foo" implementation="#bar">';
    result &= e.firstChild && e.firstChild.nodeType == 8 && e.firstChild.nodeValue == '?import namespace="foo" implementation="#bar"';

    e.innerHTML = '<!--foo--bar-->';
    result &= e.firstChild && e.firstChild.nodeType == 8 && e.firstChild.nodeValue == 'foo--bar';

    e.innerHTML = '<![CDATA[x]]>';
    result &= e.firstChild && e.firstChild.nodeType == 8 && e.firstChild.nodeValue == '[CDATA[x]]';

    e.innerHTML = "<textarea><!--</textarea>--></textarea>";
    result &= e.firstChild && e.firstChild.firstChild && e.firstChild.firstChild.nodeValue == "<!--";

    e.innerHTML = "<textarea><!--</textarea>-->";
    result &= e.firstChild && e.firstChild.firstChild && e.firstChild.firstChild.nodeValue == "<!--";

    e.innerHTML = "<style><!--</style>--></style>";
    result &= e.firstChild && e.firstChild.firstChild && e.firstChild.firstChild.nodeValue == "<!--";

    e.innerHTML = "<style><!--</style>-->";
    result &= e.firstChild && e.firstChild.firstChild && e.firstChild.firstChild.nodeValue == "<!--";
} catch(e) {
    result = false;
}
@jdm jdm added the A-content/dom label May 3, 2016
@gsnedders
Copy link
Contributor

@gsnedders gsnedders commented May 3, 2016

I thought this is what https://github.com/html5lib/html5lib-tests/blob/master/tree-construction/html5test-com.dat was testing, but seemingly not… Presumably primarily because that isn't dealing with the fragment case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.