function initialize() { self::addStep('Given', '/I am on (.*)/', function (&$browser, $matches, $args, $label) { $browser->assertTrue($browser->get(FeatureContext::$_pages[$matches[1]]), $label); }); self::addStep('When', '/I go to (.*)/', function (&$browser, $matches, $args, $label) { $browser->assertTrue($browser->get(FeatureContext::$_pages[$matches[1]]), $label); }); self::addStep('When', '/I fill "(.*)" into the "(.*)" field/', function (&$browser, $matches, $args, $label) { $browser->assertTrue($browser->setField($matches[2], $matches[1]), $label); }); self::addStep('When', '/I click on "(.*)"/', function (&$browser, $matches, $args, $label) { $browser->assertTrue($browser->click($matches[1]), $label); }); self::addStep('Then', '/I should be on (.*)/', function (&$browser, $matches, $args, $label) { $url_path = parse_url($browser->getUrl(), PHP_URL_PATH); $browser->assertEqual($url_path, FeatureContext::$_pages[$matches[1]], $label); }); self::addStep('Then', '/I should see "(.*)"/', function (&$browser, $matches, $args, $label) { $browser->assertText($matches[1], $label); }); self::addStep('Then', '/the title of the page should be "(.*)"/', function (&$browser, $matches, $args, $label) { $browser->assertTitle($matches[1], $label); }); self::addStep('Then', '/there should exist an element with id "(.*)"/', function (&$browser, $matches, $args, $label) { $browser->assertPattern('/id ?= ?[\'"]' . $matches[1] . '[\'"]/', $label); }); self::addStep('Then', '/there should be a link matching "(.*)" labeled "(.*)"/', function (&$browser, $matches, $args, $label) { $pattern = str_replace('/', '\\/', $matches[1]); $browser->assertLink($matches[2], new PatternExpectation('/' . $pattern . '/'), $label); }); self::addStep('Given', '/I am logged in as an (administrator|manager|employeee)/', function (&$browser, $matches, $args, $label) { $browser->assertTrue($browser->get(FeatureContext::$_pages['the login page']), $label); switch ($matches[1]) { case 'administrator': $username = '******'; $password = '******'; break; default: $this->assertTrue(false, $label . ' -- ' . $matches[1] . ' credentials not implemented'); } $browser->assertTrue($browser->setField('data[User][username]', $username), $label); $browser->assertTrue($browser->setField('data[User][password]', $password), $label); $browser->assertTrue($browser->click('Sign In'), $label); }); self::$_initialized = true; }