+ def test_confirm_success_good_token_no_referer
+ user = users(:inactive_user)
+ confirm_string = user.tokens.create.token
+ token = user.tokens.create.token
+
+ @request.cookies["_osm_session"] = user.display_name
+ post :confirm, { :display_name => user.display_name, :confirm_string => confirm_string }, { :token => token }
+ assert_redirected_to welcome_path
+ end
+
+ def test_confirm_success_bad_token_no_referer
+ user = users(:inactive_user)
+ confirm_string = user.tokens.create.token
+ token = users(:normal_user).tokens.create.token
+
+ @request.cookies["_osm_session"] = user.display_name
+ post :confirm, { :display_name => user.display_name, :confirm_string => confirm_string }, { :token => token }
+ assert_redirected_to login_path
+ assert_match /Confirmed your account/, flash[:notice]
+ end
+
+ def test_confirm_success_no_token_with_referer
+ user = users(:inactive_user)
+ confirm_string = user.tokens.create(:referer => diary_new_path).token
+
+ @request.cookies["_osm_session"] = user.display_name
+ post :confirm, :display_name => user.display_name, :confirm_string => confirm_string
+ assert_redirected_to login_path(:referer => diary_new_path)
+ assert_match /Confirmed your account/, flash[:notice]
+ end
+
+ def test_confirm_success_good_token_with_referer
+ user = users(:inactive_user)
+ confirm_string = user.tokens.create(:referer => diary_new_path).token
+ token = user.tokens.create.token
+
+ @request.cookies["_osm_session"] = user.display_name
+ post :confirm, { :display_name => user.display_name, :confirm_string => confirm_string }, { :token => token }
+ assert_redirected_to diary_new_path
+ end
+
+ def test_confirm_success_bad_token_with_referer
+ user = users(:inactive_user)
+ confirm_string = user.tokens.create(:referer => diary_new_path).token
+ token = users(:normal_user).tokens.create.token
+
+ @request.cookies["_osm_session"] = user.display_name
+ post :confirm, { :display_name => user.display_name, :confirm_string => confirm_string }, { :token => token }
+ assert_redirected_to login_path(:referer => diary_new_path)
+ assert_match /Confirmed your account/, flash[:notice]
+ end
+
+ def test_confirm_expired_token
+ user = users(:inactive_user)
+ confirm_string = user.tokens.create(:expiry => 1.day.ago).token
+
+ @request.cookies["_osm_session"] = user.display_name
+ post :confirm, :display_name => user.display_name, :confirm_string => confirm_string