mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Fix #8086 (BestStandardsSupport rewrites app X-UA-Compatible header, now appends).
Now `BestStandardsSupport` middleware appends it's `X-UA-Compatible` value to app's value. Also test for `BestStandardsSupport` middleware added.
This commit is contained in:
parent
b31ea0c240
commit
d8c1404107
3 changed files with 46 additions and 1 deletions
|
@ -1,5 +1,10 @@
|
|||
## Rails 4.0.0 (unreleased) ##
|
||||
|
||||
* `BestStandardsSupport` middleware now appends it's `X-UA-Compatible` value to app's
|
||||
returned value if any. Fix #8086
|
||||
|
||||
*Nikita Afanasenko*
|
||||
|
||||
* `date_select` helper accepts `with_css_classes: true` to add css classes similar with type
|
||||
of generated select tags.
|
||||
|
||||
|
|
|
@ -15,7 +15,13 @@ module ActionDispatch
|
|||
|
||||
def call(env)
|
||||
status, headers, body = @app.call(env)
|
||||
|
||||
if headers["X-UA-Compatible"] && @header
|
||||
headers["X-UA-Compatible"] << "," << @header.to_s
|
||||
else
|
||||
headers["X-UA-Compatible"] = @header
|
||||
end
|
||||
|
||||
[status, headers, body]
|
||||
end
|
||||
end
|
||||
|
|
34
actionpack/test/dispatch/best_standards_support_test.rb
Normal file
34
actionpack/test/dispatch/best_standards_support_test.rb
Normal file
|
@ -0,0 +1,34 @@
|
|||
require 'abstract_unit'
|
||||
|
||||
class BestStandardsSupportTest < ActiveSupport::TestCase
|
||||
def test_with_best_standards_support
|
||||
_, headers, _ = app(true, {}).call({})
|
||||
assert_equal "IE=Edge,chrome=1", headers["X-UA-Compatible"]
|
||||
end
|
||||
|
||||
def test_with_builtin_best_standards_support
|
||||
_, headers, _ = app(:builtin, {}).call({})
|
||||
assert_equal "IE=Edge", headers["X-UA-Compatible"]
|
||||
end
|
||||
|
||||
def test_without_best_standards_support
|
||||
_, headers, _ = app(false, {}).call({})
|
||||
assert_equal nil, headers["X-UA-Compatible"]
|
||||
end
|
||||
|
||||
def test_appends_to_app_headers
|
||||
app_headers = { "X-UA-Compatible" => "requiresActiveX=true" }
|
||||
_, headers, _ = app(true, app_headers).call({})
|
||||
|
||||
expects = "requiresActiveX=true,IE=Edge,chrome=1"
|
||||
assert_equal expects, headers["X-UA-Compatible"]
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def app(type, headers)
|
||||
app = proc { [200, headers, "response"] }
|
||||
ActionDispatch::BestStandardsSupport.new(app, type)
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in a new issue