diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb index 13699c59b..b5e506e20 100644 --- a/spec/controllers/users_controller_spec.rb +++ b/spec/controllers/users_controller_spec.rb @@ -11,7 +11,8 @@ describe UsersController do let!(:old_password) { user.encrypted_password } let!(:old_language) { user.language } - + let!(:old_gender) { user.grammatical_gender } + before do sign_in :user, user end @@ -59,5 +60,28 @@ describe UsersController do user.language.should_not == old_language end end + + describe 'grammatical_gender' do + it 'should allow user to change his grammatical gender for some languages' do + user.language = 'pl' + user.grammatical_gender = 'masculine' + user.save + old_gender = user.grammatical_gender + put("update", :id => user.id, "user" => {"language" => "ru", "grammatical_gender" => "neuter"}) + user.reload + user.grammatical_gender.should_not == old_gender + old_gender = user.grammatical_gender + put("update", :id => user.id, "user" => {"language" => "ru", "grammatical_gender" => ""}) + user.reload + user.grammatical_gender.should == old_gender + put("update", :id => user.id, "user" => {"language" => "ru", "grammatical_gender" => "feminine"}) + user.reload + old_gender = user.grammatical_gender + put("update", :id => user.id, "user" => {"language" => "en"}) + user.reload + user.grammatical_gender.should == old_gender + end + end + end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 464787133..a0758709c 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -167,6 +167,22 @@ describe User do end end + describe "of grammatical gender" do + after do + I18n.locale = :en + end + it "requires availability" do + user = Factory.build(:user, :grammatical_gender => 'some invalid string') + user.should_not be_valid + end + + it "should save with empty grammatical gender if blank" do + I18n.locale = :pl + user = Factory(:user, :grammatical_gender => nil) + user.grammatical_gender.should == nil + end + end + end describe ".build" do