require 'spec_helper' describe "all available_languages providers", :shared => true do describe "with no translations" do it "should return 0 languages" do @provider.available_languages.size.should == 0 end end describe "with 1 translation in 1 language" do before :each do @l = Language.create :code => 'en-US', :name => 'English' @t = ItemTranslation.create :item => @item, :language => @l, :name => "Book", :desc => "Literature" end it "should return 1 language" do @provider.available_languages.size.should == 1 end it "should return the right language" do @provider.available_languages.first.should == @l end end describe "with 2 translations in 1 language" do before :each do @l = Language.create :code => 'en-US', :name => 'English' @t = ItemTranslation.create :item => @item, :language => @l, :name => "Book", :desc => "Literature" @t = ItemTranslation.create :item => @item, :language => @l, :name => "Hook", :desc => "Tool" @item.reload end it "should return 1 language" do @provider.available_languages.size.should == 1 end it "should return the right language" do @provider.available_languages.first.should == @l end end describe "with 3 translations in 2 languages" do before :each do @item2 = Item.create @l1 = Language.create :code => 'en-US', :name => 'English' @l2 = Language.create :code => 'de-AT', :name => 'Deutsch' ItemTranslation.create :item => @item, :language => @l1, :name => "Book", :desc => "Literature" ItemTranslation.create :item => @item, :language => @l2, :name => "Haken", :desc => "Werkzeug" ItemTranslation.create :item => @item2, :language => @l1, :name => "Hook", :desc => "Tool" end it "should return 2 language" do @provider.available_languages.size.should == 2 end it "should return the right language" do @provider.available_languages.size.should == 2 @provider.available_languages.should include(@l1) @provider.available_languages.should include(@l2) end end end