Update to latest HTML5lib

Fix that Tokenizer bug for real this time.
This commit is contained in:
Jacques Distler 2007-09-09 22:26:19 -05:00
parent f3a89556c4
commit ed68d975df
53 changed files with 11569 additions and 2603 deletions

View file

@ -0,0 +1,787 @@
{"tests": [
{"description": "base href contains invalid URI due to leading space",
"input": "<base href=' http://www.example.com/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to trailing space",
"input": "<base href='http://www.example.com/ '",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to space in scheme",
"input": "<base href='ht tp://www.example.com/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to space in domain",
"input": "<base href='http://www.example. com/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to space in path",
"input": "<base href='http://www.example.com/a b'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to space in fragment",
"input": "<base href='http://www.example.com/a#b c'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to space in query",
"input": "<base href='http://www.example.com/a?b c'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to leading tab",
"input": "<base href='\thttp://www.example.com/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to trailing tab",
"input": "<base href='http://www.example.com/\t'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to tab in scheme",
"input": "<base href='ht\ttp://www.example.com/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to tab in domain",
"input": "<base href='http://www.example.\tcom/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to tab in path",
"input": "<base href='http://www.example.com/a\tb'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to tab in fragment",
"input": "<base href='http://www.example.com/a#b\tc'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to tab in query",
"input": "<base href='http://www.example.com/a?b\tc'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to leading LF",
"input": "<base href='\nhttp://www.example.com/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to LF in scheme",
"input": "<base href='ht\ntp://www.example.com/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to LF in domain",
"input": "<base href='http://www.example.\ncom/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to LF in path",
"input": "<base href='http://www.example.com/a\nb'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to LF in fragment",
"input": "<base href='http://www.example.com/a#b\nc'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to LF in query",
"input": "<base href='http://www.example.com/a?b\nc'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to leading LT",
"input": "<base href='\u000Bhttp://www.example.com/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to trailing LT",
"input": "<base href='http://www.example.com/\u000B'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to LT in scheme",
"input": "<base href='ht\u000Btp://www.example.com/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to LT in domain",
"input": "<base href='http://www.example.\u000Bcom/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to LT in path",
"input": "<base href='http://www.example.com/a\u000Bb'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to LT in fragment",
"input": "<base href='http://www.example.com/a#b\u000Bc'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to LT in query",
"input": "<base href='http://www.example.com/a?b\u000Bc'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to leading FF",
"input": "<base href='\u000Chttp://www.example.com/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to trailing FF",
"input": "<base href='http://www.example.com/\u000C'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to FF in scheme",
"input": "<base href='ht\u000Ctp://www.example.com/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to FF in domain",
"input": "<base href='http://www.example.\u000Ccom/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to FF in path",
"input": "<base href='http://www.example.com/a\u000Cb'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to FF in fragment",
"input": "<base href='http://www.example.com/a#b\u000Cc'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to FF in query",
"input": "<base href='http://www.example.com/a?b\u000Cc'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to leading CR",
"input": "<base href='\rhttp://www.example.com/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to CR in scheme",
"input": "<base href='ht\rtp://www.example.com/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to CR in domain",
"input": "<base href='http://www.example.\rcom/'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to CR in path",
"input": "<base href='http://www.example.com/a\rb'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to CR in fragment",
"input": "<base href='http://www.example.com/a#b\rc'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains invalid URI due to CR in query",
"input": "<base href='http://www.example.com/a?b\rc'",
"fail-unless": "invalid-uri-char"},
{"description": "base href contains valid URI scheme 'ftp'",
"input": "<base href='ftp://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'http'",
"input": "<base href='http://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'gopher'",
"input": "<base href='gopher://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'mailto'",
"input": "<base href='mailto://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'news'",
"input": "<base href='news://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'nntp'",
"input": "<base href='nntp://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'telnet'",
"input": "<base href='telnet://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'wais'",
"input": "<base href='wais://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'file'",
"input": "<base href='file://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'prospero'",
"input": "<base href='prospero://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'z39.50s'",
"input": "<base href='z39.50s://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'z39.50r'",
"input": "<base href='z39.50r://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'cid'",
"input": "<base href='cid://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'mid'",
"input": "<base href='mid://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'vemmi'",
"input": "<base href='vemmi://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'service'",
"input": "<base href='service://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'imap'",
"input": "<base href='imap://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'nfs'",
"input": "<base href='nfs://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'acap'",
"input": "<base href='acap://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'rtsp'",
"input": "<base href='rtsp://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'tip'",
"input": "<base href='tip://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'pop'",
"input": "<base href='pop://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'data'",
"input": "<base href='data://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'dav'",
"input": "<base href='dav://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'opaquelocktoken'",
"input": "<base href='opaquelocktoken://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'sip'",
"input": "<base href='sip://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'sips'",
"input": "<base href='sips://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'tel'",
"input": "<base href='tel://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'fax'",
"input": "<base href='fax://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'modem'",
"input": "<base href='modem://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'ldap'",
"input": "<base href='ldap://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'https'",
"input": "<base href='https://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'soap.beep'",
"input": "<base href='soap.beep://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'soap.beeps'",
"input": "<base href='soap.beeps://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'xmlrpc.beep'",
"input": "<base href='xmlrpc.beep://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'xmlrpc.beeps'",
"input": "<base href='xmlrpc.beeps://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'urn'",
"input": "<base href='urn://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'go'",
"input": "<base href='go://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'h323'",
"input": "<base href='h323://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'ipp'",
"input": "<base href='ipp://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'tftp'",
"input": "<base href='tftp://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'mupdate'",
"input": "<base href='mupdate://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'pres'",
"input": "<base href='pres://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'im'",
"input": "<base href='im://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'mtqp'",
"input": "<base href='mtqp://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'iris.beep'",
"input": "<base href='iris.beep://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'dict'",
"input": "<base href='dict://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'snmp'",
"input": "<base href='snmp://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'crid'",
"input": "<base href='crid://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'tag'",
"input": "<base href='tag://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'dns'",
"input": "<base href='dns://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'info'",
"input": "<base href='info://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'javascript'",
"input": "<base href='javascript:foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'FTP'",
"input": "<base href='FTP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'HTTP'",
"input": "<base href='HTTP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'GOPHER'",
"input": "<base href='GOPHER://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'MAILTO'",
"input": "<base href='MAILTO://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'NEWS'",
"input": "<base href='NEWS://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'NNTP'",
"input": "<base href='NNTP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'TELNET'",
"input": "<base href='TELNET://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'WAIS'",
"input": "<base href='WAIS://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'FILE'",
"input": "<base href='FILE://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'PROSPERO'",
"input": "<base href='PROSPERO://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'Z39.50S'",
"input": "<base href='Z39.50S://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'Z39.50R'",
"input": "<base href='Z39.50R://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'CID'",
"input": "<base href='CID://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'MID'",
"input": "<base href='MID://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'VEMMI'",
"input": "<base href='VEMMI://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'SERVICE'",
"input": "<base href='SERVICE://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'IMAP'",
"input": "<base href='IMAP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'NFS'",
"input": "<base href='NFS://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'ACAP'",
"input": "<base href='ACAP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'RTSP'",
"input": "<base href='RTSP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'TIP'",
"input": "<base href='TIP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'POP'",
"input": "<base href='POP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'DATA'",
"input": "<base href='DATA://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'DAV'",
"input": "<base href='DAV://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'OPAQUELOCKTOKEN'",
"input": "<base href='OPAQUELOCKTOKEN://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'SIP'",
"input": "<base href='SIP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'SIPS'",
"input": "<base href='SIPS://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'TEL'",
"input": "<base href='TEL://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'FAX'",
"input": "<base href='FAX://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'MODEM'",
"input": "<base href='MODEM://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'LDAP'",
"input": "<base href='LDAP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'HTTPS'",
"input": "<base href='HTTPS://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'SOAP.BEEP'",
"input": "<base href='SOAP.BEEP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'SOAP.BEEPS'",
"input": "<base href='SOAP.BEEPS://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'XMLRPC.BEEP'",
"input": "<base href='XMLRPC.BEEP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'XMLRPC.BEEPS'",
"input": "<base href='XMLRPC.BEEPS://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'URN'",
"input": "<base href='URN://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'GO'",
"input": "<base href='GO://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'H323'",
"input": "<base href='H323://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'IPP'",
"input": "<base href='IPP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'TFTP'",
"input": "<base href='TFTP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'MUPDATE'",
"input": "<base href='MUPDATE://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'PRES'",
"input": "<base href='PRES://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'IM'",
"input": "<base href='IM://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'MTQP'",
"input": "<base href='MTQP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'IRIS.BEEP'",
"input": "<base href='IRIS.BEEP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'DICT'",
"input": "<base href='DICT://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'SNMP'",
"input": "<base href='SNMP://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'CRID'",
"input": "<base href='CRID://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'TAG'",
"input": "<base href='TAG://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'DNS'",
"input": "<base href='DNS://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'INFO'",
"input": "<base href='INFO://foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'JAVASCRIPT'",
"input": "<base href='JAVASCRIPT:foo'",
"fail-if": "invalid-scheme"},
{"description": "base href contains valid URI scheme 'foo'",
"input": "<base href='foo:bar'",
"fail-unless": "invalid-scheme"},
{"description": "base href contains valid URI 'g'",
"input": "<base href='g'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI './g'",
"input": "<base href='./g'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g/'",
"input": "<base href='g/'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '/g'",
"input": "<base href='/g'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '//g'",
"input": "<base href='//g'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '?y'",
"input": "<base href='?y'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g?y'",
"input": "<base href='g?y'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '#s'",
"input": "<base href='#s'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g#s'",
"input": "<base href='g#s'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g?y#s'",
"input": "<base href='g?y#s'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI ';x'",
"input": "<base href=';x'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g;x'",
"input": "<base href='g;x'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g;x?y#s'",
"input": "<base href='g;x?y#s'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '.'",
"input": "<base href='.'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI './'",
"input": "<base href='./'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '..'",
"input": "<base href='..'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '../'",
"input": "<base href='../'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '../g'",
"input": "<base href='../g'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '../..'",
"input": "<base href='../..'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '../../'",
"input": "<base href='../../'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '../../g'",
"input": "<base href='../../g'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '../../../g'",
"input": "<base href='../../../g'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '../../../../g'",
"input": "<base href='../../../../g'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '/./g'",
"input": "<base href='/./g'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '/../g'",
"input": "<base href='/../g'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g.'",
"input": "<base href='g.'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '.g'",
"input": "<base href='.g'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g..'",
"input": "<base href='g..'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI '..g'",
"input": "<base href='..g'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI './../g'",
"input": "<base href='./../g'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI './g/.'",
"input": "<base href='./g/.'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g/./h'",
"input": "<base href='g/./h'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g/../h'",
"input": "<base href='g/../h'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g;x=1/./y'",
"input": "<base href='g;x=1/./y'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g;x=1/../y'",
"input": "<base href='g;x=1/../y'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g?y/./x'",
"input": "<base href='g?y/./x'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g?y/../x'",
"input": "<base href='g?y/../x'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g#s/./x'",
"input": "<base href='g#s/./x'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'g#s/../x'",
"input": "<base href='g#s/../x'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI './g:h'",
"input": "<base href='./g:h'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'http://www.w%33.org'",
"input": "<base href='http://www.w%33.org'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org'",
"input": "<base href='http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'http://xn--rksmrgs-5wao1o.josefsson.org'",
"input": "<base href='http://xn--rksmrgs-5wao1o.josefsson.org'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp'",
"input": "<base href='http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'http://xn--99zt52a.w3.mag.keio.ac.jp'",
"input": "<base href='http://xn--99zt52a.w3.mag.keio.ac.jp'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
"input": "<base href='http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
"input": "<base href='http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
"input": "<base href='http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
"fail-if": "invalid-attribute-value"},
{"description": "base href contains valid URI 'http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
"input": "<base href='http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
"fail-if": "invalid-attribute-value"}
]}

