aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/test
Commit message (Collapse)AuthorAgeFilesLines
* url -> URL where apt except inside actionpack/Sharang Dashputre2019-04-014-7/+7
|
* Merge pull request #35793 from jhawthorn/deprecate_layout_absolute_pathKasper Timm Hansen2019-03-311-1/+3
|\ | | | | Deprecate render layout with an absolute path
| * Deprecate render layout with an absolute pathJohn Hawthorn2019-03-291-1/+3
| | | | | | | | | | | | | | This has similar problems to render file:. I've never seen this used, and believe it's a relic from when all templates could be rendered from an absolute path.
* | Merge pull request #35688 from jhawthorn/render_file_rfcAaron Patterson2019-03-305-27/+72
|\ \ | |/ |/| RFC: Introduce Template::File
| * Introduce Template::File as new render file:John Hawthorn2019-03-275-27/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous behaviour of render file: was essentially the same as render template:, except that templates can be specified as an absolute path on the filesystem. This makes sense for historic reasons, but now render file: is almost exclusively used to render raw files (not .erb) like public/404.html. In addition to complicating the code in template/resolver.rb, I think the current behaviour is surprising to developers. This commit deprecates the existing "lookup a template from anywhere" behaviour and replaces it with "render this file exactly as it is on disk". Handlers will no longer be used (it will render the same as if the :raw handler was used), but formats (.html, .xml, etc) will still be detected (and will default to :plain). The existing render file: behaviour was the path through which Rails apps were vulnerable in the recent CVE-2019-5418. Although the vulnerability has been patched in a fully backwards-compatible way, I think it's a strong hint that we should drop the existing previously-vulnerable behaviour if it isn't a benefit to developers.
* | Fix annotated typoPrathamesh Sonpatki2019-03-291-4/+4
| |
* | Merge pull request #35308 from ↵Rafael França2019-03-282-0/+10
|\ \ | |/ |/| | | | | erose/better-error-reporting-for-syntax-errors-in-templates Display a more helpful error message when an ERB template has a Ruby syntax error.
| * Add handling and tests.Eli Rose2019-02-172-0/+10
| |
* | Merge pull request #35761 from koic/bump_rubocop_to_0_66_0Ryuta Kamizono2019-03-271-5/+5
|\ \ | | | | | | Bump RuboCop to 0.66.0
| * | Bump RuboCop to 0.66.0Koichi ITO2019-03-271-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ### Summary RuboCop 0.66.0 has been released. https://github.com/rubocop-hq/rubocop/releases/tag/v0.66.0 And rubocop-0-66 channel is available in Code Climate. https://github.com/codeclimate/codeclimate/releases/tag/v0.84.0 RuboCop 0.66.0 fixed the false negative to indentation for modifier. And this PR applied the auto-correction fixed by it. https://github.com/rubocop-hq/rubocop/pull/6792 In addtion, this PR is also updating the following 4 gems that RuboCop depends on. - Update Psych gem ... https://github.com/rubocop-hq/rubocop/pull/6766 - Update Parser gem to 2.6.2.0 that supports Ruby 2.5.5 and 2.6.2 ... https://github.com/whitequark/parser/blob/v2.6.2.0/CHANGELOG.md#changelog - Remove powerpack gem ... https://github.com/rubocop-hq/rubocop/pull/6806 - Update unicode-display_width gem ... https://github.com/rubocop-hq/rubocop/pull/6813
* | | Deprecate custom patterns for PathResolverJohn Hawthorn2019-03-261-1/+4
|/ / | | | | | | | | | | | | | | | | | | | | | | | | Custom glob patterns tie the implementation (Using Dir.glob) to the API we provide. It also doesn't really work. extract_handler_and_format_and_variant expects the handler, format, and variant to be at the end of the template path, and in the same order as they are in the default pattern. This deprecates specifying a custom path for FileSystemResolver and removes the pattern argument of OptimizedFileSystemResolver#initialize, which does not work with a custom pattern.
* | Prefer render template: in testsJohn Hawthorn2019-03-217-42/+43
| | | | | | | | | | | | | | | | | | | | | | | | Many tests were using `render file:`, but were only testing the behaviour of `render template:` (file: just allows more paths/ is less secure then template:). The reason for so many `render file:` is probably that they were the old default. This commit replaces `render file:` with `render template:` anywhere the test wasn't specifically interested in using `render file:`.
* | Merge pull request #35661 from jhawthorn/lookup_context_validationEileen M. Uchitelle2019-03-201-1/+9
|\ \ | | | | | | Validate types assigned to LookupContext#formats=
| * | Don't compact formatsJohn Hawthorn2019-03-191-5/+0
| | |
| * | Improve "raises on invalid format assignment" testJohn Hawthorn2019-03-181-2/+2
| | |
| * | Raise in LookupContext#formats= on invalid formatJohn Hawthorn2019-03-181-0/+8
| | | | | | | | | | | | | | | | | | This is a developer quality of life improvement, to ensure that unknown formats aren't assigned (which it would previously accept, but wouldn't work 100% correctly due to caching).
| * | Make uniq in LookupContext#formats=John Hawthorn2019-03-181-1/+1
| | | | | | | | | | | | | | | Having a format listed twice had no effect. This is mostly helpful to avoid an extra format when assigning [:html, "*/*"]
| * | Ignore nil in LookupContext#formats=John Hawthorn2019-03-181-0/+5
| | | | | | | | | | | | | | | This also removes the mutation we were performing on the values being passed in.
* | | Merge pull request #35662 from jhawthorn/fallback_resolver_no_virtual_pathAaron Patterson2019-03-191-0/+16
|\ \ \ | | | | | | | | Remove virtual_path from fallback templates
| * | | Remove virtual_path from fallback templatesJohn Hawthorn2019-03-181-0/+16
| |/ /
* | | Merge pull request #35604 from jhawthorn/validate_mime_typesEileen M. Uchitelle2019-03-191-2/+2
|\ \ \ | |/ / |/| | Raise exception when building invalid mime type
| * | Raise exception when building invalid mime typeJohn Hawthorn2019-03-141-2/+2
| | | | | | | | | | | | | | | | | | | | | This allows mime types in the form text/html, text/*, or */* This required a few minor test/code changes where previously nil was used as a mime string.
* | | Add regression test for HTML content in rails-ujsrazh2019-03-171-0/+11
| | | | | | | | | | | | See discussion in #32287
* | | Revert "Pass HTML responses as plain-text in rails-ujs"razh2019-03-171-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 48e44edfd0a8a7a29aa8fad39638ac0ee5243f42. See discussion in #32287 For HTML content in `ajax:success` handlers, `event.detail[0]` should be an `HTMLDocument` instance.
* | | Make Template::Resolver always cacheJohn Hawthorn2019-03-152-50/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | All actionview caches are already cleared at the start of each request (when Resolver.caching is false) by PerExecutionDigestCacheExpiry, which calls LookupContext::DetailsKey.clear (which clears all caches). Because caches are always cleared per-request in dev, we shouldn't need this extra logic to compare mtimes and conditionally reload templates. This should make templates slightly faster in development (particularly multiple renders of the same template)
* | Revert an incorrect change in jquery-2.2.0.jsSharang Dashputre2019-03-101-2/+2
| |
* | [ci skip] Minor documentation fixes for consistencyShailesh Kalamkar2019-03-091-1/+1
| |
* | [ci skip] Fix typosShailesh Kalamkar2019-03-071-1/+1
| |
* | Remove query_format argument from resolverJohn Hawthorn2019-02-261-1/+1
| |
* | Create templates with format=nilJohn Hawthorn2019-02-263-4/+4
| |
* | Merge pull request #35411 from rails/pass-locals-to-templateAaron Patterson2019-02-263-12/+11
|\ \ | | | | | | Pass locals in to the template object on construction
| * | Expand key word args for ActionView::TemplateAaron Patterson2019-02-251-1/+1
| | |
| * | Pass locals in to the template object on constructionAaron Patterson2019-02-253-11/+10
| | | | | | | | | | | | | | | | | | | | | This commit ensures that locals are passed in to the template objects when they are constructed, then removes the `locals=` mutator on the template object. This means we don't need to mutate Template objects with locals in the `decorate` method.
* | | [ci skip] Renamed formats -> format in test after #35406Abhay Nikam2019-02-261-1/+1
|/ /
* | Improve Template#inspect output (#35407)John Hawthorn2019-02-251-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | * Don't call inspect from identifier_method_name * Add locals Template#inspect Handler, formats, and variant are usually obvious from looking at the identifier. However it's not uncommon to have different locals for the same template so we should make that obvious in inspect. * Add tests for short_identifier and inspect [John Hawthorn + Rafael Mendonça França]
* | 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.