mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
35b3de8021
The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
110 lines
2.4 KiB
Ruby
110 lines
2.4 KiB
Ruby
require "abstract_unit"
|
|
|
|
module ActionDispatch
|
|
module Journey
|
|
module Definition
|
|
class TestParser < ActiveSupport::TestCase
|
|
def setup
|
|
@parser = Parser.new
|
|
end
|
|
|
|
def test_slash
|
|
assert_equal :SLASH, @parser.parse("/").type
|
|
assert_round_trip "/"
|
|
end
|
|
|
|
def test_segment
|
|
assert_round_trip "/foo"
|
|
end
|
|
|
|
def test_segments
|
|
assert_round_trip "/foo/bar"
|
|
end
|
|
|
|
def test_segment_symbol
|
|
assert_round_trip "/foo/:id"
|
|
end
|
|
|
|
def test_symbol
|
|
assert_round_trip "/:foo"
|
|
end
|
|
|
|
def test_group
|
|
assert_round_trip "(/:foo)"
|
|
end
|
|
|
|
def test_groups
|
|
assert_round_trip "(/:foo)(/:bar)"
|
|
end
|
|
|
|
def test_nested_groups
|
|
assert_round_trip "(/:foo(/:bar))"
|
|
end
|
|
|
|
def test_dot_symbol
|
|
assert_round_trip(".:format")
|
|
end
|
|
|
|
def test_dot_literal
|
|
assert_round_trip(".xml")
|
|
end
|
|
|
|
def test_segment_dot
|
|
assert_round_trip("/foo.:bar")
|
|
end
|
|
|
|
def test_segment_group_dot
|
|
assert_round_trip("/foo(.:bar)")
|
|
end
|
|
|
|
def test_segment_group
|
|
assert_round_trip("/foo(/:action)")
|
|
end
|
|
|
|
def test_segment_groups
|
|
assert_round_trip("/foo(/:action)(/:bar)")
|
|
end
|
|
|
|
def test_segment_nested_groups
|
|
assert_round_trip("/foo(/:action(/:bar))")
|
|
end
|
|
|
|
def test_group_followed_by_path
|
|
assert_round_trip("/foo(/:action)/:bar")
|
|
end
|
|
|
|
def test_star
|
|
assert_round_trip("*foo")
|
|
assert_round_trip("/*foo")
|
|
assert_round_trip("/bar/*foo")
|
|
assert_round_trip("/bar/(*foo)")
|
|
end
|
|
|
|
def test_or
|
|
assert_round_trip("a|b")
|
|
assert_round_trip("a|b|c")
|
|
assert_round_trip("(a|b)|c")
|
|
assert_round_trip("a|(b|c)")
|
|
assert_round_trip("*a|(b|c)")
|
|
assert_round_trip("*a|:b|c")
|
|
end
|
|
|
|
def test_arbitrary
|
|
assert_round_trip("/bar/*foo#")
|
|
end
|
|
|
|
def test_literal_dot_paren
|
|
assert_round_trip "/sprockets.js(.:format)"
|
|
end
|
|
|
|
def test_groups_with_dot
|
|
assert_round_trip "/(:locale)(.:format)"
|
|
end
|
|
|
|
def assert_round_trip str
|
|
assert_equal str, @parser.parse(str).to_s
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|