route_downcaser 1.2.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +5 -5
  2. data/README.rdoc +4 -4
  3. data/Rakefile +17 -19
  4. data/lib/route_downcaser/configuration.rb +19 -16
  5. data/lib/route_downcaser/downcase_route_middleware.rb +29 -29
  6. data/lib/route_downcaser/railtie.rb +2 -0
  7. data/lib/route_downcaser/version.rb +3 -1
  8. data/lib/route_downcaser.rb +6 -4
  9. data/lib/tasks/route_downcaser_tasks.rake +1 -0
  10. metadata +24 -245
  11. data/lib/route_downcaser/original_downcase_route_middleware.rb +0 -83
  12. data/test/integration/route_middleware_test.rb +0 -55
  13. data/test/rails421/Rakefile +0 -6
  14. data/test/rails421/app/assets/javascripts/application.js +0 -5
  15. data/test/rails421/app/assets/stylesheets/application.css +0 -15
  16. data/test/rails421/app/controllers/application_controller.rb +0 -5
  17. data/test/rails421/app/controllers/hello_controller.rb +0 -5
  18. data/test/rails421/app/helpers/application_helper.rb +0 -2
  19. data/test/rails421/app/views/layouts/application.html.erb +0 -14
  20. data/test/rails421/bin/bundle +0 -3
  21. data/test/rails421/bin/rails +0 -8
  22. data/test/rails421/bin/rake +0 -8
  23. data/test/rails421/bin/setup +0 -29
  24. data/test/rails421/bin/spring +0 -15
  25. data/test/rails421/config/application.rb +0 -29
  26. data/test/rails421/config/boot.rb +0 -3
  27. data/test/rails421/config/environment.rb +0 -5
  28. data/test/rails421/config/environments/development.rb +0 -41
  29. data/test/rails421/config/environments/production.rb +0 -79
  30. data/test/rails421/config/environments/test.rb +0 -42
  31. data/test/rails421/config/initializers/assets.rb +0 -11
  32. data/test/rails421/config/initializers/backtrace_silencers.rb +0 -7
  33. data/test/rails421/config/initializers/cookies_serializer.rb +0 -3
  34. data/test/rails421/config/initializers/filter_parameter_logging.rb +0 -4
  35. data/test/rails421/config/initializers/inflections.rb +0 -16
  36. data/test/rails421/config/initializers/mime_types.rb +0 -4
  37. data/test/rails421/config/initializers/session_store.rb +0 -3
  38. data/test/rails421/config/initializers/wrap_parameters.rb +0 -14
  39. data/test/rails421/config/locales/en.yml +0 -23
  40. data/test/rails421/config/routes.rb +0 -59
  41. data/test/rails421/config/secrets.yml +0 -22
  42. data/test/rails421/config.ru +0 -4
  43. data/test/rails421/log/test.log +0 -1048
  44. data/test/rails421/public/404.html +0 -67
  45. data/test/rails421/public/422.html +0 -67
  46. data/test/rails421/public/500.html +0 -66
  47. data/test/rails421/public/favicon.ico +0 -0
  48. data/test/rails421/public/robots.txt +0 -5
  49. data/test/rails421/tmp/cache/assets/sprockets/v3.0/-B/-Bgmyr63R89_vIyXN9mCNapfDXapBpDRck9XmKhL5CA.cache +0 -0
  50. data/test/rails421/tmp/cache/assets/sprockets/v3.0/-W/-WQ3FNnhW7tLBOxo4aGnRb2Fve0zgOnoMYj6wqTNkbM.cache +0 -1
  51. data/test/rails421/tmp/cache/assets/sprockets/v3.0/0E/0EDP1-KVZYBKHTAmflqiPVViMAVEG0SC-kK_5oEVZn0.cache +0 -0
  52. data/test/rails421/tmp/cache/assets/sprockets/v3.0/0g/0gWM2CTzhg2x8y4_UP-Py0W4B9A-zr06u8OBmue8X1k.cache +0 -1
  53. data/test/rails421/tmp/cache/assets/sprockets/v3.0/3K/3KLS9RO9SD43w2m7B37olZz-VRlZVFl3F98EcZ-T6OQ.cache +0 -1
  54. data/test/rails421/tmp/cache/assets/sprockets/v3.0/3O/3OqO1F9b_ZzzrtlAoCMgvevQgZnwcUOgeLR8rv3IEic.cache +0 -0
  55. data/test/rails421/tmp/cache/assets/sprockets/v3.0/4r/4rAedh6S2USq6-0-HuB_CCVHHLcpx52AIjXhD_2ZBGg.cache +0 -1
  56. data/test/rails421/tmp/cache/assets/sprockets/v3.0/5C/5CT_8kIrhxIJ83JBc79GdAhqzTv5yYzmjQTu_6ALk50.cache +0 -0
  57. data/test/rails421/tmp/cache/assets/sprockets/v3.0/5J/5Jhq8lUXayqrSHgYM1Q5MHGn-TiHuMjRmK_XV4M3UyI.cache +0 -1
  58. data/test/rails421/tmp/cache/assets/sprockets/v3.0/5t/5tiqCRpLfxs-Y6ybOzuDwipvuUFossP-XvncvDt1beA.cache +0 -1
  59. data/test/rails421/tmp/cache/assets/sprockets/v3.0/6H/6H_SytVX3LrLQVNblKfSUZm9U4zz0Hi3nC7zd2slWgE.cache +0 -0
  60. data/test/rails421/tmp/cache/assets/sprockets/v3.0/7a/7aucnxDrWU2Wq9Gv2-MzRJ-TODqCU9XYtPF9yUAxzrA.cache +0 -3
  61. data/test/rails421/tmp/cache/assets/sprockets/v3.0/7j/7jspo8CcT9uFS4H8PqxscgE3AlgXB7pTQyQIhMJPVg0.cache +0 -1
  62. data/test/rails421/tmp/cache/assets/sprockets/v3.0/8b/8bGxiI7b1E3sXm_6Main4IVaCaNunTCJECvMivc6vao.cache +0 -0
  63. data/test/rails421/tmp/cache/assets/sprockets/v3.0/91/91xRePltaCv1RzwqjVg8J1eDPpMSQzAP2xE0NfHN790.cache +0 -0
  64. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ag/AgHzzOWYl7FCzWVoy3hK75zrV0K8Fb-_06edGSVp2Ow.cache +0 -0
  65. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Cf/CflQs9dwKZXgCIWoyonGUgbz8uPXLgmyP_FlcJScD7o.cache +0 -1
  66. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Cg/CgOhJxWpn75PUgDhTSfe1qt0yvhVyPToVq13nv5zuZQ.cache +0 -1
  67. data/test/rails421/tmp/cache/assets/sprockets/v3.0/EL/EL7MuqbmZFKYS_80bdvW6_Wn5UEiX3eu1r6N-7G8UEw.cache +0 -1
  68. data/test/rails421/tmp/cache/assets/sprockets/v3.0/FV/FV8nUPacNnUiza7kOCqckUSyEGBdphbSPSuZtJUy8tE.cache +0 -1
  69. data/test/rails421/tmp/cache/assets/sprockets/v3.0/GP/GPlQQXNQ-w_dTZRfo4-FYNUzSGE1cEKrXjS7crmzVG0.cache +0 -1
  70. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ig/Igg0gxUZFtM3hQ7W6dbvFXdZpIbV6tOiVPR2vEmQYXI.cache +0 -1
  71. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Jf/JfAkIfafqJLEVZeAwe3NPmILKAxLTIaQMkBDQv9lgRs.cache +0 -0
  72. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Jg/Jgz4YtR2FGBSwxB6thNOJDk7klfksp2yQy2XkBjht4g.cache +0 -1
  73. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ki/KiL7BwSVbz_z5w4y93R2R4LCkyj0b19GujTz6XIiarY.cache +0 -0
  74. data/test/rails421/tmp/cache/assets/sprockets/v3.0/LU/LUAozPg7QdzK21QBqXW25-a5gN_7zLRAqQSupvkblSg.cache +0 -0
  75. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ln/LnFnKRPLxutlTQ7fOvRsapfgXEw5btGpLwFPbpRzRlM.cache +0 -0
  76. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ls/LsZJopR7cTyB7JsVfz5aSomahT3jHGL6Pa2CICmFoQg.cache +0 -3
  77. data/test/rails421/tmp/cache/assets/sprockets/v3.0/PK/PKl6w1pmCXwfusuCnKunu1GYOTLNPwF7_K8p3ytcTgg.cache +0 -3
  78. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Pi/PitG24Ap6XHTl1N62RP6JfNqaWJFxaUoe59hR-YXKPE.cache +0 -3
  79. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Pm/PmYoMk9-uw3hPLN-bvhDGLKg6cTarLI8BYk3DhheO1k.cache +0 -3
  80. data/test/rails421/tmp/cache/assets/sprockets/v3.0/SP/SPGmSZC6qS--XzWg1MdmEEgH6dRyXOgJMe2P9QBYQZY.cache +0 -0
  81. data/test/rails421/tmp/cache/assets/sprockets/v3.0/V4/V440s0_NvNOTLoVbZrUe2eeHjF7uUg4OPlf9swcXXDA.cache +0 -1
  82. data/test/rails421/tmp/cache/assets/sprockets/v3.0/WS/WSBIVButxIEVKNZe-7Nc4vJqenDzrMKArSNbIy7H8Cs.cache +0 -1
  83. data/test/rails421/tmp/cache/assets/sprockets/v3.0/Xg/Xg64R_L39P2xqnexdmGDRYDzSTX8azFSAWBFOy2B5lU.cache +0 -1
  84. data/test/rails421/tmp/cache/assets/sprockets/v3.0/YY/YYg4F7MwALcoY2sRAE6hl0-2rtVq5V-9JixAGfbxLF0.cache +0 -2
  85. data/test/rails421/tmp/cache/assets/sprockets/v3.0/ZU/ZUn7d2k8KPMHyjjf6lnKTGwGfn2BO-IdyYXQ8wfkVIM.cache +0 -0
  86. data/test/rails421/tmp/cache/assets/sprockets/v3.0/_n/_nYxMUNBMU9KjdTucuCyGutY4g7x8eJjbF9NwXdn1po.cache +0 -0
  87. data/test/rails421/tmp/cache/assets/sprockets/v3.0/aW/aWW6yUInnVq44DuXVWtVU0Uu6MVqbDk_31S2NWl7K74.cache +0 -1
  88. data/test/rails421/tmp/cache/assets/sprockets/v3.0/ap/aprbFEg82SGajctPy-pfnM30hK8PtEZrmsgk9pgRHRk.cache +0 -1
  89. data/test/rails421/tmp/cache/assets/sprockets/v3.0/cy/cy6FSlBMXEvsU2hDor-RFfO7au2LngZ3WqI2vqa1r8U.cache +0 -0
  90. data/test/rails421/tmp/cache/assets/sprockets/v3.0/du/duFUmZ4ysy7RyIkeiWtvwe6BtTfBJhNMuO2oRfkfoVo.cache +0 -1
  91. data/test/rails421/tmp/cache/assets/sprockets/v3.0/ed/edkFBPusn0eAqYUpbC3hk4dVs45tYZg3w4p50PKPokk.cache +0 -0
  92. data/test/rails421/tmp/cache/assets/sprockets/v3.0/fC/fCrT0zlSV767KPzO87GqdHMO_QsiEr19LLDZb0XFHfc.cache +0 -1
  93. data/test/rails421/tmp/cache/assets/sprockets/v3.0/g3/g3DI9kbhIoXd-w_hDm4y5teEzaSmtyBGpP1zd-JWcek.cache +0 -0
  94. data/test/rails421/tmp/cache/assets/sprockets/v3.0/g6/g6fovXx3tOX2i7BAnBDxcViTe4leaTm9Kkrfdl8wMQA.cache +0 -0
  95. data/test/rails421/tmp/cache/assets/sprockets/v3.0/go/gorAkyJ6oqUlHs8L907X6eA5ORKpX19iQIIz85e1Om4.cache +0 -1
  96. data/test/rails421/tmp/cache/assets/sprockets/v3.0/hD/hDxUuofMAs4S7GXborJiutJawcnl4o2LNudaxNbN4ec.cache +0 -1
  97. data/test/rails421/tmp/cache/assets/sprockets/v3.0/hQ/hQj6p2AFknE_MgYgHnwoPOe91PEUgpn6Z_FiuyaJ82k.cache +0 -1
  98. data/test/rails421/tmp/cache/assets/sprockets/v3.0/hw/hwHQHMDHwgnbAp8O9R8o4Q5POdU6sxLG89slbhtkmEk.cache +0 -1
  99. data/test/rails421/tmp/cache/assets/sprockets/v3.0/iH/iH1r3bm_cqwvpfoFfd5cI3E2iqgJtmIed8lCZKieHx8.cache +0 -2
  100. data/test/rails421/tmp/cache/assets/sprockets/v3.0/is/isbz3mXXlcEL2HMerIcSsLWpTN3D4lHiK2HOygFzss8.cache +0 -1
  101. data/test/rails421/tmp/cache/assets/sprockets/v3.0/iw/iwUWP-Z82gbzpNgNohj70sxyUtc3xNWla6RKzVYItxg.cache +0 -0
  102. data/test/rails421/tmp/cache/assets/sprockets/v3.0/j9/j9dS7uGziRYgnlks5CDCYPt1e_REM0RIz9UpIgMKgdg.cache +0 -0
  103. data/test/rails421/tmp/cache/assets/sprockets/v3.0/jY/jYVt_HA9ZEkn6SDsjj7OSswwgRzN39gj7oCIcNhw6G4.cache +0 -1
  104. data/test/rails421/tmp/cache/assets/sprockets/v3.0/jh/jh8Rd8uXzJsR5P4NG39_-VpLgRemhQ8CxX5_dw6lT8Y.cache +0 -1
  105. data/test/rails421/tmp/cache/assets/sprockets/v3.0/kU/kUhgMRj0dXypOCVx0_3_wrOtw53hBixKcGLLqSxuw6w.cache +0 -3
  106. data/test/rails421/tmp/cache/assets/sprockets/v3.0/ni/niGBqsssmceju94eXn6eko8N-B_Wd_TfuVca3esL0PA.cache +0 -0
  107. data/test/rails421/tmp/cache/assets/sprockets/v3.0/oB/oBw4u1I-YHiDLfqGBonN5VMbTkmFJCA2IZIWABuZCZY.cache +0 -0
  108. data/test/rails421/tmp/cache/assets/sprockets/v3.0/oN/oNYh-Q08FfdNyVFqXISNg8_l67G5FeBHokHp5greQLo.cache +0 -1
  109. data/test/rails421/tmp/cache/assets/sprockets/v3.0/p0/p00KopyzwCidTtAuB76KK2QxTXFwOLwu-Ur8rkyHV1Q.cache +0 -1
  110. data/test/rails421/tmp/cache/assets/sprockets/v3.0/pR/pRAbQ3DoSMCVan9vdc4o6gLmg2MfGWD_yjv6SwBjomc.cache +0 -1
  111. data/test/rails421/tmp/cache/assets/sprockets/v3.0/pS/pSRyIy0fylBzoBIXuPbSt6NPfrO26fTTJ91cnBiYV5c.cache +0 -1
  112. data/test/rails421/tmp/cache/assets/sprockets/v3.0/qy/qy5ffSUvVTPRKpXNBphBzko8sGj8Ce4dDXBu8rCvA_k.cache +0 -1
  113. data/test/rails421/tmp/cache/assets/sprockets/v3.0/rj/rj9TDm5Ag9No-NQsnf_1jVYYLtMtHzwzJz0DBSS0JA0.cache +0 -0
  114. data/test/rails421/tmp/cache/assets/sprockets/v3.0/sk/skD9Azvu31NegSi2oQtxsOd9ghnyKi7-4FHq4WwvWtE.cache +0 -0
  115. data/test/rails421/tmp/cache/assets/sprockets/v3.0/sn/SnvXlg8cBOz55_kauZGh-V4IC5Zauq8JVhOlzJ02iSU.cache +0 -1
  116. data/test/rails421/tmp/cache/assets/sprockets/v3.0/sn/snbk_vUdpRIi6RfNIaIjl1NOO3pWiCe6KFWZ30k1XL8.cache +0 -1
  117. data/test/rails421/tmp/cache/assets/sprockets/v3.0/tn/tnnlCZmqi-M2TWOY6xMLnGBbKqxvkwkMHVJ8kHRBmik.cache +0 -1
  118. data/test/rails421/tmp/cache/assets/sprockets/v3.0/u1/u1WQc8AMAiOmt_v_5_2yi3XbEaUf9yC4itiSk53jRGg.cache +0 -0
  119. data/test/rails421/tmp/cache/assets/sprockets/v3.0/uH/uH1B6_PPjBQ_4l8KBo3b9ewINago1_K8JKjG1w0YKH4.cache +0 -1
  120. data/test/rails421/tmp/cache/assets/sprockets/v3.0/v5/v56pz21chnsTcHF9GlXTNEdYxkn5O1M9WyIVgb17pzo.cache +0 -2
  121. data/test/rails421/tmp/cache/assets/sprockets/v3.0/vS/vSW7CsUHjw-gbleWbQODWkGxCP7xL776KWz12vIsn5U.cache +0 -2
  122. data/test/rails421/tmp/cache/assets/sprockets/v3.0/vm/vm9hQSEhxR6wE0cFbLeqVjYZax2SwNkord1DCAzA2xg.cache +0 -1
  123. data/test/rails421/tmp/cache/assets/sprockets/v3.0/wi/wiOYNLAxWSE-RcUp0e8yyvwlXcrlSD3c8Hf_9mLum00.cache +0 -1
  124. data/test/rails421/tmp/cache/assets/sprockets/v3.0/xu/xuHg3Ok3I6Ioa8MvbTYwIrYE_ECmwnU6iG9oIqi9Kw0.cache +0 -1
  125. data/test/rails421/tmp/cache/assets/sprockets/v3.0/y3/y397xgx0zBU7JiqxnZxg555Z1CcnrG1svhgwJvZA6Fs.cache +0 -1
  126. data/test/rails421/tmp/cache/assets/sprockets/v3.0/y5/y5VE9EjY2KAk8NIkbwOZzYod3U0KM5Q5ZqJ_J0CmJIs.cache +0 -0
  127. data/test/route_downcaser_test.rb +0 -195
  128. data/test/test_helper.rb +0 -19
