Sha256: 56cc0216d86ca3abbb122e6e37145f016a1abf17732bc546f65e02941c4b413f
Contents?: true
Size: 1.91 KB
Versions: 2
Compression:
Stored size: 1.91 KB
Contents
require 'abstract_unit' module ActionDispatch module Journey module GTG class TestBuilder < ActiveSupport::TestCase def test_following_states_multi table = tt ['a|a'] assert_equal 1, table.move([0], 'a').length end 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 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 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 ## # Identical Routes may have different restrictions. 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 private 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 def tt strings Builder.new(ast(strings)).transition_table end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
activejob-lock-0.0.2 | rails/actionpack/test/journey/gtg/builder_test.rb |
activejob-lock-0.0.1 | rails/actionpack/test/journey/gtg/builder_test.rb |