spec/integration/mongoid/i18n_spec.rb in mongoid_i18n-0.1.5 vs spec/integration/mongoid/i18n_spec.rb in mongoid_i18n-0.1.6
- old
+ new
@@ -2,117 +2,142 @@
require 'spec_helper'
class Entry
include Mongoid::Document
include Mongoid::I18n
-
+
localized_field :title
field :published, :type => Boolean
end
describe Mongoid::I18n, "localized_field" do
before do
I18n.locale = :en
end
-
+
describe "without an assigned value" do
before do
@entry = Entry.new
end
-
+
it "should return blank" do
@entry.title.should be_blank
end
end
-
+
describe "with an assigned value" do
before do
@entry = Entry.new(:title => 'Title')
end
-
+
describe "and persisted" do
before do
@entry.save
end
-
+
describe "where() criteria" do
it "should use the current locale value" do
Entry.where(:title => 'Title').first.should == @entry
end
end
-
+
describe "find(:first) with :conditions" do
it "should use the current locale value" do
Entry.find(:first, :conditions => {:title => 'Title'}).should == @entry
end
end
end
-
+
it "should return that value" do
@entry.title.should == 'Title'
end
-
+
describe "when the locale is changed" do
before do
I18n.locale = :es
end
-
+
it "should return a blank value" do
@entry.title.should be_blank
end
-
+
describe "a new value is assigned" do
before do
@entry.title = 'Título'
end
-
+
it "should return the new value" do
@entry.title.should == 'Título'
end
-
+
describe "persisted and retrieved from db" do
before do
@entry.save
@entry = Entry.find(:first, :conditions => {:title => 'Título'})
end
-
+
it "the localized field value should be ok" do
@entry.title.should == 'Título'
I18n.locale = :en
@entry.title.should == 'Title'
@entry.title_translations.should == {'en' => 'Title', 'es' => 'Título'}
end
end
-
+
describe "getter.translations" do
it "should return all translations" do
@entry.title_translations.should == {'en' => 'Title', 'es' => 'Título'}
end
end
-
+
describe "getter.translations=" do
before do
@entry.title_translations = {'en' => 'New title', 'es' => 'Nuevo título'}
end
-
+
it "should accept new translations" do
@entry.title_translations.should == {'en' => 'New title', 'es' => 'Nuevo título'}
end
-
+
it "the getter should return the new translation" do
@entry.title.should == 'Nuevo título'
end
end
-
+
describe "and we go back to the original locale" do
before do
I18n.locale = :en
end
-
+
it "should return the original value" do
@entry.title.should == 'Title'
end
end
end
end
+ end
+end
+
+describe Mongoid::I18n, 'criteria on embeds_many association' do
+ before do
+ class Entry
+ embeds_many :sub_entries
+ end
+
+ class SubEntry
+ include Mongoid::Document
+ include Mongoid::I18n
+ localized_field :title
+ embedded_in :entry, :inverse_of => :sub_entries
+ end
+ @entry = Entry.new
+ @sub_entries = (0..2).map { @entry.sub_entries.build }
+ end
+
+ it "should return a LocalizedCriteria" do
+ @entry.sub_entries.criteria.should be_a(Mongoid::I18n::LocalizedCriteria)
+ end
+
+ it "should contain the embedded documents" do
+ @entry.sub_entries.criteria.instance_variable_get("@documents").should == @sub_entries
end
end
\ No newline at end of file