class ActionDispatch::Journey::Definition::TestScanner

Public Instance Methods

assert_tokens(tokens, scanner) click to toggle source
# File actionpack/test/journey/route/definition/scanner_test.rb, line 61
def assert_tokens(tokens, scanner)
  toks = []
  while tok = scanner.next_token
    toks << tok
  end
  assert_equal tokens, toks
end
setup() click to toggle source
# File actionpack/test/journey/route/definition/scanner_test.rb, line 9
def setup
  @scanner = Scanner.new
end
test_tokens() click to toggle source

/page/:id(/:action)(.:format)

# File actionpack/test/journey/route/definition/scanner_test.rb, line 14
def test_tokens
  [
    ["/",       [[:SLASH, "/"]]],
    ["*omg",    [[:STAR, "*omg"]]],
    ["/page",   [[:SLASH, "/"], [:LITERAL, "page"]]],
    ["/page!",  [[:SLASH, "/"], [:LITERAL, "page!"]]],
    ["/page$",  [[:SLASH, "/"], [:LITERAL, "page$"]]],
    ["/page&",  [[:SLASH, "/"], [:LITERAL, "page&"]]],
    ["/page'",  [[:SLASH, "/"], [:LITERAL, "page'"]]],
    ["/page*",  [[:SLASH, "/"], [:LITERAL, "page*"]]],
    ["/page+",  [[:SLASH, "/"], [:LITERAL, "page+"]]],
    ["/page,",  [[:SLASH, "/"], [:LITERAL, "page,"]]],
    ["/page;",  [[:SLASH, "/"], [:LITERAL, "page;"]]],
    ["/page=",  [[:SLASH, "/"], [:LITERAL, "page="]]],
    ["/page@",  [[:SLASH, "/"], [:LITERAL, "page@"]]],
    ['/page\:', [[:SLASH, "/"], [:LITERAL, "page:"]]],
    ['/page\(', [[:SLASH, "/"], [:LITERAL, "page("]]],
    ['/page\)', [[:SLASH, "/"], [:LITERAL, "page)"]]],
    ["/~page",  [[:SLASH, "/"], [:LITERAL, "~page"]]],
    ["/pa-ge",  [[:SLASH, "/"], [:LITERAL, "pa-ge"]]],
    ["/:page",  [[:SLASH, "/"], [:SYMBOL, ":page"]]],
    ["/(:page)", [
                  [:SLASH, "/"],
                  [:LPAREN, "("],
                  [:SYMBOL, ":page"],
                  [:RPAREN, ")"],
                ]],
    ["(/:action)", [
                    [:LPAREN, "("],
                    [:SLASH, "/"],
                    [:SYMBOL, ":action"],
                    [:RPAREN, ")"],
                   ]],
    ["(())", [[:LPAREN, "("],
             [:LPAREN, "("], [:RPAREN, ")"], [:RPAREN, ")"]]],
    ["(.:format)", [
                    [:LPAREN, "("],
                    [:DOT, "."],
                    [:SYMBOL, ":format"],
                    [:RPAREN, ")"],
                  ]],
  ].each do |str, expected|
    @scanner.scan_setup str
    assert_tokens expected, @scanner
  end
end