/ */ namespace BehatTests; class ReviewContext extends AbstractContext { const ELEMENT_ACTIVITY_FIRST_LINE = '.activity-stream .activity-type-review .first-line'; protected $configParams = array(); public function __construct(array $parameters = null) { $this->configParams = $parameters; } /** * @Then /^I should be redirected to the page for that review$/ */ public function iShouldBeRedirectedToTheReviewPage() { // automatically generated reviews IDs are one over the corresponding change ID $reviewId = 1 + $this->getMainContext()->getSubcontext('file_context')->getChangeId(); $this->getSession()->visit($this->configParams['base_url']."/reviews/" . $reviewId); } /** * @Then /^I should see review activity listed$/ */ public function iShouldSeeReviewActivity() { $this->getSession()->reload(); $this->getMinkContext()->waitUntilAjaxCallsComplete(); $description = $this->getMainContext()->getSubcontext("file_context")->getChangeDescription(); $css = self::ELEMENT_ACTIVITY_FIRST_LINE . ":contains('$description')"; $this->getMinkContext()->assertElementOnPage($css); } /** * @Then /^I should not see review activity listed$/ */ public function iShouldNotSeeReviewActivity() { $this->getSession()->reload(); $this->getMinkContext()->waitUntilAjaxCallsComplete(); $description = $this->getMainContext()->getSubcontext("file_context")->getChangeDescription(); $css = self::ELEMENT_ACTIVITY_FIRST_LINE . ":contains('$description')"; $this->getMinkContext()->assertElementNotOnPage($css); } /** * @Then /^I should see that the review open task count is (\d+)$/ */ public function iShouldSeeOpenTaskCount($count) { $this->getMinkContext()->waitUntilAjaxCallsComplete(); $this->getMinkContext()->assertElementOnPage(".tasks-open:contains('$count')"); } /** * @Then /^I should see users "(?P[^"]*)" listed as reviewers$/ */ public function iShouldSeeReviewers($userList) { $userArray = explode(", ", $userList); foreach ($userArray as $user) { $this->getMinkContext()->assertElementOnPage(".reviewers a[href='/users/$user/']"); } } }