From 0e695f766f7bbd318f10460a3e361c4f9b338f70 Mon Sep 17 00:00:00 2001 From: ujihisa Date: Sun, 10 Jun 2018 15:22:45 +0900 Subject: [PATCH 1/4] Locale.Message: resolve pending tests --- test/Locale/Message.vimspec | 35 ++++++++++++++++++++++++++++------ test/Locale/MessageText/en.txt | 3 +++ 2 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 test/Locale/MessageText/en.txt diff --git a/test/Locale/Message.vimspec b/test/Locale/Message.vimspec index 55b0ac995..37c5049e0 100644 --- a/test/Locale/Message.vimspec +++ b/test/Locale/Message.vimspec @@ -17,7 +17,12 @@ Describe Locale.Message language message ja_JP.UTF-8 Assert Equals(M.get_lang(), 'ja') catch /^Vim\%((\a\+)\)\=:E197/ - Skip Need ja_JP.UTF-8 in your system locale + try + language message en_US.UTF-8 + Assert Equals(M.get_lang(), 'en') + catch /^Vim\%((\a\+)\)\=:E197/ + Skip Need ja_JP.UTF-8 or en_US.UTF-8 in your system locale + endtry endtry End It returns 'en' if current language is 'C' @@ -40,11 +45,20 @@ Describe Locale.Message language message ja_JP.UTF-8 let self.m = M.new(s:text_path) catch /^Vim\%((\a\+)\)\=:E197/ - Skip Need ja_JP.UTF-8 in your system locale + try + language message en_US.UTF-8 + let self.m = M.new(s:text_path) + catch /^Vim\%((\a\+)\)\=:E197/ + Skip Need ja_JP.UTF-8 or en_US.UTF-8 in your system locale + endtry endtry End It returns translated text if it exists - Assert Equals(self.m.get('hello'), 'こんにちは') + if M.get_lang() == 'ja' + Assert Equals(self.m.get('hello'), 'こんにちは') + else " en + Assert Equals(self.m.get('hello'), 'Hello') + endif End It returns original text if it doesn't exist Assert Equals(self.m.get('world'), 'world') @@ -57,11 +71,20 @@ Describe Locale.Message language message ja_JP.UTF-8 let self.m = M.new(s:text_path) catch /^Vim\%((\a\+)\)\=:E197/ - Skip Need ja_JP.UTF-8 in your system locale + try + language message en_US.UTF-8 + let self.m = M.new(s:text_path) + catch /^Vim\%((\a\+)\)\=:E197/ + Skip Need ja_JP.UTF-8 or en_US.UTF-8 in your system locale + endtry endtry End It can use like `get()` - Assert Equals(self.m._('hello'), 'こんにちは') + if M.get_lang() == 'ja' + Assert Equals(self.m._('hello'), 'こんにちは') + else " en + Assert Equals(self.m._('hello'), 'Hello') + endif Assert Equals(self.m._('world'), 'world') End End @@ -77,7 +100,7 @@ Describe Locale.Message call m.load('fr') Assert Equals(m.get('hello'), 'ciao') call m.load('en') - Assert Equals(m.get('hello'), 'hello') + Assert Equals(m.get('hello'), 'Hello') End End diff --git a/test/Locale/MessageText/en.txt b/test/Locale/MessageText/en.txt new file mode 100644 index 000000000..0e9719611 --- /dev/null +++ b/test/Locale/MessageText/en.txt @@ -0,0 +1,3 @@ +{ + 'hello': 'Hello', +} From 08600742f7d4d0e54ad1a7f5a191b9e234df1f80 Mon Sep 17 00:00:00 2001 From: ujihisa Date: Sun, 10 Jun 2018 15:23:40 +0900 Subject: [PATCH 2/4] Locale.Message: Make sure non-existent translation falls back --- test/Locale/Message.vimspec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/Locale/Message.vimspec b/test/Locale/Message.vimspec index 37c5049e0..5287baa0e 100644 --- a/test/Locale/Message.vimspec +++ b/test/Locale/Message.vimspec @@ -101,6 +101,8 @@ Describe Locale.Message Assert Equals(m.get('hello'), 'ciao') call m.load('en') Assert Equals(m.get('hello'), 'Hello') + call m.load('es') " does not exist + Assert Equals(m.get('hello'), 'hello') End End From ffc5fa511aabcc30791c2016385250e883cfdbd2 Mon Sep 17 00:00:00 2001 From: ujihisa Date: Tue, 12 Jun 2018 00:21:25 +0900 Subject: [PATCH 3/4] Locale.Message: Refactor test * Check if ja_JP.UTF-8 is available before running each test --- test/Locale/Message.vimspec | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/test/Locale/Message.vimspec b/test/Locale/Message.vimspec index 5287baa0e..44dca4d5a 100644 --- a/test/Locale/Message.vimspec +++ b/test/Locale/Message.vimspec @@ -5,6 +5,12 @@ let s:text_path = 'test/Locale/MessageText/%s.txt' Describe Locale.Message Before all let M = vital#vital#new().import('Locale.Message') + try + language message ja_JP.UTF-8 + let ja_available = 1 + catch /^Vim\%((\a\+)\)\=:E197/ + let ja_available = 0 + endtry End Before each @@ -13,17 +19,17 @@ Describe Locale.Message Describe .get_lang() It returns current language of message - try + if ja_available language message ja_JP.UTF-8 Assert Equals(M.get_lang(), 'ja') - catch /^Vim\%((\a\+)\)\=:E197/ + else try language message en_US.UTF-8 Assert Equals(M.get_lang(), 'en') catch /^Vim\%((\a\+)\)\=:E197/ Skip Need ja_JP.UTF-8 or en_US.UTF-8 in your system locale endtry - endtry + endif End It returns 'en' if current language is 'C' language message C @@ -41,17 +47,17 @@ Describe Locale.Message Describe .get() Before each - try + if ja_available language message ja_JP.UTF-8 let self.m = M.new(s:text_path) - catch /^Vim\%((\a\+)\)\=:E197/ + else try language message en_US.UTF-8 let self.m = M.new(s:text_path) catch /^Vim\%((\a\+)\)\=:E197/ Skip Need ja_JP.UTF-8 or en_US.UTF-8 in your system locale endtry - endtry + endif End It returns translated text if it exists if M.get_lang() == 'ja' @@ -67,17 +73,17 @@ Describe Locale.Message Describe ._() Before each - try + if ja_available language message ja_JP.UTF-8 let self.m = M.new(s:text_path) - catch /^Vim\%((\a\+)\)\=:E197/ + else try language message en_US.UTF-8 let self.m = M.new(s:text_path) catch /^Vim\%((\a\+)\)\=:E197/ Skip Need ja_JP.UTF-8 or en_US.UTF-8 in your system locale endtry - endtry + endif End It can use like `get()` if M.get_lang() == 'ja' From 7513443a8ad38fa4c40960a54779aafc89eb742a Mon Sep 17 00:00:00 2001 From: ujihisa Date: Tue, 12 Jun 2018 09:51:02 +0900 Subject: [PATCH 4/4] Locale.Message: Refactor test --- test/Locale/Message.vimspec | 45 ++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/test/Locale/Message.vimspec b/test/Locale/Message.vimspec index 44dca4d5a..20df9d225 100644 --- a/test/Locale/Message.vimspec +++ b/test/Locale/Message.vimspec @@ -7,9 +7,14 @@ Describe Locale.Message let M = vital#vital#new().import('Locale.Message') try language message ja_JP.UTF-8 - let ja_available = 1 + let language_available = 'ja' catch /^Vim\%((\a\+)\)\=:E197/ - let ja_available = 0 + try + language message en_US.UTF-8 + let language_available = 'en' + catch /^Vim\%((\a\+)\)\=:E197/ + let language_available = '' + endtry endtry End @@ -19,16 +24,14 @@ Describe Locale.Message Describe .get_lang() It returns current language of message - if ja_available + if language_available == 'ja' language message ja_JP.UTF-8 Assert Equals(M.get_lang(), 'ja') + elseif language_available == 'en' + language message en_US.UTF-8 + Assert Equals(M.get_lang(), 'en') else - try - language message en_US.UTF-8 - Assert Equals(M.get_lang(), 'en') - catch /^Vim\%((\a\+)\)\=:E197/ - Skip Need ja_JP.UTF-8 or en_US.UTF-8 in your system locale - endtry + Skip Need ja_JP.UTF-8 or en_US.UTF-8 in your system locale endif End It returns 'en' if current language is 'C' @@ -47,16 +50,14 @@ Describe Locale.Message Describe .get() Before each - if ja_available + if language_available == 'ja' language message ja_JP.UTF-8 let self.m = M.new(s:text_path) + elseif language_available == 'en' + language message en_US.UTF-8 + let self.m = M.new(s:text_path) else - try - language message en_US.UTF-8 - let self.m = M.new(s:text_path) - catch /^Vim\%((\a\+)\)\=:E197/ - Skip Need ja_JP.UTF-8 or en_US.UTF-8 in your system locale - endtry + Skip Need ja_JP.UTF-8 or en_US.UTF-8 in your system locale endif End It returns translated text if it exists @@ -73,16 +74,14 @@ Describe Locale.Message Describe ._() Before each - if ja_available + if language_available == 'ja' language message ja_JP.UTF-8 let self.m = M.new(s:text_path) + elseif language_available == 'en' + language message en_US.UTF-8 + let self.m = M.new(s:text_path) else - try - language message en_US.UTF-8 - let self.m = M.new(s:text_path) - catch /^Vim\%((\a\+)\)\=:E197/ - Skip Need ja_JP.UTF-8 or en_US.UTF-8 in your system locale - endtry + Skip Need ja_JP.UTF-8 or en_US.UTF-8 in your system locale endif End It can use like `get()`