diff options
author | yuuji.yaginuma <yuuji.yaginuma@gmail.com> | 2017-05-16 07:45:41 +0900 |
---|---|---|
committer | yuuji.yaginuma <yuuji.yaginuma@gmail.com> | 2017-05-16 08:01:11 +0900 |
commit | e605921614c286ab2d6b4cafb655230a3d9b5fee (patch) | |
tree | b7f41cf39e304e941a04128255bd5d73c18d72f7 /actionpack | |
parent | 6086fbaecf57cde96d00dcd7ea776263dd4b3e79 (diff) | |
download | rails-e605921614c286ab2d6b4cafb655230a3d9b5fee.tar.gz rails-e605921614c286ab2d6b4cafb655230a3d9b5fee.tar.bz2 rails-e605921614c286ab2d6b4cafb655230a3d9b5fee.zip |
Fix `TestInvalidUrls` with rack 2.0.3
Currently, raise `BadRequest` if params encoding is invalid.
https://github.com/rails/rails/blob/5-1-stable/actionpack/lib/action_dispatch/http/parameters.rb#L64..L74
https://github.com/rails/rails/blob/5-1-stable/actionpack/lib/action_dispatch/request/utils.rb#L26..L39
However, env values are ensure encoded in ASCII 8 BIT at rack 2.0.3.
https://github.com/rack/rack/commit/68db9aa99e3e2775a58621f658b2a7a0f67db459
Therefore, even if specify an invalid urls, it will not cause an error.
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/test/dispatch/routing_test.rb | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/actionpack/test/dispatch/routing_test.rb b/actionpack/test/dispatch/routing_test.rb index d64917e0d3..32cd78e492 100644 --- a/actionpack/test/dispatch/routing_test.rb +++ b/actionpack/test/dispatch/routing_test.rb @@ -4419,7 +4419,7 @@ class TestInvalidUrls < ActionDispatch::IntegrationTest end end - test "invalid UTF-8 encoding returns a 400 Bad Request" do + test "invalid UTF-8 encoding is treated as ASCII 8BIT encode" do with_routing do |set| set.draw do get "/bar/:id", to: redirect("/foo/show/%{id}") @@ -4435,19 +4435,19 @@ class TestInvalidUrls < ActionDispatch::IntegrationTest end get "/%E2%EF%BF%BD%A6" - assert_response :bad_request + assert_response :not_found get "/foo/%E2%EF%BF%BD%A6" - assert_response :bad_request + assert_response :not_found get "/foo/show/%E2%EF%BF%BD%A6" - assert_response :bad_request + assert_response :ok get "/bar/%E2%EF%BF%BD%A6" - assert_response :bad_request + assert_response :redirect get "/foobar/%E2%EF%BF%BD%A6" - assert_response :bad_request + assert_response :ok end end end |