aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/test
Commit message (Collapse)AuthorAgeFilesLines
...
* | Templates have one formatAaron Patterson2019-02-258-10/+10
| | | | | | | | | | | | | | Templates only have one format. Before this commit, templates would be constructed with a single element array that contained the format. This commit eliminates the single element array and just implements a `format` method. This saves one array allocation per template.
* | Always pass a format to the ActionView::Template constructorAaron Patterson2019-02-252-3/+5
| | | | | | | | | | This means we can eliminate nil checks and remove some mutations from the `decorate` method.
* | Prefer I18n.with_localeGeorge Claghorn2019-02-212-52/+37
| |
* | Deprecate ActionView::PathSet as argument to ActionView::Base.newCliff Pruitt2019-02-201-0/+4
| | | | | | | | Currently, `ActionView::Base.new` will raise a `NotImplementedError` when given an instance of `ActionView::PathSet` on initialization. This commit prevents the raised error in favor of a deprecation warning.
* | Deprecate LookupContext#rendered_formatAaron Patterson2019-02-191-0/+10
| | | | | | | | | | We no longer depend on `rendered_format` side effects, so we can remove this method now. 🎉
* | Move inline rendering content-type test to a controller testAaron Patterson2019-02-192-5/+11
| | | | | | | | | | | | This commit is to remove direct access to the "rendered_format" attribute on the lookup context. "rendered_format" is an implementation detail that we shouldn't test directly.
* | Add a test that writes to the collection cacheAaron Patterson2019-02-191-1/+8
| |
* | Merge pull request #35293 from rails/remove-rendered-format-from-cacheAaron Patterson2019-02-193-14/+16
|\ \ | | | | | | Pass the template format to the digestor
| * | Pass the template format to the digestorAaron Patterson2019-02-153-14/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit passes the template format to the digestor in order to come up with a key. Before this commit, the digestor would depend on the side effect of the template renderer setting the rendered_format on the lookup context. I would like to remove that mutation, so I've changed this to pass the template format in to the digestor. I've introduced a new instance variable that will be alive during a template render. When the template is being rendered, it pushes the current template on to a stack, setting `@current_template` to the template currently being rendered. When the cache helper asks the digestor for a key, it uses the format of the template currently on the stack.
* | | Merge pull request #35281 from ↵Aaron Patterson2019-02-151-0/+7
|\ \ \ | | | | | | | | | | | | | | | | y-yagi/show_deprecated_message_instead_of_raise_exception Show deprecated message instead of raise exception in `compiled_method_container` method
| * | | Show deprecated message instead of raise exception in ↵yuuji.yaginuma2019-02-161-0/+7
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `compiled_method_container` method Since #35036, the subclasses of `ActionView::Base` requires the `compiled_method_container`. This is incompatible. For example, `web-console` use view class that subclass of `ActionView::Base`, and does not work it now cause of this. Actually, since it seems that it is only `ActionView::Base` that `compiled_method_container` is necessary, modified the condition that emits a warning.
* / / Allow to pass options to `csp_meta_tag`yuuji.yaginuma2019-02-161-0/+4
|/ / | | | | | | | | | | | | | | | | | | | | | | Currently `csp_meta_tag` generates `name` attribute only. However, in libraries like `Material-UI` and `JSS`, expect that the meta tag that contains the nonce with `property` attribute. https://material-ui.com/css-in-js/advanced/#how-does-one-implement-csp https://github.com/cssinjs/jss/blob/master/docs/csp.md This patch allows `csp_meta_tag` to specify arbitrary options and allows `nonce` to be passed to those libraries.
* / Add test for `csp_meta_tag`yuuji.yaginuma2019-02-141-0/+31
|/
* Merge pull request #35253 from rails/cached-collections-must-have-a-templateAaron Patterson2019-02-131-0/+11
|\ | | | | Cached collections only work if there is one template
| * Cached collections only work if there is one templateAaron Patterson2019-02-131-0/+11
| | | | | | | | | | Cached collections only work if there is one template. If there are more than one templates, the caching mechanism doesn't have a key.
* | Address to useless assignment `formats = nil` after #35254Ryuta Kamizono2019-02-141-2/+0
| | | | | | | | https://codeclimate.com/github/rails/rails/pull/35254
* | Turn lookup context in to a stack, push and pop if formats changeAaron Patterson2019-02-112-4/+6
| | | | | | | | | | | | | | | | | | | | | | This commit keeps a stack of lookup contexts on the ActionView::Base instance. If a format is passed to render, we instantiate a new lookup context and push it on the stack, that way any child calls to "render" will use the same format information as the parent. This also isolates "sibling" calls to render (multiple calls to render in the same template). Fixes #35222 #34138
* | Adding another failing test caseAaron Patterson2019-02-1111-6/+39
| |
* | Add a failing test for #35222Aaron Patterson2019-02-115-0/+14
|/
* Always call superAaron Patterson2019-02-082-2/+1
|
* Teach DetailsKey how to clear the template cacheAaron Patterson2019-02-083-10/+9
| | | | | This commit exposes all system wide view paths so that we can clear their caches.
* Split digest cache from details identity cacheAaron Patterson2019-02-082-0/+5
| | | | | This commit splits the digest cache from the "details identity" cache. Now both caches can be managed independently.
* Fix deprecation warnings and call superAaron Patterson2019-02-061-2/+2
|
* Pull generated methods up in to the anonymous subclassAaron Patterson2019-02-061-8/+1
| | | | Then we don't need the extra module.
* 🚨 Make the cops happy 🚨Aaron Patterson2019-02-063-3/+3
|
* Move templates to an anonymous subclass of AV::BaseAaron Patterson2019-02-068-12/+55
| | | | | Now we can throw away the subclass and the generated methods will get GC'd too
* Merge branch 'float_dom_ids'Gannon McGibbon2019-02-051-4/+20
|\ | | | | | | Closes #34975.
| * Fix unique DOM IDs for collection inputsMark Edmondson2019-01-251-4/+20
| |
* | Respect ENV variables when finding DBs etc for the test suiteMatthew Draper2019-02-061-0/+1
| | | | | | | | | | If they're not set we'll still fall back to localhost, but this makes it possible to run the tests against a remote Postgres / Redis / whatever.
* | Take in to account optional arguments when deprecatingAaron Patterson2019-02-041-0/+9
| | | | | | | | Refs: rails/jbuilder#452
* | Pass source to template handler and deprecate old style handlerAaron Patterson2019-02-014-8/+17
| | | | | | | | | | | | | | | | | | This commit passes the mutated source to the template handler as a parameter and deprecates the old handlers. Old handlers required that templates contain a reference to mutated source code, but we would like to make template objects "read only". This change lets the template remain "read only" while still giving template handlers access to the source code after mutations.
* | add tests to make sure deprecated API is still supportedAaron Patterson2019-01-311-0/+10
| |
* | Tighten up the AV::Base constructorAaron Patterson2019-01-299-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The AV::Base constructor was too complicated, and this commit tightens up the parameters it will take. At runtime, AV::Base is most commonly constructed here: https://github.com/rails/rails/blob/94d54fa4ab641a0ddeb173409cb41cc5becc02a9/actionview/lib/action_view/rendering.rb#L72-L74 This provides an AV::Renderer instance, a hash of assignments, and a controller instance. Since this is the common case for construction, we should remove logic from the constructor that handles other cases. This commit introduces special constructors for those other cases. Interestingly, most code paths that construct AV::Base "strangely" are tests.
* | Deprecate `with_fallbacks` using a blockAaron Patterson2019-01-281-6/+19
| | | | | | | | | | | | | | This patch changes `with_fallbacks` to be a factory method that returns a new instance of a lookup context which contains the fallback view paths in addition to the controller specific view paths. Since the lookup context is more "read only", we may be able to cache them
* | Make `@view_paths` on the lookup context mostly read-onlyAaron Patterson2019-01-281-3/+7
| | | | | | | | | | | | The `with_fallbacks` method will temporarily mutate the lookup context instance, but nobody can call the setter, and we don't have to do a push / pop dance.
* | Remove method named "hash"Aaron Patterson2019-01-281-6/+6
| | | | | | | | | | | | We can't use the FixtureResolver as a hash key because it doesn't implement `hash` correctly. This commit renames the method to "data" (which is just as unfortunately named :( )
* | 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