예제 #1
0
 /**
  * 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);
 }