Blarg, finally got functional testing framework working. Had to override the TestSess...
authorJohn Dong <jdong@mit.edu>
Mon, 20 Aug 2007 18:32:52 +0000 (14:32 -0400)
committerJohn Dong <jdong@mit.edu>
Mon, 20 Aug 2007 18:32:52 +0000 (14:32 -0400)
app/controllers/quickvote_controller.rb
test/functional/quickvote_controller_test.rb

index 41d0dc3616050ef909e39ebbcaa2eef7363da12f..58370f7096b8b3b2ba1e0057553087ca2cc3e378 100644 (file)
@@ -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!
index f2b0c2c06c1ddff655fdd08e71c54e813df2472c..3f230b2f56645e3f2878340148e508b97f256a84 100644 (file)
@@ -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

Benjamin Mako Hill || Want to submit a patch?