diff options
Diffstat (limited to 'test/prism/bom_test.rb')
-rw-r--r-- | test/prism/bom_test.rb | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/test/prism/bom_test.rb b/test/prism/bom_test.rb new file mode 100644 index 0000000000..890bc4b36c --- /dev/null +++ b/test/prism/bom_test.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: true + +# Don't bother checking this on these engines, this is such a specific Ripper +# test. +return if RUBY_ENGINE != "ruby" + +require_relative "test_helper" + +module Prism + class BOMTest < TestCase + def test_ident + assert_bom("foo") + end + + def test_back_reference + assert_bom("$+") + end + + def test_instance_variable + assert_bom("@foo") + end + + def test_class_variable + assert_bom("@@foo") + end + + def test_global_variable + assert_bom("$foo") + end + + def test_numbered_reference + assert_bom("$1") + end + + def test_percents + assert_bom("%i[]") + assert_bom("%r[]") + assert_bom("%s[]") + assert_bom("%q{}") + assert_bom("%w[]") + assert_bom("%x[]") + assert_bom("%I[]") + assert_bom("%W[]") + assert_bom("%Q{}") + end + + def test_string + assert_bom("\"\"") + assert_bom("''") + end + + private + + def assert_bom(source) + bommed = "\xEF\xBB\xBF#{source}" + assert_equal Prism.lex_ripper(bommed), Prism.lex_compat(bommed).value + end + end +end |