aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Fix state being carried over from previous transactionRoque Pinel2015-07-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This clears the transaction record state when the transaction finishes with a `:committed` status. Considering the following example where `name` is a required attribute. Before we had `new_record?` returning `true` for a persisted record: ```ruby author = Author.create! name: 'foo' author.name = nil author.save # => false author.new_record? # => true ```
* | | Fix exception overwritten for parameters fetch methodRoque Pinel2015-07-181-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | When executing an `ActionController::Parameters#fetch` with a block that raises a `KeyError` the raised `KeyError` will be rescued and converted to an `ActionController::ParameterMissing` exception, covering up the original exception. [Jonas Schubert Erlandsson & Roque Pinel]
* | | Stop using deprecated `render :text` in testPrem Sichanugrist2015-07-1732-215/+215
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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`.
* | | Add deprecation warning for `render :text`Prem Sichanugrist2015-07-171-11/+42
| | | | | | | | | | | | | | | | | | We've started on discouraging the usage of `render :text` in #12374. This is a follow-up commit to make sure that we print out the deprecation warning.
* | | Skip a few failing tests on JRuby with the attached ticketsRobin Dupret2015-07-173-0/+8
| | |
* | | Make AC::Parameters not inherited from HashPrem Sichanugrist2015-07-156-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge pull request #20866 from jdantonio/countdown-latchAaron Patterson2015-07-142-21/+21
|\ \ \ | | | | | | | | Replace `ActiveSupport::Concurrency::Latch` with `Concurrent::CountDownLatch` from concurrent-ruby.
| * | | Replaced `ActiveSupport::Concurrency::Latch` with concurrent-ruby.Jerry D'Antonio2015-07-132-21/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The concurrent-ruby gem is a toolset containing many concurrency utilities. Many of these utilities include runtime-specific optimizations when possible. Rather than clutter the Rails codebase with concurrency utilities separate from the core task, such tools can be superseded by similar tools in the more specialized gem. This commit replaces `ActiveSupport::Concurrency::Latch` with `Concurrent::CountDownLatch`, which is functionally equivalent.
* | | | Merge pull request #20877 from sikachu/rename-ac-test_responseRafael Mendonça França2015-07-141-1/+1
|\ \ \ \ | | | | | | | | | | Change AC::TestResponse to AD::TestResponse
| * | | | Change AC::TestResponse to AD::TestResponsePrem Sichanugrist2015-07-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | ActionController::TestResponse was removed in d9fe10c and caused a test failure on Action View as its test case still refers to it.
* | | | | only call methods that are on the superclassAaron Patterson2015-07-143-7/+6
|/ / / / | | | | | | | | | | | | | | | | | | | | We want to treat the response object as if it's a real response object (not a test object), so we should only call methods that are on the superclass.
* | | | use a lookup table for `assert_response`Aaron Patterson2015-07-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We shouldn't depend on specific methods imlemented in the TestResponse subclass because the response could actually be a real response object. In the future, we should either push the aliased predicate methods in TestResponse up to the real response object, or remove them
* | | | only have one TestResponse classAaron Patterson2015-07-131-1/+1
|/ / /
* | | 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.
* | | pass the variant as a parameter to more reflect real world appsAaron Patterson2015-07-081-3/+3
| | |
* | | add a new constructor for allocating test requestsAaron Patterson2015-07-081-9/+9
| | |
* | | make `env` a required parameterAaron Patterson2015-07-081-6/+6
| | |
* | | remove call to build_requestAaron Patterson2015-07-081-1/+0
| | |
* | | let the superclass build the request and responseAaron Patterson2015-07-0810-47/+13
| | | | | | | | | | | | | | | We should leverage the request / response objects that the superclass has already allocated for us.
* | | pass variants in rather than mutating the request.Aaron Patterson2015-07-071-48/+31
| | | | | | | | | | | | | | | | | | Variants are typically set in the controller based on some attribute of the request that the browser sent. We should make our tests more in line with reality by doing the same and not mutating the request object.
* | | pass cookies from the jar in the HTTP_COOKIE headereileencodes2015-07-071-2/+0
| | | | | | | | | | | | | | | we should be pushing the cookies in via headers rather than maintaining some object and "recycling" it.
* | | Merge pull request #13897 from gmalette/nested-parameter-filtering-2Arthur Nogueira Neves2015-07-061-0/+1
|\ \ \ | | | | | | | | Allow filtering params based on parent keys
| * | | Allow filtering params based on parent keysGuillaume Malette2015-06-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the possibility to only filter parameters based on their full path instead of relying on the immediate key. config.filter_parameters += ['credit_card.code'] { 'credit_card' => { 'code' => '[FILTERED]' }, 'source' => { 'code' => '<%= puts 5 %>' } }
* | | | Fix the random caching test failure.Kasper Timm Hansen2015-07-051-0/+1
| | | |
* | | | Improve error messages in cookies_testeileencodes2015-06-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using `assert_predicate` and `assert_match` instead of just `assert` is preferrable because better error messages are output. In the case of `assert response.cookies.empty?` the error message was `Failed assertion, no message given.` but now with `assert_predicate` it will be `Expected {"user_name"=>"david"} to be empty?.` For `assert_match(/user_name=david/, response.headers["Set-Cookie"])` as well, the message returned was unhelpful - `Failed assertion, no message given.` but now will tell what was expected and what was returned with `Expected /user_name=david/ to match "user_name=nope; path=/".`
* | | | Merge pull request #20276 from davetron5000/revert-head-on-no-templateKasper Timm Hansen2015-06-271-0/+21
|\ \ \ \ | | | | | | | | | | Allow default_render to take a block to customize behavior when there's no template
| * | | | Override default_render's behavior with a blockDave Copeland2015-06-201-0/+21
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 0de4a23 the behavior when there is a missing template was changed to not raise an error, but instead head :no_content. This is a breaking change and some gems rely on this happening. To allow gems and other code to work around this, allow `default_render` to take a block which, if provided, will execute the contents of that block instead of doing the `head :no_content`.
* | | | Merge pull request #19431 from hmarr/head-routingRafael Mendonça França2015-06-221-3/+2
|\ \ \ \ | |/ / / |/| | | Respect routing precedence for HEAD requests
| * | | Respect routing precedence for HEAD requestsHarry Marr2015-03-201-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes the issue described in #18764 - prevents Rack middleware from swallowing up HEAD requests that should have been matched by a higher-precedence `get` route, but still allows Rack middleware to respond to HEAD requests.
* | | | Revert "Merge pull request #20584 from arthurnn/fix_url"Arthur Neves2015-06-171-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0b3397872582f2cf1bc6960960a6393f477c55e6, reversing changes made to 56d52e3749180e6c1dcf7166adbad967470aa78b. As pointed out on the PR, this will hide development mistakes too, which is not ideal.
* | | | Catch InvalidURIError on bad paths on redirect.Arthur Neves2015-06-161-0/+7
| |/ / |/| | | | | | | | | | | Handle URI::InvalidURIError errors on the redirect route method, so it wont raise a 500 if a bad path is given.
* | | remove `header=` on the response object.Aaron Patterson2015-06-151-0/+2
| | | | | | | | | | | | | | | | | | People should be free to mutate the header object, but not to set a new header object. That header object may be specific to the webserver, and we need to hide it's internals.
* | | Deprecate passing hash as first parameter into ActionController::HeadMehmet Emin İNAÇ2015-06-153-10/+31
| | |
* | | Fix flakyness.Kasper Timm Hansen2015-06-151-0/+1
| | | | | | | | | | | | Brought on by my own stupidity :)
* | | ActionDispatch::SSL should keep original header's behaviorFumiaki MATSUSHIMA2015-06-141-0/+11
| | | | | | | | | | | | | | | | | | `ActionDispatch::SSL` changes headers to `Hash`. So some headers will be broken if there are some middlewares on ActionDispatch::SSL and if it uses `Rack::Utils::HeaderHash`.
* | | Return 204 if render is not called in API controllersJorge Bejar2015-06-111-0/+15
| | |
* | | Add test coverage for implicit render in empty actionsJorge Bejar2015-06-111-0/+14
| | |
* | | Include ParamsWrapper in AC::APIJorge Bejar2015-06-111-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | ParamsWrapper was initially removed from API controllers according to the following discusision: https://github.com/rails-api/rails-api/issues/33 However, we're including it again so Rails API devs can decide whether to enable or disable it.
* | | Rename test methods in api conditional get controller testsJorge Bejar2015-06-111-2/+2
| | |
* | | Routes resources avoid :new and :edit endpoints if api_only is enabledJorge Bejar2015-06-111-0/+75
| | |
* | | Remove extra whitespacesSantiago Pastorino2015-06-111-1/+1
| | |
* | | Use new hash syntaxSantiago Pastorino2015-06-112-7/+7
| | |
* | | Remove Unneeded ApiPublicExceptions middleware, PublicExceptions already ↵Santiago Pastorino2015-06-111-37/+0
| | | | | | | | | | | | does the work
* | | Use nex hash syntax on testsSantiago Pastorino2015-06-111-5/+5
| | |
* | | Add ApiPublicException middlewareSantiago Pastorino2015-06-111-2/+39
| | |
* | | Move Model test class inside RenderersApiController namespaceSantiago Pastorino2015-06-111-8/+8
| | |