/** * Get contest details for a public contest */ public function testGetContestDetailsValid() { // Get a contest $contestData = ContestsFactory::createContest(); // Get some problems into the contest $numOfProblems = 3; $problems = $this->insertProblemsInContest($contestData, $numOfProblems); // Get a user for our scenario $contestant = UserFactory::createUser(); // Assert the log is empty. $this->assertEquals(0, count(ContestAccessLogDAO::search(array('contest_id' => $contestData['contest']->contest_id, 'user_id' => $contestant->user_id)))); // Prepare our request $r = new Request(); $r['contest_alias'] = $contestData['request']['alias']; // Log in the user $r['auth_token'] = $this->login($contestant); // Explicitly join contest ContestController::apiOpen($r); // Call api $response = ContestController::apiDetails($r); $this->assertContestDetails($contestData, $problems, $response); // Assert the log is not empty. $this->assertEquals(1, count(ContestAccessLogDAO::search(array('contest_id' => $contestData['contest']->contest_id, 'user_id' => $contestant->user_id)))); }