aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/test
Commit message (Collapse)AuthorAgeFilesLines
* Add test for Hash-like object being passed to partial `locals`Ufuk Kayserilioglu2019-01-241-0/+10
| | | | | | | | | | The test passes an instance of `ActionController::Parameters` that acts like a Hash but does not respond to some Hash methods like `symbolize_keys`. Moreover, if someone were to call `to_h` on the value it would fail since the parameter is not permitted. So this is a great way to ensure that the partial rendering pipeline does not mess with `locals`.
* Revert "Allow usage of strings as locals for partial renderer"Ufuk Kayserilioglu2019-01-241-10/+0
|
* Merge pull request #34952 from rails/template-stuffAaron Patterson2019-01-222-2/+2
|\ | | | | Template Handler Refactoring
| * Always evaluate views against an ActionView::BaseAaron Patterson2019-01-162-2/+2
| | | | | | | | | | Methods created by views should always be evaluated against an AV::Base instance. This way we can extract and refactor things in to classes.
* | Remove deprecated image_alt helperRafael Mendonça França2019-01-171-20/+0
|/
* Don't expect defined protect_against_forgery? in {token,csrf_meta}_tagGenadi Samokovarov2018-12-272-0/+56
| | | | | | | | | | | | | | | | | | | The `#csrf_meta_tags` and `#token_tag` Action View helper methods are expecting the class in which are included to explicitly define the method `#protect_against_forgery?` or else they will fail with `NoMethodError`. This is a problem if you want to use Action View outside of Rails applications. For example, in #34788 I used the `#button_to` helper inside of the error pages templates that have a custom `ActionView::Base` subclass, which did not defined `#protect_against_forgery?` and trying to call the button failed. I had to dig inside of Action View to find-out what's was going on. I think we should either set a default method implementation in the helpers or check for the method definition, but don't explicitly require the presence of `#protect_against_forgery?` in every `ActionViews::Base` subclass as the errors are hard to figure out.
* Merge pull request #34764 from kamipo/avoid_redundant_beginRyuta Kamizono2018-12-211-7/+5
|\ | | | | Enable `Style/RedundantBegin` cop to avoid newly adding redundant begin block
| * Enable `Style/RedundantBegin` cop to avoid newly adding redundant begin blockRyuta Kamizono2018-12-211-7/+5
| | | | | | | | | | | | | | | | | | | | Currently we sometimes find a redundant begin block in code review (e.g. https://github.com/rails/rails/pull/33604#discussion_r209784205). I'd like to enable `Style/RedundantBegin` cop to avoid that, since rescue/else/ensure are allowed inside do/end blocks in Ruby 2.5 (https://bugs.ruby-lang.org/issues/12906), so we'd probably meets with that situation than before.
* | Fix integer regex deprecation warnings for Ruby 2.6.0 (#34728)Vinicius Stock2018-12-211-0/+1
|/ | | | | * Fix integer regex deprecation warnings for Ruby 2.6.0 * Define =~ in FakeZone to avoid warnings from Ruby 2.6.0
* Merge pull request #34635 from WoH/data-disable-foreverJavan Makhmali2018-12-181-0/+21
|\ | | | | UJS: Do not disable previously disabled elements
| * Do not disable previously disabled elementsWoH2018-12-061-0/+21
| |
* | Fix typos in click test descriptions [ci skip]Ivan Kuchin2018-12-101-2/+2
|/
* Prevent unintended mouse keys from firing click eventsWoH2018-12-054-1/+77
| | | | | Firefox fires click events on left-, right- and scroll-wheel (any non-primary mouse key) clicks while other browsers don't.
* Prevent TextHelper#word_wrap from stripping white space on the leftLyle Mullican2018-11-191-0/+4
| | | | side of long lines; Fixes #34487
* Add allocations to template renderer subscriptionEileen Uchitelle2018-10-102-7/+7
| | | | | | | | | | | | | | | | | | | | | | | This PR adds the allocations to the instrumentation for template and partial rendering. Before: ``` Rendering posts/new.html.erb within layouts/application Rendered posts/_form.html.erb (9.7ms) Rendered posts/new.html.erb within layouts/application (10.9ms) Completed 200 OK in 902ms (Views: 890.8ms | ActiveRecord: 0.8ms) ``` After: ``` Rendering posts/new.html.erb within layouts/application Rendered posts/_form.html.erb (Duration: 7.1ms | Allocations: 6004) Rendered posts/new.html.erb within layouts/application (Duration: 8.3ms | Allocations: 6654) Completed 200 OK in 858ms (Views: 848.4ms | ActiveRecord: 0.4ms | Allocations: 1539564) ```
* Merge pull request #33324 from ↵Ryuta Kamizono2018-10-081-0/+9
|\ | | | | | | | | Jcambass/fix-only-path-option-in-url-for-with-arrays respect only_path option when an array is passed into url_for
| * respect path_only option when an array is passed into url_forJoel Ambass2018-10-011-0/+9
| | | | | | | | | | | | | | | | The url_for method is now extracting the path_only option in order to determine if polymorphic_path or polymorphic_url should be called. If the path_only option is not set it will be set to true unless the host option is set. This behaviour is the same as when a Hash or Params object is passed. To support this unifying the code responsible for setting this default value has been extracted into a private method
* | Merge pull request #32031 from yahonda/remove_redundant_freezeRyuta Kamizono2018-10-011-2/+2
|\ \ | | | | | | Add `Style/RedundantFreeze` to remove redudant `.freeze`
| * | Add `Style/RedundantFreeze` to remove redudant `.freeze`Yasuo Honda2018-09-291-2/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since Rails 6.0 will support Ruby 2.4.1 or higher `# frozen_string_literal: true` magic comment is enough to make string object frozen. This magic comment is enabled by `Style/FrozenStringLiteralComment` cop. * Exclude these files not to auto correct false positive `Regexp#freeze` - 'actionpack/lib/action_dispatch/journey/router/utils.rb' - 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb' It has been fixed by https://github.com/rubocop-hq/rubocop/pull/6333 Once the newer version of RuboCop released and available at Code Climate these exclude entries should be removed. * Replace `String#freeze` with `String#-@` manually if explicit frozen string objects are required - 'actionpack/test/controller/test_case_test.rb' - 'activemodel/test/cases/type/string_test.rb' - 'activesupport/lib/active_support/core_ext/string/strip.rb' - 'activesupport/test/core_ext/string_ext_test.rb' - 'railties/test/generators/actions_test.rb'
* / make actionview templates marshalable so that they can be serialized during ↵lsylvester2018-09-301-0/+7
|/ | | | the parallel tests (#34030)
* Do not enable disabled elements for XHR redirectsPatrik Bóna2018-09-273-1/+27
| | | | Fixes #29473.
* Merge pull request #33975 from JuanitoFatas/jf.fix-test-nameRafael França2018-09-251-1/+1
|\ | | | | [CaptureHelperTest] Fix a content_for test description
| * Fix a content_for test descriptionJuanito Fatas2018-09-251-1/+1
| |
* | Fix more offencesRafael Mendonça França2018-09-253-3/+3
| |
* | Change the empty block style to have space inside of the blockRafael Mendonça França2018-09-256-19/+19
| |
* | Merge pull request #33973 from rails/remove-catch-allAaron Patterson2018-09-2517-78/+290
|\ \ | | | | | | Remove deprecated catch-all route in the AV tests
| * | make bot happyAaron Patterson2018-09-244-9/+9
| | |
| * | Remove deprecated catch-all route in the AV testsAaron Patterson2018-09-2417-78/+290
| |/ | | | | | | | | | | | | | | This commit removes a deprecated catch-all route in the AV tests. It defines and includes the necessary routes for each test such that we don't need the catch-all anymore. This also helps push us toward #33970
* | Merge pull request #33949 from sjain1107/no-private-defKasper Timm Hansen2018-09-232-14/+18
|\ \ | | | | | | Remove private def
| * | Remove private defSakshi Jain2018-09-232-14/+18
| | |
* | | Enable `Performance/UnfreezeString` copyuuji.yaginuma2018-09-2311-209/+209
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Ruby 2.3 or later, `String#+@` is available and `+@` is faster than `dup`. ```ruby # frozen_string_literal: true require "bundler/inline" gemfile(true) do source "https://rubygems.org" gem "benchmark-ips" end Benchmark.ips do |x| x.report('+@') { +"" } x.report('dup') { "".dup } x.compare! end ``` ``` $ ruby -v benchmark.rb ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux] Warming up -------------------------------------- +@ 282.289k i/100ms dup 187.638k i/100ms Calculating ------------------------------------- +@ 6.775M (± 3.6%) i/s - 33.875M in 5.006253s dup 3.320M (± 2.2%) i/s - 16.700M in 5.032125s Comparison: +@: 6775299.3 i/s dup: 3320400.7 i/s - 2.04x slower ```
* | Merge pull request #33564 from avit/escape_javascript_castingRafael França2018-09-211-0/+4
|\ \ | |/ |/| Let escape_javascript handle conversion to string
| * Let escape_javascript handle conversion to stringAndrew Vit2018-09-211-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | This brings `escape_javascript` in line with the behavior of `json_escape` and allows other value types to be output without needing explicit casting in the view template. Example: <%= javascript_tag do %> var locale = '<%== j I18n.locale %>'; // locale is a symbol <% end %>
* | Don’t allocate array on no argsschneems2018-09-072-2/+2
| | | | | | | | | | | | | | | | | | | | When no dependencies are present to be digested there is no reason to build an array just to turn around and turn it back into a string. The dependencies array is not mutated in this method so we can use the same empty array across all invocations. Total allocated: 791402 bytes (7294 objects) Total allocated: 777442 bytes (7132 objects) (791402 - 777442) / 791402.0 # => 1.76 % speed improvement
* | Merge pull request #33547 from Ana06/patch-1Matthew Draper2018-08-231-1/+14
|\ \ | | | | | | | | | Use public_send in value_for_collection
| * | Add tests for privates methods in view's helpersAna María Martínez Gómez2018-08-081-1/+14
| |/ | | | | | | | | | | | | | | Test that using private methods in `options_from_collection_for_select` is deprecated. Make the unused `secret` paramether in the `Post` Struct private to use it in the test.
* / Enable Style/ParenthesesAroundCondition copRyuta Kamizono2018-08-191-1/+1
|/ | | | To prevent style check in review like https://github.com/rails/rails/pull/33608#discussion_r211087605.
* Turn on performance based copsDillon Welch2018-07-232-2/+4
| | | | | | | | | | | | | | | | Use attr_reader/attr_writer instead of methods method is 12% slower Use flat_map over map.flatten(1) flatten is 66% slower Use hash[]= instead of hash.merge! with single arguments merge! is 166% slower See https://github.com/rails/rails/pull/32337 for more conversation
* Fix leaking special form_with attributes into html attributesYurii Cherniavskyi2018-07-201-0/+17
| | | | | Special form_with attributes `skip_default_ids` and `allow_method_names_outside_object` attributes are leaking into html attributes of option select tag helpers.
* Fix issue with `button_to`'s `to_form_params`Georgi Georgiev2018-07-161-1/+8
| | | | | | | | | `button_to` was throwing exception when invoked with `params` hash that contains symbol and string keys. The reason for the exception was that `to_form_params` was comparing the given symbol and string keys. The issue is fixed by turning all keys to strings inside `to_form_params` before comparing them.
* Merge pull request #32361 from ph3t/safe-html-translation-arraysKasper Timm Hansen2018-07-031-2/+5
|\ | | | | Add safe html support to arrays of translations
| * Add safe html support to arrays of translationsJuan Broullon2018-07-031-2/+5
| |
* | Add `year_format` option to date_select tag. This option makes it possible ↵Koki Ryu2018-06-101-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to customize year names. Lambda should be passed to use this option. Example: date_select('user_birthday', '', start_year: 1998, end_year: 2000, year_format: ->year { "Heisei #{year - 1988}" }) The HTML produced: <select id="user_birthday__1i" name="user_birthday[(1i)]"> <option value="1998">Heisei 10</option> <option value="1999">Heisei 11</option> <option value="2000">Heisei 12</option> </select> /* The rest is omitted */
* | Remove unnecessary `with_default_enforce_utf8` methodyuuji.yaginuma2018-05-281-9/+0
| | | | | | | | | | Because the same method is defined in `FormWithTest` of the parent class. https://github.com/rails/rails/blob/fe9547b6fb60d92af181c8613166fa4322f8e307/actionview/test/template/form_helper/form_with_test.rb#L19..L26
* | Fix `CustomCops/AssertNot` to allow it to have failure messageRyuta Kamizono2018-05-131-2/+2
| | | | | | | | Follow up of #32605.
* | Merge pull request #30647 from droptheplot/render-partials-string-localsRafael França2018-04-271-0/+9
|\ \ | | | | | | Allow usage of strings as locals for partial renderer
| * | Allow usage of strings as locals for partial rendererSergey Novikov2017-09-181-0/+9
| | |
* | | Merge pull request #32574 from DmytroVasin/rails-ujs-stoppable-eventsRafael França2018-04-198-60/+67
|\ \ \ | | | | | | | | Rails-ujs: Info about stoppable events
| * | | Fix stoppable events in tests and docs.Dmytro Vasin2018-04-148-60/+67
| | | |
* | | | Replace `assert !` with `assert_not`Daniel Colson2018-04-194-21/+21
| | | | | | | | | | | | | | | | | | | | This autocorrects the violations after adding a custom cop in 3305c78dcd.