示例#1
0
 /**
  * Tests problem admins list API
  */
 public function testProblemAdmins()
 {
     // Get a problem
     $problemData = ProblemsFactory::createProblem();
     // Create our new admin
     $problemAdmin = UserFactory::createUser();
     // Add admin to the problem
     $response = ProblemController::apiAddAdmin(new Request(array("usernameOrEmail" => $problemAdmin->username, "problem_alias" => $problemData["request"]["alias"], "auth_token" => $this->login($problemData["author"]))));
     $this->assertEquals("ok", $response["status"]);
     // Get the list of admins
     $response = ProblemController::apiAdmins(new Request(array("problem_alias" => $problemData["request"]["alias"], "auth_token" => $this->login($problemData["author"]))));
     $adminFound = false;
     $authorFound = false;
     foreach ($response["admins"] as $adminEntry) {
         if ($adminEntry["username"] == $problemAdmin->username) {
             $adminFound = true;
         }
         if ($adminEntry["username"] == $problemData["author"]->username) {
             $authorFound = true;
         }
     }
     $this->assertTrue($adminFound);
     $this->assertTrue($authorFound);
 }
 /**
  * Tests problem admins list API
  */
 public function testProblemAdmins()
 {
     // Get a problem
     $problemData = ProblemsFactory::createProblem();
     // Create our new admin
     $problemAdmin = UserFactory::createUser();
     // Add admin to the problem
     $response = ProblemController::apiAddAdmin(new Request(array('usernameOrEmail' => $problemAdmin->username, 'problem_alias' => $problemData['request']['alias'], 'auth_token' => $this->login($problemData['author']))));
     $this->assertEquals('ok', $response['status']);
     // Get the list of admins
     $response = ProblemController::apiAdmins(new Request(array('problem_alias' => $problemData['request']['alias'], 'auth_token' => $this->login($problemData['author']))));
     $adminFound = false;
     $authorFound = false;
     foreach ($response['admins'] as $adminEntry) {
         if ($adminEntry['username'] == $problemAdmin->username) {
             $adminFound = true;
         }
         if ($adminEntry['username'] == $problemData['author']->username) {
             $authorFound = true;
         }
     }
     $this->assertTrue($adminFound);
     $this->assertTrue($authorFound);
 }
 /**
  * An added admin should see those problems as well
  */
 public function testAllPrivateProblemsShowToAddedAdmin()
 {
     $author = UserFactory::createUser();
     $problemDataPrivate = ProblemsFactory::createProblem(null, null, 0, $author);
     $addedAdmin = UserFactory::createUser();
     $r = new Request();
     $r['auth_token'] = $this->login($addedAdmin);
     // Should not be contained in problem list.
     $response = ProblemController::apiList($r);
     $this->assertArrayNotContainsInKey($response['results'], 'alias', $problemDataPrivate['request']['alias']);
     $r2 = new Request();
     $r2['auth_token'] = $this->login($author);
     $r2['problem_alias'] = $problemDataPrivate['request']['alias'];
     $r2['usernameOrEmail'] = $addedAdmin->username;
     $response = ProblemController::apiAddAdmin($r2);
     $this->assertEquals('ok', $response['status']);
     // Now it should be visible.
     $response = ProblemController::apiList($r);
     $this->assertArrayContainsInKey($response['results'], 'alias', $problemDataPrivate['request']['alias']);
 }