View file

@ -0,0 +1,35 @@
{"tests": [
{"description": "valid base target attribute '_self'",
"input": "<base target=_self>",
"fail-if": "invalid-browsing-context"},
{"description": "valid base target attribute '_parent'",
"input": "<base target=_parent>",
"fail-if": "invalid-browsing-context"},
{"description": "valid base target attribute '_top'",
"input": "<base target=_top>",
"fail-if": "invalid-browsing-context"},
{"description": "valid base target attribute '_blank'",
"input": "<base target=_blank>",
"fail-if": "invalid-browsing-context"},
{"description": "valid base target attribute 'foo'",
"input": "<base target=foo>",
"fail-if": "invalid-browsing-context"},
{"description": "base target attribute may be blank",
"input": "<base target>",
"fail-if": "invalid-browsing-context"},
{"description": "invalid base target attribute '_'",
"input": "<base target=_>",
"fail-unless": "invalid-browsing-context"},
{"description": "invalid base target attribute '_foo'",
"input": "<base target=_foo>",
"fail-unless": "invalid-browsing-context"}
]}

View file

@ -0,0 +1,7 @@
{"tests": [
{"description": "blockquote cite contains invalid URI due to space in domain",
"input": "<blockquote cite='http://www.example. com/'",
"fail-unless": "invalid-uri-char"}
]}

