Sha256: 0afc37a4c4865eb365cb87ae319fecb9f96cb44b72b38647bccca4e1d37f2c49

Contents?: true

Size: 1.74 KB

Versions: 1

Compression:

Stored size: 1.74 KB

Contents

require File.expand_path("../utils.rb", __FILE__)

class TestIconv::Basic < TestIconv
  def test_euc2sjis
    iconv = Iconv.open('SHIFT_JIS', 'EUC-JP')
    str = iconv.iconv(EUCJ_STR)
    str << iconv.iconv(nil)
    assert_equal(SJIS_STR, str)
    iconv.close
  end

  def test_close
    iconv = Iconv.new('Shift_JIS', 'EUC-JP')
    output = ""
    begin
      output += iconv.iconv(EUCJ_STR)
      output += iconv.iconv(nil)
    ensure
      assert_respond_to(iconv, :close)
      assert_equal("", iconv.close)
      assert_equal(SJIS_STR, output)
    end
  end

  def test_open_without_block
    assert_respond_to(Iconv, :open)
    iconv = Iconv.open('SHIFT_JIS', 'EUC-JP')
    str = iconv.iconv(EUCJ_STR)
    str << iconv.iconv(nil)
    assert_equal(SJIS_STR, str )
    iconv.close
  end

  def test_open_with_block
    input = "#{EUCJ_STR}\n"*2
    output = ""
    Iconv.open("Shift_JIS", "EUC-JP") do |cd|
      input.each_line do |s|
        output << cd.iconv(s)
      end
      output << cd.iconv(nil)
    end
    assert_equal("#{SJIS_STR}\n"*2, output)
  end

  def test_invalid_arguments
    assert_raise(TypeError) { Iconv.new(nil, 'Shift_JIS') }
    assert_raise(TypeError) { Iconv.new('Shift_JIS', nil) }
    assert_raise(TypeError) { Iconv.open(nil, 'Shift_JIS') }
    assert_raise(TypeError) { Iconv.open('Shift_JIS', nil) }
  end

  def test_unknown_encoding
    assert_raise(Iconv::InvalidEncoding) { Iconv.iconv("utf-8", "X-UKNOWN", "heh") }
    assert_raise(Iconv::InvalidEncoding, '[ruby-dev:39487]') {
      Iconv.iconv("X-UNKNOWN-1", "X-UNKNOWN-2") {break}
    }
  end

  def test_github_issue_16
    i = Iconv.new('SHIFT_JISX0213', 'UTF-8')
    ret = i.iconv('ほげ')
    ret << i.iconv(nil)
    i.close
    assert_equal "\x82\xD9\x82\xB0".b, ret
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
iconv-1.0.7 test/test_basic.rb