diff options
author | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2023-05-10 14:15:34 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-10 14:15:34 +0900 |
commit | a877630ac2c3c9e498b7124e9629656fabe9bc84 (patch) | |
tree | 8e2f85df3dc065c292a430a847f134f54e0aa4c6 /tests | |
parent | 248bc5bf7ea597d7a20396a8def855a1988bf490 (diff) | |
parent | cd8bbe56a3d0a3eca1419ae850088ce204f12ee5 (diff) | |
download | json-master.tar.gz |
Call `super` in `included` hook
Diffstat (limited to 'tests')
-rw-r--r-- | tests/json_generator_test.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/json_generator_test.rb b/tests/json_generator_test.rb index f31b6b2..b0f9a01 100644 --- a/tests/json_generator_test.rb +++ b/tests/json_generator_test.rb @@ -391,6 +391,29 @@ EOT end end + if defined?(JSON::Ext::Generator) + def test_string_ext_included_calls_super + included = false + + Module.alias_method(:included_orig, :included) + Module.define_method(:included) do |base| + included_orig(base) + included = true + end + + Class.new(String) do + include JSON::Ext::Generator::GeneratorMethods::String + end + + assert included + ensure + if Module.private_method_defined?(:included_orig) + Module.alias_method(:included, :included_orig) + Module.remove_method(:included_orig) + end + end + end + if defined?(Encoding) def test_nonutf8_encoding assert_equal("\"5\u{b0}\"", "5\xb0".force_encoding("iso-8859-1").to_json) |