From babe4352435867def35ff8ed2e2360fb27220eb2 Mon Sep 17 00:00:00 2001 From: "David N. Welton" Date: Tue, 21 Sep 2010 21:46:26 +0800 Subject: [PATCH] Added test and code to throw an error if a translation of an empty string is attempted. --- lib/i18n.rb | 2 ++ test/i18n_test.rb | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/lib/i18n.rb b/lib/i18n.rb index ca7d0547..c5e12ff9 100755 --- a/lib/i18n.rb +++ b/lib/i18n.rb @@ -151,6 +151,8 @@ def translate(*args) locale = options.delete(:locale) || config.locale raises = options.delete(:raise) + raise I18n::ArgumentError if key.is_a?(String) && key.empty? + if key.is_a?(Array) key.map { |k| backend.translate(locale, k, options) } else diff --git a/test/i18n_test.rb b/test/i18n_test.rb index 45de23df..afd5ed0b 100644 --- a/test/i18n_test.rb +++ b/test/i18n_test.rb @@ -176,6 +176,10 @@ def test_translate_given_a_bogus_key_raises_missing_translation_data assert_equal "translation missing: en, bogus", I18n.t(:bogus) end + def test_translate_empty_string_raises_argument_error + assert_raise(I18n::ArgumentError) { I18n.t("") } + end + def test_localize_nil_raises_argument_error assert_raise(I18n::ArgumentError) { I18n.l nil } end