a6429f8c22
Completely removed the html5lib sanitizer. Fixed the string-handling to work in both Ruby 1.8.x and 1.9.2. There are still, inexplicably, two functional tests that fail. But the rest seems to work quite well.
272 lines
8.5 KiB
Plaintext
Executable file
272 lines
8.5 KiB
Plaintext
Executable file
{"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"}
|
|
|
|
]}
|