+ def test_logout_without_referer
+ get :logout
+ assert_response :success
+ assert_template :logout
+ assert_select "input[name=referer][value=?]", ""
+
+ session_id = assert_select("input[name=session]").first["value"]
+
+ get :logout, :session => session_id
+ assert_response :redirect
+ assert_redirected_to root_path
+ end
+
+ def test_logout_with_referer
+ get :logout, :referer => "/test"
+ assert_response :success
+ assert_template :logout
+ assert_select "input[name=referer][value=?]", "/test"
+
+ session_id = assert_select("input[name=session]").first["value"]
+
+ get :logout, :session => session_id, :referer => "/test"
+ assert_response :redirect
+ assert_redirected_to "/test"
+ end
+
+ def test_confirm_get
+ user = users(:inactive_user)
+ confirm_string = user.tokens.create.token
+
+ @request.cookies["_osm_session"] = user.display_name
+ get :confirm, :display_name => user.display_name, :confirm_string => confirm_string
+ assert_response :success
+ assert_template :confirm
+ end
+
+ def test_confirm_get_already_confirmed
+ user = users(:normal_user)
+ confirm_string = user.tokens.create.token
+
+ @request.cookies["_osm_session"] = user.display_name
+ get :confirm, :display_name => user.display_name, :confirm_string => confirm_string
+ assert_response :redirect
+ assert_redirected_to root_path
+ end
+
+ def test_confirm_success_no_token_no_referer
+ user = users(:inactive_user)
+ confirm_string = user.tokens.create.token
+
+ @request.cookies["_osm_session"] = user.display_name
+ post :confirm, :display_name => user.display_name, :confirm_string => confirm_string
+ assert_redirected_to login_path
+ assert_match /Confirmed your account/, flash[:notice]
+ end
+
+ 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