Пример #1
0
 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;
 }