aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/dispatch
Commit message (Collapse)AuthorAgeFilesLines
* Use released rackGodfrey Chan2014-12-191-1/+1
| | | | `rack.version` was bumped in https://github.com/rack/rack/commit/28e77c710ac2ddb35c436d78d72e28f28f964446
* allow reseting of request variantsTimo Schilling2014-12-161-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | The current implementation of `variants=` don't allow a resetting to nil, wich is the default value. This results in the following code smell: ```ruby case request.user_agent when /iPhone/ request.variants = :phone when /iPad/ request.variants = :ipad end ``` With the ability to reset variants to nil, it could be: ```ruby request.variants = case request.user_agent when /iPhone/ :phone when /iPad/ :ipad end ```
* Don't convert empty arrays to nils when deep munging paramsChris Sinjakli2014-12-152-4/+4
|
* Merge pull request #18022 from agrobbin/url-helpers-optional-scopesSantiago Pastorino2014-12-131-0/+12
|\ | | | | Allow URL helpers to work with optional scopes
| * allow URL helpers to work with optional scopesAlex Robbin2014-12-131-0/+12
| |
* | ParameterFilter shouldn't try to dup symbol keysNate Berkopec2014-12-131-2/+2
|/
* Fix handling of positional url helper arguments when format is falseTatiana Soukiassian2014-12-131-0/+28
| | | | | | | There is no need to subtract one from the path_params size when there is no format parameter because it is not present in the path_params array. Fixes #17819.
* Mounted Rack apps should have default named routes based on app nameT.J. Schuck2014-12-061-11/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a regression in 4.2.0 from 4.1.8. https://github.com/rails/rails/pull/17823 fixed a similar regression regarding _explicitly_ named routes for a mounted Rack app, but there was another regression for the default value. With a route like: Rails.application.routes.draw do mount Mountable::Web, at: 'some_route' end The "Prefix" column of rake routes gives the following: - 4.1.8: mountable_web - 4.2.0.beta1-4: [nothing] - 4.2.0.rc1: [nothing] - 4.2.0.rc2: some_route <- regression This fixes the default to go back to being based off the name of the class like the docs specify: https://github.com/rails/rails/blob/785d04e3109f69d0b9b9f4732179592f0ef04e52/actionpack/lib/action_dispatch/routing/mapper.rb#L558-L560 Explicitly named routes still work correctly per https://github.com/rails/rails/pull/17823: Rails.application.routes.draw do mount Mountable::Web, at: 'some_route', as: 'named' end - 4.1.8: named - 4.2.0.beta1-4: [nothing] - 4.2.0.rc1: [nothing] - 4.2.0.rc2: named
* Merge pull request #17792 from rockrep/masterRafael Mendonça França2014-12-041-0/+10
|\ | | | | | | allow 'all' for :domain option in addition to :all
| * allow 'all' for :domain option in addition to :allrockrep2014-11-261-0/+10
| |
* | Remove "rescue" clause around "require 'openssl'"claudiob2014-12-031-10/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some `require 'openssl'` statements were surrounded by `rescue` blocks to deal with Ruby versions that did not support `OpenSSL::Digest::SHA1` or `OpenSSL::PKCS5`. [As @jeremy explains](https://github.com/rails/rails/commit/a6a0904fcb12b876469c48b1c885aadafe9188cf#commitcomment-8826666) in the original commit: > If jruby didn't have jruby-openssl gem, the require wouldn't work. Not sure whether either of these are still relevant today. According to the [release notes for JRuby 1.7.13](http://www.jruby.org/2014/06/24/jruby-1-7-13.html): > jruby-openssl 0.9.5 bundled which means the above `rescue` block is not needed anymore. All the Ruby versions supported by the current version of Rails provide those OpenSSL libraries, so Travis CI should also be happy by removing the `rescue` blocks. --- Just to confirm, with JRuby: $ ruby --version #=> jruby 1.7.16.1 (1.9.3p392) 2014-10-28 4e93f31 on Java HotSpot(TM) 64-Bit Server VM 1.8.0_20-b26 +jit [darwin-x86_64] $ irb irb(main):001:0> require 'openssl' #=> true irb(main):002:0> OpenSSL::Digest::SHA1 #=> OpenSSL::Digest::SHA1 irb(main):003:0> OpenSSL::PKCS5 # => OpenSSL::PKCS5 And with Ruby 2.1: $ ruby --version #=> ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0] $ irb irb(main):001:0> require 'openssl' #=> true irb(main):002:0> OpenSSL::Digest::SHA1 #=> OpenSSL::Digest::SHA1 irb(main):003:0> OpenSSL::PKCS5 #=> OpenSSL::PKCS5
* | Fix "nonexistent" typo in testsMelissa Xie2014-12-021-2/+2
| |
* | Refactor debug viewKir Shatrov2014-12-021-0/+23
| | | | | | Avoid logic in ERB and use helpers
* | Merge pull request #17823 from byroot/fix-mount-rack-apps-with-asSean Griffin2014-11-291-1/+1
|\ \ | | | | | | Pure rack apps can be mounted with a name
| * | Pure rack apps can be mounted with a nameJean Boussier2014-11-291-1/+1
| | | | | | | | | | | | See https://github.com/rails/rails/commit/9b15828b5c347395b42066a588c88e5eb4e72279#commitcomment-8764492
* | | Pass symbol as an argument instead of a blockErik Michaels-Ober2014-11-291-2/+2
|/ /
* | Merge branch 'deprecate-string-options-in-url-helpers'Sean Griffin2014-11-241-0/+20
|\ \
| * | Deprecate string options in URL helpersMelanie Gilman2014-11-241-0/+20
| | | | | | | | | | | | | | | | | | Fixes https://github.com/rails/rails/issues/16958 [Byron Bischoff & Melanie Gilman]
* | | Show source view and backtrace on missing template errorsGenadi Samokovarov2014-11-241-0/+27
|/ / | | | | | | | | | | | | | | | | This will help you debug missing template errors, especially if they come from a programmatic template selection. Thanks to @dhh for suggesting that. As a bonus, also show request and response info on the routing error page for consistency.
* | Merge pull request #17642 from tgxworld/fix_template_assertion_on_assignsRafael Mendonça França2014-11-171-1/+13
|\ \ | | | | | | Fix for assigns(:..) resetting template assertions
| * | Fix for assigns(:..) resetting template assertionsCalvin Correli2014-11-171-1/+13
| | | | | | | | | | | | When calling assigns(:...) or cookies(:...), template assertions would be reset, which they obviously shouldn't be.
* | | Rename #source_extract to #source_extracts in ExceptionWrapperGenadi Samokovarov2014-11-161-2/+2
| | | | | | | | | | | | | | | It returns multiple source extracts since 1ed264bc. Also cleaned its result structure, as we no longer need the file in a code extract.
* | | Don't let #{application,framework,full}_trace be nilGenadi Samokovarov2014-11-161-0/+31
| | | | | | | | | | | | | | | | | | Those three can be nil when exception backtrace is nil. This happens and that forced a couple of nil guards in the code. I'm proposing to make those always return an array, even on nil backtrace.
* | | Add basic tests for ActionDispatch::ExceptionWrapperGenadi Samokovarov2014-11-131-0/+66
|/ /
* | Merge branch 'master-sec'Aaron Patterson2014-10-301-2/+20
|\ \ | | | | | | | | | | | | * master-sec: FileHandler should not be called for files outside the root
| * | FileHandler should not be called for files outside the rootAaron Patterson2014-10-101-2/+20
| | | | | | | | | | | | | | | FileHandler#matches? should return false for files that are outside the "root" path.
* | | Deprecate the `only_path` option on `*_path` helpers.Godfrey Chan2014-10-281-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In cases where this option is set to `true`, the option is redundant and can be safely removed; otherwise, the corresponding `*_url` helper should be used instead. Fixes #17294. See also #17363. [Dan Olson, Godfrey Chan]
* | | Show the user’s application in the source window and select the correct ↵Byron Bischoff2014-10-231-1/+41
| | | | | | | | | | | | trace list, closes #17312
* | | fix small typo in routing testAccessd2014-10-211-1/+1
|/ /
* | Request#check_method no longer breaks when :en is not available localeStefan Henzen2014-10-091-0/+16
| | | | | | | | | | | | | | | | Request#check_method would use to_sentence(locale: :en), which breaks when I18n.available_locales does not include :en and I18n.enforce_available_locales is true (default). Inlined to_sentence functionality to solve this.
* | Use Hash#each_key instead of Hash#keys.eachErik Michaels-Ober2014-09-291-1/+1
| | | | | | | | | | | | Hash#keys.each allocates an array of keys; Hash#each_key iterates through the keys without allocating a new array. This is the reason why Hash#each_key exists.
* | Revert "Merge pull request #16966 from why-el/symbolize-path-params"Rafael Mendonça França2014-09-251-8/+0
| | | | | | | | | | | | | | | | This reverts commit 9d05d6de52871e57bfbf54a60de005e8a5f5b0e4, reversing changes made to 0863c9248fd47a15e88e05ce4fcd80966684c0e3. The change in the behaviour reported at #16958 doesn't exist since 4.0 and 4.1 works in the same way
* | Ensure named path params are symbols (Fixes #16958)Mohamed Wael Khobalatte2014-09-251-0/+8
| |
* | Rescue Rack::Utils::ParameterTypeError instead of TypeErrorYuki Nishijima2014-09-131-3/+3
| | | | | | | | | | | | | | | | As of rack/rack@167b6480235ff00ed5f355698bf00ec2f250f72e, Rack raises Rack::Utils::ParameterTypeError which inherits TypeError. In terms of the behavior, Rescuing TypeError still works but this method shouldn't rescue if TypeError is raised for other reasons.
* | Add support for Rack::ContentLength middelwareJavan Makhmali2014-09-061-0/+14
| |
* | Deprecate implicit AD::Response splatting and Array conversionJeremy Kemper2014-09-061-3/+17
| |
* | Add test to assert_recognizes with custom messageRafael Mendonça França2014-09-051-1/+9
| |
* | Merge pull request #14911 from estsauver/14908Rafael Mendonça França2014-09-051-0/+8
|\ \ | | | | | | | | | Propagate test messages through assert_routing helper, Fixes #14908
| * | Propagate test messages through assert_routing helper, Fixes #14908Earl St Sauver2014-04-291-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | assert_routing was not raising the message passed into the assertion violation that it raised. This change propagates messages through the on_fail error. This fixes this error: https://github.com/rails/rails/issues/14908 A test case for this issue is located here. https://github.com/estsauver/test14908 To see that test case fail in the example app, just run ruby -Itest test/controllers/guests_controller_test.rb
* | | Merge pull request #16637 from Agis-/redirect-with-constraint-routeAaron Patterson2014-08-281-0/+24
|\ \ \ | | | | | | | | Fix the router ignoring constraints when used together with a redirect route
| * | | Don't ignore constraints in redirect routesAgis-2014-08-251-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/rails/rails/commit/402c2af55053c2f29319091ad21fd6fa6b90ee89 introduced a regression that caused any constraints added to redirect routes to be ignored. Fixes #16605
* | | | Refactor out Dir.glob from ActionDispatch::Staticschneems2014-08-271-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dir.glob can be a security concern. The original use was to provide logic of fallback files. Example a request to `/` should render the file from `/public/index.html`. We can replace the dir glob with the specific logic it represents. The glob {,index,index.html} will look for the current path, then in the directory of the path with index file and then in the directory of the path with index.html. This PR replaces the glob logic by manually checking each potential match. Best case scenario this results in one less file API request, worst case, this has one more file API request. Related to #16464 Update: added a test for when a file of a given name (`public/bar.html` and a directory `public/bar` both exist in the same root directory. Changed logic to accommodate this scenario.
* | | | Use less iterations for KeyGenerator in testsPeter Suschlik2014-08-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit improves performance of cookie tests: Ruby | After | Before ----- | --------:| --------: MRI | 5.03s | 9.28s JRuby | 25.45s | 1648.23s Please note the improvement for JRuby.
* | | | Address comments on Gzip implementationschneems2014-08-241-2/+24
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - don't mutate PATH_INFO in env, test - test fallback content type matches Rack::File - change assertion style - make HTTP_ACCEPT_ENCODING comparison case insensitive - return gzip path from method instead of true/false so we don't have to assume later - don't allocate un-needed hash. Original comments: https://github.com/rails/rails/commit/ cfaaacd9763642e91761de54c90669a88d772e5a#commitcomment-7468728 cc @jeremy
* | | Avoid duplicating routes for HEAD requests.Guo Xiang Tan2014-08-211-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | Follow up to rails#15321 Instead of duplicating the routes, we will first match the HEAD request to HEAD routes. If no match is found, we will then map the HEAD request to GET routes.
* | | Enable gzip compression by defaultschneems2014-08-201-2/+22
| | | | | | | | | | | | | | | | | | If someone is using ActionDispatch::Static to serve assets and makes it past the `match?` then the file exists on disk and it will be served. This PR adds in logic that checks to see if the file being served is already compressed (via gzip) and on disk, if it is it will be served as long as the client can handle gzip encoding. If not, then a non gzip file will be served. This additional logic slows down an individual asset request but should speed up the consumer experience as compressed files are served and production applications should be delivered with a CDN. This PR allows a CDN to cache a gzip file by setting the `Vary` header appropriately. In net this should speed up a production application that are using Rails as an origin for a CDN. Non-asset request speed is not affected in this PR.
* | | Protect against error when parsing parameters with Bad RequestRafael Mendonça França2014-08-191-0/+25
| | | | | | | | | | | | Related with #11795.
* | | Expectations firstAkira Matsuda2014-08-184-11/+11
| | |
* | | Use AS::JSON for (de)serializing cookiesGodfrey Chan2014-08-171-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | Use the Active Support JSON encoder for cookie jars using the `:json` or `:hybrid` serializer. This allows you to serialize custom Ruby objects into cookies by defining the `#as_json` hook on such objects. Fixes #16520.
* | | Fixed broken reference caused by 14965baGodfrey Chan2014-08-171-2/+2
| | |