aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
diff options
context:
space:
mode:
authorAndrew White <andrew.white@unboxed.co>2017-11-07 11:33:08 +0000
committerAndrew White <andrew.white@unboxed.co>2017-11-08 10:33:34 +0000
commit2b434d6f79813dcad162b158fd2b60e34a725ba1 (patch)
tree4f0251e4b5d0f8d973e07085df71f1d126ac621b /activesupport/test
parent52d60ec46c9eba98423acfce2680e76bdc1cab36 (diff)
downloadrails-2b434d6f79813dcad162b158fd2b60e34a725ba1.tar.gz
rails-2b434d6f79813dcad162b158fd2b60e34a725ba1.tar.bz2
rails-2b434d6f79813dcad162b158fd2b60e34a725ba1.zip
Allow `Range#include?` on TWZ ranges
In #11474 we prevented TWZ ranges being iterated over which matched Ruby's handling of Time ranges and as a consequence `include?` stopped working with both Time ranges and TWZ ranges. However in ruby/ruby@b061634 support was added for `include?` to use `cover?` for 'linear' objects. Since we have no way of making Ruby consider TWZ instances as 'linear' we have to override `Range#include?`. Fixes #30799.
Diffstat (limited to 'activesupport/test')
-rw-r--r--activesupport/test/core_ext/range_ext_test.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/activesupport/test/core_ext/range_ext_test.rb b/activesupport/test/core_ext/range_ext_test.rb
index 0467123e55..049fac8fd4 100644
--- a/activesupport/test/core_ext/range_ext_test.rb
+++ b/activesupport/test/core_ext/range_ext_test.rb
@@ -121,9 +121,12 @@ class RangeTest < ActiveSupport::TestCase
def test_include_on_time_with_zone
twz = ActiveSupport::TimeWithZone.new(nil, ActiveSupport::TimeZone["Eastern Time (US & Canada)"] , Time.utc(2006, 11, 28, 10, 30))
- assert_raises TypeError do
- ((twz - 1.hour)..twz).include?(twz)
- end
+ assert ((twz - 1.hour)..twz).include?(twz)
+ end
+
+ def test_case_equals_on_time_with_zone
+ twz = ActiveSupport::TimeWithZone.new(nil, ActiveSupport::TimeZone["Eastern Time (US & Canada)"] , Time.utc(2006, 11, 28, 10, 30))
+ assert ((twz - 1.hour)..twz) === twz
end
def test_date_time_with_each