View file

@ -17,67 +17,63 @@
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading tab",
"input": "<span class=' a'>",
"input": "<span class='\ta'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with trailing tab",
"input": "<span class='a '>",
"input": "<span class='a\t'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading and trailing tab",
"input": "<span class=' a '>",
"input": "<span class='\ta\t'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading LF",
"input": "<span class='
a'>",
"input": "<span class='\na'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with trailing LF",
"input": "<span class='a
'>",
"input": "<span class='a\n'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading and trailing LF",
"input": "<span class='
a
'>",
"input": "<span class='\na\n'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading LT",
"input": "<span class=' a'>",
"input": "<span class='\u000Ba'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with trailing LT",
"input": "<span class='a '>",
"input": "<span class='a\u000B'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading and trailing LT",
"input": "<span class=' a '>",
"input": "<span class='\u000Ba\u000B'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading FF",
"input": "<span class=' a'>",
"input": "<span class='\u000Ca'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with trailing FF",
"input": "<span class='a '>",
"input": "<span class='a\u000C'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading and trailing FF",
"input": "<span class=' a '>",
"input": "<span class='\u000Ca\u000C'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading CR",
"input": "<span class=' a'>",
"input": "<span class='\ra'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with trailing CR",
"input": "<span class='a '>",
"input": "<span class='a\r'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading and trailing CR",
"input": "<span class=' a '>",
"input": "<span class='\ra\r'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid double class attribute value separated by space",
@ -85,24 +81,23 @@ a
"fail-if": "invalid-attribute-value"},
{"description": "valid double class attribute value separated by tab",
"input": "<span class='a b'>",
"input": "<span class='a\tb'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid double class attribute value separated by LF",
"input": "<span class='a
b'>",
"input": "<span class='a\nb'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid double class attribute value separated by LT",
"input": "<span class='a b'>",
"input": "<span class='a\u000Bb'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid double class attribute value separated by FF",
"input": "<span class='a b'>",
"input": "<span class='a\u000Cb'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid double class attribute value separated by CR",
"input": "<span class='a b'>",
"input": "<span class='a\rb'>",
"fail-if": "invalid-attribute-value"},
{"description": "invalid duplicated class attribute value separated by space",
@ -110,24 +105,23 @@ b'>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid duplicated class attribute value separated by tab",
"input": "<span class='a a'>",
"input": "<span class='a\ta'>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid duplicated class attribute value separated by LF",
"input": "<span class='a
a'>",
"input": "<span class='a\na'>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid duplicated class attribute value separated by LT",
"input": "<span class='a a'>",
"input": "<span class='a\u000Ba'>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid duplicated class attribute value separated by FF",
"input": "<span class='a a'>",
"input": "<span class='a\u000Ca'>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid duplicated class attribute value separated by CR",
"input": "<span class='a a'>",
"input": "<span class='a\ra'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated class attribute value separated by space",
@ -135,24 +129,23 @@ a'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated class attribute value separated by tab",
"input": "<span class='a a'>",
"input": "<span class='a\ta'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated class attribute value separated by LF",
"input": "<span class='a
a'>",
"input": "<span class='a\na'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated class attribute value separated by LT",
"input": "<span class='a a'>",
"input": "<span class='a\u000Ba'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated class attribute value separated by FF",
"input": "<span class='a a'>",
"input": "<span class='a\u000Ca'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated class attribute value separated by CR",
"input": "<span class='a a'>",
"input": "<span class='a\ra'>",
"fail-unless": "duplicate-value-in-token-list"}
]}

