aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/fixtures
Commit message (Collapse)AuthorAgeFilesLines
* Use frozen string literal in actionpack/Kir Shatrov2017-07-2912-0/+24
|
* Revert "Merge pull request #29540 from kirs/rubocop-frozen-string"Matthew Draper2017-07-0221-21/+0
| | | | | This reverts commit 3420a14590c0e6915d8b6c242887f74adb4120f9, reversing changes made to afb66a5a598ce4ac74ad84b125a5abf046dcf5aa.
* Enforce frozen string in RubocopKir Shatrov2017-07-0121-0/+21
|
* Use recyclable cache keys (#29092)David Heinemeier Hansson2017-05-184-4/+4
|
* Fix all style guides violationsRafael Mendonça França2017-04-196-6/+6
| | | | | Closes #28382 Closes #28651
* Add more rubocop rules about whitespacesRafael Mendonça França2016-10-291-1/+1
|
* Remove mona lisa image from the testsRafael Mendonça França2016-10-252-0/+0
| | | | | This image has copyright that we are not giving so it is better to use one image that we own the copyright.
* Fix deadlock that can occur when child live thread tries to load a constant ↵Alex Chinn2016-08-151-0/+2
| | | | after writing to the stream.
* normalizes indentation and whitespace across the projectXavier Noria2016-08-064-4/+3
|
* applies new string literal convention in actionpack/testXavier Noria2016-08-063-3/+3
| | | | | The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
* Fix adding implicitly rendered namespaced template digests to ETagsJavan Makhmali2016-07-131-0/+1
|
* Fix adding implicitly rendered template digests to ETagsJavan Makhmali2016-06-281-0/+1
| | | | Signed-off-by: Jeremy Daer <jeremydaer@gmail.com>
* Properly verify that cache accepts and user `expires` value.Vipul A M2016-04-171-1/+1
|
* Additional review of 6b31761.Kasper Timm Hansen2016-02-251-1/+0
| | | | | * Fixes typos in error message and release notes. * Removes unused template test file.
* Lock down new `ImplicitRender` behavior for 5.0 RCGodfrey Chan2016-02-254-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Conceptually revert #20276 The feature was implemented for the `responders` gem. In the end, they did not need that feature, and have found a better fix (see plataformatec/responders#131). `ImplicitRender` is the place where Rails specifies our default policies for the case where the user did not explicitly tell us what to render, essentially describing a set of heuristics. If the gem (or the user) knows exactly what they want, they could just perform the correct `render` to avoid falling through to here, as `responders` did (the user called `respond_with`). Reverting the patch allows us to avoid exploding the complexity and defining “the fallback for a fallback” policies. 2. `respond_to` and templates are considered exhaustive enumerations If the user specified a list of formats/variants in a `respond_to` block, anything that is not explicitly included should result in an `UnknownFormat` error (which is then caught upstream to mean “406 Not Acceptable” by default). This is already how it works before this commit. Same goes for templates – if the user defined a set of templates (usually in the file system), that set is now considered exhaustive, which means that “missing” templates are considered `UnknownFormat` errors (406). 3. To keep API endpoints simple, the implicit render behavior for actions with no templates defined at all (regardless of formats, locales, variants, etc) are defaulted to “204 No Content”. This is a strictly narrower version of the feature landed in #19036 and #19377. 4. To avoid confusion when interacting in the browser, these actions will raise an `UnknownFormat` error for “interactive” requests instead. (The precise definition of “interactive” requests might change – the spirit here is to give helpful messages and avoid confusions.) Closes #20666, #23062, #23077, #23564 [Godfrey Chan, Jon Moss, Kasper Timm Hansen, Mike Clark, Matthew Draper]
* Make collection caching explicit.Kasper Timm Hansen2016-02-201-1/+1
| | | | | | | | | | | | Having collection caching that wraps templates and automatically tries to infer if they are cachable proved to be too much of a hassle. We'd rather have it be something you explicitly turn on. This removes much of the code and docs to explain the previous automatic behavior. This change also removes scoped cache keys and passing cache_options.
* Merge pull request #22800 from dgynn/pr_cache_helper_optionsRafael Mendonça França2016-01-291-0/+3
|\ | | | | | | Restore ability to pass extra options to cache stores
| * restore ability to pass extra options to cache storesDave Gynn2015-12-261-0/+3
|/ | | | | | | | | The `cache` helper methods should pass any extra options to the cache store. For example :expires_in would be a valid option if memcache was the cache store. The change in commit da16745 broke the ability to pass any options other than :skip_digest and :virtual_path. This PR restores that functionality and adds a test for it.
* Add failing spec on utf8 filename with percent characterKohei Suzuki2015-08-041-0/+10
|
* Merge pull request #20138 from tgxworld/deprecated_assert_templateRafael Mendonça França2015-06-011-1/+1
|\ | | | | Deprecate `assert_template` and `assigns()`.
| * Remove `assigns` and `assert_template`.Guo Xiang Tan2015-05-301-1/+1
| |
* | Merge pull request #20284 from kaspth/fix-caching-testRafael Mendonça França2015-06-012-0/+2
|\ \ | |/ |/| Move expectation to instance level.
| * Replace expectation with state check.Kasper Timm Hansen2015-05-302-0/+2
| | | | | | | | The tests would still pass if the cache call in the rendered templates were removed.
* | config.static_index configures directory index "index.html" filenameEliot Sykes2015-05-284-0/+4
|/ | | | | | Set `config.static_index` to serve a static directory index file not named `index`. For example, to serve `main.html` instead of `index.html` for directory requests, set `config.static_index` to `"main"`.
* Merge pull request #18948 from kaspth/automatic-collection-cachingRafael Mendonça França2015-02-253-0/+8
|\ | | | | Merge multi_fetch_fragments.
| * Collections automatically cache and fetch partials.Kasper Timm Hansen2015-02-213-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Collections can take advantage of `multi_read` if they render one template and their partials begin with a cache call. The cache call must correspond to either what the collections elements are rendered as, or match the inferred name of the partial. So with a notifications/_notification.html.erb template like: ```ruby <% cache notification %> <%# ... %> <% end %> ``` A collection would be able to use `multi_read` if rendered like: ```ruby <%= render @notifications %> <%= render partial: 'notifications/notification', collection: @notifications, as: :notification %> ```
* | Removing unused templateThiago Pradi2015-02-221-5/+0
|/
* Typo: Hello = Guten Tag (in German)Tu Hoang2014-12-051-1/+1
|
* give a better error message for misspelled helpersXavier Noria2014-10-251-0/+5
| | | | | | See comment in this patch for the rationale. References #16468
* Refactor out Dir.glob from ActionDispatch::Staticschneems2014-08-274-0/+4
| | | | | | | | Dir.glob can be a security concern. The original use was to provide logic of fallback files. Example a request to `/` should render the file from `/public/index.html`. We can replace the dir glob with the specific logic it represents. The glob {,index,index.html} will look for the current path, then in the directory of the path with index file and then in the directory of the path with index.html. This PR replaces the glob logic by manually checking each potential match. Best case scenario this results in one less file API request, worst case, this has one more file API request. Related to #16464 Update: added a test for when a file of a given name (`public/bar.html` and a directory `public/bar` both exist in the same root directory. Changed logic to accommodate this scenario.
* Address comments on Gzip implementationschneems2014-08-244-0/+8
| | | | | | | | | | | | | | | - don't mutate PATH_INFO in env, test - test fallback content type matches Rack::File - change assertion style - make HTTP_ACCEPT_ENCODING comparison case insensitive - return gzip path from method instead of true/false so we don't have to assume later - don't allocate un-needed hash. Original comments: https://github.com/rails/rails/commit/ cfaaacd9763642e91761de54c90669a88d772e5a#commitcomment-7468728 cc @jeremy
* Enable gzip compression by defaultschneems2014-08-204-0/+8
| | | | | | If someone is using ActionDispatch::Static to serve assets and makes it past the `match?` then the file exists on disk and it will be served. This PR adds in logic that checks to see if the file being served is already compressed (via gzip) and on disk, if it is it will be served as long as the client can handle gzip encoding. If not, then a non gzip file will be served. This additional logic slows down an individual asset request but should speed up the consumer experience as compressed files are served and production applications should be delivered with a CDN. This PR allows a CDN to cache a gzip file by setting the `Vary` header appropriately. In net this should speed up a production application that are using Rails as an origin for a CDN. Non-asset request speed is not affected in this PR.
* Remove more references to respond_withJosé Valim2014-08-177-6/+0
|
* Remove unused fixturesRafael Mendonça França2014-07-1660-98/+0
| | | | These fixtures are not used in actionpack tests.
* Ensure LookupContext in Digestor selects correct variantPiotr Chmolowski2014-03-091-0/+3
| | | | | | | | | | Related to: #14242 #14243 14293 Variants passed to LookupContext#find() seem to be ignored, so I've used the setter instead: `finder.variants = [ variant ]`. I've also added some more test cases for variants. Hopefully this time passing tests will mean it actually works.
* Merge pull request #13470 from strzalek/variants-all-anyDavid Heinemeier Hansson2013-12-312-0/+2
|\ | | | | Add any/all support for variants
| * Add any/all support for variantsŁukasz Strzałkowski2013-12-262-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Like `format.any`, you can do the same with variants. It works for both inline: respond_to do |format| format.html.any { render text: "any" } format.html.phone { render text: "phone" } end and block syntax: respond_to do |format| format.html do |variant| variant.any(:tablet, :phablet){ render text: "any" } variant.phone { render text: "phone" } end end
* | Fix Encoding::CompatibilityError when public path is UTF-8Andrew White2013-12-295-0/+7
|/ | | | | | | | | | | | | | In #5337 we forced the path encoding to ASCII-8BIT to prevent static file handling from blowing up before an application has had chance to deal with possibly invalid urls. However this has a negative side effect of making it an incompatible encoding if the application's public path has UTF-8 characters in it. To work around the problem we check to see if the path has a valid encoding once it has been unescaped. If it is not valid then we can return early since it will not match any file anyway. Fixes #13518
* Inline variants syntaxŁukasz Strzałkowski2013-12-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | In most cases, when setting variant specific code, you're not sharing any code within format. Inline syntax can vastly simplify defining variants in those situations: respond_to do |format| format.js { render "trash" } format.html do |variant| variant.phone { redirect_to progress_path } variant.none { render "trash" } end end Becomes: respond_to do |format| format.js { render "trash" } format.html.phone { redirect_to progress_path } format.html.none { render "trash" } end
* Variants can be declared without a block to signify their presence in the ↵David Heinemeier Hansson2013-12-071-0/+1
| | | | controller
* Action Pack VariantsŁukasz Strzałkowski2013-12-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default, variants in the templates will be picked up if a variant is set and there's a match. The format will be: app/views/projects/show.html.erb app/views/projects/show.html+tablet.erb app/views/projects/show.html+phone.erb If request.variant = :tablet is set, we'll automatically be rendering the html+tablet template. In the controller, we can also tailer to the variants with this syntax: class ProjectsController < ActionController::Base def show respond_to do |format| format.html do |html| @stars = @project.stars html.tablet { @notifications = @project.notifications } html.phone { @chat_heads = @project.chat_heads } end format.js format.atom end end end The variant itself is nil by default, but can be set in before filters, like so: class ApplicationController < ActionController::Base before_action do if request.user_agent =~ /iPad/ request.variant = :tablet end end end This is modeled loosely on custom mime types, but it's specifically not intended to be used together. If you're going to make a custom mime type, you don't need a variant. Variants are for variations on a single mime types.
* Fix header Content-Type: #<Mime::NullType:...> in localized templateAngelo capilleri2013-12-031-0/+1
| | | | | | | | This PR fixes #13064 regression bug introduced by the #8085 Now in _process_format when the format is a Mime::NullType nothing is written in self.content_type. In this way the method Response#assign_default_content_type_and_charset can write the the default mime_type.
* Fixing repond_with working directly on the options hashBlueHotDog2013-10-091-0/+0
| | | | | | | | This fixes an issue where the respond_with worked directly with the given options hash, so that if a user relied on it after calling respond_with, the hash wouldn't be the same. Fixes #12029
* Remove HelperyTestHelper not used in any testclaudiob2013-09-141-5/+0
| | | | | | HelperyTestHelper was introduced in 66ef922 by @josevalim to pair with HelperyTestController. This test controller was later removed in e10a253 by @strzalek, leaving HelperyTestHelper unused
* Remove helper fixtures not used in any testclaudiob2013-09-091-2/+0
| | | | | | The fixture for module AbcHelper defines three functions bare_a, bare_b and bare_c, but only bare_a is used in the code that tests helper functions.
* Move abstract's controller tests to AVŁukasz Strzałkowski2013-08-251-5/+0
| | | | The ones that were actually testing AV functionality and should belong in there
* Move remaining layouts tests to AVŁukasz Strzałkowski2013-08-259-8/+0
|
* Remove unused fixtures and models from AP testsŁukasz Strzałkowski2013-08-256-6/+0
|
* Move view_paths from AP to AVŁukasz Strzałkowski2013-08-252-2/+0
|
* Show real LoadError on helpers requirePiotr Niełacny2013-07-101-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When helper try to require missing file rails will throw exception about missing helper. # app/helpers/my_helper.rb require 'missing' module MyHelper end And when we try do load helper class ApplicationController helper :my end Rails will throw exception. This is wrong because there is a helper file. Missing helper file helpers/my_helper.rb Now when helper try to require non-existed file rails will throw proper exception. No such file to load -- missing