--- /dev/null
+var normalize = require("./lib/normalize-selector.js");
+
+var tests = {
+ /*test*/"#foo .bar":
+ /*expected*/"#foo .bar",
+ /*test*/" #foo .bar ":
+ /*expected*/"#foo .bar",
+ /*test*/"#foo>.bar":
+ /*expected*/"#foo > .bar",
+ /*test*/" unit[ sh | quantity = \"200\" ] ":
+ /*expected*/"unit[sh|quantity=\"200\"]",
+ /*test*/"*~*>*.foo[ href *= \"/\" ]:hover>*[ data-foo = \"bar\" ]:focus+*.baz::after":
+ /*expected*/"* ~ * > *.foo[href*=\"/\"]:hover > *[data-foo=\"bar\"]:focus + *.baz::after",
+ /*test*/"@media screen and ( color ), projection and ( color )":
+ /*expected*/"@media screen and (color), projection and (color)",
+ /*test*/"@media handheld and ( min-width : 20em ), screen and ( min-width: 20em )":
+ /*expected*/"@media handheld and (min-width:20em), screen and (min-width:20em)",
+ /*test*/"@media screen and ( device-aspect-ratio : 2560 / 1440 )":
+ /*expected*/"@media screen and (device-aspect-ratio:2560/1440)",
+ /*test*/"((a ) (b(c ) ) d )>*[ data-foo = \"bar\" ]":
+ /*expected*/"((a)(b(c))d) > *[data-foo=\"bar\"]",
+ /*test*/"#foo[ a = \" b \\\" c\\\\\" ]":
+ /*expected*/"#foo[a=\" b \\\" c\\\\\"]",
+ /*test*/"#foo[ a = \"b\" i ]":
+ /*expected*/"#foo[a=\"b\" i]",
+ /*test*/" /*c1*/ .e1/*c2*/.e2 /*c3*/ .e3 /*c4*/ ":
+ /*expected*/".e1 .e2 .e3",
+ /*test*/" /*c1*/ .e1/*c2*/.e2 /*c3*/ .e3 ":
+ /*expected*/".e1 .e2 .e3",
+ /*test*/" /*c1*/ .e1/*c2*/.e2 /*c3*/ .e3":
+ /*expected*/".e1 .e2 .e3",
+ /*test*/"/*c1*/.e1/*c2*/.e2 /*c3*/ .e3":
+ /*expected*/".e1 .e2 .e3",
+ /*test*/".e1/*c2*/.e2 /*c3*/ .e3":
+ /*expected*/".e1 .e2 .e3"
+};
+
+var test, tmp;
+for (test in tests) {
+ if ((tmp = normalize(test)) && tmp === tests[test]) {
+ console.log("PASSED: " + test + " (" + tmp + ")");
+ }
+ else {
+ console.log("FAILED.\n Expected: " + tests[test] + "\n Received: " + tmp);
+ break;
+ }
+}
+
+console.log("Tests done.");