test/functional/users_controller_test.rb in zena-1.0.0.rc3 vs test/functional/users_controller_test.rb in zena-1.0.0

- old
+ new

@@ -96,39 +96,88 @@ 'infamous' => '' # This is to test bad blank values }, '_' => '', # This is in the original post :action => 'create', :node => { - 'name' => 'Dupont', + 'name' => 'Dupont', 'first_name' => 'Paul', 'email' => 'paul.bolomey@brainfuck.com', }, } end should 'succeed' do - post_subject - assert_response :success - user = assigns(:user) - assert !user.new_record? - end - - should 'create a new user' do assert_difference('User.count', 1) do post_subject + assert_response :success + user = assigns(:user) end end should 'create a new node' do assert_difference('Node.count', 1) do post_subject end end + + should 'set node attributes' do + post_subject + node = secure(Node) { Node.find(assigns(:user).node_id) } + assert_equal 'Dupont', node.name + assert_equal 'Paul', node.first_name + assert_equal 'paul.bolomey@brainfuck.com', node.email + end + + context 'with an existing node' do + subject do + { + :user => { + 'lang' => 'fr', + 'time_zone' => 'Europe/Zurich', + 'status' => '50', + 'password' => 'secret', + 'login' => 'bolomey', + 'group_ids' => [groups_id(:admin), ''], + 'infamous' => '' # This is to test bad blank values + }, + '_' => '', # This is in the original post + :action => 'create', + :node => { + 'id' => 'Solen', + 'name' => 'Dupont', + 'first_name' => 'Paul', + 'email' => 'paul.bolomey@brainfuck.com', + }, + } + end + + should 'succeed' do + assert_difference('User.count', 1) do + post_subject + assert_response :success + user = assigns(:user) + end + end + + should 'not create a new node' do + assert_difference('Node.count', 0) do + post_subject + end + end + + should 'set node attributes' do + post_subject + node = secure(Node) { Node.find(assigns(:user).node_id) } + assert_equal nodes_id(:ant), node.id + assert_equal 'Dupont', node.name + assert_equal 'Paul', node.first_name + assert_equal 'paul.bolomey@brainfuck.com', node.email + end + end # with an existing node end # creating a new user end # With an admin user - context 'Accessing preferences' do setup do login(:ant) get(:preferences, {'id'=>visitor.id}) end @@ -146,15 +195,15 @@ 'lang'=>'en', 'time_zone'=>'Africa/Algiers', 'login'=>'lion', } end - + should_assign_to :user - + should_respond_with :success - + should "set timezone" do err assigns(:user) assert_equal 'Africa/Algiers', users(:lion)[:time_zone] end end # Updating a user @@ -197,11 +246,11 @@ subject assert_response :success assert !users(:ant).valid_password?('superman') assert users(:ant).valid_password?('ant') end - + should 'set an error' do subject assert_equal 'not correct', assigns(:user).errors[:old_password] end end # with an invalid previous password @@ -225,21 +274,21 @@ should 'set password' do subject assert_response :success assert users(:lion).valid_password?('superman') end - + should 'set other user password' do put 'update', 'id' => users_id(:ant), 'update' => 'pass', 'user' => { 'password' => 'cymbal' } assert_response :success assert users(:ant).valid_password?('cymbal') end - + should 'not set own password without previous password' do put 'update', 'id' => users_id(:lion), 'update' => 'pass', 'user' => { \ No newline at end of file