1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
require 'i18n'
require 'http_accept_language/auto_locale'
require 'http_accept_language/parser'
require 'http_accept_language/middleware'
describe HttpAcceptLanguage::AutoLocale do
let(:controller_class) do
Class.new do
def initialize(header = nil)
super()
@header = header
end
def self.prepend_before_action(dummy)
# dummy method
end
def self.prepend_before_filter(dummy)
# dummy method
end
def http_accept_language
@http_accept_language ||= HttpAcceptLanguage::Parser.new(@header)
end
include HttpAcceptLanguage::AutoLocale
end
end
let(:controller) { controller_class.new("ja,en-us;q=0.7,en;q=0.3") }
context "available languages includes accept_languages" do
before do
I18n.available_locales = [:en, :ja]
end
it "take a suitable locale" do
controller.send(:set_locale)
expect(I18n.locale).to eq(:ja)
end
end
context "available languages do not include accept_languages" do
before do
I18n.available_locales = [:es]
I18n.default_locale = :es
end
it "set the locale to default" do
no_accept_language_controller.send(:set_locale)
expect(I18n.locale).to eq(:es)
end
end
let(:no_accept_language_controller) { controller_class.new() }
context "default locale is ja" do
before do
I18n.available_locales = [:en, :ja]
I18n.default_locale = :ja
end
it "set the locale to default" do
no_accept_language_controller.send(:set_locale)
expect(I18n.locale).to eq(:ja)
end
end
end
|