users_controller_spec.rb
上传用户:netsea168
上传日期:2022-07-22
资源大小:4652k
文件大小:3k
源码类别:

Ajax

开发平台:

Others

  1. require File.dirname(__FILE__) + '/../../spec_helper'
  2. describe Admin::UsersController, "rough port of the old functional test" do
  3.   integrate_views
  4.   fixtures :users
  5.   describe ' when you are admin' do
  6.     before(:each) do
  7.       request.session = { :user => users(:tobi).id }
  8.     end
  9.     it "test_index" do
  10.       get :index
  11.       assert_template 'index'
  12.       assert_template_has 'users'
  13.     end
  14.     it "test_new" do
  15.       get :new
  16.       assert_template 'new'
  17.       post :new, :user => { :login => 'errand', :email => 'corey@test.com',
  18.         :password => 'testpass', :password_confirmation => 'testpass', :profile_id => 1 }
  19.       response.should redirect_to(:action => 'index')
  20.     end
  21.     describe '#EDIT action' do
  22.       describe 'with POST request' do
  23.         before do
  24.           post :edit, :id => users(:tobi).id, :user => { :login => 'errand',
  25.             :email => 'corey@test.com', :password => 'testpass',
  26.             :password_confirmation => 'testpass' }
  27.         end
  28.         it 'should redirect to index' do
  29.           response.should redirect_to(:action => 'index')
  30.         end
  31.       end
  32.       describe 'with GET request' do
  33.         describe 'edit admin render', :shared => true do
  34.           it 'should render template edit' do
  35.             assert_template 'edit'
  36.           end
  37.           it 'should assigns tobi user' do
  38.             assert assigns(:user).valid?
  39.             assigns(:user).should == users(:tobi)
  40.           end
  41.         end
  42.         describe 'with no id params' do
  43.           before do
  44.             get :edit
  45.           end
  46.           it_should_behave_like 'edit admin render'
  47.         end
  48.         describe 'with id params' do
  49.           before do
  50.             get :edit, :id => users(:tobi).id
  51.           end
  52.           it_should_behave_like 'edit admin render'
  53.         end
  54.       end
  55.     end
  56.     it "test_destroy" do
  57.       user_count = User.count
  58.       get :destroy, :id => users(:bob).id
  59.       assert_template 'destroy'
  60.       assert assigns(:user).valid?
  61.       assert_equal user_count, User.count
  62.       post :destroy, :id => users(:bob).id
  63.       response.should redirect_to(:action => 'index')
  64.       assert_equal user_count - 1, User.count
  65.     end
  66.   end
  67.   describe 'when you are not admin' do
  68.     before :each do
  69.       session[:user] = users(:user_publisher).id
  70.     end
  71.     it "don't see the list of user" do
  72.       get :index
  73.       response.should redirect_to('/accounts/login')
  74.     end
  75.     describe 'EDIT Action' do
  76.       describe 'try update another user' do
  77.         before do
  78.           post :edit,
  79.             :id => users(:tobi).id,
  80.             :profile_id => profiles(:contributor).id
  81.         end
  82.         it 'should redirect to login' do
  83.           response.should redirect_to('/accounts/login')
  84.         end
  85.         it 'should not change user profile' do
  86.           u = users(:tobi).reload
  87.           u.profile_id.should == profiles(:admin).id
  88.         end
  89.       end
  90.     end
  91.   end
  92. end