-<?php
-
-namespace Tests\Behat\Gherkin;
-
-use Behat\Gherkin\Lexer;
-use Behat\Gherkin\Parser;
-use Behat\Gherkin\Keywords\ArrayKeywords;
-
-class ParserExceptionsTest extends \PHPUnit_Framework_TestCase
-{
- /**
- * @var Parser
- */
- private $gherkin;
-
- protected function setUp()
- {
- $keywords = new ArrayKeywords(array(
- 'en' => array(
- 'feature' => 'Feature',
- 'background' => 'Background',
- 'scenario' => 'Scenario',
- 'scenario_outline' => 'Scenario Outline',
- 'examples' => 'Examples',
- 'given' => 'Given',
- 'when' => 'When',
- 'then' => 'Then',
- 'and' => 'And',
- 'but' => 'But'
- ),
- 'ru' => array(
- 'feature' => 'Функционал',
- 'background' => 'Предыстория',
- 'scenario' => 'Сценарий',
- 'scenario_outline' => 'Структура сценария',
- 'examples' => 'Значения',
- 'given' => 'Допустим',
- 'when' => 'То',
- 'then' => 'Если',
- 'and' => 'И',
- 'but' => 'Но'
- )
- ));
- $this->gherkin = new Parser(new Lexer($keywords));
- }
-
- public function testStepRightAfterFeature()
- {
- $feature = <<<GHERKIN
-Feature: Some feature
-
- Given some step-like line
-GHERKIN;
-
- $parsed = $this->gherkin->parse($feature);
-
- $this->assertEquals("\n Given some step-like line", $parsed->getDescription());
- }
-
- public function testTextInBackground()
- {
- $feature = <<<GHERKIN
-Feature: Behat bug test
- Background: remove X to couse bug
- Step is red form is not valid
- asd
- asd
- as
- da
- sd
- as
- das
- d
-
-
-Scenario: bug user edit date
-GHERKIN;
-
- $this->gherkin->parse($feature);
- }
-
- public function testTextInScenario()
- {
- $feature = <<<GHERKIN
-Feature: Behat bug test
- Scenario: remove X to cause bug
- Step is red form is not valid
- asd
- asd
- as
- da
- sd
- as
- das
- d
-
-
-Scenario Outline: bug user edit date
-Step is red form is not valid
-asd
-asd
-as
-da
-sd
-as
-das
-d
-Examples:
- ||
-
-GHERKIN;
-
- $feature = $this->gherkin->parse($feature);
-
- $this->assertCount(2, $scenarios = $feature->getScenarios());
- $firstTitle = <<<TEXT
-remove X to cause bug
-Step is red form is not valid
-asd
-asd
-as
-da
-sd
-as
-das
-d
-TEXT;
- $this->assertEquals($firstTitle, $scenarios[0]->getTitle());
- $secondTitle = <<<TEXT
-bug user edit date
-Step is red form is not valid
-asd
-asd
-as
-da
-sd
-as
-das
-d
-TEXT;
- $this->assertEquals($secondTitle, $scenarios[1]->getTitle());
- }
-
- /**
- * @expectedException \Behat\Gherkin\Exception\ParserException
- */
- public function testAmbigiousLanguage()
- {
- $feature = <<<GHERKIN
-# language: en
-
-# language: ru
-
-Feature: Some feature
-
- Given something wrong
-GHERKIN;
-
- $this->gherkin->parse($feature);
- }
-
- /**
- * @expectedException \Behat\Gherkin\Exception\ParserException
- */
- public function testEmptyOutline()
- {
- $feature = <<<GHERKIN
-Feature: Some feature
-
- Scenario Outline:
-GHERKIN;
-
- $this->gherkin->parse($feature);
- }
-
- /**
- * @expectedException \Behat\Gherkin\Exception\ParserException
- */
- public function testWrongTagPlacement()
- {
- $feature = <<<GHERKIN
-Feature: Some feature
-
- Scenario:
- Given some step
- @some_tag
- Then some additional step
-GHERKIN;
-
- $this->gherkin->parse($feature);
- }
-
- /**
- * @expectedException \Behat\Gherkin\Exception\ParserException
- */
- public function testBackgroundWithTag()
- {
- $feature = <<<GHERKIN
-Feature: Some feature
-
- @some_tag
- Background:
- Given some step
-GHERKIN;
-
- $this->gherkin->parse($feature);
- }
-
- /**
- * @expectedException \Behat\Gherkin\Exception\ParserException
- */
- public function testEndlessPyString()
- {
- $feature = <<<GHERKIN
-Feature:
-
- Scenario:
- Given something with:
- """
- some text
-GHERKIN;
-
- $this->gherkin->parse($feature);
- }
-
- /**
- * @expectedException \Behat\Gherkin\Exception\ParserException
- */
- public function testWrongStepType()
- {
- $feature = <<<GHERKIN
-Feature:
-
- Scenario:
- Given some step
-
- Aaand some step
-GHERKIN;
-
- $this->gherkin->parse($feature);
- }
-
- /**
- * @expectedException \Behat\Gherkin\Exception\ParserException
- */
- public function testMultipleBackgrounds()
- {
- $feature = <<<GHERKIN
-Feature:
-
- Background:
- Given some step
-
- Background:
- Aaand some step
-GHERKIN;
-
- $this->gherkin->parse($feature);
- }
-
- /**
- * @expectedException \Behat\Gherkin\Exception\ParserException
- */
- public function testMultipleFeatures()
- {
- $feature = <<<GHERKIN
-Feature:
-
-Feature:
-GHERKIN;
-
- $this->gherkin->parse($feature);
- }
-
- /**
- * @expectedException \Behat\Gherkin\Exception\ParserException
- */
- public function testTableWithoutRightBorder()
- {
- $feature = <<<GHERKIN
-Feature:
-
- Scenario:
- Given something with:
- | foo | bar
- | 42 | 42
-GHERKIN;
-
- $this->gherkin->parse($feature);
- }
-}