@@ -1,195 +0,0 @@
1
- require 'test_helper'
2
-
3
- class MyMockApp
4
- def call(env)
5
- raise "Env nil" if env.blank?
6
- @env = env.clone
7
- return @env
8
- end
9
-
10
- def env
11
- @env
12
- end
13
- end
14
-
15
- class RouteDowncaserTest < ActiveSupport::TestCase
16
- class BasicTests < ActiveSupport::TestCase
17
- setup do
18
- @app = MyMockApp.new
19
- RouteDowncaser.configuration do |config|
20
- config.redirect = false
21
- config.exclude_patterns = nil
22
- end
23
- end
24
-
25
- test "REQUEST_URI path-part is downcased" do
26
- callenv = { 'REQUEST_URI' => "HELLO/WORLD", 'REQUEST_METHOD' => "GET" }
27
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
28
- assert_equal("hello/world", @app.env['REQUEST_URI'])
29
- end
30
-
31
- test "REQUEST_URI querystring parameters are not touched" do
32
- callenv = { 'REQUEST_URI' => "HELLO/WORLD?FOO=BAR", 'REQUEST_METHOD' => "GET" }
33
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
34
- assert_equal("hello/world?FOO=BAR", @app.env['REQUEST_URI'])
35
- end
36
-
37
- test "REQUEST_URI querystring parameters can contain ?" do
38
- callenv = { 'REQUEST_URI' => "HELLO/WORLD?FOO=BAR?BAZ=BING", 'REQUEST_METHOD' => "GET" }
39
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
40
- assert_equal("hello/world?FOO=BAR?BAZ=BING", @app.env['REQUEST_URI'])
41
- end
42
-
43
- test "entire PATH_INFO is downcased" do
44
- callenv = { 'PATH_INFO' => "HELLO/WORLD", 'REQUEST_METHOD' => "GET" }
45
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
46
- assert_equal("hello/world", @app.env['PATH_INFO'])
47
- end
48
-
49
- test "the call environment should always be returned" do
50
- callenv = { 'PATH_INFO' => "HELLO/WORLD", 'REQUEST_METHOD' => "GET" }
51
- retval = RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
52
- assert_equal({ 'PATH_INFO' => "hello/world", 'REQUEST_METHOD' => "GET" }, retval)
53
- end
54
- end
55
-
56
-
57
- class ExcludePatternsTests < ActiveSupport::TestCase
58
- setup do
59
- @app = MyMockApp.new
60
- RouteDowncaser.configuration do |config|
61
- config.redirect = false
62
- config.exclude_patterns = [/assets\//i, /fonts\//i]
63
- end
64
- end
65
-
66
- test "when PATH_INFO is found in exclude_patterns, do nothing" do
67
- callenv = { 'PATH_INFO' => "ASSETS/IMAges/SpaceCat.jpeg", 'REQUEST_METHOD' => "GET" }
68
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
69
- assert_equal("ASSETS/IMAges/SpaceCat.jpeg", @app.env['PATH_INFO'])
70
- end
71
-
72
- test "when REQUEST_URI is found in exclude_patterns, do nothing" do
73
- callenv = { 'REQUEST_URI' => "ASSETS/IMAges/SpaceCat.jpeg", 'REQUEST_METHOD' => "GET" }
74
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
75
- assert_equal("ASSETS/IMAges/SpaceCat.jpeg", @app.env['REQUEST_URI'])
76
- end
77
-
78
- test "the call environment should always be returned" do
79
- callenv = { 'REQUEST_URI' => "ASSETS/IMAges/SpaceCat.jpeg", 'REQUEST_METHOD' => "GET" }
80
- retval = RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
81
- assert_equal(callenv, retval)
82
- end
83
- end
84
-
85
-
86
- class RedirectTrueTests < ActiveSupport::TestCase
87
- setup do
88
- @app = MyMockApp.new
89
- RouteDowncaser.configuration do |config|
90
- config.redirect = true
91
- config.exclude_patterns = nil
92
- end
93
- end
94
-
95
- test "when redirect is true it redirects REQUEST_URI" do
96
- callenv = { 'REQUEST_URI' => "HELLO/WORLD", 'REQUEST_METHOD' => "GET" }
97
- assert_equal(
98
- [301, {'Location' => "hello/world", 'Content-Type' => 'text/html'}, []],
99
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
100
- )
101
- end
102
-
103
- test "when redirect is true it redirects PATH_INFO" do
104
- callenv = { 'PATH_INFO' => "HELLO/WORLD", 'REQUEST_METHOD' => "GET" }
105
- assert_equal(
106
- [301, {'Location' => "hello/world", 'Content-Type' => 'text/html'}, []],
107
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
108
- )
109
- end
110
- end
111
-
112
-
113
- class RedirectTrueExcludePatternsTests < ActiveSupport::TestCase
114
- setup do
115
- @app = MyMockApp.new
116
- RouteDowncaser.configuration do |config|
117
- config.redirect = true
118
- config.exclude_patterns = [/assets\//i, /fonts\//i]
119
- end
120
- end
121
-
122
- test "when redirect is true it does not redirect, if REQUEST_URI match exclude patterns" do
123
- callenv = { 'REQUEST_URI' => "fonts/Icons.woff", 'REQUEST_METHOD' => "GET" }
124
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
125
- assert_equal("fonts/Icons.woff", @app.env['REQUEST_URI'])
126
- end
127
-
128
- test "when redirect is true it does not redirect, if PATH_INFO match exclude patterns" do
129
- callenv = { 'PATH_INFO' => "fonts/Icons.woff", 'REQUEST_METHOD' => "GET" }
130
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
131
- assert_equal("fonts/Icons.woff", @app.env['PATH_INFO'])
132
- end
133
- end
134
-
135
-
136
- class MultibyteTests < ActiveSupport::TestCase
137
- setup do
138
- @app = MyMockApp.new
139
- RouteDowncaser.configuration do |config|
140
- config.redirect = false
141
- config.exclude_patterns = nil
142
- end
143
- end
144
-
145
- test "Multibyte REQUEST_URI path-part is downcased" do
146
- callenv = { 'REQUEST_URI' => "ШУРШАЩАЯ ЗМЕЯ", 'REQUEST_METHOD' => "GET" }
147
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
148
- assert_equal("шуршащая змея", @app.env['REQUEST_URI'])
149
- end
150
-
151
- test "Multibyte PATH_INFO is downcased" do
152
- callenv = { 'PATH_INFO' => "ВЕЛОСИПЕД", 'REQUEST_METHOD' => "GET" }
153
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
154
- assert_equal("велосипед", @app.env['PATH_INFO'])
155
- end
156
-
157
- test "Additional multibyte downcase tests" do
158
- callenv = { 'REQUEST_URI' => "ПИВО", 'REQUEST_METHOD' => "GET" }
159
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
160
- assert_equal("пиво", @app.env['REQUEST_URI'])
161
- end
162
- end
163
-
164
- class MultibyteRedirectTests < ActiveSupport::TestCase
165
- setup do
166
- @app = MyMockApp.new
167
- RouteDowncaser.configuration do |config|
168
- config.redirect = true
169
- config.exclude_patterns = nil
170
- end
171
- end
172
-
173
- test 'it redirects Multibyte REQUEST_URI' do
174
- callenv = { 'REQUEST_URI' => 'ШУРШАЩАЯ ЗМЕЯ', 'REQUEST_METHOD' => 'GET' }
175
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
176
- result = RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
177
- status, headers = *result
178
-
179
- assert_equal 301, status
180
- assert_equal 'шуршащая змея', headers['Location']
181
- assert_instance_of String, headers['Location'], 'Headers must be strings'
182
- end
183
-
184
- test 'it redirects Multibyte PATH_INFO' do
185
- callenv = { 'PATH_INFO' => 'ВЕЛОСИПЕД', 'REQUEST_METHOD' => 'GET' }
186
- RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
187
- result = RouteDowncaser::DowncaseRouteMiddleware.new(@app).call(callenv)
188
- status, headers = *result
189
-
190
- assert_equal 301, status
191
- assert_equal 'велосипед', headers['Location']
192
- assert_instance_of String, headers['Location'], 'Headers must be strings'
193
- end
194
- end
195
- end
data/test/test_helper.rb DELETED
@@ -1,19 +0,0 @@
1
- require "simplecov"
2
- SimpleCov.start
3
-
4
- # Configure Rails Environment
5
- ENV["RAILS_ENV"] = "test"
6
-
7
- #require File.expand_path("../dummy/config/environment.rb", __FILE__)
8
- require File.expand_path("../rails421/config/environment.rb", __FILE__)
9
- require "rails/test_help"
10
-
11
- Rails.backtrace_cleaner.remove_silencers!
12
-
13
- # Load support files
14
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
15
-
16
- # Load fixtures from the engine
17
- if ActiveSupport::TestCase.method_defined?(:fixture_path=)
18
- ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
19
- end