Security update for permissions_by_term
[yaffs-website] / vendor / behat / gherkin / tests / Behat / Gherkin / ParserExceptionsTest.php
diff --git a/vendor/behat/gherkin/tests/Behat/Gherkin/ParserExceptionsTest.php b/vendor/behat/gherkin/tests/Behat/Gherkin/ParserExceptionsTest.php
new file mode 100644 (file)
index 0000000..c416ec2
--- /dev/null
@@ -0,0 +1,291 @@
+<?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);
+    }
+}