class ActionDispatch::Journey::GTG::TestBuilder
Public Instance Methods
test_following_states_multi()
click to toggle source
# File actionpack/test/journey/gtg/builder_test.rb, line 9 def test_following_states_multi table = tt ["a|a"] assert_equal 1, table.move([0], "a").length end
test_following_states_multi_regexp()
click to toggle source
# File actionpack/test/journey/gtg/builder_test.rb, line 14 def test_following_states_multi_regexp table = tt [":a|b"] assert_equal 1, table.move([0], "fooo").length assert_equal 2, table.move([0], "b").length end
test_match_data_ambiguous()
click to toggle source
# File actionpack/test/journey/gtg/builder_test.rb, line 35 def test_match_data_ambiguous table = tt %w{ /articles(.:format) /articles/new(.:format) /articles/:id/edit(.:format) /articles/:id(.:format) } sim = NFA::Simulator.new table match = sim.match "/articles/new" assert_equal 2, match.memos.length end
test_match_same_paths()
click to toggle source
Identical Routes
may have different restrictions.
# File actionpack/test/journey/gtg/builder_test.rb, line 51 def test_match_same_paths table = tt %w{ /articles/new(.:format) /articles/new(.:format) } sim = NFA::Simulator.new table match = sim.match "/articles/new" assert_equal 2, match.memos.length end
test_multi_path()
click to toggle source
# File actionpack/test/journey/gtg/builder_test.rb, line 20 def test_multi_path table = tt ["/:a/d", "/b/c"] [ [1, "/"], [2, "b"], [2, "/"], [1, "c"], ].inject([0]) { |state, (exp, sym)| new = table.move(state, sym) assert_equal exp, new.length new } end
Private Instance Methods
ast(strings)
click to toggle source
# File actionpack/test/journey/gtg/builder_test.rb, line 64 def ast(strings) parser = Journey::Parser.new asts = strings.map { |string| memo = Object.new ast = parser.parse string ast.each { |n| n.memo = memo } ast } Nodes::Or.new asts end
tt(strings)
click to toggle source
# File actionpack/test/journey/gtg/builder_test.rb, line 75 def tt(strings) Builder.new(ast(strings)).transition_table end