aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/controller/test_case_test.rb
Commit message (Collapse)AuthorAgeFilesLines
* removed unnecessary semicolonsShuhei Kitagawa2017-10-281-1/+1
|
* Fix RuboCop offensesKoichi ITO2017-08-161-4/+4
| | | | And enable `context_dependent` of Style/BracesAroundHashParameters cop.
* Use frozen string literal in actionpack/Kir Shatrov2017-07-291-0/+2
|
* Revert "Merge pull request #29540 from kirs/rubocop-frozen-string"Matthew Draper2017-07-021-1/+0
| | | | | This reverts commit 3420a14590c0e6915d8b6c242887f74adb4120f9, reversing changes made to afb66a5a598ce4ac74ad84b125a5abf046dcf5aa.
* Enforce frozen string in RubocopKir Shatrov2017-07-011-0/+1
|
* Define path with __dir__bogdanvlviv2017-05-231-3/+3
| | | | | | ".. with __dir__ we can restore order in the Universe." - by @fxn Related to 5b8738c2df003a96f0e490c43559747618d10f5f
* Fix test assertionRafael Mendonça França2017-03-211-1/+1
|
* Revert "Merge pull request #27775 from domcleal/27774-format-reset"Rafael Mendonça França2017-03-211-14/+5
| | | | | | | | | | | | | | This reverts commit c6f9f8c28a720ad4ec7cf3613dddfa451d5968e2, reversing changes made to c309073c7476f50dfb1e796d058580f176101c36. Reason: This is fixing the behavior in the wrong place. Now the request path after the request is nil and there is no way to assert that. Also the test that was added in that PR also fails in 4.2 where the reporter says it was passing. The reason the bahavior changed between Rails 4.2 and Rails 5 is that the format in the path is now respected. The correct way to fix the problem is not doign two requests in the same controller test and use integrations tests. This change caused a regression between Rails 5.0.1 and 5.0.2.
* Set correct "routes" in tests casesbogdanvlviv2017-02-201-3/+3
|
* Add `Style/EmptyLinesAroundMethodBody` in `.rubocop.yml` and remove extra ↵Ryuta Kamizono2017-02-121-1/+0
| | | | empty lines
* Delete PATH_INFO after each controller test requestDominic Cleal2017-01-231-0/+14
| | | | | | | | | | Prevents PATH_INFO from being used to infer the request format in later test requests when no explicit format is given. As the request PATH_INFO may be set before a request, it can't be deleted during pre-request scrubbing. Fixes #27774
* 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.
* 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-291-4/+4
|
* Remove mona lisa image from the testsRafael Mendonça França2016-10-251-16/+16
| | | | | This image has copyright that we are not giving so it is better to use one image that we own the copyright.
* 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
|
* 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.
* Set the request type if as: is specifiedEverest Munro-Zeisberger2016-08-181-0/+9
| | | | Documentation & testing
* Add three new rubocop rulesRafael Mendonça França2016-08-161-20/+20
| | | | | | | | Style/SpaceBeforeBlockBraces Style/SpaceInsideBlockBraces Style/SpaceInsideHashLiteralBraces Fix all violations in the repository.
* remove redundant curlies from hash argumentsXavier Noria2016-08-061-10/+10
|
* applies new string literal convention in actionpack/testXavier Noria2016-08-061-214/+214
| | | | | The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
* Reset rack.input when the environment is scrubbed for the next requestNick Sieger2016-07-271-0/+8
| | | | | | | | | | | | | | | | | Before this change, posted parameters would leak across requests. The included test case failed like so: 1) Failure: TestCaseTest#test_multiple_mixed_method_process_should_scrub_rack_input: --- expected +++ actual @@ -1 +1 @@ -{"bar"=>"an bar", "controller"=>"test_case_test/test", "action"=>"test_params"} +{"foo"=>"an foo", "bar"=>"an bar", "controller"=>"test_case_test/test", "action"=>"test_params"} An argument could be made that this situation isn't encountered often and that one should limit the number of requests per test case, but I still think the parameter leaking is an unexpected side-effect.
* Clean up the test request/response even after an exceptionMatthew Draper2016-06-011-0/+24
|
* Support for unified Integer class in Ruby 2.4+Jeremy Daer2016-05-181-2/+2
| | | | | | | | Ruby 2.4 unifies Fixnum and Bignum into Integer: https://bugs.ruby-lang.org/issues/12005 * Forward compat with new unified Integer class in Ruby 2.4+. * Backward compat with separate Fixnum/Bignum in Ruby 2.2 & 2.3. * Drops needless Fixnum distinction in docs, preferring Integer.
* Deprecate :controller and :action path parametersAndrew White2016-03-011-4/+13
| | | | | | | | Allowing :controller and :action values to be specified via the path in config/routes.rb has been an underlying cause of a number of issues in Rails that have resulted in security releases. In light of this it's better that controllers and actions are explicitly whitelisted rather than trying to blacklist or sanitize 'bad' values.
* Remove unused test controller actionAndrew White2016-02-161-5/+0
|
* Move test for #22828 into it's own testAndrew White2016-02-161-2/+10
| | | | | | The `cookies` hash isn't updated with the value generated by the output from `to_header` so it wasn't testing anything. Rendering the cookie value in the controller makes sure that the escaping is actually working.
* Escape cookie's key and value in ActionController::TestCaseTakayuki Matsubara2015-12-301-0/+7
| | | | | Get an incorrect cookie value in controller action method if cookie value contains an escapable string.
* Prevent ActionController::Parameters from being passed to url_for directlyJean Boussier2015-12-151-1/+1
|
* switch to JSON.dump to avoid infinite recursionAaron Patterson2015-10-291-1/+1
|
* Write the cookie jar it was not committed in TestCaseRafael Mendonça França2015-10-281-1/+1
| | | | | | | | | | | | | | | | | | | For ActionController::Base we write the cookies in a middleware if it was not yet committed no matter if the response was committed or not. [1] For ActionController::Live we write the cookies before the response is committed. [2] We already mimic ActionController::Live in ActionController::TestCase but we don't mimic the ActionController::Base behavior because we were checking if the response was committed before writing the cookies. Now we are matching the behavior of the middleware and writing the cookies if it was not written before. [1]: https://github.com/rails/rails/blob/80c6b901d4d87cee610ab0a438ff6e3c6bf118d1/actionpack/lib/action_dispatch/middleware/cookies.rb#L599-L604 [2]: https://github.com/rails/rails/blob/80c6b901d4d87cee610ab0a438ff6e3c6bf118d1/actionpack/lib/action_controller/metal/live.rb#L218-L223
* don't access the response object before a request was madeAaron Patterson2015-09-231-1/+10
| | | | | | | It doesn't make sense to access the response object before a request is made (how was a response object created without making a request?) This commit splits testing default headers and default header mutation tests and removes access to the pre-request response object.
* Handle Content-Types that are not :json, :xml, or :url_encoded_formeileencodes2015-09-091-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In c546a2b this was changed to mimic how the browser behaves in a real situation but left out types that were registered. When this was changed it didn't take `text/plain` or `text/html` content types into account. This is a problem if you're manipulating the `Content-Type` headers in your controller tests, and expect a certain result. The reason I changed this to use `to_sym` is because if the `Content-Type` is not registered then the symbol will not exist. If it's one of the special types we handle that specifically (:json, :xml, or :url_encoded_form). If it's any registered type we handle it by setting the `path_parameters` and then the `request_parameters`. If the `to_sym` returns nil an error will be thrown. If the controller test sets a `Content-Type` on the request that `Content-Type` should remain in the header and pass along the filename. For example: If a test sets a content type on a post ``` @request.headers['CONTENT_TYPE'] = 'text/plain' post :create, params: { name: 'foo.txt' } ``` Then `foo.txt` should be in the `request_parameters` and params related to the path should be in the `path_parameters` and the `Content-Type` header should match the one set in the `@request`. When c546a2b was committed `text/plain` and `text/html` types were throwing a "Unknown Content-Type" error which is misleading and incorrect. Note: this does not affect how this is handled in the browser, just how the controller tests handle setting `Content-Type`.
* remove more direct `env` mutationsAaron Patterson2015-08-241-1/+1
|
* Get rid of mocha tests - part 1Marcin Olichwirowicz2015-08-241-8/+10
|
* Stop using deprecated `render :text` in testPrem Sichanugrist2015-07-171-26/+26
| | | | | | | | | This will silence deprecation warnings. Most of the test can be changed from `render :text` to render `:plain` or `render :body` right away. However, there are some tests that needed to be fixed by hand as they actually assert the default Content-Type returned from `render :body`.
* Make AC::Parameters not inherited from HashPrem Sichanugrist2015-07-151-1/+1
| | | | | | | | This is another take at #14384 as we decided to wait until `master` is targeting Rails 5.0. This commit is implementation-complete, as it guarantees that all the public methods on the hash-inherited Parameters are still working (based on test case). We can decide to follow-up later if we want to remove some methods out from Parameters.
* use `Rack::Test::UploadedFile` when uploading filesAaron Patterson2015-07-091-2/+2
| | | | | We should use rack-test's upload file objects on the test side so that we will be able to correctly generate mime blob posts in the future
* set parameters as a query stringAaron Patterson2015-07-091-1/+1
| | | | | | We should convert request parameters to a query string, then let the request object parse that query string. This should give us results that are more similar to the real-world
* use JSON to communicate between the controller and the testsAaron Patterson2015-07-091-12/+12
|
* build and assign parameters rather than rely on mutationsAaron Patterson2015-07-081-3/+3
| | | | | We should assign parameters to the request object rather than mutate the hash that is returned by `query_parameters` or `request_parameters`
* request objects are no longer recycledAaron Patterson2015-07-081-6/+0
| | | | | | Instead of trying to manually clear out a request object, lets just allocate a new one. The rack ENV is reused and cleaned (still), but the request object is not.
* let the superclass build the request and responseAaron Patterson2015-07-081-5/+2
| | | | | We should leverage the request / response objects that the superclass has already allocated for us.
* Remove `assigns` and `assert_template`.Guo Xiang Tan2015-05-301-41/+0
|
* Deprecate `:nothing` option for render methodMehmet Emin İNAÇ2015-05-281-3/+3
| | | | `head` method works similar to `render` method with `:nothing` option
* Merge pull request #19808 from byroot/action-parameterRafael Mendonça França2015-05-271-0/+20
|\ | | | | [PoC] Stop shadowing parameters named `action`
| * Allow to parameters named `action` or `controller` from AC::TestCase helpersJean Boussier2015-04-181-0/+20
| |