diff options
Diffstat (limited to 'test/prism/magic_comment_test.rb')
-rw-r--r-- | test/prism/magic_comment_test.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/prism/magic_comment_test.rb b/test/prism/magic_comment_test.rb new file mode 100644 index 0000000000..9e2e92af92 --- /dev/null +++ b/test/prism/magic_comment_test.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require_relative "test_helper" + +return if RUBY_ENGINE != "ruby" + +module Prism + class MagicCommentTest < TestCase + examples = [ + "# encoding: ascii", + "# coding: ascii", + "# eNcOdInG: ascii", + "# CoDiNg: ascii", + "# \s\t\v encoding \s\t\v : \s\t\v ascii \s\t\v", + "# -*- encoding: ascii -*-", + "# -*- coding: ascii -*-", + "# -*- eNcOdInG: ascii -*-", + "# -*- CoDiNg: ascii -*-", + "# -*- \s\t\v encoding \s\t\v : \s\t\v ascii \s\t\v -*-", + "# -*- foo: bar; encoding: ascii -*-", + "# coding \t \r \v : \t \v \r ascii-8bit", + "# vim: filetype=ruby, fileencoding=windows-31j, tabsize=3, shiftwidth=3" + ] + + examples.each.with_index(1) do |example, index| + define_method(:"test_magic_comment_#{index}") do + expected = RubyVM::InstructionSequence.compile(%Q{#{example}\n""}).eval.encoding + actual = Prism.parse(example).encoding + assert_equal expected, actual + end + end + end +end |