diff --git a/spec/integration/contest_managements_spec.rb b/spec/integration/contest_managements_spec.rb deleted file mode 100644 --- a/spec/integration/contest_managements_spec.rb +++ /dev/null @@ -1,136 +0,0 @@ -require 'spec_helper' -require 'config_spec_helper' -require 'delorean' - -describe "ContestManagements" do - include ConfigSpecHelperMethods - - fixtures :users - fixtures :problems - fixtures :contests - fixtures :roles - - 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 - enable_multicontest - end - - it "should reset users' timer when their contests change" do - session = open_session - session.extend(MainSessionMethods) - - james_login_and_get_main_list(session) - session.response.should_not have_text(/OVER/) - - Delorean.time_travel_to(190.minutes.since) do - session.get_main_list - session.response.should have_text(/OVER/) - - session.get '/' # logout - session.get '/main/list' # clearly log out - session.response.should_not render_template 'main/list' - - admin_change_users_contest_to("james", @contest_b, true) - - james_login_and_get_main_list(session) - session.response.should_not have_text(/OVER/) - end - end - - it "should force users to log out when their contests change" do - session = open_session - session.extend(MainSessionMethods) - - james_login_and_get_main_list(session) - session.response.should_not have_text(/OVER/) - - Delorean.time_travel_to(190.minutes.since) do - session.get_main_list - session.response.should have_text(/OVER/) - - admin_change_users_contest_to("james", @contest_b, true) - - session.get '/main/list' - session.response.should_not render_template 'main/list' - session.should be_redirect - - Delorean.time_travel_to(200.minutes.since) do - james_login_and_get_main_list(session) - session.response.should_not have_text(/OVER/) - end - end - end - - it "should maintain admin logged-in sessions even when their contests change" do - session = open_session - session.extend(MainSessionMethods) - - session.login('mary', 'goodbye') - session.get_main_list - session.response.should_not have_text(/OVER/) - - Delorean.time_travel_to(190.minutes.since) do - session.get_main_list - session.response.should have_text(/OVER/) - - admin_change_users_contest_to("mary", @contest_b, true) - - session.get '/main/list' - session.response.should render_template 'main/list' - end - end - - private - - module MainSessionMethods - def login(login_name, password) - post '/login/login', :login => login_name, :password => password - assert_redirected_to '/main/list' - end - - def get_main_list - get '/main/list' - assert_template 'main/list' - end - - def get_main_list_and_assert_logout - get '/main/list' - assert_redirected_to '/main' - end - end - - module ContestManagementSessionMethods - 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 '/user_admin/manage_contest', post_data - end - end - - def admin_change_users_contest_to(user_list, contest, reset_timer) - admin_session = open_session - admin_session.extend(MainSessionMethods) - admin_session.extend(ContestManagementSessionMethods) - - admin_session.login('mary','goodbye') - admin_session.get '/main/list' - admin_session.change_users_contest_to(user_list, contest, reset_timer) - end - - def james_login_and_get_main_list(session) - session.login('james', 'morning') - session.get_main_list - end - -end -