2016/01/13分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
bring back TEST
env for rake test
.
railties/lib/rails/test_unit/testing.rake
の修正です。
Rails 4.2までは、rake test
コマンドにTEST
環境変数で実行するテストファイルを指定する事が出来たのですが、Rails 5でそれが出来なくなってしまっていたので、
再度指定出来るよう修正しています。
AC::Parameters#at_json: restore Rails 4.2’s value
actionpack/lib/action_controller/metal/strong_parameters.rb
の修正です。
ActionController::Parameters#as_json
の戻り値が、Rails 4.2とRails 5.0.0.beta1とで異なるようになってしまっていたのを、Rails 5.0でもRails 4.2と同じ値を返すよう修正しています。
PRより。
# Rails 4.2 ActionController::Parameters.new(hello: :world).as_json # {"hello"=>"world"} # Rails 5.0.0.beta1 ActionController::Parameters.new(hello: :world).as_json # => {"parameters"=>{"hello"=>"world"}, "permitted"=>false}
as_json
を@parameters
にdelegateするようにして対応しています。
Prevent attempt to serve a request with a null byte
actionpack/lib/action_dispatch/middleware/static.rb
の修正です。
request pathにnull byteが含まれていた場合に、500エラーが発生してしまっていたのを対応しています。
ActionDispatch::FileHandler#match?
でRack::Utils.clean_path_info
を呼ぶ出すのですが、Rack::Utils.clean_path_info
に渡す値にnull byteが含まれていた場合に、Rack::Utils.clean_path_info
がExceptionをraiseしてしまい、500になってしまっていたようです。
Rack::Utils.clean_path_info
を呼ぶ出す前にpathにnull byteが含まれていないかどうかチェックし、対応しています。
Add both HTTP Response Code and Type to assertion messages
Action Packの修正です。
assert_response
でエラーメッセージを表示する際、エラーメッセージにHTTP statusの名前を表示するよう修正しています。
# before Expected response to be a <success>, but was a <401> # after Expected response to be a <2XX: success>, but was a <401: Unauthorized>
Change WhereClause#merge
to same named columns on diff tables
activerecord/lib/active_record/relation/where_clause.rb
の修正です。
WhereClause#merge
が異なるテーブルに同じ名前のカラムがある場合にも正常に動作するよう対応しています。
が、一部問題があるケースがあるらしく、後ほどrevertされています。
monkey patch recycle!
on to controllers once
actionpack/lib/action_controller/test_case.rb
の修正です。
TestRequest
で、controllerにテスト用のmoduleをmixinするのに、テスト用のメソッド(recycle!
)が定義されているかどうかをチェックしていたのを、テスト内でActionController::Metal
クラスを拡張し、直接テスト用のmoduleをmixinしてしまうよう修正しています。
TestCase#process
メソッドで、各種値(parameters
、session等)を
present?`でチェックしていたのを止めています。
一部抜粋。
- if parameters.present? || session.present? || flash.present? + if parameters || session || flash
nilのemptyは別に扱うべきで、ここでpresent?
のチェックをする必要は無いだろう、という事で削除されたようです。
Revert "Change WhereClause#merge
to same named columns on diff tables"
Change WhereClause#merge
to same named columns on diff tables をrevertしています。
do not run in parallel on travis
actionpack/test/abstract_unit.rb
の修正です。
travis ciではテストをparallelで実行しないよう修正しています。これ何でだろう。
Improve error message for #or when it is structurally incompatible
activerecord/lib/active_record/relation/query_methods.rb
の修正です。
queryの構成的に#or
が使用出来ないような状況の場合に、エラーメッセージに何が問題でエラーになったかの詳細を出すよう修正しています。
テストより。
Post.order('body asc').where('id = 1').or(Post.order('id desc').where(:id => [2, 3])).to_a # => ArgumentError: Relation passed to #or must be structurally compatible. Incompatible values: [:order]
fix regression when loading fixture files with symbol keys.
activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb
の修正です。
fixtureファイル にsymbol keyを使用していた場合にfixtureファイルの読み込みがエラー(ActiveRecord::Fixture::FixtureError
)になってしまうバグがあったのを修正しています。
docs, formatting pass over changelogs. [ci skip]
各CHANGELOGの修正です。
グラマー、フォーマットの修正をまとめて行っています。