aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
Commit message (Collapse)AuthorAgeFilesLines
* Added Numeric#in_milliseconds, like 1.hour.in_milliseconds, so we can feed ↵David Heinemeier Hansson2013-11-021-0/+4
| | | | them to JavaScript functions like getTime().
* Raise an error when AS::JSON.decode is called with optionsGodfrey Chan2013-10-301-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Rails 4.1 has switched away from MultiJson, and does not currently support any options on `ActiveSupport::JSON.decode`. Passing in unsupported options (i.e. any non-empty options hash) will now raise an ArgumentError. Rationale: 1. We cannot guarantee the underlying JSON parser won't change in the future, hence we cannot guarantee a consistent set of options the method could take 2. The `json` gem, which happens to be the current JSON parser, takes many dangerous options that is irrelevant to the purpose of AS's JSON decoding API 3. To reserve the options hash for future use, e.g. overriding default global options like ActiveSupport.parse_json_times This change *DOES NOT* introduce any changes in the public API. The signature of the method is still decode(json_text, options). The difference is this method previously accepted undocumented options which does different things when the underlying adapter changes. It now correctly raises an ArgumentError when it encounters options that it does not recognize (and currently it does not support any options).
* Merge pull request #12203 from chancancode/eager_load_jsonJeremy Kemper2013-10-303-1/+18
|\ | | | | Eagerload active_support/json/encoding in active_support/core_ext/object/to_json
| * Moved all JSON core extensions into core_ext/object/jsonGodfrey Chan2013-09-133-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TL;DR The primary driver is to remove autoload surprise. This is related to #12106. (The root cause for that ticket is that json/add defines Regexp#to_json among others, but here I'll reproduce the problem without json/add.) Before: >> require 'active_support/core_ext/to_json' => true >> //.as_json NoMethodError: undefined method `as_json' for //:Regexp from (irb):3 from /Users/godfrey/.rvm/rubies/ruby-2.0.0-p195/bin/irb:16:in `<main>' >> //.to_json => "\"(?-mix:)\"" >> //.as_json => "(?-mix:)" After: >> require 'active_support/core_ext/to_json' => true >> //.as_json => "(?-mix:)" This is because ActiveSupport::JSON is autoloaded the first time Object#to_json is called, which causes additional core extentions (previously defined in active_support/json/encoding.rb) to be loaded. When someone require 'active_support/core_ext', the expectation is that it would add certain methods to the core classes NOW. The previous behaviour causes additional methods to be loaded the first time you call `to_json`, which could cause nasty surprises and other unplesant side-effects. This change moves all core extensions in to core_ext/json. AS::JSON is still autoloaded on first #to_json call, but since it nolonger include the core extensions, it should address the aforementioned bug. *Requiring core_ext/object/to_json now causes a deprecation warnning*
* | Merge pull request #11785 from grosser/grosser/file-unless-existRafael Mendonça França2013-10-281-0/+7
|\ \ | | | | | | | | | | | | | | | | | | | | | support :unless_exist for FileCache Conflicts: activesupport/CHANGELOG.md activesupport/test/caching_test.rb
| * | support :unless_exist for FileCachegrosser2013-08-301-0/+7
| | |
* | | Improve the test code for #8422Rafael Mendonça França2013-10-241-4/+4
| | | | | | | | | | | | | | | * Remove unneeded comments. * Use key? instead of keys.include?.
* | | Merge pull request #8491 from igagnidz/masterRafael Mendonça França2013-10-241-0/+10
|\ \ \ | | | | | | | | | | | | Issue #8442
| * | | Added test to ensure that DescendantsTracker does not leak memory on ↵Iuri Gagnidze2012-12-091-0/+10
| | | | | | | | | | | | | | | | singleton classes
* | | | slice! should not remove default hash value/procAntonio Santos2013-10-241-0/+18
| | | |
* | | | `$SAFE = 4;` has been removed with Ruby 2.1Vipul A M2013-10-141-13/+0
| | | | | | | | | | | | | | | | | | | | | | | | For background - https://bugs.ruby-lang.org/issues/8468 Changset - https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/41259/diff/test/ruby/test_thread.rb
* | | | Revert "Merge pull request #12480 from iwiznia/master"Jeremy Kemper2013-10-111-15/+0
| | | | | | | | | | | | | | | | | | | | This reverts commit e5f5a838b96a362534d9bb60d02334439ed9784c, reversing changes made to d7567f3290a50952494e9213556a1f283a6cf3a0.
* | | | flatten and flatten! methods for ActiveSupport::DurationIonatan Wiznia2013-10-111-0/+15
| | | |
* | | | Merge pull request #12412 from bf4/allow_pathname_for_require_dependencyXavier Noria2013-09-301-0/+11
|\ \ \ \ | | | | | | | | | | Allow Pathname for require dependency
| * | | | require_dependency should allow Pathname-like objects, not just StringBenjamin Fleischer2013-09-301-0/+11
| | | | |
* | | | | Merge pull request #11474 from bogdan/time-with-zone-succAndrew White2013-09-221-0/+22
|\ \ \ \ \ | | | | | | | | | | | | Prevent server blow up when iterating over TimeWithZone Range
| * | | | | Disable ability to iterate over a Range of TimeWithZoneBogdan Gusiev2013-07-191-0/+22
| | | | | |
* | | | | | Allow attaching to AS::Notifications namespace up frontDaniel Schierbeck2013-09-201-0/+40
| |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before, you were required to attach *after* adding the methods to the class, since the attachment process needed the methods to be present. With this change, any new method will also be attached to the configured namespace.
* | | | | Merge pull request #12196 from h-lame/fix-activesupport-cache-filestore-cleanupRafael Mendonça França2013-09-121-0/+12
|\ \ \ \ \ | | | | | | | | | | | | Fix FileStore#cleanup to no longer rely on missing each_key method
| * | | | | Fix FileStore#cleanup to no longer rely on missing each_key methodMurray Steele2013-09-111-0/+12
| | | | | |
* | | | | | Enabled quirks mode on JSON.parse, fixes broken test in af9caaeGodfrey Chan2013-09-121-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It turns out that ActionPack depends on the decoder to parse JSON "fragments" (e.g. '"a string"', '1', 'null', etc), so we need to enable quirks mode on JSON.parse. Also added coverage on the decoder side to prevent regression.
* | | | | | Replace JSON.load with JSON.parse, also removed the proc parameterGodfrey Chan2013-09-111-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we are dealing with untrusted user input, we should not be using JSON.load. According to the docs[1]: BEWARE: This method is meant to serialise data from trusted user input, like from your own database server or clients under your control, it could be dangerous to allow untrusted users to pass JSON sources into it. The default options for the parser can be changed via the ::load_default_options method. [1] http://www.ruby-doc.org/stdlib-2.0/libdoc/json/rdoc/JSON.html#method-i-load
* | | | | | Merge pull request #12200 from dchelimsky/simplify-duration-inspect-even-moreRafael Mendonça França2013-09-111-0/+3
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Reduce Duration#inspect to a single series of transformations
| * | | | | Reduce Duration#inspect to a single series of transformationsDavid Chelimsky2013-09-111-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * eliminates need for temp Hash Also added a couple of examples to DurationTest to specify: * duration can be defined with units out of order e.g. 1.month + 1.year + 1.second + 1.day * equality with a Fixnum works regardless of which operand is on which side of the operator
* | | | | | Be sure to restore the default I18n.locale after changed its value in a testAkira Matsuda2013-09-101-3/+3
| | | | | |
* | | | | | Merge pull request #12173 from arunagw/fixes_reverted_by_revert_commitGuillermo Iguaran2013-09-101-2/+10
|\ \ \ \ \ \ | | | | | | | | | | | | | | Revert fixes
| * | | | | | Fix order dependent testArun Agrawal2013-09-091-2/+10
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | see c48cbb02d7e6f585e31b404c0c363f0d6b586811
* | | | | | Removed unused modules and classesAnupam Choudhury2013-09-101-7/+0
| | | | | |
* | | | | | Removed unnecessary requireAnupam Choudhury2013-09-101-1/+0
|/ / / / /
* / / / / Ensure all-caps nested consts marked as autoloadedSimon Coffey2013-08-272-0/+12
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, an autoloaded constant `HTML::SomeClass` would not be marked as autoloaded by AS::Dependencies. This is because the `#loadable_constants_for_path` method uses `String#camelize` on the inferred file path, which in turn means that, unless otherwise directed, AS::Dependencies watches for loaded constants in the `Html` namespace. By passing the original qualified constant name to `#load_or_require`, this inference step is avoided, and the new constant is picked up in the correct namespace.
* | | | Merge pull request #11932 from gaurish/skip-encoding-convertorRafael Mendonça França2013-08-212-0/+16
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [JRuby] Skip few of the ActiveSupport's inflector test cases Conflicts: activesupport/test/abstract_unit.rb
| * | | | Define jruby_skip to skip test on JRubyGaurish Sharma2013-08-211-0/+5
| | | | |
| * | | | Skip few of the ActiveSupport'sinflector test on JRubyGaurish Sharma2013-08-211-0/+10
| | | | |
* | | | | Skip tests involving $SAFE, it's not supported on Rubinius.Federico Ravasio2013-08-211-0/+2
| | | | |
* | | | | Added method to skip tests on Rubinius to AS/abstract_unit.Federico Ravasio2013-08-211-0/+4
| | | | |
* | | | | ensure freeze on Thread freezes localsNick Howard2013-08-191-0/+9
|/ / / /
* | | | Merge branch 'master' of github.com:rails/docrailsVijay Dev2013-08-172-13/+5
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: actionview/README.rdoc activerecord/lib/active_record/migration.rb guides/source/development_dependencies_install.md guides/source/getting_started.md
| * | | | Revert "Merge branch 'master' of github.com:rails/docrails"Vijay Dev2013-08-172-13/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 70d6e16fbad75b89dd1798ed697e7732b8606fa3, reversing changes made to ea4db3bc078fb3093ecdddffdf4f2f4ff3e1e8f9. Seems to be a code merge done by mistake.
* | | | | Add String#remove(pattern) as a short-hand for the common pattern of ↵David Heinemeier Hansson2013-08-131-0/+5
| | | | | | | | | | | | | | | | | | | | String#gsub(pattern, '')
* | | | | renames the :abort deprecation behaviour to :raiseXavier Noria2013-08-131-3/+3
| | | | | | | | | | | | | | | | | | | | That is a better name, thanks @jeremy.
* | | | | defines a new :abort deprecation behaviour that raisesXavier Noria2013-08-131-0/+16
| | | | | | | | | | | | | | | | | | | | See the CHANGELONG message in the patch for further details.
* | | | | Avoid defining multibyte method names in JSON decoding test for JRuby CompatGaurish Sharma2013-08-071-3/+4
| | | | | | | | | | | | | | | | | | | | This change is similar to #11736 & in same way switched with fixed string & the index of the hash for method name. the index was added because otherwise, ruby will raise Error.
* | | | | Fix unused variable warningAndrew White2013-08-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to call `in_time_zone` to test that it isn't modifying the receiver but since the variable isn't used it raises a warning so add an assertion to make Ruby think it's being used.
* | | | | Avoid calling define_method with non-english chars in InflectorTestGaurish Sharma2013-08-031-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we call define_method with non-english chars like ¿por qué? it errors out on JRuby as of 1.7.4 & would leave out the following error invalid byte sequence in US-ASCII To work around this issue, I have switched to define_test method call define method with fixed string & the index of the hash. the index was added because otherwise, ruby will raise method redefined warning. As far as I can see there are no side-effect of this change for other implementations. For readbility I have added a message to asssert_equal informing for which word/phase the test has passed. Before this Change: JRuby: Tests terminated suddenly with an error. no reported of Failues or errors MRI: All Green. After this Change, JRuby: the `ActiveSupport` TestsSuite gracefully fails with report at the end which test failed & why. MRI: All Green(no change)
* | | | | Refactor Date, Time, DateTime timezone methodsGilad Zohari2013-08-011-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Similar implementations of #in_time_zone exists for Date, Time and DateTime so method is extracted into its own module. Also some logic is extracted into private method.
* | | | | Don't mutate the original inflections instance in the testsAndrew White2013-07-302-20/+22
| | | | |
* | | | | Merge pull request #10879 from makaroni4/masterAndrew White2013-07-293-0/+20
|\ \ \ \ \ | | | | | | | | | | | | Added Time#middle_of_day method
| * | | | | Added Time#middle_of_dayAnatoli Makarevich2013-07-283-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | Added middle_of_day method to Date and DateTime
* | | | | | Fix handling of offsets with Time#to_s(:iso8601)Andrew White2013-07-293-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a lambda to ensure that the generated string respects the offset of the time value. Also add DateTime#to_s(:iso8601) and Date#to_s(:iso8601) for completeness.
* | | | | | Add Time#to_s(:iso8601) for easy conversion of times to the iso8601 format ↵David Heinemeier Hansson2013-07-281-0/+1
| |/ / / / |/| | | | | | | | | | | | | | for easy Javascript date parsing