View file

@ -34,26 +34,26 @@
{"description": "invalid contenteditable attribute value 'foo'",
"input": "<span contenteditable=foo>",
"fail-unless": "invalid-attribute-value"},
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid contenteditable attribute value '0'",
"input": "<span contenteditable=0>",
"fail-unless": "invalid-attribute-value"},
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid contenteditable attribute value '1'",
"input": "<span contenteditable=1>",
"fail-unless": "invalid-attribute-value"},
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid contenteditable attribute value 'yes'",
"input": "<span contenteditable=yes>",
"fail-unless": "invalid-attribute-value"},
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid contenteditable attribute value 'no'",
"input": "<span contenteditable=no>",
"fail-unless": "invalid-attribute-value"},
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid contenteditable attribute value 'inherit'",
"input": "<span contenteditable=inherit>",
"fail-unless": "invalid-attribute-value"}
"fail-unless": "invalid-enumerated-value"}
]}

View file

@ -53,66 +53,63 @@
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading tab",
"input": "<span contextmenu=' a'>",
"input": "<span contextmenu='\ta'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing tab",
"input": "<span contextmenu='a '>",
"input": "<span contextmenu='a\t'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of tab in value",
"input": "<span contextmenu='a b'>",
"input": "<span contextmenu='a\tb'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading LF",
"input": "<span contextmenu='
a'>",
"input": "<span contextmenu='\na'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing LF",
"input": "<span contextmenu='a
'>",
"input": "<span contextmenu='a\n'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of LF in value",
"input": "<span contextmenu='a
b'>",
"input": "<span contextmenu='a\nb'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading LT",
"input": "<span contextmenu=' a'>",
"input": "<span contextmenu='\u000Ba'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing LT",
"input": "<span contextmenu='a '>",
"input": "<span contextmenu='a\u000B'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of LT in value",
"input": "<span contextmenu='a b'>",
"input": "<span contextmenu='a\u000Bb'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading FF",
"input": "<span contextmenu=' a'>",
"input": "<span contextmenu='\u000Ca'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing FF",
"input": "<span contextmenu='a '>",
"input": "<span contextmenu='a\u000C'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of FF in value",
"input": "<span contextmenu='a b'>",
"input": "<span contextmenu='a\u000Cb'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading CR",
"input": "<span contextmenu=' a'>",
"input": "<span contextmenu='\ra'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing CR",
"input": "<span contextmenu='a '>",
"input": "<span contextmenu='a\r'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of CR in value",
"input": "<span contextmenu='a b'>",
"input": "<span contextmenu='a\rb'>",
"fail-unless": "space-in-id"}
]}
]}

