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.
- checksums.yaml +5 -5
- data/README.rdoc +4 -4
- data/Rakefile +17 -19
- data/lib/route_downcaser/configuration.rb +19 -16
- data/lib/route_downcaser/downcase_route_middleware.rb +29 -29
- data/lib/route_downcaser/railtie.rb +2 -0
- data/lib/route_downcaser/version.rb +3 -1
- data/lib/route_downcaser.rb +6 -4
- data/lib/tasks/route_downcaser_tasks.rake +1 -0
- metadata +24 -245
- data/lib/route_downcaser/original_downcase_route_middleware.rb +0 -83
- data/test/integration/route_middleware_test.rb +0 -55
- data/test/rails421/Rakefile +0 -6
- data/test/rails421/app/assets/javascripts/application.js +0 -5
- data/test/rails421/app/assets/stylesheets/application.css +0 -15
- data/test/rails421/app/controllers/application_controller.rb +0 -5
- data/test/rails421/app/controllers/hello_controller.rb +0 -5
- data/test/rails421/app/helpers/application_helper.rb +0 -2
- data/test/rails421/app/views/layouts/application.html.erb +0 -14
- data/test/rails421/bin/bundle +0 -3
- data/test/rails421/bin/rails +0 -8
- data/test/rails421/bin/rake +0 -8
- data/test/rails421/bin/setup +0 -29
- data/test/rails421/bin/spring +0 -15
- data/test/rails421/config/application.rb +0 -29
- data/test/rails421/config/boot.rb +0 -3
- data/test/rails421/config/environment.rb +0 -5
- data/test/rails421/config/environments/development.rb +0 -41
- data/test/rails421/config/environments/production.rb +0 -79
- data/test/rails421/config/environments/test.rb +0 -42
- data/test/rails421/config/initializers/assets.rb +0 -11
- data/test/rails421/config/initializers/backtrace_silencers.rb +0 -7
- data/test/rails421/config/initializers/cookies_serializer.rb +0 -3
- data/test/rails421/config/initializers/filter_parameter_logging.rb +0 -4
- data/test/rails421/config/initializers/inflections.rb +0 -16
- data/test/rails421/config/initializers/mime_types.rb +0 -4
- data/test/rails421/config/initializers/session_store.rb +0 -3
- data/test/rails421/config/initializers/wrap_parameters.rb +0 -14
- data/test/rails421/config/locales/en.yml +0 -23
- data/test/rails421/config/routes.rb +0 -59
- data/test/rails421/config/secrets.yml +0 -22
- data/test/rails421/config.ru +0 -4
- data/test/rails421/log/test.log +0 -1048
- data/test/rails421/public/404.html +0 -67
- data/test/rails421/public/422.html +0 -67
- data/test/rails421/public/500.html +0 -66
- data/test/rails421/public/favicon.ico +0 -0
- data/test/rails421/public/robots.txt +0 -5
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/-B/-Bgmyr63R89_vIyXN9mCNapfDXapBpDRck9XmKhL5CA.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/-W/-WQ3FNnhW7tLBOxo4aGnRb2Fve0zgOnoMYj6wqTNkbM.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/0E/0EDP1-KVZYBKHTAmflqiPVViMAVEG0SC-kK_5oEVZn0.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/0g/0gWM2CTzhg2x8y4_UP-Py0W4B9A-zr06u8OBmue8X1k.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/3K/3KLS9RO9SD43w2m7B37olZz-VRlZVFl3F98EcZ-T6OQ.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/3O/3OqO1F9b_ZzzrtlAoCMgvevQgZnwcUOgeLR8rv3IEic.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/4r/4rAedh6S2USq6-0-HuB_CCVHHLcpx52AIjXhD_2ZBGg.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/5C/5CT_8kIrhxIJ83JBc79GdAhqzTv5yYzmjQTu_6ALk50.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/5J/5Jhq8lUXayqrSHgYM1Q5MHGn-TiHuMjRmK_XV4M3UyI.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/5t/5tiqCRpLfxs-Y6ybOzuDwipvuUFossP-XvncvDt1beA.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/6H/6H_SytVX3LrLQVNblKfSUZm9U4zz0Hi3nC7zd2slWgE.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/7a/7aucnxDrWU2Wq9Gv2-MzRJ-TODqCU9XYtPF9yUAxzrA.cache +0 -3
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/7j/7jspo8CcT9uFS4H8PqxscgE3AlgXB7pTQyQIhMJPVg0.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/8b/8bGxiI7b1E3sXm_6Main4IVaCaNunTCJECvMivc6vao.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/91/91xRePltaCv1RzwqjVg8J1eDPpMSQzAP2xE0NfHN790.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ag/AgHzzOWYl7FCzWVoy3hK75zrV0K8Fb-_06edGSVp2Ow.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Cf/CflQs9dwKZXgCIWoyonGUgbz8uPXLgmyP_FlcJScD7o.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Cg/CgOhJxWpn75PUgDhTSfe1qt0yvhVyPToVq13nv5zuZQ.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/EL/EL7MuqbmZFKYS_80bdvW6_Wn5UEiX3eu1r6N-7G8UEw.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/FV/FV8nUPacNnUiza7kOCqckUSyEGBdphbSPSuZtJUy8tE.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/GP/GPlQQXNQ-w_dTZRfo4-FYNUzSGE1cEKrXjS7crmzVG0.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ig/Igg0gxUZFtM3hQ7W6dbvFXdZpIbV6tOiVPR2vEmQYXI.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Jf/JfAkIfafqJLEVZeAwe3NPmILKAxLTIaQMkBDQv9lgRs.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Jg/Jgz4YtR2FGBSwxB6thNOJDk7klfksp2yQy2XkBjht4g.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ki/KiL7BwSVbz_z5w4y93R2R4LCkyj0b19GujTz6XIiarY.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/LU/LUAozPg7QdzK21QBqXW25-a5gN_7zLRAqQSupvkblSg.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ln/LnFnKRPLxutlTQ7fOvRsapfgXEw5btGpLwFPbpRzRlM.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Ls/LsZJopR7cTyB7JsVfz5aSomahT3jHGL6Pa2CICmFoQg.cache +0 -3
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/PK/PKl6w1pmCXwfusuCnKunu1GYOTLNPwF7_K8p3ytcTgg.cache +0 -3
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Pi/PitG24Ap6XHTl1N62RP6JfNqaWJFxaUoe59hR-YXKPE.cache +0 -3
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Pm/PmYoMk9-uw3hPLN-bvhDGLKg6cTarLI8BYk3DhheO1k.cache +0 -3
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/SP/SPGmSZC6qS--XzWg1MdmEEgH6dRyXOgJMe2P9QBYQZY.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/V4/V440s0_NvNOTLoVbZrUe2eeHjF7uUg4OPlf9swcXXDA.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/WS/WSBIVButxIEVKNZe-7Nc4vJqenDzrMKArSNbIy7H8Cs.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/Xg/Xg64R_L39P2xqnexdmGDRYDzSTX8azFSAWBFOy2B5lU.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/YY/YYg4F7MwALcoY2sRAE6hl0-2rtVq5V-9JixAGfbxLF0.cache +0 -2
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/ZU/ZUn7d2k8KPMHyjjf6lnKTGwGfn2BO-IdyYXQ8wfkVIM.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/_n/_nYxMUNBMU9KjdTucuCyGutY4g7x8eJjbF9NwXdn1po.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/aW/aWW6yUInnVq44DuXVWtVU0Uu6MVqbDk_31S2NWl7K74.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/ap/aprbFEg82SGajctPy-pfnM30hK8PtEZrmsgk9pgRHRk.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/cy/cy6FSlBMXEvsU2hDor-RFfO7au2LngZ3WqI2vqa1r8U.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/du/duFUmZ4ysy7RyIkeiWtvwe6BtTfBJhNMuO2oRfkfoVo.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/ed/edkFBPusn0eAqYUpbC3hk4dVs45tYZg3w4p50PKPokk.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/fC/fCrT0zlSV767KPzO87GqdHMO_QsiEr19LLDZb0XFHfc.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/g3/g3DI9kbhIoXd-w_hDm4y5teEzaSmtyBGpP1zd-JWcek.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/g6/g6fovXx3tOX2i7BAnBDxcViTe4leaTm9Kkrfdl8wMQA.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/go/gorAkyJ6oqUlHs8L907X6eA5ORKpX19iQIIz85e1Om4.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/hD/hDxUuofMAs4S7GXborJiutJawcnl4o2LNudaxNbN4ec.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/hQ/hQj6p2AFknE_MgYgHnwoPOe91PEUgpn6Z_FiuyaJ82k.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/hw/hwHQHMDHwgnbAp8O9R8o4Q5POdU6sxLG89slbhtkmEk.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/iH/iH1r3bm_cqwvpfoFfd5cI3E2iqgJtmIed8lCZKieHx8.cache +0 -2
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/is/isbz3mXXlcEL2HMerIcSsLWpTN3D4lHiK2HOygFzss8.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/iw/iwUWP-Z82gbzpNgNohj70sxyUtc3xNWla6RKzVYItxg.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/j9/j9dS7uGziRYgnlks5CDCYPt1e_REM0RIz9UpIgMKgdg.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/jY/jYVt_HA9ZEkn6SDsjj7OSswwgRzN39gj7oCIcNhw6G4.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/jh/jh8Rd8uXzJsR5P4NG39_-VpLgRemhQ8CxX5_dw6lT8Y.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/kU/kUhgMRj0dXypOCVx0_3_wrOtw53hBixKcGLLqSxuw6w.cache +0 -3
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/ni/niGBqsssmceju94eXn6eko8N-B_Wd_TfuVca3esL0PA.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/oB/oBw4u1I-YHiDLfqGBonN5VMbTkmFJCA2IZIWABuZCZY.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/oN/oNYh-Q08FfdNyVFqXISNg8_l67G5FeBHokHp5greQLo.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/p0/p00KopyzwCidTtAuB76KK2QxTXFwOLwu-Ur8rkyHV1Q.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/pR/pRAbQ3DoSMCVan9vdc4o6gLmg2MfGWD_yjv6SwBjomc.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/pS/pSRyIy0fylBzoBIXuPbSt6NPfrO26fTTJ91cnBiYV5c.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/qy/qy5ffSUvVTPRKpXNBphBzko8sGj8Ce4dDXBu8rCvA_k.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/rj/rj9TDm5Ag9No-NQsnf_1jVYYLtMtHzwzJz0DBSS0JA0.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/sk/skD9Azvu31NegSi2oQtxsOd9ghnyKi7-4FHq4WwvWtE.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/sn/SnvXlg8cBOz55_kauZGh-V4IC5Zauq8JVhOlzJ02iSU.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/sn/snbk_vUdpRIi6RfNIaIjl1NOO3pWiCe6KFWZ30k1XL8.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/tn/tnnlCZmqi-M2TWOY6xMLnGBbKqxvkwkMHVJ8kHRBmik.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/u1/u1WQc8AMAiOmt_v_5_2yi3XbEaUf9yC4itiSk53jRGg.cache +0 -0
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/uH/uH1B6_PPjBQ_4l8KBo3b9ewINago1_K8JKjG1w0YKH4.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/v5/v56pz21chnsTcHF9GlXTNEdYxkn5O1M9WyIVgb17pzo.cache +0 -2
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/vS/vSW7CsUHjw-gbleWbQODWkGxCP7xL776KWz12vIsn5U.cache +0 -2
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/vm/vm9hQSEhxR6wE0cFbLeqVjYZax2SwNkord1DCAzA2xg.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/wi/wiOYNLAxWSE-RcUp0e8yyvwlXcrlSD3c8Hf_9mLum00.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/xu/xuHg3Ok3I6Ioa8MvbTYwIrYE_ECmwnU6iG9oIqi9Kw0.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/y3/y397xgx0zBU7JiqxnZxg555Z1CcnrG1svhgwJvZA6Fs.cache +0 -1
- data/test/rails421/tmp/cache/assets/sprockets/v3.0/y5/y5VE9EjY2KAk8NIkbwOZzYod3U0KM5Q5ZqJ_J0CmJIs.cache +0 -0
- data/test/route_downcaser_test.rb +0 -195
- 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
|