Commit Graph

73972 Commits

Author SHA1 Message Date
Peter Zhu
e6d2e8bf9b Upload file with filename and disposition for S3 2019-07-31 09:54:51 -04:00
Kasper Timm Hansen
efa2299ac3
Remove tough to grasp -1 + 1 = 0 from String#to
In case a negative position is provided that exceeds the size of the
string, we're relying on -1 returned from max to get 0 length by + 1
and let [] with a 0 length returning "" for us.

E.g. "hello".to(-7), where -7 + 5 size = -2. That's
lower than -1, so we use -1 instead and + 1 would turn it into 0.

Instead allow outer bounds access and always return "".
2019-07-26 22:08:34 +02:00
Rafael França
a0e58e687d
Merge pull request #36178 from sshaw/fix_time_zone_options_priority
Update time_zone_options_for_select docs
2019-07-26 16:03:37 -04:00
Rafael França
abaa73f34a
Merge pull request #36227 from betesh/avoid-misleading-error-about-late-attachments
Prevent reading inline attachments after `mail` was called from raising an inaccurate exception
2019-07-26 16:00:44 -04:00
Rafael França
dd6032d027
Merge pull request #36780 from abhaynikam/36775-follow-up-change-test-description
Change the test description to say the URL helper name in test.
2019-07-26 15:31:45 -04:00
Simone Carletti
6ea09841f2 Fix error 500 caused by ActionController::RoutingError (via fail-safe) when POST parameters are invalid (#29985)
* Reproduce error caused by malformed parameters

    Error:
    RequestFormat#test_format_does_not_throw_exceptions_when_invalid_POST_parameters:
    ActionDispatch::Http::Parameters::ParseError: 765: unexpected token at '{record:{content:24.12.1.146}}'
        /Users/weppos/Mirrors/rails/actionpack/lib/action_dispatch/http/parameters.rb:113:in `rescue in parse_formatted_parameters'
        /Users/weppos/Mirrors/rails/actionpack/lib/action_dispatch/http/parameters.rb:107:in `parse_formatted_parameters'
        /Users/weppos/Mirrors/rails/actionpack/lib/action_dispatch/http/request.rb:360:in `block in POST'
        /Users/weppos/.rvm/gems/ruby-2.3.3/gems/rack-2.0.3/lib/rack/request.rb:57:in `fetch'
        /Users/weppos/.rvm/gems/ruby-2.3.3/gems/rack-2.0.3/lib/rack/request.rb:57:in `fetch_header'
        /Users/weppos/Mirrors/rails/actionpack/lib/action_dispatch/http/request.rb:359:in `POST'
        /Users/weppos/Mirrors/rails/actionpack/lib/action_dispatch/http/parameters.rb:53:in `parameters'
        /Users/weppos/Mirrors/rails/actionpack/lib/action_dispatch/http/mime_negotiation.rb:62:in `block in formats'
        /Users/weppos/.rvm/gems/ruby-2.3.3/gems/rack-2.0.3/lib/rack/request.rb:57:in `fetch'
        /Users/weppos/.rvm/gems/ruby-2.3.3/gems/rack-2.0.3/lib/rack/request.rb:57:in `fetch_header'
        /Users/weppos/Mirrors/rails/actionpack/lib/action_dispatch/http/mime_negotiation.rb:60:in `formats'
        /Users/weppos/Mirrors/rails/actionpack/test/dispatch/request_test.rb:891:in `block in <class:RequestFormat>'

See GH-29983

* Capture parameter parsing error output and test it

This change prevents the log to be displayed in the tests.
Moreover, the assertion against the debug ensures that
the test effectively triggers the parsing error as expected.

* Use a generic value in the test

* Switch to assert_match

[Simone Carletti + Rafael Mendonça França]
2019-07-26 15:27:32 -04:00
Abhay Nikam
b34d7692c1 Change the test description to say the URL helper name in test. 2019-07-27 00:41:28 +05:30
Pietro Moro
0eff6956a5 Added a phone_to helper method, on the style of mail_to and sms_to. (#36775)
* Added a phone_to helper method, on the style of mail_to and sms_to.

It creates an anchor tag with the href set to tel: *here your number*
which, when clicked on a mobile phone, or on a desktop with a supported
application, lets the phone app kick in, and it prepopulates it with the
phone number specified.

[Pietro Moro + Rafael Mendonça França]
2019-07-26 14:54:57 -04:00
Rafael França
7f16fedad3
Merge pull request #36254 from sharang-d/remove-named-helpers
Use a single term instead of all terms used to describe path and URL helpers together
2019-07-26 14:39:59 -04:00
Sharang Dashputre
18504eb78f Use a single term instead of all terms used to describe path and URL helpers together 2019-07-26 23:54:39 +05:30
Rafael França
2c39978ffc
Merge pull request #36702 from cpruitt/raise-on-transliterate-ascii-8bit
Handle invalid string encodings and characters in ActiveSupport::Inflector.transliterate
2019-07-26 14:20:06 -04:00
Rafael França
ea4305109e
Merge pull request #36777 from Edouard-chin/ec-git-pretty-credentials
Prettify diff generated by git for encrypted file:
2019-07-26 14:18:14 -04:00
Rafael França
0643dc44d5
Merge pull request #36779 from Shopify/optimize-url-helper-creation
Optimize Journey::Route#glob?
2019-07-26 14:16:45 -04:00
Rafael França
f825a9048f
Merge pull request #36776 from giraffate/fix_join_middle_table_alias_when_using_HABTM
Fix join middle table alias when using HABTM
2019-07-26 13:57:23 -04:00
Jean Boussier
04beaa78c5 Optimize Journey::Route#glob? 2019-07-26 13:56:25 -04:00
Rafael França
1760fe919f
Merge pull request #36764 from willianveiga/feature/inputs-inside-disabled-fieldset-are-not-submited-on-remote-true-forms
Inputs inside disabled fieldset are not submited on remote: true forms
2019-07-26 13:48:18 -04:00
Rafael França
f45e23ead9
Merge pull request #36213 from st0012/fix-25842
Add `Vary: Accept` header when using `Accept` header for response
2019-07-26 13:43:10 -04:00
Rafael França
a40da823d7
Merge pull request #35992 from jduff/include_bcc
Fix Bcc header missing with emails from conductor and test helpers
2019-07-26 13:27:23 -04:00
Rafael França
d937e1f4ca
Merge pull request #36778 from abhaynikam/remove-unwanted-javascript-compile-from-test
Removed webpacker:compile step from scaffold test as it is not required
2019-07-26 13:13:06 -04:00
John Duff
09e5d6d004 Fix Bcc header missing with emails from conductor and test helpers 2019-07-26 13:04:16 -04:00
Rafael França
344bed41d0
Merge pull request #36372 from instructure-bridge/6-0-stable
Don't break configurations.each, .first before the deprecation period
2019-07-26 12:59:27 -04:00
Rafael França
7067ee91fb
Merge pull request #36771 from ajn123/add-documentation-for-csrf-javascript
[ci skip] add CSRF token explanation for javascript documentation
2019-07-26 12:56:38 -04:00
Rafael França
a40b328b01
Merge pull request #36772 from sharang-d/default-for-digest
Add a default value for arg `format` in `ActionView::Digestor.digest()`
2019-07-26 12:53:52 -04:00
Cliff Pruitt
a7b6a9553b Remove comments in test file 2019-07-26 12:42:06 -04:00
Cliff Pruitt
05633d02d8 Handle GB18030 strings with invalid characters in transliterate
GB18030 is Unicode compatible and covers all Unicode code points so we can temporarily convert GB18030 strings to UTF-8 to perform the transliteration. After transliterating we want to convert back to GB18030.

In all cases of transcoding, we replace invalid or undefined characters with the default replacement character ("?"). This is in line with the behavior of tidy_bytes which is used on the UTF-8 string before transliterating.
2019-07-26 12:18:01 -04:00
Cliff Pruitt
369daa530d Handle US-ASCII strings with invalid characters in transliterate
US-ASCII is a subset of UTF-8 so we can temporarily convert US-ASCII strings to UTF-8 to perform the transliteration. After we've converted characters to ASCII representations, we can set the encoding back to US-ASCII to return the same encoding we accepted.
2019-07-26 12:18:01 -04:00
Cliff Pruitt
0cdaa38dd1 Add encoding tests for ActiveSupport::Inflector.transliterate 2019-07-26 12:18:01 -04:00
Cliff Pruitt
5b0a805c6a Raise errors for ASCII-8BIT encoding in ActiveSupport::Inflector::transliterate
Adds ArgumentErrors to `ActiveSupport::Inflector::transliterate` if a string is  with ASCII-8BIT which will raise an error in `unicode_normalize`.
2019-07-26 12:18:01 -04:00
Willian Gustavo Veiga
64631d83c5 Add test for submitted fields within disabled fieldsets 2019-07-26 12:59:23 -03:00
Abhay Nikam
8fdf6d934e Removed webpacker:compile step from scaffold test as it is not required and assets are already precompiled in build_app step 2019-07-26 20:20:07 +05:30
Edouard CHIN
5a4acf7ac4 Prettify diff generated by git for encripted file:
- @sinsoku had the idea and started implementing it few months ago
  but sadly didn't finish it.
  This PR is taking over his work.

  The credentials feature has changed a lot since @sinsoku opened hi
  PR, it was easier to just restart from scratch instead of checking
  out his branch.
  Sinsoku will get all the credit he deserves for this idea :)

  TL;DR on that that feature is to make the `git diff` or `git log`
  of encrypted files to be readable.

  The previous implementation was only setting up the git required
  configuration for the first time Rails was bootstraped, so I decided
  to instead provide the user a choice to opt-in for readable diff
  credential whenever a user types the `bin/rails credentials:edit`
  command.
  The question won't be asked in the future the user has already
  answered or if the user already opted in.

  Co-authored-by: Takumi Shotoku <insoku.listy@gmail.com>
2019-07-26 16:28:51 +02:00
Takayuki Nakata
285f081e1d Fix join middle table alias when using HABTM
In using HABTM, join middle table alias is combined with the associated
models name without sort, while middle table name is combined with those
models name with sort.

Fixes #36742.
2019-07-26 23:12:44 +09:00
Sharang Dashputre
b00a183aa1 Add a default value for arg format in ActionView::Digestor.digest() 2019-07-26 15:22:43 +05:30
ajn123
85a08fe671 [ci skip] add CSRF token explanation for javascript documentation 2019-07-26 00:54:38 -05:00
st0012
5745a3c092 Add Vary: Accept header when rendering
Problem description (quoted from @rafaelfranca's excellent explanation in https://github.com/rails/jquery-ujs/issues/318#issuecomment-88129005):

> Let say that we requested /tasks/1 using Ajax, and the previous page has the same url. When we click the back button the browser tries to get the response from its cache and it gets the javascript response. With vary we "fix" this behavior because we are telling the browser that the url is the same but it is not from the same type what will skip the cache.

And there's a Rails issue discussing about this problem as well https://github.com/rails/rails/issues/25842

Also, according to [RFC 7231 7.1.4](https://tools.ietf.org/html/rfc7231#section-7.1.4)

>  An origin server SHOULD send a Vary header field when its algorithm
>  for selecting a representation varies based on aspects of the request
>  message other than the method and request target

we should add `Vary: Accept` header when determining content based on the `Accept` header.

Although adding such header by default could cause unnecessary cache invalidation. But this PR only adds the header if:
- The format param is not provided
- The request is a `xhr` request
- The request has accept headers and the headers are valid

So if the user
- sends request with explicit format, like `/users/1.json`
- or sends a normal request (non xhr)
- or doesn't specify accept headers

then the header won't be added.

See the discussion in https://github.com/rails/rails/issues/25842 and
https://github.com/rails/rails/pull/36213 for more details.
2019-07-26 13:52:06 +08:00
Rafael França
41bc4c6207
Merge pull request #36300 from okuramasafumi/make-handle-options-private
Make `handle_options` method private
2019-07-26 00:07:48 -04:00
Rafael França
a11a7b2c7b
Merge pull request #35334 from sharang-d/digest-doc-update
Update comment for ActionView::Digestor.digest [ci skip]
2019-07-26 00:01:08 -04:00
Rafael França
4d6bbf02ba
Merge pull request #36180 from jonathanhefner/optimize-string-from
Avoid extra allocation in String#from and #to
2019-07-25 23:53:59 -04:00
yuuji.yaginuma
971cd757ea Use correct variable in secure_compare!
`Messages::Rotator` has `@on_rotation` not `@rotation`.
72bc0806a7/activesupport/lib/active_support/messages/rotator.rb (L11)
2019-07-26 12:51:53 +09:00
Rafael França
e5dc101cc5
Merge pull request #36005 from shioyama/plain_matcher_first
Make plain matcher match first, not last
2019-07-25 23:51:19 -04:00
Rafael França
f72118577d
Merge pull request #36504 from mtsmfm/mtsmfm/fix-flaky-render-test
Fix flaky test ActionControllerBaseRenderTest#test_direct_render_to_string
2019-07-25 23:49:06 -04:00
Fumiaki MATSUSHIMA
6c69ff436a Fix flaky test ActionControllerBaseRenderTest#test_direct_render_to_string 2019-07-26 12:29:58 +09:00
George Claghorn
72bc0806a7 Correct assertion argument order 2019-07-25 22:34:40 -04:00
Rafael Mendonça França
64f4d7fcb0
Merge pull request #36576 from mtsmfm/mtsmfm/fix-fixture-resolver
Support :any variants for ActionView::FixtureResolver
2019-07-25 22:24:31 -04:00
Rafael França
30757a1692
Merge pull request #36767 from vlado/active_job_test_helper_can_now_handle_relative_at_options
Ability to test activejobs with relative delay
2019-07-25 22:18:05 -04:00
Rafael França
e53e253280
Merge pull request #36765 from kylekeesling/patch-1
fix filenames of attachments created via the inbound email conductor
2019-07-25 22:14:37 -04:00
y-yagi
65dcc9d159
Merge pull request #36747 from y-yagi/add_mention_about_collection_cache_versioning
Add mention about `active_record.collection_cache_versioning` to the `new_framework_defaults.rb`
2019-07-26 10:24:52 +09:00
Kyle Keesling
ce88f6bd25
Fix filenames of attachments created via the inbound email conductor
controller passed along attachment file paths instead of their filenames
2019-07-25 21:11:29 -04:00
Eileen M. Uchitelle
0989956007
Merge pull request #36770 from seejohnrun/database-env-current-env-only
Only merge DATABASE_URL settings into the current env
2019-07-25 20:30:48 -04:00
John Crepezzi
5e260574a4 Only merge DATABASE_URL settings into the current env
This commit fixes a regression where when the `DATABASE_URL` environment
variable was set and the current Rails environment had a valid configuration
defined in the database config, settings from the environment variable would
affect _all_ environments (not just the current one).
2019-07-25 20:14:21 -04:00