[ {"name": "Empty String", "selector": ""}, {"name": "Invalid character", "selector": "["}, {"name": "Invalid character", "selector": "]"}, {"name": "Invalid character", "selector": "("}, {"name": "Invalid character", "selector": ")"}, {"name": "Invalid character", "selector": "{"}, {"name": "Invalid character", "selector": "}"}, {"name": "Invalid character", "selector": "<"}, {"name": "Invalid character", "selector": ">"}, {"name": "Invalid character", "selector": ":"}, {"name": "Invalid character", "selector": "::"}, {"name": "Invalid ID", "selector": "#"}, {"name": "Invalid group of selectors", "selector": "div,"}, {"name": "Invalid class", "selector": "."}, {"name": "Invalid class", "selector": ".5cm"}, {"name": "Invalid class", "selector": "..test"}, {"name": "Invalid class", "selector": ".foo..quux"}, {"name": "Invalid class", "selector": ".bar."}, {"name": "Invalid combinator", "selector": "div & address, p"}, {"name": "Invalid combinator", "selector": "div >> address, p"}, {"name": "Invalid combinator", "selector": "div ++ address, p"}, {"name": "Invalid combinator", "selector": "div ~~ address, p"}, {"name": "Invalid [att=value] selector", "selector": "[*=test]"}, {"name": "Invalid [att=value] selector", "selector": "[*|*=test]"}, {"name": "Invalid [att=value] selector", "selector": "[class= space unquoted ]"}, {"name": "Unknown pseudo-class", "selector": "div:example"}, {"name": "Unknown pseudo-class", "selector": ":example"}, {"name": "Unknown pseudo-element", "selector": "div::example", "xfail": true}, {"name": "Unknown pseudo-element", "selector": "::example", "xfail": true}, {"name": "Invalid pseudo-element", "selector": ":::before"}, {"name": "Undeclared namespace", "selector": "ns|div"}, {"name": "Undeclared namespace", "selector": ":not(ns|div)"}, {"name": "Invalid namespace", "selector": "^|div"}, {"name": "Invalid namespace", "selector": "$|div"}, {"name": "Case insensitive, no closing ]", "selector": "[a=a i"} ]