]> projects.mako.cc - selectricity-live/blob - test/functional/quickvote_controller_test.rb
07c9278696053d3615636a1b176e0e88327800d4
[selectricity-live] / test / functional / quickvote_controller_test.rb
1 require File.dirname(__FILE__) + '/../test_helper'
2 require 'quickvote_controller'
3
4 class ActionController::TestSession
5   def session_id
6     # Override this so we can set session ID
7     # pass in the 'test_session_id' session variable to override default
8     (@session and @session['test_session_id'])  or "12345678"
9   end
10 end
11 # Re-raise errors caught by the controller.
12 class QuickvoteController; def rescue_action(e) raise e end; end
13
14 class QuickvoteControllerTest < Test::Unit::TestCase
15   def setup
16     @controller = QuickvoteController.new
17     @request    = ActionController::TestRequest.new
18     @response   = ActionController::TestResponse.new
19   end
20
21   # Replace this with your real tests.
22   def test_index
23     get :index
24     assert_response 302
25   end
26
27   def test_create_quickvote
28     post(:create, {'commit' =>"Create Quickvote", 'quickvote' =>{'name' =>"variable", 'description' =>"Favorite variable."}}, nil, {:candlist=>["foo", "bar", "foobar"]})
29     assert_template "quickvote/success"
30     get :index, { 'ident' => "variable"}
31     assert_response :success
32   end
33
34   def test_create_quickvote_badname
35     post(:create, {'commit' => "Create Quickvote", 'quickvote' => {'name' => "has a space", 'description' => "Foobar"}}, nil, {:candlist => ["foo", "bar", "foobar"]})
36     assert_template "quickvote/create"
37   end
38
39   def test_create_quickvote_dupe_candidate
40     post(:create, {'commit' => "Create Quickvote", 'quickvote' => {'name' => "has a space", 'description' => "Foobar"}}, nil, {:candlist => ["foo", "bar", "bar",  "foobar"]})
41     assert_template "quickvote/create"
42   end
43   
44   def test_create_quickvote_nil_candidate
45     post(:create, {'commit' => "Create Quickvote", 'quickvote' => {'name' => "has a space", 'description' => "Foobar"}}, nil, {:candlist => nil})
46     assert_template "quickvote/create"
47     post(:create, {'commit' => "Create Quickvote", 'quickvote' => {'name' => "has a space", 'description' => "Foobar"}}, nil, {:candlist => []})
48     assert_template "quickvote/create"
49   end
50
51   def test_get_quickvote_nonexistent
52     get :index, { 'ident' => "idontexist" }
53     assert_redirected_to :controller => 'site'
54   end
55
56   def test_get_result_empty_vote
57     test_create_quickvote
58     get :results, { 'ident' => 'variable' }
59     assert_response :success
60   end
61
62   def test_get_result_nonexistent
63     test_create_quickvote
64     get :results, { 'ident' => 'asdflaksdjf' }
65     assert_redirected_to :controller => 'site'
66   end
67
68 end

Benjamin Mako Hill || Want to submit a patch?