mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	also modifications for better coderange detection * test/ruby/test_unicode_escapes.rb: test cases * test/ruby/test_mixed_unicode_escapes.rb: mixed encoding test cases git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			25 lines
		
	
	
	
		
			879 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
	
		
			879 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# -*- coding: sjis -*-
 | 
						||
# This test is in a differnt file than TestUnicodeEscapes
 | 
						||
# So that we can have a different coding comment above
 | 
						||
 | 
						||
require 'test/unit'
 | 
						||
 | 
						||
class TestMixedUnicodeEscape < Test::Unit::TestCase
 | 
						||
  def test_basic
 | 
						||
    # Unicode escapes do work in an sjis encoded file, but only
 | 
						||
    # if they don't contain other multi-byte chars
 | 
						||
    assert_equal("A", "\u0041")
 | 
						||
    # 8-bit character escapes are okay.
 | 
						||
    assert_equal("B\xFF", "\u0042\xFF")
 | 
						||
 | 
						||
    # sjis mb chars mixed with Unicode shound not work
 | 
						||
    assert_raise(SyntaxError) { eval %q("é<>\u1234")}
 | 
						||
    assert_raise(SyntaxError) { eval %q("\u{1234}é<>")}
 | 
						||
 | 
						||
    # String interpolation turns into an expression and we get
 | 
						||
    # a different kind of error, but we still can't mix these
 | 
						||
    assert_raise(ArgumentError) { eval %q("\u{1234}#{nil}é<>")}
 | 
						||
    assert_raise(ArgumentError) { eval %q("é<>#{nil}\u1234")}
 | 
						||
 | 
						||
  end
 | 
						||
end
 |