| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
When `config.force_ssl` is set to `true`, any POST/PUT/DELETE requests coming in to non-secure url are being redirected with a 301 status.
However, when that happens, the request is converted to a GET request and ends up hitting a different action on the controller.
Since we can not do non-GET redirects, we can instead redirect with a 307 status code instead to indicate to the caller that a fresh request should be tried preserving the original request method.
`rack-ssl` gem which was used to achieve this before we had this middleware directly baked into Rails also used to do the same, ref: https://github.com/josh/rack-ssl/blob/master/lib/rack/ssl.rb#L54
This would be specially important for any apps switching from older version of Rails or apps which expose an API through Rails.
|
|
|
|
| |
Use ActionDispatch::Request instead of Request because ActionDispatch::Request no longer inherits from Rack::Request.
|
| |
|
|
|
|
| |
Documentation & testing
|
|
|
|
|
| |
Those methods are only using inside this module and by a private method
so they all should be private.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since e852daa6976cc6b6b28ad0c80a188c06e226df3c only the verb methods
where extracting the defaults options. It was merged a fix for the
`root` method in 31fbbb7faccba25b2e3b5e10b8fca1468579d629 but `match`
was still broken since `:defaults` where not extracted.
This was causing routes defined using `match` and having the `:defaults`
keys to not be recognized.
To fix this it was extracted a new private method with the actual
content of `match` and the `:defaults` extracting was moved to `match`.
|
|\
| |
| |
| |
| | |
prathamesh-sonpatki/start-documenting-ac-testcase-again
Start documenting ActionController::TestCase again
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Rails 5 changed interface for passing arguments to request methods to
keyword args for AC::TestCase but also hid the documentation.
- But existing AC::TestCase tests need the new documentation about
keyword args. So resurrected documentation and added a note about not
using this for new tests.
- The guides and other documentation is already updated to use
`ActionDispatch::IntegrationTest`.
[Matthew Draper, Prathamesh Sonpatki]
|
|\ \
| | |
| | | |
Show unpermitted parameters as symbols in logs (so they could be copy…
|
| | |
| | |
| | |
| | | |
to the code)
|
|\ \ \
| | | |
| | | | |
fix Rails.application.routes.router.visualizer for router debugging
|
| | | |
| | | |
| | | |
| | | | |
fixes error due to Routes#partitioned_routes being removed
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Style/SpaceBeforeBlockBraces
Style/SpaceInsideBlockBraces
Style/SpaceInsideHashLiteralBraces
Fix all violations in the repository.
|
| | | |
| | | |
| | | |
| | | | |
after writing to the stream.
|
|\ \ \ \
| | | | |
| | | | | |
AC::Metal is already defining default encoding as UTF 8, let's reuse it.
|
| |/ / / |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It's tough for people without the knowledge of where the `get` and
friends integration test helpers are defined to find documentation
for them. Add a link to the main integration test documentation.
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
* Give the section a header to distinguish it from the general doc.
* Replace backticks with + signs to fit SDoc.
* Use double quoted strings.
* Clarify how `parsed_body` works — it doesn't depend on `as` anymore.
|
|\ \ \
| | | |
| | | | |
Pass over changelogs
|
| |/ / |
|
| | | |
|
| | |
| | |
| | |
| | | |
They are not part of the public API
|
| | |
| | |
| | | |
When initializing an `ActionDispatch::Http::Headers` object it takes a request object (Rails 5) whereas before it took a hash (Rails 4.x) but the documented example still shows a hash given to the constructor (due to commit 34fa6658dd1b779b21e586f01ee64c6f59ca1537) so this is just a documentation change to use the new `from_hash` method introduced in that earlier commit.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Thinking .. relative to files is not natural, we are used
to think "parent of a directory", and we have __dir__
nowadays.
|
|\ \ \
| | | |
| | | | |
Allow specifying encoding of parameters by action
|
| |/ /
| | |
| | |
| | |
| | | |
At GitHub we need to handle parameter encodings that are not UTF-8. This
patch allows us to specify encodings per parameter per action.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In c546a2b parameter handling in AC test cases was changed to
round tripping through encoders/decoders so that they matched
reality and in 0adb8f8 the old methods were removed but the
`html_format?` method was overlooked.
|
|/ /
| |
| |
| | |
Hash syntax auto-correcting breaks alignments. 411ccbdab2608c62aabdb320d52cb02d446bb39c
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A few have been left for aesthetic reasons, but have made a pass
and removed most of them.
Note that if the method `foo` returns an array, `foo << 1`
is a regular push, nothing to do with assignments, so
no self required.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In some test runs `ActionController::Base.enable_fragment_cache_logging` would be false,
based on the test order.
Turns out it was off because we assigned the config to the `@controller` variable, and
not on `ActionController::Base`.
The test failure was reproducible with, and now passes after this:
```
bin/test test/controller/log_subscriber_test.rb --seed 19918
```
|
| |
| |
| |
| |
| | |
The entry was a result of a combination of changes in Action View
and Action Controller.
|
| | |
|
|\ \
| | |
| | | |
Better logging of cached partial renders
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Implement naive partial caching mechanism.
Add test for LogSubscriber
Use ActionView::Base#log_payload to store log_subscriber's payload, so we can pass cache result into it.
Fixed tests
Remove useless settings
Check if #log_payload exists before calling it. Because other classes also includes CacheHelper but don't have is attribute
Use @log_payload_for_partial_reder instead of #log_payload to carry ActionView's payload.
Update test's hash syntax
Add configuration to enable/disable fragment caching logging
Remove unless test and add new test to ensure cache info won't effect next rendering's log
Move :enable_fragment_cache_logging config from ActionView to ActionPack
Apply new config to tests
Update actionview's changelog
Update configuration guide
Improve actionview's changelog
Refactor PartialRenderer#render and log tests
Mute subscriber's log instead of disabling instrumentation.
Fix typo, remove useless comment and use new hash syntax
Improve actionpack's log_subscriber test
Fix rebase mistake
Apply new config to all caching intstrument actions
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In integration test when specify the "Accept" header with "xhr: true"
option, the Accept header is overridden with a default xhr Accept
header. The issue only affects HTTP header "Accept" but not CGI variable
"HTTP_ACCEPT".
For example:
get '/page', headers: { 'Accept' => 'application/json' }, xhr: true
# This is WRONG! And the response.content_type is also affected.
# It should be "application/json"
assert_equal "text/javascript, text/html, ...", request.accept
assert_equal 'text/html', response.content_type
The issue is in `ActionDispatch::Integration::RequestHelpers`. When
setting "xhr: true" the helper sets a default HTTP_ACCEPT if blank.
But the code doesn't consider supporting both HTTP header style and
CGI variable style.
For detail see this GitHub issue:
https://github.com/rails/rails/issues/25859
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
The current code base is not uniform. After some discussion,
we have chosen to go with double quotes by default.
|
| |
| |
| |
| |
| | |
The current code base is not uniform. After some discussion,
we have chosen to go with double quotes by default.
|
| |
| |
| |
| |
| | |
The current code base is not uniform. After some discussion,
we have chosen to go with double quotes by default.
|
| |
| |
| |
| |
| | |
The current code base is not uniform. After some discussion,
we have chosen to go with double quotes by default.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a `GET` request is sent `as: :json` in an integration test the test
should use Rack's method override to change to a post request so the
paramters are included in the postdata. Otherwise it will not encode the
parameters correctly for the integration test.
Because integration test sets up it's own middleware,
`Rack::MethodOverride` needs to be included in the integration tests as
well.
`headers ||= {}` was moved so that headers are never nil. They should
default to a hash.
Fixes #26033
[Eileen M. Uchitelle & Aaron Patterson]
|
| |
| |
| |
| | |
Screwed up both the left and right hand sides!
|
| |
| |
| |
| |
| |
| |
| | |
The tests were written with the common false value seen in Rails apps,
show that intent in the code.
Should also fix the build on 5-0-stable.
|