Add some validations for i18n values
These only apply to the en.yml file for now, but can be expanded in due course.
This commit is contained in:
parent
83809210ed
commit
387d130e87
1 changed files with 35 additions and 0 deletions
|
@ -55,6 +55,20 @@ class I18nTest < ActiveSupport::TestCase
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_en_for_raw_html
|
||||||
|
en = YAML.load_file(Rails.root.join("config/locales/en.yml"))
|
||||||
|
assert_nothing_raised do
|
||||||
|
check_values_for_raw_html(en)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_en_for_nil_values
|
||||||
|
en = YAML.load_file(Rails.root.join("config/locales/en.yml"))
|
||||||
|
assert_nothing_raised do
|
||||||
|
check_values_for_nil(en)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def translation_keys(scope = nil)
|
def translation_keys(scope = nil)
|
||||||
|
@ -81,4 +95,25 @@ class I18nTest < ActiveSupport::TestCase
|
||||||
rescue I18n::MissingTranslationData
|
rescue I18n::MissingTranslationData
|
||||||
[:zero, :one, :other]
|
[:zero, :one, :other]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def check_values_for_raw_html(hash)
|
||||||
|
hash.each_pair do |k, v|
|
||||||
|
if v.is_a? Hash
|
||||||
|
check_values_for_raw_html(v)
|
||||||
|
else
|
||||||
|
next unless k.end_with?("_html")
|
||||||
|
raise "Avoid using raw html in '#{k}: #{v}'" if v.include? "<"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_values_for_nil(hash)
|
||||||
|
hash.each_pair do |k, v|
|
||||||
|
if v.is_a? Hash
|
||||||
|
check_values_for_nil(v)
|
||||||
|
else
|
||||||
|
raise "Avoid nil values in '#{k}: nil'" if v.nil?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue