diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/user_controller_spec.rb | 57 | ||||
-rw-r--r-- | spec/models/about_me_validator_spec.rb | 53 | ||||
-rw-r--r-- | spec/models/user_spec.rb | 18 |
3 files changed, 128 insertions, 0 deletions
diff --git a/spec/controllers/user_controller_spec.rb b/spec/controllers/user_controller_spec.rb index 413d395c5..443856cf3 100644 --- a/spec/controllers/user_controller_spec.rb +++ b/spec/controllers/user_controller_spec.rb @@ -1,6 +1,63 @@ # coding: utf-8 require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') +describe UserController do + + describe :set_profile_photo do + + context 'user is banned' do + + before(:each) do + @user = FactoryGirl.create(:user, :ban_text => 'Causing trouble') + session[:user_id] = @user.id + @uploadedfile = fixture_file_upload("/files/parrot.png") + + post :set_profile_photo, :id => @user.id, + :file => @uploadedfile, + :submitted_draft_profile_photo => 1, + :automatically_crop => 1 + end + + it 'redirects to the profile page' do + expect(response).to redirect_to(set_profile_photo_path) + end + + it 'renders an error message' do + msg = 'Banned users cannot edit their profile' + expect(flash[:error]).to eq(msg) + end + + end + + end + + describe :set_profile_about_me do + + context 'user is banned' do + + before(:each) do + @user = FactoryGirl.create(:user, :ban_text => 'Causing trouble') + session[:user_id] = @user.id + + post :set_profile_about_me, :submitted_about_me => '1', + :about_me => 'Bad stuff' + end + + it 'redirects to the profile page' do + expect(response).to redirect_to(set_profile_about_me_path) + end + + it 'renders an error message' do + msg = 'Banned users cannot edit their profile' + expect(flash[:error]).to eq(msg) + end + + end + + end + +end + # TODO: Use route_for or params_from to check /c/ links better # http://rspec.rubyforge.org/rspec-rails/1.1.12/classes/Spec/Rails/Example/ControllerExampleGroup.html describe UserController, "when redirecting a show request to a canonical url" do diff --git a/spec/models/about_me_validator_spec.rb b/spec/models/about_me_validator_spec.rb new file mode 100644 index 000000000..5610cead8 --- /dev/null +++ b/spec/models/about_me_validator_spec.rb @@ -0,0 +1,53 @@ +require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') + +describe AboutMeValidator do + + describe :new do + + it 'sets each supported attribute on the instance' do + params = { :about_me => 'My description' } + validator = AboutMeValidator.new(params) + expect(validator.about_me).to eq('My description') + end + + end + + describe :valid? do + + it 'is valid if about_me is =< 500' do + params = { :about_me => 'a'*500 } + validator = AboutMeValidator.new(params) + expect(validator).to be_valid + end + + it 'is valid if about_me is blank' do + params = { :about_me => '' } + validator = AboutMeValidator.new(params) + expect(validator).to be_valid + end + + it 'is valid if about_me is nil' do + params = { :about_me => nil } + validator = AboutMeValidator.new(params) + expect(validator).to be_valid + end + + it 'is invalid if about_me is > 500' do + params = { :about_me => 'a'*501 } + validator = AboutMeValidator.new(params) + expect(validator).to have(1).error_on(:about_me) + end + + end + + describe :about_me do + + it 'has an attribute accessor' do + params = { :about_me => 'My description' } + validator = AboutMeValidator.new(params) + expect(validator.about_me).to eq('My description') + end + + end + +end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 7dcd3ab8a..2245a024f 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -369,3 +369,21 @@ describe User, "when calculating if a user has exceeded the request limit" do end + +describe User do + + describe :banned? do + + it 'is banned if the user has ban_text' do + user = FactoryGirl.build(:user, :ban_text => 'banned') + expect(user).to be_banned + end + + it 'is not banned if the user has no ban_text' do + user = FactoryGirl.build(:user, :ban_text => '') + expect(user).to_not be_banned + end + + end + +end |