aboutsummaryrefslogtreecommitdiffstats
path: root/railties
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #23138 from rails/custom-url-helpers-and-polymorphic-urlsAndrew White2017-02-211-2/+185
|\ | | | | Implement custom url helpers and polymorphic mapping
| * Split direct method into twoAndrew White2017-02-211-4/+4
| | | | | | | | | | Use a separate method called `resolve` for the custom polymorphic mapping to clarify the API.
| * Prefer remove_method over undef_methodAndrew White2017-02-211-0/+58
| | | | | | | | | | | | Using `undef_method` means that when a route is removed any other implementations of that method in the ancestor chain are inaccessible so instead use `remove_method` which restores access to the ancestor.
| * Add custom polymorphic mappingAndrew White2017-02-211-4/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow the use of `direct` to specify custom mappings for polymorphic_url, e.g: resource :basket direct(class: "Basket") { [:basket] } This will then generate the following: >> link_to "Basket", @basket => <a href="/basket">Basket</a> More importantly it will generate the correct url when used with `form_for`. Fixes #1769.
| * Rename url_helper to directAndrew White2017-02-211-4/+4
| |
| * Add support for defining custom url helpers in routes.rbAndrew White2017-02-211-2/+33
| | | | | | | | | | | | | | | | | | | | | | Allow the definition of custom url helpers that will be available automatically wherever standard url helpers are available. The current solution is to create helper methods in ApplicationHelper or some other helper module and this isn't a great solution since the url helper module can be called directly or included in another class which doesn't include the normal helper modules. Reference #22512.
* | Use released arelRafael Mendonça França2017-02-211-1/+0
| |
* | Revert back to the original of using package.json in the root of the project ↵David Heinemeier Hansson2017-02-217-13/+13
| | | | | | | | (#28093)
* | Only load SystemTestCase if Capybara is definedeileencodes2017-02-211-5/+10
|/ | | | | | | | For applications that are upgrading or applications that are choosing to skip system testing Capbyara will not be available. SystemTestCase and friends shoud only be loaded if Capbyara is defined. Fixes #28094
* Merge pull request #28088 from y-yagi/do_not_generate_templates_to_api_docGuillermo Iguaran2017-02-211-1/+1
|\ | | | | Do not display template files on API doc [ci skip]
| * Do not display template files on API doc [ci skip]yuuji.yaginuma2017-02-211-1/+1
| |
* | Fix run_via[]= backwards compatibility.Kasper Timm Hansen2017-02-212-1/+13
| | | | | | | | | | | | | | | | | | ``` Minitest.run_via[:rails] = true ``` 👆 would break because a simple alias won't catch the second true argument there.
* | Merge pull request #28055 from robertomiranda/patch-3Guillermo Iguaran2017-02-212-2/+2
|\ \ | |/ |/| Use Puma 3.7
| * Use Puma 3.7.xRoberto Miranda2017-02-202-2/+2
| | | | | | | | ref this commit seems that has not been merged into 3.7 https://github.com/puma/puma/commit/42bec4600c51ab8a1c1ee5a0e1b738a4ffd82bf2
* | Merge pull request #26703 from eileencodes/rails_system_testsEileen M. Uchitelle2017-02-2019-1/+134
|\ \ | | | | | | WIP: Capybara Integration with Rails (AKA System Tests)
| * | Rename system_test_helper -> application_system_test_caseeileencodes2017-02-206-4/+4
| | | | | | | | | | | | | | | | | | This renames the system test helper file to be application system test case to match what the rest of Rails does. In the future we should consider changing the test_helper to match.
| * | Fix default host in setup, move teardown to helper fileeileencodes2017-02-203-15/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Override integration test default host Integration tests automatically set the default host to 'http://example.com'. This works fine for integration tests because they are not real browser sessions, but doesn't work fine for system tests because they are real browser sessions. We can override this by setting the `host!` in `before_setup. The `Capybara.always_include_port` will allow the test to look at `127.0.0.1:port capybara picks` and properly redirect the test. Any application can override this by setting the `host!` in their system test helper. Generally though, applications are going to be using localhost. In this commit I also moved the setup and teardown into their own module for tidiness. * Move teardown settings into system test case These configuration options can be put into the system test case file instead of the generated system tests helper file. This is an implementation detail and therefore shouldn't be generated with the template.
| * | Add default configuration to generated system test helpereileencodes2017-02-203-0/+6
| | | | | | | | | | | | | | | This serves as self documentation so users know how to change the driver.
| * | Move and rename system testseileencodes2017-02-208-11/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Move system tests back into Action Pack * Rename `ActionSystemTest` to `ActionDispatch::SystemTestCase` * Remove private base module and only make file for public `SystemTestCase` class, name private module `SystemTesting` * Rename `ActionSystemTestCase` to `ApplicationSystemTestCase` * Update corresponding documentation and guides * Delete old `ActionSystemTest` files
| * | Refactor config settings to use generated fileeileencodes2017-02-2011-19/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Originally I had set up system testing to have one configuration option to be set in the test environment. After thinking it over I think a generated class on app creation would be best. The reason for this is Capybara has a ton of configuration options that I'm sure some folks want to use. Thinking about how we handle screenshots, database transactions, and a whole bunch of other settings it would be better for users to be able to turn all of that on and off. When an app or scaffold is generated a `test/system_test_helper.rb` test helper will be generated as well. This will contain the class for tests to inherit from `ActionSystemTestCase` which will inherit from `ActionSystemTest::Base`. Here is where users can change the test driver, remove the screenshot helper, and add their additional Capybara configuration.
| * | Don't load ActionSystemTest in productioneileencodes2017-02-202-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By moving to the TestUnit Railtie, and doing the file requirement inside the onload call we can avoid loading ActionSystemTest in production and load it in the test env. This is important for performance reasons - loading up unnecessary files and object is expensive, especially when they should never be used in production.
| * | Turn system testing into it's own gem and renameeileencodes2017-02-208-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Renames `Rails::SystemTestCase` to `ActionSystemTest` and moves it to a gem under the Rails name. We need to name the class `ActionSystemTestCase` because the gem expects a module but tests themselves expect a class. Adds MIT-LICENSE, CHANGELOG, and README for the future.
| * | Appease Rubocopeileencodes2017-02-202-2/+2
| | | | | | | | | | | | Rubocop / code climate don't like single quotes and prefer doubles.
| * | Add tests for system testingeileencodes2017-02-203-1/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Adds test case test * Adds driver adapter test * Adds tests for capybara seleium driver (testing the settings not actually opening the browser to test capybara w/ selenium because that would so so so slow) * Adds tests for rack test driver * Adds tests for generators
| * | Add configuration option for driver adaptereileencodes2017-02-201-0/+1
| | | | | | | | | | | | | | | This allows any application to change the driver adapter based on the config settings in the test env.
| * | Add skeleton for Rails::SystemTestCaseeileencodes2017-02-201-0/+8
| | | | | | | | | | | | | | | | | | | | | This skelton is the bare minimum to get system tests to actually run in an application. This of course doesn't yet actually run a test but it is enough for `bin/rails test:system` to attempt to run files in `test/system` that inherit from `Rails::SystemTestCase`.
| * | Add generators and ability to run system testseileencodes2017-02-2014-0/+66
| | | | | | | | | | | | | | | | | | | | | * Generates system test requirements with new Rails app * Includes required default gems in Gemfile for Rails app * Generates a single system test case * Generates a system test case with scaffold
* | | Merge pull request #27941 from ↵Kasper Timm Hansen2017-02-203-7/+31
|\ \ \ | |/ / |/| | | | | | | | y-yagi/prevent_multiple_values_being_set_to_run_via Prevent multiple values being set to `run_via`
| * | Prevent multiple values being set to `run_via`yuuji.yaginuma2017-02-183-7/+31
| | | | | | | | | | | | | | | When executing the test via rake, since `rake` is set for `run_via`, `ruby` should not be set. Related 2cb6c27310452da11b93d729c3b760ce988106e1
* | | Merge pull request #27863 from robin850/api-improvementsMatthew Draper2017-02-213-16/+47
|\ \ \ | | | | | | | | Some improvements to the API site's sidebar
| * | | Properly nest core classes under a "Core Extensions" labelRobin Dupret2017-02-202-9/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since Active Support is monkey patching a lot of core classes, let's rather document these changes under a new section so they are still documented but not encumbering the sidebar. We can safely remove the rescuing of the `LoadError` since as of cd7cc525, it's not possible to generate the API from an application. [ci skip] [Kasper Timm Hansen & Robin Dupret]
| * | | Avoid documenting private or external classesRobin Dupret2017-02-072-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are a lot of monkey patches inside the code base but there's no need to document external constants so let's remove them from the documentation Also, since there are monkey patches for some test cases classes, there were sometimes both documented and sneaked under the wrong section in the sidebar. Finally, for future references, the `active_support/vendor` folder has been originally ignored in https://git.io/vDqfA but no longer exists. [ci skip]
* | | | Merge pull request #28059 from y-yagi/do_not_run_git_init_inside_test_dummyGuillermo Iguaran2017-02-202-1/+2
|\ \ \ \ | | | | | | | | | | Do not run `git init` in dummy application
| * | | | Do not run `git init` in dummy applicationyuuji.yaginuma2017-02-182-1/+2
| | |_|/ | |/| |
* | | | Merge pull request #28013 from iguchi1124/fix-missing-namespace-wrapperGodfrey Chan2017-02-192-2/+8
|\ \ \ \ | | | | | | | | | | Add missing module namespacing wrapper
| * | | | Add test for generate namespaced integration testShota Iguchi2017-02-161-2/+6
| | | | |
| * | | | Add missing module namespacing wrapperShota Iguchi2017-02-151-0/+2
| |/ / / | | | | | | | | | | | | refs: #28011
* / / / Share the common implementation between apps and engines.Kasper Timm Hansen2017-02-181-12/+7
|/ / /
* | | Merge pull request #27605 from ↵Godfrey Chan2017-02-143-3/+27
|\ \ \ | | | | | | | | | | | | | | | | mtsmfm/fix-generator-command-for-nested-rails-engine-take-2 Fix generator command for nested (namespaced) rails engine (take 2)
| * | | Fix generator command for nested (namespaced) rails engine (take 2)Fumiaki MATSUSHIMA2017-01-073-3/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rewrite https://github.com/rails/rails/pull/27550 085546df45 was reverted (b6ffb5efcb) because it change the return of `namespaced_path` from String to Array. ---------------- If we create nested (namespaced) rails engine such like bukkits-admin, `bin/rails g scaffold User name:string age:integer` will create `bukkits-admin/app/controllers/bukkits/users_controller.rb` but it should create `bukkits-admin/app/controllers/bukkits/admin/users_controller.rb`. In #6643, we changed `namespaced_path` as root path because we supposed application_controller is always in root but nested rails engine's application_controller will not.
* | | | Remove unused requireRyuta Kamizono2017-02-122-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | These files are not using `strip_heredoc`. Closes #27976
* | | | Add `Style/EmptyLinesAroundMethodBody` in `.rubocop.yml` and remove extra ↵Ryuta Kamizono2017-02-121-1/+0
| | | | | | | | | | | | | | | | empty lines
* | | | Fix rubocop violationsRafael Mendonça França2017-02-091-1/+1
| | | |
* | | | remove `ActiveSupport.halt_callback_chains_on_return_false` from everywhereyuuji.yaginuma2017-02-082-4/+0
| |_|/ |/| |
* | | Correct spellingBenjamin Fleischer2017-02-051-2/+2
| | | | | | | | | | | | | | | | | | | | | ``` go get -u github.com/client9/misspell/cmd/misspell misspell -w -error -source=text . ```
* | | Merge pull request #27802 from domcleal/27801-multiple-rake-testsKasper Timm Hansen2017-02-053-7/+28
|\ \ \ | | | | | | | | Collect all file patterns when running multiple rake test tasks
| * | | Collect all file patterns when running multiple rake test tasksDominic Cleal2017-02-043-7/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaces the rake_patterns instance variable with simple require, as `autorun` will run tests from all eagerly required test files. Fixes #27801
* | | | Merge pull request #27891 from y-yagi/ignore_yarn_error_logEileen M. Uchitelle2017-02-032-0/+6
|\ \ \ \ | | | | | | | | | | Ignore yarn error log file
| * | | | Ignore yarn error log fileyuuji.yaginuma2017-02-032-0/+6
| |/ / /
* / / / generate mailer layout files only when it does not existyuuji.yaginuma2017-02-021-1/+1
|/ / / | | | | | | | | | If already have layout files, in many cases use it.