File: test_driver_win32.rb

package info (click to toggle)
ruby-locale 2.1.0-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 444 kB
  • ctags: 293
  • sloc: ruby: 3,203; makefile: 4
file content (65 lines) | stat: -rw-r--r-- 2,309 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
begin
  require 'locale/driver/win32'
  require 'test/unit'

  class TestDiverWin32 < Test::Unit::TestCase

    def setup
      ENV["LC_ALL"] = nil
      ENV["LC_CTYPE"] = nil
      ENV["LANG"] = nil
      ENV["LANGUAGE"] = nil
      Locale::Driver::Win32.set_thread_locale_id(nil)
    end

    def test_charset
      Locale::Driver::Win32.set_thread_locale_id(0x0404)
      assert_equal "CP950", Locale::Driver::Win32.charset

      Locale::Driver::Win32.set_thread_locale_id(0x0411)
      assert_equal "CP932", Locale::Driver::Win32.charset

      Locale::Driver::Win32.set_thread_locale_id(0x201A)
      assert_equal "CP1251", Locale::Driver::Win32.charset

      Locale::Driver::Win32.set_thread_locale_id(0x0465)
      assert_equal "UNICODE", Locale::Driver::Win32.charset

      Locale::Driver::Win32.set_thread_locale_id(0x2222) # invalid
      assert_equal "CP1252", Locale::Driver::Win32.charset
    end

    def test_locales
      Locale::Driver::Win32.set_thread_locale_id(0x0404)
      assert_equal Locale::Tag::Common.parse("zh-TW"), Locale::Driver::Win32.locales[0]

      Locale::Driver::Win32.set_thread_locale_id(0x0411)
      assert_equal Locale::Tag::Common.parse("ja-JP"), Locale::Driver::Win32.locales[0]

      Locale::Driver::Win32.set_thread_locale_id(0x201A)
      assert_equal Locale::Tag::Common.parse("bs-Cyrl-BA"), Locale::Driver::Win32.locales[0]

      Locale::Driver::Win32.set_thread_locale_id(0x0465)
      assert_equal Locale::Tag::Common.parse("div-MV"), Locale::Driver::Win32.locales[0]

      Locale::Driver::Win32.set_thread_locale_id(0x2222) # invalid
      assert_equal nil, Locale::Driver::Win32.locales
    end

    def test_locales_with_env
      ENV["LC_ALL"] = "ja_JP.UTF-8"
      assert_equal Locale::Tag::Posix.parse("ja_JP.UTF-8"), Locale::Driver::Win32.locales[0]
      assert_equal "UTF-8", Locale::Driver::Win32.charset

      ENV["LC_ALL"] = "ja_JP"
      assert_equal Locale::Tag::Posix.parse("ja_JP"), Locale::Driver::Win32.locales[0]
      assert_equal "CP932", Locale::Driver::Win32.charset

      ENV["LC_ALL"] = "C"
      assert_equal Locale::Tag::Posix.parse("C"), Locale::Driver::Win32.locales[0]
      assert_equal "CP1252", Locale::Driver::Win32.charset
    end
  end
rescue LoadError, DL::DLError, NameError
  puts "win32 test was skipped."
end