View file

@ -0,0 +1,59 @@
{"tests": [
{"description": "valid dir attribute value 'ltr'",
"input": "<span dir=ltr>",
"fail-if": "invalid-attribute-value"},
{"description": "valid dir attribute value 'LTR'",
"input": "<span dir=LTR>",
"fail-if": "invalid-attribute-value"},
{"description": "valid dir attribute value 'LtR'",
"input": "<span dir=LtR>",
"fail-if": "invalid-attribute-value"},
{"description": "valid dir attribute value 'rtl'",
"input": "<span dir=rtl>",
"fail-if": "invalid-attribute-value"},
{"description": "valid dir attribute value 'RTL'",
"input": "<span dir=RTL>",
"fail-if": "invalid-attribute-value"},
{"description": "valid dir attribute value 'RtL'",
"input": "<span dir=RtL>",
"fail-if": "invalid-attribute-value"},
{"description": "invalid dir attribute value due to leading space",
"input": "<span dir=' ltr'>",
"fail-unless": "invalid-enumerated-value"},
{"description": "dir attribute value can not be blank",
"input": "<span dir>",
"fail-unless": "attribute-value-can-not-be-blank"},
{"description": "dir attribute value can not be blank (with quotes)",
"input": "<span dir=''>",
"fail-unless": "attribute-value-can-not-be-blank"},
{"description": "invalid dir attribute value 'left'",
"input": "<span dir=left>",
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid dir attribute value 'right'",
"input": "<span dir=right>",
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid dir attribute value 'lefttoright'",
"input": "<span dir=lefttoright>",
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid dir attribute value 'righttoleft'",
"input": "<span dir=righttoleft>",
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid dir attribute value 'inherit'",
"input": "<span dir=inherit>",
"fail-unless": "invalid-enumerated-value"}
]}

View file

@ -0,0 +1,63 @@
{"tests": [
{"description": "valid draggable attribute value 'true'",
"input": "<span draggable=true>",
"fail-if": "invalid-attribute-value"},
{"description": "valid draggable attribute value 'TRUE'",
"input": "<span draggable=TRUE>",
"fail-if": "invalid-attribute-value"},
{"description": "valid draggable attribute value 'TrUe'",
"input": "<span draggable=TrUe>",
"fail-if": "invalid-attribute-value"},
{"description": "valid draggable attribute value 'false'",
"input": "<span draggable=false>",
"fail-if": "invalid-attribute-value"},
{"description": "valid draggable attribute value 'FALSE'",
"input": "<span draggable=FALSE>",
"fail-if": "invalid-attribute-value"},
{"description": "valid draggable attribute value 'FalSe'",
"input": "<span draggable=FalSe>",
"fail-if": "invalid-attribute-value"},
{"description": "invalid draggable attribute value ''",
"input": "<span draggable=''>",
"fail-unless": "attribute-value-can-not-be-blank"},
{"description": "valid draggable attribute value (not specified)",
"input": "<span draggable>",
"fail-unless": "attribute-value-can-not-be-blank"},
{"description": "invalid draggable attribute value 'foo'",
"input": "<span draggable=foo>",
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid draggable attribute value '0'",
"input": "<span draggable=0>",
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid draggable attribute value '1'",
"input": "<span draggable=1>",
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid draggable attribute value 'yes'",
"input": "<span draggable=yes>",
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid draggable attribute value 'no'",
"input": "<span draggable=no>",
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid draggable attribute value 'auto'",
"input": "<span draggable=auto>",
"fail-unless": "invalid-enumerated-value"},
{"description": "invalid draggable attribute value 'inherit'",
"input": "<span draggable=inherit>",
"fail-unless": "invalid-enumerated-value"}
]}

View file

