/** * 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']); }