/** * Test that contests with recommended flag show first in list. */ public function testRecommendedShowsOnTop() { $r = new Request(); // Create 2 contests, with the not-recommended.finish_time > recommended.finish_time $recommendedContestData = ContestsFactory::createContest(); $notRecommendedContestData = ContestsFactory::createContest(null, 0, null, $recommendedContestData['request']['finish_time'] + 1); // Get a user for our scenario $contestant = UserFactory::createUser(); // Turn recommended ON $r = new Request(); $r['contest_alias'] = $recommendedContestData['request']['alias']; $r['auth_token'] = $this->login(UserFactory::createAdminUser()); $r['value'] = 1; ContestController::apiSetRecommended($r); // Get list of contests $r['auth_token'] = $this->login($contestant); $response = ContestController::apiList($r); // Check that recommended contest is earlier in list han not-recommended $recommendedPosition = 0; $notRecommendedPosition = 0; foreach ($response['results'] as $contest) { if ($contest['title'] == $recommendedContestData['request']['title']) { break; } $recommendedPosition++; } foreach ($response['results'] as $contest) { if ($contest['title'] == $notRecommendedContestData['request']['title']) { break; } $notRecommendedPosition++; } $this->assertTrue($recommendedPosition < $notRecommendedPosition); }
/** * Set Recommended flag to a given contest from non admin account * * @expectedException ForbiddenAccessException */ public function testSetRecommendedFlagNonAdmin() { // Get a contest $contestData = ContestsFactory::createContest(); // Prepare request $r = new Request(); $r['contest_alias'] = $contestData['request']['alias']; // Log in with contest owner $r['auth_token'] = $this->login($contestData['director']); // Update value to TRUE $r['value'] = 1; // Call API ContestController::apiSetRecommended($r); }