spec/lib/accept_language_spec.rb
Rama develop · réplica de lectura del repositorio original.
RSpec.describe AcceptLanguage do
def locale_from(header)
described_class.locale_from(header, %i[en de])
end
it 'picks the language of a region' do
expect(locale_from('de-AT')).to eq(:de)
end
it 'follows the quality values' do
expect(locale_from('fr;q=1.0, en;q=0.5, de;q=0.8')).to eq(:de)
end
it 'keeps the order of the header for an equal quality' do
expect(locale_from('en-GB, de')).to eq(:en)
end
it 'skips a language that the app does not offer' do
expect(locale_from('fr-FR, fr;q=0.9, de;q=0.7')).to eq(:de)
end
it 'ignores a rejected language and a wildcard' do
expect(locale_from('de;q=0, *, en;q=0.1')).to eq(:en)
end
it 'compares without case' do
expect(locale_from('DE-de')).to eq(:de)
end
it 'returns nil for no match' do
aggregate_failures do
expect(locale_from('fr')).to be_nil
expect(locale_from(nil)).to be_nil
expect(locale_from('')).to be_nil
expect(locale_from(';;,')).to be_nil
end
end
end