@ -0,0 +1,23 @@
{"tests": [
{"description": "valid html xmlns attribute",
"input": "<html xmlns=http://www.w3.org/1999/xhtml>",
"fail-if": "invalid-root-namespace"},
{"description": "invalid html xmlns attribute due to leading space",
"input": "<html xmlns=' http://www.w3.org/1999/xhtml'>",
"fail-unless": "invalid-root-namespace"},
{"description": "invalid html xmlns attribute due to trailing space",
"input": "<html xmlns='http://www.w3.org/1999/xhtml '>",
"fail-unless": "invalid-root-namespace"},
{"description": "invalid html xmlns attribute due to uppercase",
"input": "<html xmlns=HTTP://WWW.W3.ORG/1999/XHTML>",
"fail-unless": "invalid-root-namespace"},
{"description": "invalid xmlns attribute on non-html element",
"input": "<body xmlns=http://www.w3.org/1999/xhtml>",
"fail-unless": "unknown-attribute"}
]}

View file

@ -33,66 +33,63 @@
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading tab",
"input": "<span id=' a'>",
"input": "<span id='\ta'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing tab",
"input": "<span id='a '>",
"input": "<span id='a\t'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of tab in value",
"input": "<span id='a b'>",
"input": "<span id='a\tb'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading LF",
"input": "<span id='
a'>",
"input": "<span id='\na'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing LF",
"input": "<span id='a
'>",
"input": "<span id='a\n'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of LF in value",
"input": "<span id='a
b'>",
"input": "<span id='a\nb'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading LT",
"input": "<span id=' a'>",
"input": "<span id='\u000Ba'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing LT",
"input": "<span id='a '>",
"input": "<span id='a\u000B'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of LT in value",
"input": "<span id='a b'>",
"input": "<span id='a\u000Bb'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading FF",
"input": "<span id=' a'>",
"input": "<span id='\u000Ca'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing FF",
"input": "<span id='a '>",
"input": "<span id='a\u000C'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of FF in value",
"input": "<span id='a b'>",
"input": "<span id='a\u000Cb'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading CR",
"input": "<span id=' a'>",
"input": "<span id='\ra'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing CR",
"input": "<span id='a '>",
"input": "<span id='a\r'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of CR in value",
"input": "<span id='a b'>",
"input": "<span id='a\rb'>",
"fail-unless": "space-in-id"},
{"description": "duplicate ID values",
@ -115,4 +112,4 @@ b'>",
"input": "<span id=a><span id=A>",
"fail-if": "duplicate-id"}
]}
]}

View file

@ -0,0 +1,63 @@
{"tests": [
{"description": "valid irrelevant attribute value 'irrelevant'",
"input": "<span irrelevant=irrelevant>",
"fail-if": "invalid-attribute-value"},
{"description": "valid irrelevant attribute value ''",
"input": "<span irrelevant=''>",
"fail-if": "invalid-attribute-value"},
{"description": "invalid irrelevant attribute value due to uppercase",
"input": "<span irrelevant=IRRELEVANT>",
"fail-unless": "invalid-boolean-value"},
{"description": "invalid irrelevant attribute value due to mixed case",
"input": "<span irrelevant=IrReLeVaNt>",
"fail-unless": "invalid-boolean-value"},
{"description": "invalid irrelevant attribute value due to leading space",
"input": "<span irrelevant=' irrelevant'>",
"fail-unless": "invalid-boolean-value"},
{"description": "invalid irrelevant attribute value due to trailing space",
"input": "<span irrelevant='irrelevant '>",
"fail-unless": "invalid-boolean-value"},
{"description": "invalid irrelevant attribute value 'foo'",
"input": "<span irrelevant=foo>",
"fail-unless": "invalid-boolean-value"},
{"description": "invalid irrelevant attribute value '0'",
"input": "<span irrelevant=0>",
"fail-unless": "invalid-boolean-value"},
{"description": "invalid irrelevant attribute value '1'",
"input": "<span irrelevant=1>",
"fail-unless": "invalid-boolean-value"},
{"description": "invalid irrelevant attribute value 'yes'",
"input": "<span irrelevant=yes>",
"fail-unless": "invalid-boolean-value"},
{"description": "invalid irrelevant attribute value 'no'",
"input": "<span irrelevant=no>",
"fail-unless": "invalid-boolean-value"},
{"description": "invalid irrelevant attribute value 'true'",
"input": "<span irrelevant=true>",
"fail-unless": "invalid-boolean-value"},
{"description": "invalid irrelevant attribute value 'false'",
"input": "<span irrelevant=false>",
"fail-unless": "invalid-boolean-value"},
{"description": "invalid irrelevant attribute value 'auto'",
"input": "<span irrelevant=auto>",
"fail-unless": "invalid-boolean-value"},
{"description": "invalid irrelevant attribute value 'inherit'",
"input": "<span irrelevant=inherit>",
"fail-unless": "invalid-boolean-value"}
]}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,7 @@
{"tests": [
{"description": "invalid li value attribute value due to leading junk",
"input": "<li value=a1>",
"fail-unless": "invalid-integer-value"}
]}

