aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
Commit message (Collapse)AuthorAgeFilesLines
* updating docsAaron Patterson2016-12-211-0/+4
|
* Document and update API for `skip_parameter_encoding`Aaron Patterson2016-12-216-54/+52
| | | | | | | | This commit changes `parameter_encoding` to `skip_parameter_encoding`. `skip_parameter_encoding` will set encoding on all parameters to ASCII-8BIT for a given action on a particular controller. This allows the controller to handle data when the encoding of that data is unknown, for example file systems or truly binary parameters.
* Merge pull request #27414 from matthewd/fix-xml-vs-html-assertionMatthew Draper2016-12-211-12/+12
|\ | | | | Revise the "XML is not HTML" test
| * Revise the "XML is not HTML" testMatthew Draper2016-12-201-12/+12
| | | | | | | | | | | | It was depending on a side-effect of the old html-scanner, so was no longer proving what it intended to. Instead, assert more directly about the resulting observable difference.
* | Merge pull request #27408 from matthewd/charset-fixMatthew Draper2016-12-203-5/+14
|\ \ | | | | | | Only default the response charset when it is first set
| * | Only default the response charset when it is first setMatthew Draper2016-12-203-5/+14
| |/ | | | | | | | | If it is explicitly cleared (e.g., response.sending_file = true), then we should not try to set it again.
* | Merge pull request #27146 from maclover7/jm-fix-27145Eileen M. Uchitelle2016-12-192-2/+10
|\ \ | |/ |/| Do not clear HTTP_COOKIES header after request
| * Do not clear HTTP_COOKIES header after requestJon Moss2016-12-112-2/+10
| |
* | Missing require "active_support/testing/constant_lookup"Akira Matsuda2016-12-141-0/+1
|/
* Do not raise exception when content_type is a empty stringRafael Mendonça França2016-12-092-1/+6
| | | | | When content type header is blank we were raising an exception because `empty?` was being called on nil.
* Only move fixture_file_upload to IntegrationTestMatthew Draper2016-12-072-18/+22
| | | | | The rest of the helpers are better placed on Session -- and this is the only one that cares which class it is defined on.
* Do not try to set the content_type if the format is nilRafael Mendonça França2016-12-051-1/+1
|
* stop using removed `render :text`yuuji.yaginuma2016-12-031-1/+1
| | | | Follow up to 79a5ea9eadb4d43b62afacedc0706cbe88c54496
* use `Gem.win_platform?` to check windows Ruby platformsyuuji.yaginuma2016-11-301-1/+1
| | | | | `Gem.win_platform?` check if it is Windows more accurately. Ref: https://github.com/ruby/ruby/blob/ruby_2_2/lib/rubygems.rb#L945..L952
* Document 'false' as option for 'action_on_unpermitted_parameters'Daniel Carral2016-11-291-2/+2
| | | | [ci skip]
* Merge pull request #27195 from y-yagi/use_public_module_includeSantiago Pastorino2016-11-271-1/+1
|\ | | | | use public Module#include instead of send :include
| * use public Module#include instead of send :includeyuuji.yaginuma2016-11-271-1/+1
| | | | | | | | Follow up to #18767
* | [ci skip] Update the `as` docs.Kasper Timm Hansen2016-11-271-1/+2
| | | | | | | | Mention the Accept header and how that figures into the request format.
* | Remove default argument value.Kasper Timm Hansen2016-11-271-1/+1
|/ | | | Wrongly added when fixing the request path wrangling.
* Merge pull request #27140 from ↵Rafael França2016-11-251-1/+1
|\ | | | | | | | | supercaracal/fix-force-ssl-if-session-store-disabled Fix a force ssl redirection bug that occur when session store disabled.
| * Remove aggressive unit test with mock. And add integration level test.Taishi Kasuga2016-11-241-24/+0
| |
| * Fix a force ssl redirection bug that occur when session store disabled.Taishi Kasuga2016-11-222-1/+25
| |
* | [ci skip] Add changelog entry for 86754a8fKasper Timm Hansen2016-11-231-0/+11
| |
* | [ci skip] Explain only :json is shipped by default.Kasper Timm Hansen2016-11-231-1/+2
| | | | | | | | | | | | | | Don't want to add defensive programming to this fairly simple thing. Fixes #27060.
* | Use accept header instead of mangling request path.Kasper Timm Hansen2016-11-233-24/+44
|/ | | | | | | | | | | | | | Instead of appending a format to the request, it's much better to just pass a more appropriate accept header. Rails will figure out the format from that instead. This allows devs to use `:as` on routes that don't have a format. Introduce an `IdentityEncoder` to avoid `if request_encoder`, essentially a better version of the purpose of the `WWWFormEncoder`. One that makes conceptual sense on GET requests too. Fixes #27144.
* update bin/test scripts to prevent double runs.Yves Senn2016-11-211-2/+0
| | | | | The test runner was updated to make use of autorun. This caused the `bin/test` scripts to run Minitest twice.
* Revert "fix typo in `match` doc [ci skip]"Jon Moss2016-11-191-1/+1
|
* fix typo in `match` doc [ci skip]yuuji.yaginuma2016-11-201-1/+1
| | | | s/Constrains/Constraints
* move CHANGELOG entry to the appropriate file [ci skip]yuuji.yaginuma2016-11-191-0/+6
| | | | Follow up to #27098
* Merge pull request #27089 from erickueen/erickueen_fix_26606Rafael Mendonça França2016-11-182-10/+16
|\ | | | | | | Fix incorrect output from rails routes when using singular resources …
| * Fix incorrect output from rails routes when using singular resources issue ↵Erick Reyna2016-11-182-9/+15
| | | | | | | | | | | | | | | | | | | | #26606 Rails routes (even rake routes in previous versions) output showed incorrect routes when an application use resource :controller, implying that edit_controller_path match with controller#show. The order of the output has changed to correct this. View #26606 for more information. Added a test case, change unit test in rake to expect the new output. Since the output of resource :controller is changing, the string spected of the railties/test/application/rake_test.rb test_rails_routes_with_controller_environment had to be modified.
* | Fix `ActionDispatch::IntegrationTest#open_session`Tawan Sierek2016-11-182-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reset a new session directly after its creation in `ActionDispatch::IntegrationTest#open_session`. Reset the session to a clean state before making it available to the client's test code. Issue #22742 reports unexpected behavior of integration tests that run multiple sessions. For example an `ActionDispatch::Flash` instance is shared across multiple sessions, though a client code will rightfully assume that each new session has its own flash hash. The following test failed due to this behavior: class Issue22742Test < ActionDispatch::IntegrationTest test 'issue #22742' do integration_session # initialize first session a = open_session b = open_session refute_same(a.integration_session, b.integration_session) end end Instead of creating a new `ActionDispatch::Integration::Session` instance, the same instance is shared across all newly opened test sessions. This is due to the way how new test sessions are created in `ActionDispatch::IntegrationTest#open_session`. The already existing `ActionDispatch::IntegrationTest` instance is duplicated with `Object#dup`, This approach was introduced in commit 15c31c7639b. `Object#dup` copies the instance variables, but not the objects they reference. Therefore this issue only occurred when the current test instance had been tapped in such a way that the instance variable `@integration_session` was initialized before creating the new test session. Close #22742 [Tawan Sierek + Sina Sadeghian]
* | Fixed CONTENT_LENGTH header in ActionController::TestRequestArtem Rashev2016-11-152-2/+13
|/ | | | | | | | | | | | | CONENT_LENGTH setted by string length, which is equal to number of characters in string but StringIO.length is byte sequence and when payload contains non-ASCII characters, stream's length will be different. That's why real byte length should be used for CONTENT_LENGTH header. Add unit test for CONTENT_LENGTH header fix It just passes non-ascii symbols as parameters and verifies that "CONTENT_LENGTH" header has content bytes count as value.
* Missing require string/filters for `squish`Akira Matsuda2016-11-151-0/+2
|
* Fix style violationsRafael Mendonça França2016-11-141-1/+1
|
* Merge pull request #27007 from maclover7/jm-fix-26912Rafael Mendonça França2016-11-132-2/+12
|\ | | | | | | Don't error on an empty CONTENT_TYPE
| * Don't error on an empty CONTENT_TYPEJon Moss2016-11-102-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit prevents a possible issue wherein an empty CONTENT_TYPE header is sent in a request to a Rails application, and then `request.content_mime_type` would return `nil`. This is because the `has_content_type?` guard method was not properly checking the validity of a request's content type; it was only checking to see whether or not the header existed, not whether it had a value stored inside. Relatedly, after an internal discussion, it was determined that the `has_content_type?` method is not meant to be part of the public API, and is therefore changed to a `:nodoc:` method in this commit. The test for this behavior is a little bit ugly, for two reasons. One is that it was difficult to determine where to place the test... I figured the best place would be with the rest of the ParamsWrapper stuff, since that's where the original issue was. Also, we have to do some fancy footwork in calling `dispatch` on the test's controller manually... this is because `ActionController::TestCase` will throw an error if you try and pass in a nil content type, which is exactly what we are trying to test here... Because of that, we have to manually call in to the controller, and bypass the `post` request helper. Fixes #26912. This is a regression in behavior between Rails versions 4.2.x and 5.0.x, which was introduced via [this commit](https://github.com/rails/rails/commit/a9f28600e901b11a9222e34bfae8642bfb753186).
* | Merge pull request #26222 from vipulnsward/26134-fixRafael França2016-11-132-1/+13
|\ \ | | | | | | Format and send logs to logger.fatal from DebugExceptions
| * | Format and send logs to logger.fatal from DebugExceptions instead of calling ↵Vipul A M2016-11-122-1/+13
| | | | | | | | | | | | | | | | | | fatal multiple times. Expose tags_text from TaggedLogging to be used for log formatting Fixes #26134
* | | Merge pull request #27024 from vipulnsward/changelog-editsAndrew White2016-11-131-1/+1
|\ \ \ | | | | | | | | Changelog edits
| * | | Changelog editsVipul A M2016-11-121-1/+1
| |/ /
* | | Merge pull request #26905 from bogdanvlviv/docsAndrew White2016-11-137-11/+11
|\ \ \ | | | | | | | | Add missing `+` around a some literals.
| * | | Add missing `+` around a some literals.bogdanvlviv2016-10-277-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | Mainly around `nil` [ci skip]
* | | | removes unconventional "then" in case expressionXavier Noria2016-11-131-1/+1
| | | |
* | | | revises style in recent code (of mine)Xavier Noria2016-11-131-5/+7
| |/ / |/| | | | | | | | | | | This alternative case expressions read better for my taste, and look more uniform in a file where other similar case expressions are used (without dynamic clauses).
* | | significant speedup of AC::Parameters#permitXavier Noria2016-11-122-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current implementation of AC::Parameters#permit builds permitted hashes and then calls permit! on them. This filtering is recursive, so we call permit! on terminal branches, but then ascendants call permit! on themselves when the recursion goes up the stack, which recurses all the way down again because permit! is recursive itself. Repeat this for every parent node and you get some scary O-something going on that I don't even want to compute. Instead, since the whole point of the permit recursion is to build permitted hashes along the way and at that point you know you've just come up with a valid filtered version, you can already switch the toggle on the spot. I have seen 2x speedups in casual benchmarks with small structures. As the previous description shows, the difference in performance is going to be a function of the nesting. Note that that the involved methods are private and used only by permit.
* | | adds a missing dot [ci skip]Xavier Noria2016-11-111-1/+1
| | |
* | | adds support for arbitrary hashes in strong parametersXavier Noria2016-11-113-0/+86
| | |
* | | Merge pull request #26820 from y-yagi/add_bang_merge_to_parametersRafael França2016-11-103-0/+28
|\ \ \ | |_|/ |/| | add `ActionController::Parameters#merge!`
| * | add `ActionController::Parameters#merge!`yuuji.yaginuma2016-10-183-0/+28
| | | | | | | | | | | | | | | This method has the same behavior as `Hash#merge!`, returns current `ActionController::Parameters`.