aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/controller/test_case_test.rb
Commit message (Collapse)AuthorAgeFilesLines
* 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
| |
* | Issue#17703 Test case for tempfile attributeSiva Gollapalli2015-04-161-0/+5
|/ | | | | | | | | | + To avoid regression I am adding this test case on action pack Changed to assert from assert_equal + Added msg to assertion Modified msg
* Fix default headers in test responsesJeremy Kemper2015-02-251-0/+46
| | | | | | | Fixes regression in #18423. Merge default headers for new responses, but don't merge when creating a response from the last session request. hat tip @senny :heart:
* Merge pull request #18771 from kirs/deprecate-xhrRafael Mendonça França2015-02-051-3/+18
|\ | | | | Migrating xhr methods to keyword arguments syntax
| * Migrating xhr methods to keyword arguments syntaxKir Shatrov2015-02-011-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | in `ActionController::TestCase` and `ActionDispatch::Integration` Old syntax: `xhr :get, :create, params: { id: 1 }` New syntax example: `get :create, params: { id: 1 }, xhr: true`
* | Merge pull request #18721 from sj26/pre-discard-flashAaron Patterson2015-02-011-0/+12
|\ \ | |/ |/| Pre-discard flash messages
| * Fix flash remaining after last flash deletedSamuel Cochran2015-01-291-0/+12
| | | | | | | | | | | | | | Inside a controller functional test after the last flash is deleted it still persists the flash because to_session_value is nil. We should delete it from the session when the serialized version is nil, same as the flash middleware.
* | Consistent usage of spaces in hashes across our codebaseRafael Mendonça França2015-01-291-14/+18
| |
* | Switch to kwargs in ActionController::TestCase and ActionDispatch::IntegrationKir Shatrov2015-01-291-87/+279
|/ | | | | | | | Non-kwargs requests are deprecated now. Guides are updated as well. `post url, nil, nil, { a: 'b' }` doesn't make sense. `post url, params: { y: x }, session: { a: 'b' }` would be an explicit way to do the same
* Remove deprecated option `use_route` in controller testsRafael Mendonça França2015-01-041-25/+0
|
* Deprecate `use_route` in controller testsGodfrey Chan2014-11-231-2/+2
| | | | Reference #17453