View file

@ -0,0 +1,7 @@
{"tests": [
{"description": "link href contains invalid URI due to space in domain",
"input": "<link href='http://www.example. com/'",
"fail-unless": "invalid-uri-char"}
]}

View file

@ -0,0 +1,7 @@
{"tests": [
{"description": "invalid lang attribute 'foo'",
"input": "<link hreflang=foo>",
"fail-unless": "invalid-lang-code"}
]}

View file

@ -0,0 +1,271 @@
{"tests": [
{"description": "invalid link rel value 'foo'",
"input": "<link rel=foo>",
"fail-unless": "invalid-rel"},
{"description": "valid link rel value 'alternate stylesheet'",
"input": "<link rel='alternate stylesheet'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with leading space",
"input": "<link rel=' stylesheet'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with trailing space",
"input": "<link rel='stylesheet '>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with leading and trailing space",
"input": "<link rel=' stylesheet '>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with leading tab",
"input": "<link rel='\tstylesheet'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with trailing tab",
"input": "<link rel='stylesheet\t'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with leading and trailing tab",
"input": "<link rel='\tstylesheet\t'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with leading LF",
"input": "<link rel='\nstylesheet'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with trailing LF",
"input": "<link rel='stylesheet\n'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with leading and trailing LF",
"input": "<link rel='\nstylesheet\n'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with leading LT",
"input": "<link rel='\u000Bstylesheet'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with trailing LT",
"input": "<link rel='stylesheet\u000B'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with leading and trailing LT",
"input": "<link rel='\u000Bstylesheet\u000B'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with leading FF",
"input": "<link rel='\u000Cstylesheet'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with trailing FF",
"input": "<link rel='stylesheet\u000C'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with leading and trailing FF",
"input": "<link rel='\u000Cstylesheet\u000C'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with leading CR",
"input": "<link rel='\rstylesheet'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with trailing CR",
"input": "<link rel='stylesheet\r'>",
"fail-if": "invalid-rel"},
{"description": "valid single link rel value with leading and trailing CR",
"input": "<link rel='\rstylesheet\r'>",
"fail-if": "invalid-rel"},
{"description": "valid double link rel value separated by space",
"input": "<link rel='stylesheet alternate'>",
"fail-if": "invalid-rel"},
{"description": "valid double link rel value separated by tab",
"input": "<link rel='stylesheet\talternate'>",
"fail-if": "invalid-rel"},
{"description": "valid double link rel value separated by LF",
"input": "<link rel='stylesheet\nalternate'>",
"fail-if": "invalid-rel"},
{"description": "valid double link rel value separated by LT",
"input": "<link rel='stylesheet\u000Balternate'>",
"fail-if": "invalid-rel"},
{"description": "valid double link rel value separated by FF",
"input": "<link rel='stylesheet\u000Calternate'>",
"fail-if": "invalid-rel"},
{"description": "valid double link rel value separated by CR",
"input": "<link rel='stylesheet\ralternate'>",
"fail-if": "invalid-rel"},
{"description": "invalid duplicated link rel value separated by space",
"input": "<link rel='stylesheet stylesheet'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated link rel value separated by tab",
"input": "<link rel='stylesheet\tstylesheet'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated link rel value separated by LF",
"input": "<link rel='stylesheet\nstylesheet'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated link rel value separated by LT",
"input": "<link rel='stylesheet\u000Bstylesheet'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated link rel value separated by FF",
"input": "<link rel='stylesheet\u000Cstylesheet'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated link rel value separated by CR",
"input": "<link rel='stylesheet\rstylesheet'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated link rel value separated by space",
"input": "<link rel='stylesheet stylesheet'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated link rel value separated by tab",
"input": "<link rel='stylesheet\tstylesheet'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated link rel value separated by LF",
"input": "<link rel='stylesheet\nstylesheet'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated link rel value separated by LT",
"input": "<link rel='stylesheet\u000Bstylesheet'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated link rel value separated by FF",
"input": "<link rel='stylesheet\u000Cstylesheet'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated link rel value separated by CR",
"input": "<link rel='stylesheet\rstylesheet'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "valid link rel value 'feed'",
"input": "<link rel=feed>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'help'",
"input": "<link rel=help>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'tag'",
"input": "<link rel=tag>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'sidebar'",
"input": "<link rel=sidebar>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'archive'",
"input": "<link rel=archive>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'contents'",
"input": "<link rel=contents>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'previous'",
"input": "<link rel=previous>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'index'",
"input": "<link rel=index>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'end'",
"input": "<link rel=end>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'copyright'",
"input": "<link rel=copyright>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'author'",
"input": "<link rel=author>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'top'",
"input": "<link rel=top>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'alternate'",
"input": "<link rel=alternate>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'next'",
"input": "<link rel=next>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'start'",
"input": "<link rel=start>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'stylesheet'",
"input": "<link rel=stylesheet>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'archives'",
"input": "<link rel=archives>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'toc'",
"input": "<link rel=toc>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'prev'",
"input": "<link rel=prev>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'begin'",
"input": "<link rel=begin>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'icon'",
"input": "<link rel=icon>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'search'",
"input": "<link rel=search>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'last'",
"input": "<link rel=last>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'license'",
"input": "<link rel=license>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'pingback'",
"input": "<link rel=pingback>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'up'",
"input": "<link rel=up>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'contact'",
"input": "<link rel=contact>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'prefetch'",
"input": "<link rel=prefetch>",
"fail-if": "invalid-rel"},
{"description": "valid link rel value 'first'",
"input": "<link rel=first>",
"fail-if": "invalid-rel"}
]}

