From 7b633857ddcdb129d5b78f5d9e41994018115ed9 Mon Sep 17 00:00:00 2001
From: Erol Fornoles <erol.fornoles@gmail.com>
Date: Mon, 20 Feb 2017 18:52:58 +0800
Subject: Make the order of Hash#reverse_merge! consistent with
 HashWithIndifferentAccess

---
 activesupport/test/core_ext/hash_ext_test.rb | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

(limited to 'activesupport/test')

diff --git a/activesupport/test/core_ext/hash_ext_test.rb b/activesupport/test/core_ext/hash_ext_test.rb
index 525ea08abd..49a6800cf3 100644
--- a/activesupport/test/core_ext/hash_ext_test.rb
+++ b/activesupport/test/core_ext/hash_ext_test.rb
@@ -829,9 +829,9 @@ class HashExtTest < ActiveSupport::TestCase
   end
 
   def test_reverse_merge
-    defaults = { a: "x", b: "y", c: 10 }.freeze
+    defaults = { d: 0, a: "x", b: "y", c: 10 }.freeze
     options  = { a: 1, b: 2 }
-    expected = { a: 1, b: 2, c: 10 }
+    expected = { d: 0, a: 1, b: 2, c: 10 }
 
     # Should merge defaults into options, creating a new hash.
     assert_equal expected, options.reverse_merge(defaults)
@@ -842,6 +842,9 @@ class HashExtTest < ActiveSupport::TestCase
     assert_equal expected, merged.reverse_merge!(defaults)
     assert_equal expected, merged
 
+    # Make the order consistent with the non-overwriting reverse merge.
+    assert_equal expected.keys, merged.keys
+
     # Should be an alias for reverse_merge!
     merged = options.dup
     assert_equal expected, merged.reverse_update(defaults)
-- 
cgit v1.2.3