First stage of i18n. Some migrations and extra plugins.

This commit is contained in:
Shaun McDonald 2009-05-22 18:36:17 +00:00
parent 6ac7f91734
commit 53b4d645d8
82 changed files with 6876 additions and 18 deletions

View file

@ -0,0 +1,45 @@
$:.unshift(File.dirname(__FILE__) + '/../lib')
require 'http_accept_language'
require 'test/unit'
class MockedCgiRequest
include HttpAcceptLanguage
def env
@env ||= {'HTTP_ACCEPT_LANGUAGE' => 'en-us,en-gb;q=0.8,en;q=0.6'}
end
end
class HttpAcceptLanguageTest < Test::Unit::TestCase
def test_should_return_empty_array
request.env['HTTP_ACCEPT_LANGUAGE'] = nil
assert_equal [], request.user_preferred_languages
end
def test_should_properly_split
assert_equal %w{en-US en-GB en}, request.user_preferred_languages
end
def test_should_ignore_jambled_header
request.env['HTTP_ACCEPT_LANGUAGE'] = 'odkhjf89fioma098jq .,.,'
assert_equal [], request.user_preferred_languages
end
def test_should_find_first_available_language
assert_equal 'en-GB', request.preferred_language_from(%w{en en-GB})
end
def test_should_find_first_compatible_language
assert_equal 'en-hk', request.compatible_language_from(%w{en-hk})
assert_equal 'en', request.compatible_language_from(%w{en})
end
def test_should_find_first_compatible_from_user_preferred
request.env['HTTP_ACCEPT_LANGUAGE'] = 'en-us,de-de'
assert_equal 'en', request.compatible_language_from(%w{de en})
end
private
def request
@request ||= MockedCgiRequest.new
end
end