require 'abstract_unit' module ActionDispatch module Journey class TestRoutes < ActiveSupport::TestCase attr_reader :routes, :mapper def setup @route_set = ActionDispatch::Routing::RouteSet.new @routes = @route_set.router.routes @router = @route_set.router @mapper = ActionDispatch::Routing::Mapper.new @route_set super end def test_clear mapper.get "/foo(/:id)", to: "foo#bar", as: 'aaron' assert_not_predicate routes, :empty? assert_equal 1, routes.length routes.clear assert routes.empty? assert_equal 0, routes.length end def test_ast mapper.get "/foo(/:id)", to: "foo#bar", as: 'aaron' ast = routes.ast mapper.get "/foo(/:id)", to: "foo#bar", as: 'gorby' assert_not_equal ast, routes.ast end def test_simulator_changes mapper.get "/foo(/:id)", to: "foo#bar", as: 'aaron' sim = routes.simulator mapper.get "/foo(/:id)", to: "foo#bar", as: 'gorby' assert_not_equal sim, routes.simulator end def test_partition_route mapper.get "/foo(/:id)", to: "foo#bar", as: 'aaron' assert_equal 1, @routes.anchored_routes.length assert_predicate @routes.custom_routes, :empty? mapper.get "/hello/:who", to: "foo#bar", as: 'bar', who: /\d/ assert_equal 1, @routes.custom_routes.length assert_equal 1, @routes.anchored_routes.length end def test_first_name_wins mapper.get "/hello", to: "foo#bar", as: 'aaron' assert_raise(ArgumentError) do mapper.get "/aaron", to: "foo#bar", as: 'aaron' end end end end end