X-Git-Url: https://projects.mako.cc/source/selectricity/blobdiff_plain/c65b1e11059c5cf510b54c785d4a246215058f70..4ae380231b08416a3ac3b6966d9dbc00a73fc3ca:/test/functional/quickvote_controller_test.rb diff --git a/test/functional/quickvote_controller_test.rb b/test/functional/quickvote_controller_test.rb index d0b37d9..07c9278 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 @@ -12,7 +19,50 @@ class QuickvoteControllerTest < Test::Unit::TestCase end # Replace this with your real tests. - def test_truth - assert true + def test_index + 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_template "quickvote/success" + get :index, { 'ident' => "variable"} + assert_response :success + end + + def test_create_quickvote_badname + post(:create, {'commit' => "Create Quickvote", 'quickvote' => {'name' => "has a space", 'description' => "Foobar"}}, nil, {:candlist => ["foo", "bar", "foobar"]}) + assert_template "quickvote/create" + end + + def test_create_quickvote_dupe_candidate + post(:create, {'commit' => "Create Quickvote", 'quickvote' => {'name' => "has a space", 'description' => "Foobar"}}, nil, {:candlist => ["foo", "bar", "bar", "foobar"]}) + assert_template "quickvote/create" end + + def test_create_quickvote_nil_candidate + post(:create, {'commit' => "Create Quickvote", 'quickvote' => {'name' => "has a space", 'description' => "Foobar"}}, nil, {:candlist => nil}) + assert_template "quickvote/create" + post(:create, {'commit' => "Create Quickvote", 'quickvote' => {'name' => "has a space", 'description' => "Foobar"}}, nil, {:candlist => []}) + assert_template "quickvote/create" + end + + def test_get_quickvote_nonexistent + get :index, { 'ident' => "idontexist" } + assert_redirected_to :controller => 'site' + end + + def test_get_result_empty_vote + test_create_quickvote + get :results, { 'ident' => 'variable' } + assert_response :success + end + + def test_get_result_nonexistent + test_create_quickvote + get :results, { 'ident' => 'asdflaksdjf' } + assert_redirected_to :controller => 'site' + end + end