. * */ use Behat\Behat\Context\Context; class AppNavigationContext implements Context, ActorAwareInterface { use ActorAware; /** * @return Locator */ public static function appNavigation() { return Locator::forThe()->id("app-navigation")-> describedAs("App navigation"); } /** * @return Locator */ public static function appNavigationSectionItemFor($sectionText) { return Locator::forThe()->xpath("//li[normalize-space() = '$sectionText']")-> descendantOf(self::appNavigation())-> describedAs($sectionText . " section item in App Navigation"); } /** * @return Locator */ public static function appNavigationCurrentSectionItem() { return Locator::forThe()->css(".active")->descendantOf(self::appNavigation())-> describedAs("Current section item in App Navigation"); } /** * @Given I open the :section section */ public function iOpenTheSection($section) { $this->actor->find(self::appNavigationSectionItemFor($section), 10)->click(); } /** * @Then I see that the current section is :section */ public function iSeeThatTheCurrentSectionIs($section) { PHPUnit_Framework_Assert::assertEquals($this->actor->find(self::appNavigationCurrentSectionItem(), 10)->getText(), $section); } }