aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/multibyte_test_helpers.rb
blob: 8839b75601702a7e7a4a7f79315db02100d53269 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# encoding: utf-8

module MultibyteTestHelpers
  UNICODE_STRING = 'こにちわ'
  ASCII_STRING = 'ohayo'
  BYTE_STRING = "\270\236\010\210\245"
  if BYTE_STRING.respond_to?(:force_encoding)
    BYTE_STRING.force_encoding("ASCII-8BIT")
  end

  def chars(str)
    ActiveSupport::Multibyte::Chars.new(str)
  end

  def inspect_codepoints(str)
    str.to_s.unpack("U*").map{|cp| cp.to_s(16) }.join(' ')
  end

  def assert_equal_codepoints(expected, actual, message=nil)
    assert_equal(inspect_codepoints(expected), inspect_codepoints(actual), message)
  end
end