package org.eclipse.bpel.xpath10.parser; import org.antlr.runtime.*; import org.junit.Test; /** * These come from http://www.w3.org/TR/xpath#path-abbrev * */ @SuppressWarnings("nls") public class AbbreviatedPaths extends AbstractTC { /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample1() throws RecognitionException { String input = "para"; runTest(CMP_AST, input, "para"); runTest(CMP_EXPR_TEXT, input, "child::para"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample1NS() throws RecognitionException { String input = "ns:para"; runTest(CMP_EXPR_TEXT, input, "child::ns:para"); runTest(CMP_AST, input, "ns : para"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample2() throws RecognitionException { String input = "*"; runTest(CMP_AST, input, "*"); runTest(CMP_EXPR_TEXT, input, "child::*"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample2NS() throws RecognitionException { String input = "ns:*"; runTest(CMP_EXPR_TEXT, input, "child::ns:*"); runTest(CMP_AST, input, "ns : *"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample3() throws RecognitionException { String input = " text () "; runTest(CMP_EXPR_TEXT, input, "child::text()"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample3Absolute() throws RecognitionException { String input = "/text ( )"; runTest(CMP_EXPR_TEXT, input, "/child::text()"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample4() throws RecognitionException { String input = "@name"; runTest(CMP_AST, input, "@ name"); runTest(CMP_EXPR_TEXT, input, "attribute::name"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample5() throws RecognitionException { String input = "@*"; runTest(CMP_AST, input, "@ *"); runTest(CMP_EXPR_TEXT, input, "attribute::*"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample6() throws RecognitionException { String input = "para[1]"; runTest(CMP_AST, input, "para ([ 1)"); runTest(CMP_EXPR_TEXT, input, "child::para[1]"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample7() throws RecognitionException { String input = "para [ last ( ) ]"; runTest(CMP_AST, input, "para ([ last)"); runTest(CMP_EXPR_TEXT, input, "child::para[last()]"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample8() throws RecognitionException { String input = "*/para"; runTest(CMP_AST, input, "* / para"); runTest(CMP_EXPR_TEXT, input, "child::*/child::para"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample9() throws RecognitionException { String input = "/doc/chapter[5]/section[2]"; runTest(CMP_AST, input, "(/ doc / chapter ([ 5) / section ([ 2))"); runTest(CMP_EXPR_TEXT, input, "/child::doc/child::chapter[5]/child::section[2]"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample10() throws RecognitionException { String input = "chapter//para"; runTest(CMP_AST, input, "chapter // para"); runTest(CMP_EXPR_TEXT, input, "child::chapter/descendant-or-self::node()/child::para"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample11() throws RecognitionException { String input = "//para"; runTest(CMP_AST, input, "(// para)"); runTest(CMP_EXPR_TEXT, input, "/descendant-or-self::node()/child::para"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample12() throws RecognitionException { String input = "//olist/item"; runTest(CMP_EXPR_TEXT, input, "/descendant-or-self::node()/child::olist/child::item"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample13() throws RecognitionException { String input = "."; runTest(CMP_AST, input, "."); runTest(CMP_EXPR_TEXT, input, "self::node()"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample14() throws RecognitionException { String input = ".//para"; runTest(CMP_EXPR_TEXT, input, "self::node()/descendant-or-self::node()/child::para"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample15() throws RecognitionException { String input = ".."; runTest(CMP_AST, input, ".."); runTest(CMP_EXPR_TEXT, input, "parent::node()"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample16() throws RecognitionException { String input = "../@lang"; runTest(CMP_AST, input, ".. / @ lang"); runTest(CMP_EXPR_TEXT, input, "parent::node()/attribute::lang"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample17() throws RecognitionException { String input = "para[@type=\"warning\"]"; runTest(CMP_AST, input, "para ([ (= @ type \"warning\"))"); runTest(CMP_EXPR_TEXT, input, "child::para[attribute::type = \"warning\"]"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample18() throws RecognitionException { String input = "para[@type=\"warning\"][5]"; runTest(CMP_AST, input, "para ([ (= @ type \"warning\")) ([ 5)"); runTest(CMP_EXPR_TEXT, input, "child::para[attribute::type = \"warning\"][5]"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample19() throws RecognitionException { String input = "para[5][@type=\"warning\"]"; runTest(CMP_AST, input, "para ([ 5) ([ (= @ type \"warning\"))"); runTest(CMP_EXPR_TEXT, input, "child::para[5][attribute::type = \"warning\"]"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample20() throws RecognitionException { String input = "chapter[title=\"Introduction\"]"; runTest(CMP_AST, input, "chapter ([ (= title \"Introduction\"))"); runTest(CMP_EXPR_TEXT, input, "child::chapter[child::title = \"Introduction\"]"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample21() throws RecognitionException { String input = "chapter[title]"; runTest(CMP_AST, input, "chapter ([ title)"); runTest(CMP_EXPR_TEXT, input, "child::chapter[child::title]"); } /** * @throws RecognitionException */ @Test public void PathExprAbbreviatedSample22() throws RecognitionException { String input = "employee[@secretary and @assistant]"; runTest(CMP_AST, input, "employee ([ (and @ secretary @ assistant))"); runTest(CMP_EXPR_TEXT, input, "child::employee[attribute::secretary and attribute::assistant]"); } }