Sha256: bcbfe8fdc4647f8b49a3efedb050f593a29ddf79fb87cb84af3e03ff78911827

Contents?: true

Size: 1.83 KB

Versions: 20

Compression:

Stored size: 1.83 KB

Contents

require "spec_helper"

FastGettext.silence_errors

describe GettextI18nRails::Backend do
  it "redirects calls to another I18n backend" do
    subject.backend.should_receive(:xxx).with(1,2)
    subject.xxx(1,2)
  end

  describe :available_locales do
    it "maps them to FastGettext" do
      FastGettext.should_receive(:available_locales).and_return [:xxx]
      subject.available_locales.should == [:xxx]
    end

    it "and returns an empty array when FastGettext.available_locales is nil" do
      FastGettext.should_receive(:available_locales).and_return nil
      subject.available_locales.should == []
    end
  end

  describe :translate do
    it "uses gettext when the key is translatable" do
      FastGettext.stub(:current_repository).and_return 'xy.z.u'=>'a'
      subject.translate('xx','u',:scope=>['xy','z']).should == 'a'
    end

    it "interpolates options" do
      FastGettext.stub(:current_repository).and_return 'ab.c'=>'a%{a}b'
      subject.translate('xx','c',:scope=>['ab'], :a => 'X').should == 'aXb'
    end

    it "can translate with gettext using symbols" do
      FastGettext.stub(:current_repository).and_return 'xy.z.v'=>'a'
      subject.translate('xx',:v ,:scope=>['xy','z']).should == 'a'
    end

    it "can translate with gettext using a flat scope" do
      FastGettext.stub(:current_repository).and_return 'xy.z.x'=>'a'
      subject.translate('xx',:x ,:scope=>'xy.z').should == 'a'
    end

    # TODO NameError is raised <-> wtf ?
    xit "uses the super when the key is not translatable" do
      lambda{subject.translate('xx','y',:scope=>['xy','z'])}.should raise_error(I18n::MissingTranslationData)
    end
  end

  describe :interpolate do
    it "act as an identity function for an array" do
      translation = [:month, :day, :year]
      subject.send(:interpolate, translation, {}).should == translation
    end
  end
end

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
gettext_i18n_rails-0.6.2 spec/gettext_i18n_rails/backend_spec.rb
gettext_i18n_rails-0.6.1 spec/gettext_i18n_rails/backend_spec.rb
gettext_i18n_rails-0.5.4 spec/gettext_i18n_rails/backend_spec.rb
nulogy-gettext_i18n_rails-0.5.3.2 spec/gettext_i18n_rails/backend_spec.rb
nulogy-gettext_i18n_rails-0.5.3.1 spec/gettext_i18n_rails/backend_spec.rb
gettext_i18n_rails-0.5.3 spec/gettext_i18n_rails/backend_spec.rb
nulogy-gettext_i18n_rails-0.5.0.3 spec/gettext_i18n_rails/backend_spec.rb
gettext_i18n_rails-0.5.2 spec/gettext_i18n_rails/backend_spec.rb
nulogy-gettext_i18n_rails-0.5.0.2 spec/gettext_i18n_rails/backend_spec.rb
gettext_i18n_rails-0.5.1 spec/gettext_i18n_rails/backend_spec.rb
nulogy-gettext_i18n_rails-0.5.0.1 spec/gettext_i18n_rails/backend_spec.rb
gettext_i18n_rails-0.5.0 spec/gettext_i18n_rails/backend_spec.rb
nulogy-gettext_i18n_rails-0.4.6.2 spec/gettext_i18n_rails/backend_spec.rb
nulogy-gettext_i18n_rails-0.4.6.1 spec/gettext_i18n_rails/backend_spec.rb
gettext_i18n_rails-0.4.6 spec/gettext_i18n_rails/backend_spec.rb
gettext_i18n_rails-0.4.5 spec/gettext_i18n_rails/backend_spec.rb
gettext_i18n_rails-0.4.4 spec/gettext_i18n_rails/backend_spec.rb
gettext_i18n_rails-0.4.3 spec/gettext_i18n_rails/backend_spec.rb
gettext_i18n_rails-0.4.2 spec/gettext_i18n_rails/backend_spec.rb
gettext_i18n_rails-0.4.1 spec/gettext_i18n_rails/backend_spec.rb