aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | Add guides for system testingeileencodes2017-02-201-3/+251
| | | | | | | | | | | | | | | | | | | | | | | | | This adds the required guides for how to write and use system tests in your application.
| * | | | Cleanup Rails provided helperseileencodes2017-02-206-109/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Clean up screenshot helper Updates documentation to be clearer and separates the concerns of saving the image, setting the image path, and displaying the image. 2. Remove Rails provided assertions for selectors This was moved upstream to Capybara and is no longer necessary to be included in Rails 3. Remove form helper The form helper is pretty specific to Basecamp's needs and may not be helpful outside of Rails.
| * | | | Remove teardown codeeileencodes2017-02-201-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since I've moved the teardown code that contains the screenshot handling to be generated when the application is generated this code was interfering with the screenshot taking. Because this runs before any app teardown code we would be resetting sessions before taking the screenshot, resulting in a blank browser window. The code to reset the sessions must come AFTER a screenshot has been taken.
| * | | | Use 1 thread instead of 4 with Puma server for system testseileencodes2017-02-201-1/+1
| | | | |
| * | | | Set Webrick logger for system testingeileencodes2017-02-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If this is not set Webrick will log **everything** to STDOUT and distract from the running tests. This will instead log to the log file. This example was extracted from the Capybara source code.
| * | | | Rename call to runeileencodes2017-02-203-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Call doesn't make as much sense here, we're really starting to run the driver.
| * | | | Amend documentationeileencodes2017-02-205-34/+46
| | | | | | | | | | | | | | | | | | | | | | | | | Many changes have been made since the beginning so documentation needed a refresher.
| * | | | Refactor config settings to use generated fileeileencodes2017-02-2015-47/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-204-20/+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-2041-219/+398
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2015-21/+20
| | | | | | | | | | | | | | | | | | | | Rubocop / code climate don't like single quotes and prefer doubles.
| * | | | Refactor so all drivers use Puma by defaulteileencodes2017-02-205-43/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Puma is the default webserver of Rails. Because of this it doesn't make sense to run tests in Webkit if the default server is Puma. Here I've refactored the webserver to be it's own standalone module so it can be shared between Rails' selenium default driver and Capybara's defaut drivers.
| * | | | Add support for screenshotseileencodes2017-02-206-2/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change adds support, tests, and documentation for the screenshot helper. If taking screenshots is supported by the driver (for example Rack Test doesn't support screenshots) then a screenshot will be taken if the test fails.
| * | | | Reconfigure how the drivers workeileencodes2017-02-2010-144/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes the useless Rack Test Driver that Rails was providing and moves to a shim like approach for default adapters. If someone wants to use one of the default Capybara Drivers then we will initialize a new `CapybaraDriver` that simply sets the default driver. Rails though is much more opinionated than Capybara and to make system testing a "works out of the box" framework in Rails we have the `RailsSeleniumDriver`. This driver sets defaults that Rails deems important for selenium testing. The purpose of this is to simply add a test and it just works.
| * | | | Add documentation for system testseileencodes2017-02-209-7/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Document Rails::SystemTestCase * Document setting drivers with the configration options * Document using the getter/setter for driver adapters * Document the CapybaraRackTestDriver and defaults * Document the CapybaraSeleniumDriver and defaults * Document custom assertions provided by System Testing * Document custom form helpers provided by System Testing
| * | | | Add tests for system testingeileencodes2017-02-209-1/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| * | | | Fix Railtie to pass class when setting optionseileencodes2017-02-203-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will clean up the railtie quite a bit, rather than passing a set of hash keys call the new class directly like we do with ActiveJob. Only call driver once when tests start rather than in every single test setup. This is more performant, and the other way was creating unnecessary calls.
| * | | | Move SystemTesting::Base into SystemTestCaseeileencodes2017-02-202-13/+6
| | | | | | | | | | | | | | | | | | | | | | | | | There's no real benefit to the using the `Base` class here because `SystemTestCase` is already a very small class.
| * | | | Refactor to not include `capybara/rails`eileencodes2017-02-201-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rails itself is not a Rails application so instead of including `capybara/rails` we should use the code in there to set up the test. The only reason capybara needs to include capybara/rails in the first place is because Rails didn't yet support it.
| * | | | Refactor driver adapter getter/settereileencodes2017-02-202-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it easier to ask the system test what driver adapter it is currently using, and makes it easier to change that setting when necessary.
| * | | | Inherit from ActionDispatch::IntegrationTesteileencodes2017-02-201-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Integration tests already handle all the fancy url mapping we need to do so inherting from that allows us to not need to reinvent the wheel in terms of loading up the route handling required to use `visit users_path` over `visit /users`.
| * | | | Add test assertion helperseileencodes2017-02-203-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | Adds assertions that are not part of Capybara but may be useful to Rails users writing system tests.
| * | | | Add configuration option for driver adaptereileencodes2017-02-204-4/+19
| | | | | | | | | | | | | | | | | | | | | | | | | This allows any application to change the driver adapter based on the config settings in the test env.
| * | | | Add ForHelper's for system testseileencodes2017-02-203-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | These FormHelpers are selectors that aren't a capybara default but are considered useful for Rails applications.
| * | | | Add configurable selenium driver for capybaraeileencodes2017-02-202-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is not yet configurable but is the minimum required to make Capybara work with the Selenium driver. A lot of this will change as the tests get fleshed out and the initialization requirements will eventually be configurable via the application.
| * | | | Add ability to run system tests via Capybaraeileencodes2017-02-206-0/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Capybara defaults to Rack Test for it's driver and works out of the box but this adds the headers and allows for future configurable adapters for system testing.
| * | | | Add skeleton for Rails::SystemTestCaseeileencodes2017-02-202-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-205-10/+34
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 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-185-10/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When executing the test via rake, since `rake` is set for `run_via`, `ruby` should not be set. Related 2cb6c27310452da11b93d729c3b760ce988106e1
* | | | | | Revert "Merge pull request #27925 from robin850/hwia-removal"Kasper Timm Hansen2017-02-204-49/+4
| |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pointed out by @matthewd that the HWIA subclass changes the AS scoped class and top-level HWIA hierarchies out from under existing classes. This reverts commit 71da39097b67114329be6d8db7fe6911124531af, reversing changes made to 41c33bd4b2ec3f4a482e6030b6fda15091d81e4a.
* | | | | Merge pull request #27863 from robin850/api-improvementsMatthew Draper2017-02-215-16/+51
|\ \ \ \ \ | | | | | | | | | | | | 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-074-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 #25877 from kamipo/delegate_to_scope_rather_than_mergeMatthew Draper2017-02-215-34/+29
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | Delegate to `scope` rather than `merge!` for collection proxy
| * | | | | Define `respond_to_missing?` instead of `respond_to?`Ryuta Kamizono2017-02-211-4/+4
| | | | | |
| * | | | | Cache target scope for collection proxyRyuta Kamizono2016-12-252-3/+4
| | | | | |
| * | | | | No need to cache collection proxies separatelyRyuta Kamizono2016-12-253-17/+1
| | | | | | | | | | | | | | | | | | | | | | | | Because merging the association scope was removed.
| * | | | | Delegate to `scope` rather than `merge!` for collection proxyRyuta Kamizono2016-12-252-14/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `merge! association.scope(nullify: false)` is expensive but most methods do not need the merge.
* | | | | | Merge pull request #28079 from ck3g/rename-osx-to-macosRobin Dupret2017-02-205-9/+9
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | Update Guides to use macOS instead of Mac OS X [ci skip]
| * | | | | [ci skip] Update Guides to use macOS instead of Mac OS XVitali Tatarintev2017-02-205-9/+9
|/ / / / /
* | | | | Merge pull request #27925 from robin850/hwia-removalKasper Timm Hansen2017-02-204-4/+49
|\ \ \ \ \ | | | | | | | | | | | | Remove the top-level `HashWithIndifferentAccess` contant
| * | | | | Deprecate the top-level `HashWithIndifferentAccess` contantRobin Dupret2017-02-194-4/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This constant was kept for the sake of backward compatibility; it is still available under `ActiveSupport::HashWithIndifferentAccess`. Furthermore, since Ruby 2.5 (https://bugs.ruby-lang.org/issues/11547) won't support top level constant lookup, people would have to update their code anyway.
* | | | | | Import rails-ujs v0.1.0 from rails/rails-ujsGuillermo Iguaran2017-02-2011-255/+35
| | | | | |
* | | | | | 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 #28070 from kamipo/improve_create_table_force_trueGuillermo Iguaran2017-02-201-2/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Improve `create_table force: true`
| * | | | | | | Improve `create_table force: true`Ryuta Kamizono2017-02-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extra `data_source_exists?(table_name)` is unneeded if `drop_table(table_name, if_exists: true)` directly.
* | | | | | | | Merge pull request #28073 from bogdanvlviv/routes-in-testsGuillermo Iguaran2017-02-204-9/+8
|\ \ \ \ \ \ \ \ | |_|_|/ / / / / |/| | | | | | | Add assertion to polymorphic_routes_test.rb
| * | | | | | | Set correct "routes" in tests casesbogdanvlviv2017-02-203-7/+7
| | | | | | | |