aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test
Commit message (Collapse)AuthorAgeFilesLines
* Ensure Active Record connection consistencyschneems2014-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently Active Record can be configured via the environment variable `DATABASE_URL` or by manually injecting a hash of values which is what Rails does, reading in `database.yml` and setting Active Record appropriately. Active Record expects to be able to use `DATABASE_URL` without the use of Rails, and we cannot rip out this functionality without deprecating. This presents a problem though when both config is set, and a `DATABASE_URL` is present. Currently the `DATABASE_URL` should "win" and none of the values in `database.yml` are used. This is somewhat unexpected to me if I were to set values such as `pool` in the `production:` group of `database.yml` they are ignored. There are many ways that active record initiates a connection today: - Stand Alone (without rails) - `rake db:<tasks>` - ActiveRecord.establish_connection - With Rails - `rake db:<tasks>` - `rails <server> | <console>` - `rails dbconsole` We should make all of these behave exactly the same way. The best way to do this is to put all of this logic in one place so it is guaranteed to be used. Here is my prosed matrix of how this behavior should work: ``` No database.yml No DATABASE_URL => Error ``` ``` database.yml present No DATABASE_URL => Use database.yml configuration ``` ``` No database.yml DATABASE_URL present => use DATABASE_URL configuration ``` ``` database.yml present DATABASE_URL present => Merged into `url` sub key. If both specify `url` sub key, the `database.yml` `url` sub key "wins". If other paramaters `adapter` or `database` are specified in YAML, they are discarded as the `url` sub key "wins". ``` ### Implementation Current implementation uses `ActiveRecord::Base.configurations` to resolve and merge all connection information before returning. This is achieved through a utility class: `ActiveRecord::ConnectionHandling::MergeAndResolveDefaultUrlConfig`. To understand the exact behavior of this class, it is best to review the behavior in activerecord/test/cases/connection_adapters/connection_handler_test.rb though it should match the above proposal.
* add a more restricted codepath for templates fixes #13390Aaron Patterson2014-01-081-4/+25
|
* refactor generator tests to use block form of TempfileAaron Patterson2014-01-081-36/+30
|
* Add missing tests for invalid names in `rails plugin new`Robin Böning2014-01-061-0/+6
| | | | | * Test for: Invalid plugin name, because of reserved rails word. * Test for: Invalid plugin name because of constant name that is already in use.
* Add preview_path to autoload_paths in after_initializeAndrew White2014-01-041-1/+41
| | | | | | | | | | Only config.autoload_paths is frozen, so add the preview_path to ActiveSupport::Dependencies.autoload_paths directly in an after_initialize block. Also protect against a blank preview_path being added to autoload_paths which can cause a serious slowdown as Dir[] tries to load all *_preview.rb files under / Fixes #13372
* Use DATABASE_URL by defaultschneems2014-01-021-8/+1
| | | See https://github.com/rails/rails/pull/13463#issuecomment-31480799 for full conversation.
* Automatically maintain test database schemaJon Leighton2014-01-023-3/+57
| | | | | | | | | | | | | | * Move check from generated helper to test_help.rb, so that all applications can benefit * Rather than just raising when the test schema has pending migrations, try to load in the schema and only raise if there are pending migrations afterwards * Opt out of the check by setting config.active_record.maintain_test_schema = false * Deprecate db:test:* tasks. The test helper is now fully responsible for maintaining the test schema, so we don't need rake tasks for this. This is also a speed improvement since we're no longer reloading the test database on every call to "rake test".
* Adding missing requireRafael Mendonça França2014-01-021-0/+1
|
* Move default production database to URL sub keyschneems2014-01-011-1/+5
| | | | By using the URL sub key in the `database.yml` by default we are exposing the ability to set other attributes such as `pool` or `reap_frequency` without need of modifying the URL to contain non-connection specific information.
* fix 2.1.0 bug :(schneems2013-12-251-1/+1
|
* ensure environment is run before db:structure:loadschneems2013-12-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now `db:drop` depends on `load_config` since so when `db:drop` gets executed `load_config` gets run. `db:structure:load` depends on `[:environment, :load_config]`. So before it runs, it executes `environment` but because `load_config` has already executed it is skipped. Note `db:load_config` is "invoke"-d twice, but only "execute"-d once: ``` ** Invoke db:drop (first_time) ** Invoke db:load_config (first_time) ** Execute db:load_config ** Execute db:drop ** Invoke db:structure:load (first_time) ** Invoke environment (first_time) ** Execute environment ** Invoke db:load_config ** Execute db:structure:load ``` The fix for this is making sure that the environment is run before any `load_config`: ``` ** Invoke environment (first_time) ** Execute environment ** Invoke db:drop (first_time) ** Invoke db:load_config (first_time) ** Execute db:load_config ** Execute db:drop ** Invoke db:structure:load (first_time) ** Invoke environment ** Invoke db:load_config ** Execute db:structure:load ```
* Partial fix of database url testsschneems2013-12-251-1/+4
| | | | | | | | Prior to #13463 when `DATABASE_URL` was set, Rails automagically used that value instead of the database.yml. There are tests in dbs_test that expect this to still be true. After that PR, `RAILS_DATABASE_URL` is expected to be read into the YAML file via ERB, this PR fixes that behavior. Note: this does not entirely fix the tests. It seems that `ActiveRecord::Tasks::DatabaseTasks.current_config` does not process the url string correctly (convert it into a hash), and ` ActiveRecord::Tasks::DatabaseTasks.structure_load(current_config, filename)` as well as other methods in `DatabaseTasks` expect a hash. It seems like we should involve the resolver somewhere in this process to correctly convert the database url, I do not know the best place for that /cc @josevalim
* Fix tests names: tokens.yml => secrets.ymlGuillermo Iguaran2013-12-251-2/+2
|
* using symbol instead of string in establish_connectionKuldeep Aggarwal2013-12-251-1/+1
|
* Revert "Ensure secret_key_base is set for all environments"José Valim2013-12-241-2/+1
| | | | | | A better solution has been pushed to master. This reverts commit 959cfcef7255bba720ce3f15323056533ea7b50a.
* Fix railties tests in masterschneems2013-12-241-1/+2
| | | | | Tests are failing due to missing env var on master https://travis-ci.org/rails/rails/jobs/15930622#L641 This adds an environment variable `ENV['RAILS_SECRET_KEY_BASE']` so these tests will pass.
* Ensure secret_key_base is set for all environmentsJosé Valim2013-12-241-1/+2
|
* Fix build failures related to the new ENV options in ymlJosé Valim2013-12-241-0/+18
|
* Add comments with urls for email previewsAndrew White2013-12-221-6/+11
|
* Use Full path to sqlite database in testsschneems2013-12-222-4/+4
|
* Fix DB Console tests schneems2013-12-211-20/+22
| | | | | | | | | | | The build is broken: https://travis-ci.org/rails/rails/builds/15824530 This commit fixes it. The problem: Sqlite expects the `database` part to be an absolute path. That prompted this change to be committed to master: https://github.com/rails/rails/commit/fbb79b517f3127ba620fedd01849f9628b78d6ce This change provides correct behavior. Unfortunately tests were introduced in https://github.com/rails/rails/commit/971d5107cd4cd08c22a85d34546f4ba03ed5c925 that were relying on the incorrect behavior. We can avoid the fix by changing to another database url such as `mysql` or `postgresql` In addition to fixing the failure, the assertions are changed so that the "expected" value comes before "actual" value.
* `html` and `text` templates for mailers by defaultKassio Borges2013-12-201-1/+15
|
* Make possible to use symbol as the verifier nameRafael Mendonça França2013-12-191-6/+6
|
* Change all `MiniTest` to `Minitest` since, `MiniTest` namespace has been ↵Vipul A M2013-12-181-2/+2
| | | | | | renamed to `Minitest` Ref: https://github.com/seattlerb/minitest/blob/master/History.txt
* Default I18n.enforce_available_locales to trueCarlos Antonio da Silva2013-12-171-4/+38
| | | | | | | | | | | | We will default this option to true from now on to ensure users properly handle their list of available locales whenever necessary. This option was added as a security measure and thus Rails will follow it defaulting to secure option. Also improve the handling of I18n config options in its railtie, taking the new enforce_available_locales option into account, by setting it as the last one in the process. This ensures no other configuration will trigger a deprecation warning due to that setting.
* Add mailer previews feature based on mail_view gemAndrew White2013-12-172-3/+421
|
* Fix method redefinition warningAndrew White2013-12-171-2/+6
|
* Merge pull request #13328 from teohm/dbconsole_support_database_urlYves Senn2013-12-161-27/+67
|\ | | | | Fixed rails dbconsole to support DATABASE_URL
| * fixed rails dbconsole to support ENV['DATABASE_URL'].Huiming Teo2013-12-161-27/+67
| |
* | Regression test for load_structure and clone_structureArthur Neves2013-12-141-2/+4
|/
* Rename tokens.yml to secrets.ymlGuillermo Iguaran2013-12-121-3/+3
|
* Add test for custom tokens stored in config/tokens.ymlGuillermo Iguaran2013-12-121-0/+13
|
* Replace config.secret_key_base with secrets.secret_key_base in testGuillermo Iguaran2013-12-121-1/+1
|
* Load secret_key_base from tokens.yml, fallback to config.secret_key_baseGuillermo Iguaran2013-12-123-6/+25
|
* Skipping debugger from plugin Gemfile for JRubyArun Agrawal2013-12-061-0/+11
|
* Merge branch 'av-loading-order'Rafael Mendonça França2013-12-051-4/+18
|\
| * Assert the singleton instead of to truthy/falsyRafael Mendonça França2013-12-051-4/+4
| | | | | | | | | | This will avoid false positives where caching? is nil and should be false
| * Add tests to cache_template_loading when an engine loaded Action ViewRafael Mendonça França2013-12-051-0/+14
| | | | | | | | | | | | | | | | before the application This test is a regression test to b068e20b35797aa6deaa377a48c990759734f515 that changed the load order of Action View initializers.
* | Make sure that spring is loaded in development onlyArun Agrawal2013-12-051-1/+1
|/
* Merge pull request #13189 from strzalek/retain-ap-av-depJeremy Kemper2013-12-051-2/+0
|\ | | | | Retain ActionPack dependency on ActionView. Fixes #12979.
| * Remove missing integration points of AV extractionCarlos Antonio da Silva2013-12-051-2/+0
| |
* | set `i18n.enforce_available_locales` before `i18n.default_locale`.Yves Senn2013-12-051-0/+11
| |
* | Make salt argument required for message verifierRafael Mendonça França2013-12-041-5/+5
| |
* | Test if two different verifiers don't share the same secretRafael Mendonça França2013-12-041-2/+12
| |
* | Don't need to use a controller to test the verifierRafael Mendonça França2013-12-041-9/+3
| |
* | No need to configure saltsRafael Mendonça França2013-12-041-21/+1
| |
* | Make possibile to get different message verifiersRafael Mendonça França2013-12-041-0/+10
| |
* | Rename verifier to message_verifierRafael Mendonça França2013-12-041-3/+3
| |
* | Add application verifierRafael Mendonça França2013-12-041-0/+41
| | | | | | | | | | | | | | | | It is an application global verifier that can be used to generate and verify signed messages. See the documentation of ActiveSupport::MessageVerifier for more information.
* | Install Spring preloader when generating new applicationsJon Leighton2013-12-032-6/+38
|/