Show More
Commit Description:
Merge pull request #15 from nattee/master...
Commit Description:
Merge pull request #15 from nattee/master
finalizing merge of nattee's master
References:
File last commit:
Show/Diff file:
Action:
spec/controllers/user_admin_controller_spec.rb
| 73 lines
| 1.9 KiB
| text/x-ruby
| RubyLexer
|
|
r295 | require 'delorean' | ||
require File.dirname(__FILE__) + '/../spec_helper' | ||||
require File.dirname(__FILE__) + '/../config_spec_helper' | ||||
describe UserAdminController, "when manage contest" do | ||||
include ConfigSpecHelperMethods | ||||
fixtures :users | ||||
fixtures :problems | ||||
fixtures :contests | ||||
fixtures :roles | ||||
def change_users_contest_to(user_login_list, contest, reset_timer=false) | ||||
post_data = { | ||||
:contest => {:id => contest.id}, | ||||
:operation => 'assign', | ||||
:login_list => user_login_list | ||||
} | ||||
post_data[:reset_timer] = true if reset_timer | ||||
post 'manage_contest', post_data, {:user_id => @admin_user.id} | ||||
end | ||||
before(:each) do | ||||
@admin_user = users(:mary) | ||||
@contest_b = contests(:contest_b) | ||||
@james = users(:james) | ||||
@jack = users(:jack) | ||||
set_contest_time_limit('3:00') | ||||
set_indv_contest_mode | ||||
end | ||||
it "should allow admin to see contest management page" do | ||||
get 'contest_management', {}, {:user_id => @admin_user.id} | ||||
response.should render_template 'user_admin/contest_management' | ||||
end | ||||
it "should change users' contest" do | ||||
change_users_contest_to("james\njack", @contest_b) | ||||
response.should redirect_to :action => 'contest_management' | ||||
@james.contests(true).should include @contest_b | ||||
@jack.contests(true).should_not include @contest_a | ||||
end | ||||
it "should reset users' timer when their contests change" do | ||||
@james.update_start_time | ||||
Delorean.time_travel_to(190.minutes.since) do | ||||
@james.contest_finished?.should be_true | ||||
change_users_contest_to("james", @contest_b, true) | ||||
@james.contest_finished?.should be_false | ||||
end | ||||
end | ||||
it "should set forced_logout flag for users when their contests change" do | ||||
@james.update_start_time | ||||
Delorean.time_travel_to(190.minutes.since) do | ||||
@james.contest_finished?.should be_true | ||||
change_users_contest_to("james", @contest_b, true) | ||||
@james.contest_stat(true).forced_logout.should be_true | ||||
end | ||||
end | ||||
end | ||||