View file

@ -0,0 +1,7 @@
{"tests": [
{"description": "invalid ol start attribute value due to leading junk",
"input": "<ol start=a1>",
"fail-unless": "invalid-integer-value"}
]}

View file

@ -0,0 +1,7 @@
{"tests": [
{"description": "invalid style scoped attribute value 'inherit'",
"input": "<style scoped=inherit>",
"fail-unless": "invalid-boolean-value"}
]}

View file

@ -0,0 +1,79 @@
{"tests": [
{"description": "valid tabindex attribute value '-1'",
"input": "<span tabindex=-1>",
"fail-if": "invalid-integer-value"},
{"description": "valid tabindex attribute value '0'",
"input": "<span tabindex=0>",
"fail-if": "invalid-integer-value"},
{"description": "valid tabindex attribute value '1'",
"input": "<span tabindex=1>",
"fail-if": "invalid-integer-value"},
{"description": "valid tabindex attribute value '32768'",
"input": "<span tabindex=32768>",
"fail-if": "invalid-integer-value"},
{"description": "valid tabindex attribute value '-32768'",
"input": "<span tabindex=-32768>",
"fail-if": "invalid-integer-value"},
{"description": "valid tabindex attribute value with leading spaces",
"input": "<span tabindex=' -32768'>",
"fail-if": "invalid-integer-value"},
{"description": "valid tabindex attribute value with trailing spaces",
"input": "<span tabindex='-32768 '>",
"fail-if": "invalid-integer-value"},
{"description": "valid tabindex attribute value with trailing junk",
"input": "<span tabindex='32768a'>",
"fail-if": "invalid-integer-value"},
{"description": "valid tabindex attribute value with trailing junk and whitespace",
"input": "<span tabindex='32768a '>",
"fail-if": "invalid-integer-value"},
{"description": "valid tabindex attribute value with trailing whitespace and junk",
"input": "<span tabindex='32768 a'>",
"fail-if": "invalid-integer-value"},
{"description": "valid tabindex attribute value with leading spaces",
"input": "<span tabindex=' 32768'>",
"fail-if": "invalid-integer-value"},
{"description": "valid tabindex attribute value with leading spaces (with sign)",
"input": "<span tabindex=' -32768'>",
"fail-if": "invalid-integer-value"},
{"description": "invalid tabindex attribute value (blank)",
"input": "<span tabindex>",
"fail-unless": "attribute-value-can-not-be-blank"},
{"description": "invalid tabindex attribute value due to leading junk",
"input": "<span tabindex=a1>",
"fail-unless": "invalid-integer-value"},
{"description": "invalid tabindex attribute value due to two hyphens",
"input": "<span tabindex=--1>",
"fail-unless": "invalid-integer-value"},
{"description": "invalid tabindex attribute value due to non-numeric",
"input": "<span tabindex=foo>",
"fail-unless": "invalid-integer-value"},
{"description": "invalid tabindex attribute value due to positive sign",
"input": "<span tabindex=+1>",
"fail-unless": "invalid-integer-value"},
{"description": "invalid tabindex attribute value due to decimal point",
"input": "<span tabindex=.1>",
"fail-unless": "invalid-integer-value"},
{"description": "valid tabindex attribute value with trailing decimal point",
"input": "<span tabindex=1.0>",
"fail-if": "invalid-integer-value"}
]}