Author: koutou
Date: Sun Mar 22 03:00:21 2009
New Revision: 5924
Added:
trunk/test/i18n/
trunk/test/i18n/test-base.scm
- copied, changed from r5923, /trunk/test/test-i18n.scm
trunk/test/i18n/test-language.scm
- copied, changed from r5923, /trunk/test/test-i18n.scm
Removed:
trunk/test/test-i18n.scm
Log:
* test/test-i18n.scm: split tests in ...
* test/i18n/test-base.scm, test/i18n/test-language.scm: ... them.
Copied: trunk/test/i18n/test-base.scm (from r5923,
/trunk/test/test-i18n.scm)
==============================================================================
--- /trunk/test/test-i18n.scm (original)
+++ trunk/test/i18n/test-base.scm Sun Mar 22 03:00:21 2009
@@ -27,10 +27,10 @@
;;; SUCH DAMAGE.
;;;;
-(define-module test.test-i18n
+(define-module test.i18n.test-base
(use test.unit.test-case)
(use test.uim-test))
-(select-module test.test-i18n)
+(select-module test.i18n.test-base)
(define (setup)
(uim-test-setup))
@@ -333,33 +333,4 @@
(assert-uim-false '(langgroup-covers? "zh_CN:zh_TW:zh_HK" "zh"))
#f)
-;; (define-uim-test-case "testcase i18n ISO 639-1 language code #1"
-;; (setup
-;; (lambda ()
-;; (sys-putenv "LC_ALL" "C")))
-
-(define (test-lang-code->lang-name-in-en-locale)
- (assert-uim-equal "Japanese"
- '(lang-code->lang-name "ja"))
- (assert-uim-equal "English"
- '(lang-code->lang-name "en"))
- (assert-uim-equal "Chinese"
- '(lang-code->lang-name "zh"))
- #f)
-
-;(define-uim-test-case "testcase i18n ISO 639-1 language code #2"
-; (setup
-; (lambda ()
-; (sys-putenv "LC_ALL" "ja_JP")))
-;
-; ("test lang-code->lang-name in ja_JP locale"
-; (uim '(bind_textdomain_codeset "uim" "UTF-8"))
-; (assert-uim-equal "日本語"
-; '(lang-code->lang-name "ja"))
-; (assert-uim-equal "英語"
-; '(lang-code->lang-name "en"))
-; (assert-uim-equal "中国語"
-; '(lang-code->lang-name "zh"))))
-
-
-(provide "test/test-i18n")
+(provide "test/i18n/test-base")
Copied: trunk/test/i18n/test-language.scm (from r5923,
/trunk/test/test-i18n.scm)
==============================================================================
--- /trunk/test/test-i18n.scm (original)
+++ trunk/test/i18n/test-language.scm Sun Mar 22 03:00:21 2009
@@ -1,3 +1,5 @@
+;;; -*- coding: utf-8 -*-
+;;;
;;; Copyright (c) 2003-2009 uim Project http://code.google.com/p/uim/
;;;
;;; All rights reserved.
@@ -27,339 +29,36 @@
;;; SUCH DAMAGE.
;;;;
-(define-module test.test-i18n
+(define-module test.i18n.language
(use test.unit.test-case)
(use test.uim-test))
-(select-module test.test-i18n)
-
-(define (setup)
- (uim-test-setup))
+(select-module test.i18n.language)
(define (teardown)
(uim-test-teardown))
-(define (test-locale-new)
- ;; full format
- (assert-uim-equal '("ja" "JP" "EUC-JP")
- '(locale-new "ja_JP.EUC-JP"))
- ;; codeset can be omitted
- (assert-uim-equal '("ja" "JP" "")
- '(locale-new "ja_JP"))
- ;; territory can also be omitted
- (assert-uim-equal '("ja" "" "")
- '(locale-new "ja"))
- ;; codeset without territory is a valid format
- (assert-uim-equal '("ja" "" "EUC-JP")
- '(locale-new "ja.EUC-JP"))
- ;; #f, "C" and "POSIX" is interpreted as "en" locale
- (assert-uim-equal '("en" "" "")
- '(locale-new #f))
- (assert-uim-equal '("en" "" "")
- '(locale-new "C"))
- (assert-uim-equal '("en" "" "")
- '(locale-new "POSIX"))
- ;; invalid locale strings are rejected
- (assert-uim-equal '("" "" "")
- '(locale-new "d_DE"))
- (assert-uim-equal '("" "" "")
- '(locale-new "deu_DE"))
- (assert-uim-equal '("" "" "")
- '(locale-new "de_de_DE"))
- (assert-uim-equal '("" "" "")
- '(locale-new "de_D"))
- (assert-uim-equal '("" "" "")
- '(locale-new "de_DEU"))
- (assert-uim-equal '("" "" "")
- '(locale-new "de_de_DEU"))
- (assert-uim-equal '("" "" "")
- '(locale-new "_DE"))
- (assert-uim-equal '("" "" "")
- '(locale-new "_DE."))
- (assert-uim-equal '("" "" "")
- '(locale-new "_DE.UTF-8"))
- (assert-uim-equal '("" "" "")
- '(locale-new "de_.UTF-8"))
- (assert-uim-equal '("" "" "")
- '(locale-new "_.UTF-8"))
- (assert-uim-equal '("" "" "")
- '(locale-new ".UTF-8"))
- #f)
-
-;; empty locale is instructs to use the locale of native environment
-(define (test-locale-new-native-environment)
- ;; it fallbacks to "en" if neither LC_ALL nor LANG defined
- (uim-eval '(unsetenv "LC_ALL"))
- (uim-eval '(unsetenv "LANG"))
- (assert-uim-equal '("en" "" "")
- '(locale-new ""))
- ;; it looks both LC_ALL and LANG
- (uim-eval '(setenv "LC_ALL" "ja_JP.EUC-JP" #t))
- (uim-eval '(unsetenv "LANG"))
- (assert-uim-equal '("ja" "JP" "EUC-JP")
- '(locale-new ""))
- (uim-eval '(unsetenv "LC_ALL"))
- (uim-eval '(setenv "LANG" "ja_JP.EUC-JP" #t))
- (assert-uim-equal '("ja" "JP" "EUC-JP")
- '(locale-new ""))
- ;; LC_ALL precedes LANG
- (uim-eval '(setenv "LC_ALL" "de_DE.UTF-8" #t))
- (uim-eval '(setenv "LANG" "ja_JP.EUC-JP" #t))
- (assert-uim-equal '("de" "DE" "UTF-8")
- '(locale-new ""))
- ;; special locale name from the variables
- (uim-eval '(setenv "LC_ALL" "C" #t))
- (uim-eval '(unsetenv "LANG"))
- (assert-uim-equal '("en" "" "")
- '(locale-new ""))
- (uim-eval '(setenv "LC_ALL" "POSIX" #t))
- (uim-eval '(unsetenv "LANG"))
- (assert-uim-equal '("en" "" "")
- '(locale-new ""))
- (uim-eval '(unsetenv "LC_ALL"))
- (uim-eval '(setenv "LANG" "C" #t))
- (assert-uim-equal '("en" "" "")
- '(locale-new ""))
- (uim-eval '(unsetenv "LC_ALL"))
- (uim-eval '(setenv "LANG" "POSIX" #t))
- (assert-uim-equal '("en" "" "")
- '(locale-new ""))
- #f)
-
-(define (test-locale-set-lang!)
- (assert-uim-equal ""
- '(locale-set-lang! (locale-new "en") ""))
- ;; valid langs
- (assert-uim-equal "ja"
- '(locale-set-lang! (locale-new "") "ja"))
- (assert-uim-equal "zh"
- '(locale-set-lang! (locale-new "") "zh"))
- (assert-uim-equal "de"
- '(locale-set-lang! (locale-new "") "de"))
- ;; locale-set-lang! only accepts two-letter language codes
- (assert-uim-equal ""
- '(locale-set-lang! (locale-new "") "jpn"))
- (assert-uim-equal ""
- '(locale-set-lang! (locale-new "") "zh_CN"))
- (assert-uim-equal ""
- '(locale-set-lang! (locale-new "") "d"))
- #f)
-
-(define (test-locale-set-territory!)
- (assert-uim-equal ""
- '(locale-set-territory! (locale-new "en") ""))
- ;; valid territories
- (assert-uim-equal "JP"
- '(locale-set-territory! (locale-new "") "JP"))
- (assert-uim-equal "CN"
- '(locale-set-territory! (locale-new "") "CN"))
- (assert-uim-equal "DE"
- '(locale-set-territory! (locale-new "") "DE"))
- ;; locale-set-territory! only accepts two-letter country codes
- (assert-uim-equal ""
- '(locale-set-territory! (locale-new "") "Japan"))
- (assert-uim-equal ""
- '(locale-set-territory! (locale-new "") "zh_CN"))
- (assert-uim-equal ""
- '(locale-set-territory! (locale-new "") "ger"))
- #f)
-
-(define (test-locale-lang-territory-str)
- (assert-uim-equal ""
- '(locale-lang-territory-str
(locale-new "invalid_IN.")))
- (assert-uim-equal "ja_JP"
- '(locale-lang-territory-str
(locale-new "ja_JP.EUC-JP")))
- (assert-uim-equal "ja_JP"
- '(locale-lang-territory-str (locale-new "ja_JP")))
- (assert-uim-equal "ja"
- '(locale-lang-territory-str (locale-new "ja")))
- (assert-uim-equal "ja"
- '(locale-lang-territory-str (locale-new "ja.EUC-JP")))
- (assert-uim-equal "zh_CN"
- '(locale-lang-territory-str
(locale-new "zh_CN.UTF-8")))
- (assert-uim-equal "zh_CN"
- '(locale-lang-territory-str (locale-new "zh_CN")))
- (assert-uim-equal "zh"
- '(locale-lang-territory-str (locale-new "zh")))
- (assert-uim-equal "zh"
- '(locale-lang-territory-str (locale-new "zh.UTF-8")))
- #f)
-
-(define (test-locale-str)
- (assert-uim-equal ""
- '(locale-str (locale-new "invalid_IN.")))
- (assert-uim-equal "ja_JP.EUC-JP"
- '(locale-str (locale-new "ja_JP.EUC-JP")))
- (assert-uim-equal "ja_JP"
- '(locale-str (locale-new "ja_JP")))
- (assert-uim-equal "ja"
- '(locale-str (locale-new "ja")))
- (assert-uim-equal "ja.EUC-JP"
- '(locale-str (locale-new "ja.EUC-JP")))
- (assert-uim-equal "zh_CN.UTF-8"
- '(locale-str (locale-new "zh_CN.UTF-8")))
- (assert-uim-equal "zh_CN"
- '(locale-str (locale-new "zh_CN")))
- (assert-uim-equal "zh"
- '(locale-str (locale-new "zh")))
- (assert-uim-equal "zh.UTF-8"
- '(locale-str (locale-new "zh.UTF-8")))
- #f)
-
-(define (test-locale-zh-awared-lang)
- (assert-uim-equal ""
- '(locale-zh-awared-lang (locale-new "invalid_IN.")))
- (assert-uim-equal "ja"
- '(locale-zh-awared-lang (locale-new "ja_JP.EUC-JP")))
- (assert-uim-equal "ja"
- '(locale-zh-awared-lang (locale-new "ja_JP")))
- (assert-uim-equal "ja"
- '(locale-zh-awared-lang (locale-new "ja")))
- (assert-uim-equal "ja"
- '(locale-zh-awared-lang (locale-new "ja.EUC-JP")))
- (assert-uim-equal "en"
- '(locale-zh-awared-lang (locale-new "en_US.UTF-8")))
- (assert-uim-equal "en"
- '(locale-zh-awared-lang (locale-new "en_US")))
- (assert-uim-equal "en"
- '(locale-zh-awared-lang (locale-new "en")))
- (assert-uim-equal "en"
- '(locale-zh-awared-lang (locale-new "en.UTF-8")))
- ;; returns "zh_XX" form if lang part is "zh"
- (assert-uim-equal "zh_CN"
- '(locale-zh-awared-lang (locale-new "zh_CN.UTF-8")))
- (assert-uim-equal "zh_CN"
- '(locale-zh-awared-lang (locale-new "zh_CN")))
- (assert-uim-equal "zh"
- '(locale-zh-awared-lang (locale-new "zh")))
- (assert-uim-equal "zh"
- '(locale-zh-awared-lang (locale-new "zh.UTF-8")))
- (assert-uim-equal "zh_TW"
- '(locale-zh-awared-lang (locale-new "zh_TW.UTF-8")))
- (assert-uim-equal "zh_TW"
- '(locale-zh-awared-lang (locale-new "zh_TW")))
- (assert-uim-equal "zh"
- '(locale-zh-awared-lang (locale-new "zh")))
- (assert-uim-equal "zh"
- '(locale-zh-awared-lang (locale-new "zh.UTF-8")))
- (assert-uim-equal "zh_HK"
- '(locale-zh-awared-lang (locale-new "zh_HK.UTF-8")))
- (assert-uim-equal "zh_HK"
- '(locale-zh-awared-lang (locale-new "zh_HK")))
- (assert-uim-equal "zh"
- '(locale-zh-awared-lang (locale-new "zh")))
- (assert-uim-equal "zh"
- '(locale-zh-awared-lang (locale-new "zh.UTF-8")))
- #f)
-
-(define (test-langgroup-covers?)
- ;; exact match
- (assert-uim-equal '("ja")
- '(langgroup-covers? "ja" "ja"))
- (assert-uim-equal '("en")
- '(langgroup-covers? "en" "en"))
- (assert-uim-equal '("de")
- '(langgroup-covers? "de" "de"))
- (assert-uim-equal '("fr")
- '(langgroup-covers? "fr" "fr"))
- (assert-uim-equal '("zh")
- '(langgroup-covers? "zh" "zh"))
- (assert-uim-equal '("zh_CN")
- '(langgroup-covers? "zh_CN" "zh_CN"))
- (assert-uim-equal '("zh_TW")
- '(langgroup-covers? "zh_TW" "zh_TW"))
- (assert-uim-equal '("zh_HK")
- '(langgroup-covers? "zh_HK" "zh_HK"))
- (assert-uim-false '(langgroup-covers? "de" "ja"))
- (assert-uim-false '(langgroup-covers? "de" "en"))
- (assert-uim-false '(langgroup-covers? "de" "fr"))
- (assert-uim-false '(langgroup-covers? "de" "zh"))
- (assert-uim-false '(langgroup-covers? "de" "zh_CN"))
- (assert-uim-false '(langgroup-covers? "de" "zh_TW"))
- (assert-uim-false '(langgroup-covers? "de" "zh_HK"))
- ;; group match
- (assert-uim-false '(langgroup-covers? "de:en:fr" "ja"))
- (assert-uim-equal '("en" "fr")
- '(langgroup-covers? "de:en:fr" "en"))
- (assert-uim-equal '("de" "en" "fr")
- '(langgroup-covers? "de:en:fr" "de"))
- (assert-uim-equal '("fr")
- '(langgroup-covers? "de:en:fr" "fr"))
- (assert-uim-false '(langgroup-covers? "de:en:fr" "zh"))
- (assert-uim-false '(langgroup-covers? "de:en:fr" "zh_CN"))
- (assert-uim-false '(langgroup-covers? "de:en:fr" "zh_TW"))
- (assert-uim-false '(langgroup-covers? "de:en:fr" "zh_HK"))
- ;; group expression is only allowed for first arg
- (assert-uim-false '(langgroup-covers? "de:en:fr" "de:en"))
- (assert-uim-false '(langgroup-covers? "de:en:fr" "de:en:fr"))
- ;; wildcard
- (assert-uim-true '(langgroup-covers? "*" "ja"))
- (assert-uim-true '(langgroup-covers? "*" "en"))
- (assert-uim-true '(langgroup-covers? "*" "de"))
- (assert-uim-true '(langgroup-covers? "*" "fr"))
- (assert-uim-true '(langgroup-covers? "*" "zh"))
- (assert-uim-true '(langgroup-covers? "*" "zh_CN"))
- (assert-uim-true '(langgroup-covers? "*" "zh_TW"))
- (assert-uim-true '(langgroup-covers? "*" "zh_HK"))
- ;; wildcard is only allowed for first arg
- (assert-uim-false '(langgroup-covers? "en" "*"))
- ;; 'nothing'
- (assert-uim-false '(langgroup-covers? "" "ja"))
- (assert-uim-false '(langgroup-covers? "" "en"))
- (assert-uim-false '(langgroup-covers? "" "de"))
- (assert-uim-false '(langgroup-covers? "" "fr"))
- (assert-uim-false '(langgroup-covers? "" "zh"))
- (assert-uim-false '(langgroup-covers? "" "zh_CN"))
- (assert-uim-false '(langgroup-covers? "" "zh_TW"))
- (assert-uim-false '(langgroup-covers? "" "zh_HK"))
- (assert-uim-false '(langgroup-covers? "" "*"))
- (assert-uim-false '(langgroup-covers? "" ""))
- ;; no special handling for Chinese
- (assert-uim-false '(langgroup-covers? "zh" "zh_CN"))
- (assert-uim-false '(langgroup-covers? "zh" "zh_TW"))
- (assert-uim-false '(langgroup-covers? "zh" "zh_HK"))
- (assert-uim-false '(langgroup-covers? "zh_CN" "zh"))
- (assert-uim-false '(langgroup-covers? "zh_TW" "zh"))
- (assert-uim-false '(langgroup-covers? "zh_HK" "zh"))
- (assert-uim-false '(langgroup-covers? "zh_CN" "zh_TW"))
- (assert-uim-false '(langgroup-covers? "zh_CN" "zh_HK"))
- (assert-uim-false '(langgroup-covers? "zh_HK" "zh_CN"))
- (assert-uim-false '(langgroup-covers? "zh_HK" "zh_TW"))
- (assert-uim-equal '("zh_TW" "zh_HK")
- '(langgroup-covers? "zh_TW:zh_HK" "zh_TW"))
- (assert-uim-equal '("zh_HK")
- '(langgroup-covers? "zh_TW:zh_HK" "zh_HK"))
- (assert-uim-false '(langgroup-covers? "zh_TW:zh_HK" "zh_CN"))
- (assert-uim-false '(langgroup-covers? "zh_TW:zh_HK" "zh"))
- (assert-uim-false '(langgroup-covers? "zh_CN:zh_TW:zh_HK" "zh"))
- #f)
-
-;; (define-uim-test-case "testcase i18n ISO 639-1 language code #1"
-;; (setup
-;; (lambda ()
-;; (sys-putenv "LC_ALL" "C")))
-
(define (test-lang-code->lang-name-in-en-locale)
+ (uim-test-with-environment-variables
+ '(("LC_ALL" . "C"))
+ uim-test-setup)
(assert-uim-equal "Japanese"
- '(lang-code->lang-name "ja"))
+ '(_ (lang-code->lang-name "ja")))
(assert-uim-equal "English"
- '(lang-code->lang-name "en"))
+ '(_ (lang-code->lang-name "en")))
(assert-uim-equal "Chinese"
- '(lang-code->lang-name "zh"))
+ '(_ (lang-code->lang-name "zh")))
#f)
-;(define-uim-test-case "testcase i18n ISO 639-1 language code #2"
-; (setup
-; (lambda ()
-; (sys-putenv "LC_ALL" "ja_JP")))
-;
-; ("test lang-code->lang-name in ja_JP locale"
-; (uim '(bind_textdomain_codeset "uim" "UTF-8"))
-; (assert-uim-equal "日本語"
-; '(lang-code->lang-name "ja"))
-; (assert-uim-equal "英語"
-; '(lang-code->lang-name "en"))
-; (assert-uim-equal "中国語"
-; '(lang-code->lang-name "zh"))))
-
+(define (test-lang-code->lang-name-in-ja_JP-locale)
+ (uim-test-with-environment-variables
+ '(("LC_ALL" . "ja_JP.UTF-8"))
+ uim-test-setup)
+ (assert-uim-equal "日本語"
+ '(_ (lang-code->lang-name "ja")))
+ (assert-uim-equal "英語"
+ '(_ (lang-code->lang-name "en")))
+ (assert-uim-equal "中国語"
+ '(_ (lang-code->lang-name "zh")))
+ #f)
-(provide "test/test-i18n")
+(provide "test/i18n/test-language")