aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/journey/router/strexp_test.rb
blob: 9e0337f144f387533095d50bf8d67ea806c6c3de (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
require 'abstract_unit'

module ActionDispatch
  module Journey
    class Router
      class TestStrexp < MiniTest::Unit::TestCase
        def test_many_names
          exp = Strexp.new(
            "/:controller(/:action(/:id(.:format)))",
            {:controller=>/.+?/},
            ["/", ".", "?"],
            true)

          assert_equal ["controller", "action", "id", "format"], exp.names
        end

        def test_names
          {
            "/bar(.:format)"    => %w{ format },
            ":format"           => %w{ format },
            ":format-"          => %w{ format },
            ":format0"          => %w{ format0 },
            ":format1,:format2" => %w{ format1 format2 },
          }.each do |string, expected|
            exp = Strexp.new(string, {}, ["/", ".", "?"])
            assert_equal expected, exp.names
          end
        end
      end
    end
  end
end