public function testIntro() { // Create contest $contestData = ContestsFactory::createContest(null, 1); $contestAdmin = UserFactory::createUser(); ContestsFactory::addAdminUser($contestData, $contestAdmin); // Contest will start in the future: $request = new Request(); $request['contest_alias'] = $contestData['request']['alias']; $request['auth_token'] = $this->login($contestAdmin); $request['start_time'] = Utils::GetPhpUnixTimestamp() + 60 * 60; $request['finish_time'] = $request['start_time'] + 60; ContestController::apiUpdate($request); // Contestant will try to open the contes, this should fail $contestant = UserFactory::createUser(); $request2 = new Request(); $request2['contest_alias'] = $contestData['request']['alias']; $request2['auth_token'] = $this->login($contestant); try { $response = ContestController::apiOpen($request2); $this->AssertFalse(true, 'User gained access to contest even though its registration needed.'); } catch (PreconditionFailedException $fae) { // Expected contestNotStarted exception. Continue. } $show_intro = ContestController::showContestIntro($request2); $this->assertEquals($show_intro, ContestController::SHOW_INTRO); // Contest is going on right now $request = new Request(); $request['contest_alias'] = $contestData['request']['alias']; $request['auth_token'] = $this->login($contestAdmin); $request['start_time'] = Utils::GetPhpUnixTimestamp() - 1; $request['finish_time'] = $request['start_time'] + 60; ContestController::apiUpdate($request); $show_intro = ContestController::showContestIntro($request2); $this->assertEquals($show_intro, ContestController::SHOW_INTRO); $request2 = new Request(); $request2['contest_alias'] = $contestData['request']['alias']; $request2['auth_token'] = $this->login($contestant); // Join this contest $response = ContestController::apiOpen($request2); // Now that i have joined the contest, i should not see the intro $show_intro = ContestController::showContestIntro($request2); $this->assertEquals($show_intro, !ContestController::SHOW_INTRO); }
<?php require_once '../../server/bootstrap.php'; $smarty->assign('admin', false); $smarty->assign('practice', false); $r = new Request(array("auth_token" => array_key_exists("ouat", $_REQUEST) ? $_REQUEST["ouat"] : null, "contest_alias" => $_REQUEST["contest_alias"])); if (ContestController::showContestIntro($r)) { $smarty->display('../../templates/arena.contest.intro.tpl'); } else { $smarty->assign('jsfile', '/ux/contest.js'); $smarty->display('../../templates/arena.contest.tpl'); }
<?php require_once '../../server/bootstrap.php'; $smarty->assign('admin', false); $smarty->assign('practice', false); $show_intro = true; try { $r = new Request(array('auth_token' => array_key_exists('ouat', $_REQUEST) ? $_REQUEST['ouat'] : null, 'contest_alias' => $_REQUEST['contest_alias'])); $show_intro = ContestController::showContestIntro($r); } catch (Exception $e) { header('HTTP/1.1 404 Not Found'); die(file_get_contents('../404.html')); } if ($show_intro) { $smarty->display('../../templates/arena.contest.intro.tpl'); } else { $smarty->assign('jsfile', '/ux/contest.js'); $smarty->display('../../templates/arena.contest.tpl'); }