def create
if params[:quickvote]
@quickvote = QuickVote.new(params[:quickvote])
-
# store the candidate grabbed through ajax and stored in flash
@quickvote.candidatelist = flash[:candlist]
@quickvote.description=CGI.escapeHTML(@quickvote.description)
@quickvote = @quickvote.reload
render :action => 'success'
else
+ raise ArgumentError.new(@quickvote.errors.inspect)
flash.keep(:candlist)
end
def index
@election = QuickVote.ident_to_quickvote(params[:ident])
-
# if the person has specified an election, we show them the voting
# page. otherwise, we redirect back to main the page
if @election
-
# look to see that the voter has been created and has voted in
# this election, and has confirmed their vote
@voter = QuickVoter.find(:all, :conditions => ["session_id = ? and election_id = ?",
@voter = QuickVoter.new
@voter.election = @election
@voter.session_id = session.session_id
-
- # create new vote and make it the defaulted sorted list
+
+ # create new vote and make it the defaulted sorted list
@voter.vote = Vote.new
@voter.save
@voter.vote.set_defaults!
require File.dirname(__FILE__) + '/../test_helper'
require 'quickvote_controller'
+class ActionController::TestSession
+ def session_id
+ # Override this so we can set session ID
+ # pass in the 'test_session_id' session variable to override default
+ (@session and @session['test_session_id']) or "12345678"
+ end
+end
# Re-raise errors caught by the controller.
class QuickvoteController; def rescue_action(e) raise e end; end
get :index
assert_response 302
end
+
def test_create_quickvote
+ post(:create, {'commit' =>"Create Quickvote", 'quickvote' =>{'name' =>"variable", 'description' =>"Favorite variable."}}, nil, {:candlist=>["foo", "bar", "foobar"]})
+ assert_response :success
+ get :index, { 'ident' => "variable"}
+ assert_response :success
+ end
+ def test_get_quickvote_nonexistent
+ get :index, { 'ident' => "idontexist" }
+ assert_redirected_to :controller => 'site'
end
end