aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/controller
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge pull request #27007 from maclover7/jm-fix-26912Rafael Mendonça França2016-11-131-0/+10
|\ | | | | | | Don't error on an empty CONTENT_TYPE
| * Don't error on an empty CONTENT_TYPEJon Moss2016-11-101-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
* | significant speedup of AC::Parameters#permitXavier Noria2016-11-121-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 support for arbitrary hashes in strong parametersXavier Noria2016-11-111-0/+33
| |
* | Merge pull request #26820 from y-yagi/add_bang_merge_to_parametersRafael França2016-11-101-0/+17
|\ \ | |/ |/| add `ActionController::Parameters#merge!`
| * add `ActionController::Parameters#merge!`yuuji.yaginuma2016-10-181-0/+17
| | | | | | | | | | This method has the same behavior as `Hash#merge!`, returns current `ActionController::Parameters`.
* | Show what was the error when assertion has failedAkira Matsuda2016-11-051-1/+1
| | | | | | | | this test case fails with ruby 2.4, so we want to see what's actually happening
* | Add more rubocop rules about whitespacesRafael Mendonça França2016-10-2917-158/+158
| |
* | Remove mona lisa image from the testsRafael Mendonça França2016-10-252-18/+18
| | | | | | | | | | This image has copyright that we are not giving so it is better to use one image that we own the copyright.
* | Soften this test since YAML.dump may produce keys in other orders.Charles Oliver Nutter2016-10-211-6/+4
| |
* | Revert "Undefine assings in IntegrationTest"Rafael Mendonça França2016-10-211-8/+0
|/ | | | | | This reverts commit 5dde413e1d14c42eb87071db20d075a7b962cb01. Reason: The gem defines it so we don't need to remove
* Allow any key in Renderer environment hashSammy Larbi2016-10-151-0/+8
| | | | | | When rendering arbitrary templates, it is helpful to not overwrite `env` keys with nil if they don't match any found in the `RACK_KEY_TRANSLATION` This allows the developer to set the environment to exactly what is needed for rendering.
* ActionController::Parameters#deep_dup (#26567)Pavel Evstigneev2016-10-111-0/+22
| | | | | | | | | | | * ActionController::Parameters#deep_dup * Tests for ActionController::Parameters#deep_dup * Fix test for ActionController::Parameters#deep_dup * More tests for ActionController::Parameters#deep_dup [Rafael Mendonça França + Pavel Evstigneev]
* Remove deprecated support to non-keyword arguments in ↵Rafael Mendonça França2016-10-101-55/+0
| | | | | | `ActionDispatch::IntegrationTest`, `#process`, `#get`, `#post`, `#patch`, `#put`, `#delete`, and `#head`.
* Remove deprecated `ActionDispatch::IntegrationTest#*_via_redirect`.Rafael Mendonça França2016-10-101-89/+0
|
* Remove deprecated `ActionDispatch::IntegrationTest#xml_http_request`Rafael Mendonça França2016-10-101-102/+4
|
* Remove deprecated support to non-keyword arguments #processRafael Mendonça França2016-10-101-111/+0
|
* Remove deprecated `xml_http_request` and `xhr` methodsRafael Mendonça França2016-10-101-15/+0
|
* Remove deprecated methods in ActionController::ParametersRafael Mendonça França2016-10-101-7/+1
|
* Remove deprecated comparing support with `ActionController::Parameters`Rafael Mendonça França2016-10-101-8/+0
|
* Remove deprecated support to :text in renderRafael Mendonça França2016-10-102-200/+0
|
* Remove deprecated support to :nothing in renderRafael Mendonça França2016-10-091-10/+0
|
* Remove deprecated support to `:back` in `redirect_to`Rafael Mendonça França2016-10-091-42/+0
|
* Remove deprecated support for status option in headRafael Mendonça França2016-10-091-21/+0
|
* Remove deprecated methods related to controller filtersRafael Mendonça França2016-10-091-29/+1
| | | | | | | | | | `skip_action_callback`, `skip_filter`, `before_filter`, `prepend_before_filter`, `skip_before_filter`, `append_before_filter`, `around_filter` `prepend_around_filter`, `skip_around_filter`, `append_around_filter`, `after_filter`, `prepend_after_filter`, `skip_after_filter` and `append_after_filter`.
* Silence a warningRafael Mendonça França2016-10-071-1/+3
|
* Undefine assings in IntegrationTestRafael Mendonça França2016-10-071-0/+8
| | | | | assigns assert the state of a controller instance what should not be done in an integration test.
* Merge pull request #26573 from kirs/action-controller-as-formatRafael França2016-09-271-0/+5
|\ | | | | Make :as option also set request format (AC::TestCase)
| * Make :as option also set request format (AC::TestCase)Kir Shatrov2016-09-211-0/+5
| | | | | | | | | | | | | | | | right now you'd have to specify both :as and :format: ``` post :create, params: { foo: "bar" } as: :json, format: :json ```
* | Only search fixture_path for files that can't be found directlyMatthew Draper2016-09-241-0/+7
| | | | | | | | | | | | | | | | | | | | When passed an already-valid file name, prepending the path is likely to create problems. This is particularly relevant for #26384, which adds fixture_path handling to test classes that previously didn't have it: any existing caller must have been manually locating the file, and we don't want to break them.
* | improve error message when include assertions failMichael Grosser2016-09-165-16/+16
| | | | | | | | | | | | assert [1, 3].includes?(2) fails with unhelpful "Asserting failed" message assert_includes [1, 3], 2 fails with "Expected [1, 3] to include 2" which makes it easier to debug and more obvious what went wrong
* | Fix broken comments indentation caused by rubocop auto-correct [ci skip]Ryuta Kamizono2016-09-141-1/+1
| | | | | | | | | | | | All indentation was normalized by rubocop auto-correct at 80e66cc4d90bf8c15d1a5f6e3152e90147f00772. But comments was still kept absolute position. This commit aligns comments with method definitions for consistency.
* | Do not mutate AC::TestRequest::DEFAULT_OPTIONSKir Shatrov2016-09-101-0/+5
|/
* call `.to_h` to avoid using deprecated methodyuuji.yaginuma2016-09-071-0/+7
| | | | | | | | | | | `ActionController::Parameters#merge` call `HashWithIndifferentAccess#merge`. In addition, it calls `HashWithIndifferentAccess#update` from `HashWithIndifferentAccess#merge`, where it is called the `#to_hash` of argument. But `ActionController::Parameters#to_hash` is deprecated, warning message is displayed. To avoid this, modify to convert object to `Hash`. Fixes #26415
* make `fixture_file_upload` work in integration testsyuuji.yaginuma2016-09-041-0/+36
| | | | | | | | | Currently, `fixture_file_upload` does not work in integration test. Because, `TestProcess` module has been include in `Session` class, but `fixture_path` can not get from `Session` class. Modify to include `TestProcess` in `IntegrationTest` class in order to get correct value of `fixture_path`.
* fixes remaining RuboCop issues [Vipul A M, Xavier Noria]Xavier Noria2016-09-012-3/+3
|
* Do not allow to_param on AC::ParametersKir Shatrov2016-08-311-0/+6
|
* Add regression testsJon Moss2016-08-291-0/+14
|
* Remove unneeded FIXME noteRafael Mendonça França2016-08-291-2/+0
| | | | | This is the intended behavior. You should not do more than one request in a controller test.
* Include the content of the flash in the auto-generated etag (#26250)David Heinemeier Hansson2016-08-221-0/+29
| | | Include the content of the flash in the auto-generated etag
* Set the request type if as: is specifiedEverest Munro-Zeisberger2016-08-181-0/+9
| | | | Documentation & testing
* Merge pull request #26094 from igorkasyanchuk/masterRafael França2016-08-161-4/+4
|\ | | | | Show unpermitted parameters as symbols in logs (so they could be copy…
| * Show unpermitted parameters as symbols in logs (so they could be copy-pasted ↵Igor Kasyanchuk2016-08-101-4/+4
| | | | | | | | to the code)
* | Add three new rubocop rulesRafael Mendonça França2016-08-1633-327/+327
| | | | | | | | | | | | | | | | Style/SpaceBeforeBlockBraces Style/SpaceInsideBlockBraces Style/SpaceInsideHashLiteralBraces Fix all violations in the repository.
* | Fix deadlock that can occur when child live thread tries to load a constant ↵Alex Chinn2016-08-151-0/+22
| | | | | | | | after writing to the stream.
* | Merge pull request #26092 from kerrizor/kerrizor/force-param-encodingAaron Patterson2016-08-101-0/+73
|\ \ | | | | | | Allow specifying encoding of parameters by action
| * | Allow specifying encoding of parameters by actionKerri Miller2016-08-091-0/+73
| |/ | | | | | | | | At GitHub we need to handle parameter encodings that are not UTF-8. This patch allows us to specify encodings per parameter per action.
* / Fix broken alignments caused by auto-correct commit 411ccbdRyuta Kamizono2016-08-107-22/+44
|/ | | | Hash syntax auto-correcting breaks alignments. 411ccbdab2608c62aabdb320d52cb02d446bb39c
* code gardening: removes redundant selfsXavier Noria2016-08-082-2/+2
| | | | | | | | | A few have been left for aesthetic reasons, but have made a pass and removed most of them. Note that if the method `foo` returns an array, `foo << 1` is a regular push, nothing to do with assignments, so no self required.
* adds missing comma in assert callXavier Noria2016-08-071-2/+2
|