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);
 }
Exemple #2
0
<?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');
}
Exemple #3
0
<?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');
}