From: John Dong Date: Mon, 20 Aug 2007 18:32:52 +0000 (-0400) Subject: Blarg, finally got functional testing framework working. Had to override the TestSess... X-Git-Url: https://projects.mako.cc/source/selectricity/commitdiff_plain/192728d0e5facadf7e41ed737ca59e5c14123efd Blarg, finally got functional testing framework working. Had to override the TestSession class --- diff --git a/app/controllers/quickvote_controller.rb b/app/controllers/quickvote_controller.rb index 41d0dc3..58370f7 100644 --- a/app/controllers/quickvote_controller.rb +++ b/app/controllers/quickvote_controller.rb @@ -12,7 +12,6 @@ class QuickvoteController < ApplicationController 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) @@ -22,6 +21,7 @@ class QuickvoteController < ApplicationController @quickvote = @quickvote.reload render :action => 'success' else + raise ArgumentError.new(@quickvote.errors.inspect) flash.keep(:candlist) end @@ -52,11 +52,9 @@ class QuickvoteController < ApplicationController 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 = ?", @@ -75,8 +73,8 @@ class QuickvoteController < ApplicationController @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! diff --git a/test/functional/quickvote_controller_test.rb b/test/functional/quickvote_controller_test.rb index f2b0c2c..3f230b2 100644 --- a/test/functional/quickvote_controller_test.rb +++ b/test/functional/quickvote_controller_test.rb @@ -1,6 +1,13 @@ 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 @@ -16,7 +23,16 @@ class QuickvoteControllerTest < Test::Unit::TestCase 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