Spaces:
Sleeping
Sleeping
| <html> | |
| <head> | |
| <title>JSONSelect JS lex tests</title> | |
| <link rel="stylesheet" type="text/css" href="js/doctest.css" /> | |
| <script src="js/doctest.js"></script> | |
| <script src="../jsonselect.js"></script> | |
| <meta http-equiv="Content-type" content="text/html; charset=utf-8"> | |
| </head> | |
| <body> | |
| <div> | |
| <button onclick="doctest()" type="button">run tests</button> | |
| <pre id="doctestOutput"></pre> | |
| </div> | |
| <h2> Tests of the JSONSelect lexer </h2> | |
| <div class="test"> | |
| Simple tokens | |
| <pre class="doctest"> | |
| $ JSONSelect._lex(">"); | |
| [1, ">"] | |
| $ JSONSelect._lex("*"); | |
| [1, "*"] | |
| $ JSONSelect._lex(","); | |
| [1, ","] | |
| $ JSONSelect._lex("."); | |
| [1, "."] | |
| </pre> | |
| </div> | |
| <div class="test"> | |
| Offsets | |
| <pre class="doctest"> | |
| $ JSONSelect._lex("foobar>",6); | |
| [7, ">"] | |
| </pre> | |
| </div> | |
| <div class="test"> | |
| Types | |
| <pre class="doctest"> | |
| $ JSONSelect._lex("string"); | |
| [6, 3, "string"] | |
| $ JSONSelect._lex("boolean"); | |
| [7, 3, "boolean"] | |
| $ JSONSelect._lex("null"); | |
| [4, 3, "null"] | |
| $ JSONSelect._lex("array"); | |
| [5, 3, "array"] | |
| $ JSONSelect._lex("object"); | |
| [6, 3, "object"] | |
| $ JSONSelect._lex("number"); | |
| [6, 3, "number"] | |
| </pre> | |
| </div> | |
| <div class="test"> | |
| Whitespace | |
| <pre class="doctest"> | |
| $ JSONSelect._lex("\r"); | |
| [1, " "] | |
| $ JSONSelect._lex("\n"); | |
| [1, " "] | |
| $ JSONSelect._lex("\t"); | |
| [1, " "] | |
| $ JSONSelect._lex(" "); | |
| [1, " "] | |
| $ JSONSelect._lex(" \t \r\n !"); | |
| [13, " "] | |
| </pre> | |
| <div class="test"> | |
| pseudo classes | |
| <pre class="doctest"> | |
| $ JSONSelect._lex(":root"); | |
| [5, 1, ":root"] | |
| $ JSONSelect._lex(":first-child"); | |
| [12, 1, ":first-child"] | |
| $ JSONSelect._lex(":last-child"); | |
| [11, 1, ":last-child"] | |
| $ JSONSelect._lex(":only-child"); | |
| [11, 1, ":only-child"] | |
| </pre> | |
| </div> | |
| <div class="test"> | |
| json strings | |
| <pre class="doctest"> | |
| $ JSONSelect._lex('"foo bar baz"'); | |
| [13, 4, "foo bar baz"] | |
| $ JSONSelect._lex('"\\u0020"'); | |
| [8, 4, " "] | |
| $ JSONSelect._lex('\"not terminated'); | |
| Error: unclosed json string | |
| $ JSONSelect._lex('"invalid escape: \\y"'); | |
| Error: invalid json string | |
| </pre> | |
| </div> | |
| <div class="test"> | |
| identifiers (like after '.') | |
| <pre class="doctest"> | |
| $ JSONSelect._lex("foo"); | |
| [3, 4, "foo"] | |
| $ JSONSelect._lex("foo\\ bar"); | |
| [8, 4, "foo bar"] | |
| $ JSONSelect._lex("_aB129bcde-\\:foo\\@$"); | |
| [18, 4, "_aB129bcde-:foo@"] | |
| </pre> | |
| </div> | |
| <div class="test"> | |
| non-ascii | |
| <pre class="doctest"> | |
| $ JSONSelect._lex("обичам\\ те\\!"); | |
| [12, 4, "обичам те!"] | |
| </pre> | |
| </div> | |
| </body> | |
| </html> | |