aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Merge pull request #22935 from cllns/add-status-name-to-outputRafael França2016-01-122-14/+63
|\ \ \ \ | | | | | | | | | | Add HTTP status name to output of tests
| * | | | Add both HTTP Response Code and Type to assertion messagesSean Collins2016-01-122-14/+63
| | | | | | | | | | | | | | | | | | | | | | | | | Also, refactor logic to convert between symbol and response code, via the AssertionResponse class
* | | | | Merge pull request #23035 from jkowens/fix-null-byteRafael França2016-01-121-1/+5
|\ \ \ \ \ | |/ / / / |/| | | | Prevent static middleware from attempting to serve a request with a null byte
| * | | | Prevent attempt to serve a request with a null byteJordan Owens2016-01-121-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | File paths cannot contain null byte characters and methods that do path operations such as Rack::Utils#clean_path_info will raise unwanted errors.
* | | | | Commit before freezing the headersMatthew Draper2016-01-122-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | This shouldn't generally come up: under a standard flow, we don't start sending until after the commit. But application code always finds a way.
* | | | | Better error message when running `rake routes` with CONTROLLER arg:Edouard CHIN2016-01-071-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - `CONTROLLER` argument can now be supplied in different ways (Rails::WelcomeController, Rails::Welcome, rails/welcome) - If `CONTROLLER` argument was supplied but it does not exist, will warn the user that this controller does not exist - If `CONTROLLER` argument was supplied and no routes could be found matching this filter, will warn the user that no routes were found matching the supplied filter - If no routes were defined in the config/routes.rb file, will warn the user with the original message
* | | | | Merge pull request #20109 from prathamesh-sonpatki/keep-only-one-rootKasper Timm Hansen2016-01-071-21/+21
|\ \ \ \ \ | | | | | | | | | | | | Remove original root method from Base module and kept overridden implementation in Resources module.
| * | | | | Kept overridden root method and removed original methodPrathamesh Sonpatki2016-01-071-21/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - The root method is defined and documented in Base module and decorated in Resources module. - The documentation in Base module actually talks about method signature of decorated method from Resources module. - Argument handling was moved to decorated method in https://github.com/rails/rails/commit/977455cc2efb94f40b4c0d46d1842be198ed7c4c to handle options such as :as with directly passed path parameter. - To avoid the confusion, removed original root method from Base module and only kept overridden version in Resources module. - References - https://github.com/rails/rails/pull/12208 & https://github.com/rails/rails/pull/12208#issuecomment-24350897.
* | | | | | Allow AC::Parameters as an argument to url_helpersPrathamesh Sonpatki2016-01-071-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Earlier only Hash was allowed as params argument to url_helpers. - Now ActionController::Parameters instances will also be allowed. - If the params are not secured then it will raise an ArgumentError to indicate that constructing URLs with non-secure params is not recommended. - Fixes #22832.
* | | | | | Replace x.times.map{} with Array.new(x){}Viktar Basharymau2016-01-021-1/+1
| |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The former is slightly more readable, performant and has fewer method calls. ```ruby Benchmark.ips do |x| x.report('times.map') { 5.times.map{} } x.report('Array.new') { Array.new(5){} } x.compare! end __END__ Calculating ------------------------------------- times.map 21.188k i/100ms Array.new 30.449k i/100ms ------------------------------------------------- times.map 311.613k (± 3.5%) i/s - 1.568M Array.new 590.374k (± 1.2%) i/s - 2.954M Comparison: Array.new: 590373.6 i/s times.map: 311612.8 i/s - 1.89x slower ```
* | | | | Merge pull request #22826 from timrogers/actiondispatch-ssl-configRafael França2015-12-311-8/+12
|\ \ \ \ \ | |_|_|/ / |/| | | | Configurable redirect and secure cookies for ActionDispatch::SSL
| * | | | Flexible configuration for ActionDispatch::SSLTim Rogers2015-12-291-8/+12
| | |_|/ | |/| |
* | | | Format from Accept headers have higher precedence than path extension formatJorge Bejar2015-12-291-2/+2
| | | |
* | | | Rely on default Mime format when MimeNegotiation#format_from_path_extension ↵Jorge Bejar2015-12-291-3/+3
|/ / / | | | | | | | | | | | | | | | is not a valid type Closes #22747
* | | Improve RDoc documentation of ActionDispatch::SSLTim Rogers2015-12-241-12/+14
| | |
* | | Add #== back to ActionDispatch::MiddlewareStack::MiddlewareJon Moss2015-12-211-0/+9
| | | | | | | | | | | | | | | This was causing bug #22738 to occur. Also added extra tests to make sure everything is A-OK.
* | | Remember the parameter hash we returnMatthew Draper2015-12-221-1/+1
| |/ |/| | | | | Callers expect to be able to manipulate it.
* | Merge pull request #20797 from byroot/prevent-url-for-ac-parametersRafael França2015-12-181-1/+4
|\ \ | | | | | | Prevent ActionController::Parameters in url_for
| * | Prevent ActionController::Parameters from being passed to url_for directlyJean Boussier2015-12-151-1/+4
| | |
* | | Refer to rails command instead of rake in a bunch of placesDavid Heinemeier Hansson2015-12-182-2/+2
| | | | | | | | | | | | Still more to do. Please assist!
* | | Merge pull request #22564 from maximeg/legit_name_errorsSean Griffin2015-12-141-2/+4
|\ \ \ | |/ / |/| | Don't catch all NameError to reraise as ActionController::RoutingError
| * | Don't catch all NameError to reraise as ActionController::RoutingError #22368Maxime Garcia2015-12-121-2/+4
| | |
* | | Remove ActionController::TestCase from documentationeileencodes2015-12-121-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Rails 5.1 `ActionController::TestCase` will be moved out of Rails into it's own gem. Please use `ActionDispatch::IntegrationTest` going foward. Because this will be moved to a gem I used `# :stopdoc:` instead of deleting the documentation. This will remove it from the Rails documentation but still leave the method documented for when we move it to a gem. Guides have been updated to use the routing structure used in Integration and all test examples have been updated to inherit from `ActionDispatch::IntegrationTest` instead of `ActionController::TestCase. Fixes #22496
* | Show redirect response code in assert_response messagesJon Atack2015-12-111-10/+8
| | | | | | | | | | | | | | | | | | | | | | | | Follow-up to PR #19977, which helpfully added the redirection path to the error message of assert_response if response is a redirection, but which removed the response code, obscuring the type of redirect. This PR: - brings back the response code in the error message, - updates the tests so the new messages can be tested, - and adds test cases for the change.
* | Merge pull request #22514 from ↵Rafael França2015-12-111-1/+1
|\ \ | | | | | | | | | | | | prathamesh-sonpatki/use-assert-over-assert-predicate Use assert over assert_predicate in assert_response
| * | Use assert over assert_predicate in assert_responsePrathamesh Sonpatki2015-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - `assert_predicate` appends its own error message at the end of message generated by `assert_response` and because of that the error message displays the whole `response` object. - For eg. Expected response to be a <success>, but was a redirect to <http://test.host/posts>. Expected #<ActionDispatch::TestResponse:0x007fb1cc1cf6f8....(lambda)>}>> to be successful?. - Complete message can be found here - https://gist.github.com/prathamesh-sonpatki/055afb74b66108e71ded#file-gistfile1-txt-L19. - After this change the message from `assert_predicate` won't be displayed and only message generated by `assert_response` will be shown as follows: Expected response to be a <success>, but was a redirect to <http://test.host/posts>
* | | Avoid calling AD::MimeNegotiation#format_from_path_extension method twiceJorge Bejar2015-12-091-2/+2
| | |
* | | Avoid warning because of the mime typeJorge Bejar2015-12-091-1/+1
| | |
* | | Do not add format key to request_paramsJorge Bejar2015-12-092-17/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | I did this change but it is affecting how the request params end up after being processed by the router. To be in the safe side, I just take the format from the extension in the URL when is not present in those params and it's being used only for the `Request#formats` method
* | | DebugException initialize with a response_format valueJorge Bejar2015-12-091-6/+7
| | |
* | | Better name for method in DebugExceptions middlewareJorge Bejar2015-12-091-2/+2
| | |
* | | Improve regexp in AC::Http::ParametersJorge Bejar2015-12-091-1/+1
| | |
* | | Minor cleanup in AD::DebugExceptionsJorge Bejar2015-12-091-6/+9
| | |
* | | Remove unneeded args in AD::DebugExceptionsJorge Bejar2015-12-091-1/+0
| | |
* | | New hash syntax in AD::DebugExceptionsJorge Bejar2015-12-091-4/+4
| | |
* | | Fix some edge cases in AD::DebugExceptions in rails api appsJorge Bejar2015-12-091-41/+64
| | |
* | | Response when error should be formatted properly in Rails API if local requestJorge Bejar2015-12-092-5/+18
| | |
* | | Use URL path extension as format in bad params exception handlingJorge Bejar2015-12-081-2/+17
| | |
* | | Only commit the cookie jar if it hasn't been committedeileencodes2015-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | | We don't want to commit the cookie jar more than once because then we will be attempting to modify a frozen hash. Fixes Railties test failure caused by 492b134.
* | | Stop violating law of demeter in response cookie_jareileencodes2015-12-063-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a new method to request and response so we don't need to violate the law of demeter. We are changing `Request` and `Response` so that they always have a `cookie_jar` This is a continuation on work to combine integration and controller test code bases in Rails.
* | | Push `before_sending` to super classeileencodes2015-12-063-0/+7
|/ / | | | | | | | | | | | | | | | | | | | | | | We want to get rid of the `Live::Response` so we are consolidating methods from `Live::Response` and `Response` by merging them together. This adds an `#empty` method to the request so we don't need to hard-code the empty array each time we call an empty `ActionDispatch::Request`. The work here is a continuation on combining controller and integration test code bases into one.
* | Merge pull request #19977 from ↵Arthur Nogueira Neves2015-12-051-0/+15
|\ \ | | | | | | | | | | | | prathamesh-sonpatki/mention-redirect-path-in-assert-response Add redirection path in the error message of assert_response if response is :redirect
| * | Add redirection path in the error message of assert_response if response is ↵Prathamesh Sonpatki2015-12-041-0/+15
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | :redirect - If the assert_response is checking for any non-redirect response like :success and actual response is :redirect then, the error message displayed was - Expected response to be a <success>, but was <302> - This commit adds the redirect path to the error message of assert_response if the response is :redirect. So above message is changed to - Expected response to be a <success>, but was a redirect to <http://test.host/posts/lol>
* / Shrink a couple of deprecation warnings to one-linersMatthew Draper2015-12-061-18/+8
|/ | | | | The previous spelling seemed a bit too generous with the whitespace, and looked out of place when amongst others.
* Merge pull request #22373 from yui-knk/ad_constraintsYves Senn2015-11-301-1/+1
|\ | | | | Add `Routing` namespace to point appropriate constant
| * Add `Routing` namespace to point appropriate constantyui-knk2015-11-221-1/+1
| | | | | | | | Make it clear we use `ActionDispatch::Routing::Endpoint`
* | Merge pull request #22371 from yui-knk/better_mount_errorArthur Nogueira Neves2015-11-281-6/+9
|\ \ | | | | | | Brush up errors of `ActionDispatch::Routing::Mapper#mount`
| * | Brush up errors of `ActionDispatch::Routing::Mapper#mount`yui-knk2015-11-281-6/+9
| |/ | | | | | | | | | | * Integrate to raise `ArgumentError` * Detailed error message when `path` is not defined * Add a test case, invalid rack app is passed
* | Merge pull request #21241 from pdg137/masterArthur Nogueira Neves2015-11-261-1/+2
|\ \ | | | | | | In url_for, never append ? when the query string is empty anyway.
| * | In url_for, never append ? when the query string is empty anyway.Paul Grayson2015-10-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It used to behave like this: url_for(controller: 'x', action: 'y', q: {}) # -> "/x/y?" We previously avoided empty query strings in most cases by removing nil values, then checking whether params was empty. But as you can see above, even non-empty params can yield an empty query string. So I changed the code to just directly check whether the query string ended up empty. (To make everything more consistent, the "removing nil values" functionality should probably move to ActionPack's Hash#to_query, the place where empty hashes and arrays get removed. However, this would change a lot more behavior.)