Create note on discontinued development
[merb_mart.git] / spec / controllers / users_spec.rb
blob3509eaaf52bbade213ec35af53c3125db9fa7277
1 require File.join(File.dirname(__FILE__), '..', 'spec_helper.rb')
2 require File.join( File.dirname(__FILE__), "..", "user_spec_helper")
3 require File.join( File.dirname(__FILE__), "..", "authenticated_system_spec_helper")
5 describe Users do
7   include UserSpecHelper
9   before(:each) do
10     User.clear_database_table
11   end
13   it 'allows signup' do
14      lambda do
15        controller = create_user
16        controller.should redirect
17      end.should change(User, :count).by(1)
18    end
20    it 'requires login on signup' do
21      lambda do
22        controller = create_user(:login => nil)
23        controller.assigns(:user).errors.on(:login).should_not be_nil
24        controller.should respond_successfully
25      end.should_not change(User, :count)
26    end
28    it 'requires password on signup' do
29      lambda do
30        controller = create_user(:password => nil)
31        controller.assigns(:user).errors.on(:password).should_not be_nil
32        controller.should respond_successfully
33      end.should_not change(User, :count)
34    end
36    it 'requires password confirmation on signup' do
37      lambda do
38        controller = create_user(:password_confirmation => nil)
39        controller.assigns(:user).errors.on(:password_confirmation).should_not be_nil
40        controller.should respond_successfully
41      end.should_not change(User, :count)
42    end
44    it 'requires email on signup' do
45      lambda do
46        controller = create_user(:email => nil)
47        controller.assigns(:user).errors.on(:email).should_not be_nil
48        controller.should respond_successfully
49      end.should_not change(User, :count)
50    end
52    it "should have a route for user activation" do
53      request_to("/users/activate/1234") do |params|
54        params[:controller].should == "Users"
55        params[:action].should == "activate"
56        params[:activation_code].should == "1234"
57      end
58    end
60    it 'activates user' do
61      controller = create_user(:login => "aaron", :password => "test", :password_confirmation => "test")
62      @user = controller.assigns(:user)
63      User.authenticate('aaron', 'test').should be_nil
64      controller = get "/users/activate/1234"
65      controller.should redirect_to("/")
66    end
68    def create_user(options = {})
69      post "/users", :user => valid_user_hash.merge(options)
70    end
71 end