| 521 | } |
| 522 | |
| 523 | @Test |
| 524 | public void testString() throws IOException { |
| 525 | // NOTE: single quotes are converted to double quotes by this |
| 526 | // testsuite! |
| 527 | err("[']"); |
| 528 | err("[',]"); |
| 529 | err("{'}"); |
| 530 | err("{',}"); |
| 531 | |
| 532 | err("['\\u111']"); |
| 533 | err("['\\u11']"); |
| 534 | err("['\\u1']"); |
| 535 | err("['\\']"); |
| 536 | |
| 537 | flags = JSONParser.FLAGS_STRICT; |
| 538 | err("['\\ ']"); // escape of non-special char |
| 539 | err("['\\U1111']"); // escape of non-special char |
| 540 | flags = JSONParser.FLAGS_DEFAULT; |
| 541 | |
| 542 | parse("['\\ ']", new Object[] {a, " ", A, e}); // escape of non-special char |
| 543 | parse("['\\U1111']", new Object[] {a, "U1111", A, e}); // escape of non-special char |
| 544 | |
| 545 | parse("['']", new Object[] {a, "", A, e}); |
| 546 | parse("['\\\\']", new Object[] {a, "\\", A, e}); |
| 547 | parse("['X\\\\']", new Object[] {a, "X\\", A, e}); |
| 548 | parse("['\\\\X']", new Object[] {a, "\\X", A, e}); |
| 549 | parse("[\"\\\"\"]", new Object[] {a, "\"", A, e}); |
| 550 | |
| 551 | parse("['\\'']", true, new Object[] {a, "\"", A, e}); |
| 552 | parse("['\\'']", false, new Object[] {a, "'", A, e}); |
| 553 | |
| 554 | String esc = "\\n\\r\\tX\\b\\f\\/\\\\X\\\""; |
| 555 | String exp = "\n\r\tX\b\f/\\X\""; |
| 556 | parse("['" + esc + "']", new Object[] {a, exp, A, e}); |
| 557 | parse( |
| 558 | "['" + esc + esc + esc + esc + esc + "']", |
| 559 | new Object[] {a, exp + exp + exp + exp + exp, A, e}); |
| 560 | |
| 561 | esc = "\\u004A"; |
| 562 | exp = "\u004A"; |
| 563 | parse("['" + esc + "']", new Object[] {a, exp, A, e}); |
| 564 | |
| 565 | esc = "\\u0000\\u1111\\u2222\\u12AF\\u12BC\\u19DE"; |
| 566 | exp = "\u0000\u1111\u2222\u12AF\u12BC\u19DE"; |
| 567 | parse("['" + esc + "']", new Object[] {a, exp, A, e}); |
| 568 | } |
| 569 | |
| 570 | @Test |
| 571 | public void testNumbers() throws IOException { |