Security update for permissions_by_term
[yaffs-website] / vendor / behat / gherkin / tests / Behat / Gherkin / Node / TableNodeTest.php
diff --git a/vendor/behat/gherkin/tests/Behat/Gherkin/Node/TableNodeTest.php b/vendor/behat/gherkin/tests/Behat/Gherkin/Node/TableNodeTest.php
new file mode 100644 (file)
index 0000000..a229955
--- /dev/null
@@ -0,0 +1,269 @@
+<?php
+
+namespace Tests\Behat\Gherkin\Node;
+
+use Behat\Gherkin\Node\TableNode;
+
+class TableNodeTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @expectedException \Behat\Gherkin\Exception\NodeException
+     */
+    public function testConstructorExpectsSameNumberOfColumnsInEachRow()
+    {
+        new TableNode(array(
+            array('username', 'password'),
+            array('everzet'),
+            array('antono', 'pa$sword')
+        ));
+    }
+
+    public function constructorTestDataProvider() {
+        return array(
+            'One-dimensional array' => array(
+                array('everzet', 'antono')
+            ),
+            'Three-dimensional array' => array(
+                array(array(array('everzet', 'antono')))
+            )
+        );
+    }
+
+    /**
+     * @dataProvider constructorTestDataProvider
+     * @expectedException \Behat\Gherkin\Exception\NodeException
+     * @expectedExceptionMessage Table is not two-dimensional.
+     */
+    public function testConstructorExpectsTwoDimensionalArrays($table)
+    {
+        new TableNode($table);
+    }
+
+    public function testHashTable()
+    {
+        $table = new TableNode(array(
+            array('username', 'password'),
+            array('everzet', 'qwerty'),
+            array('antono', 'pa$sword')
+        ));
+
+        $this->assertEquals(
+            array(
+                array('username' => 'everzet', 'password' => 'qwerty')
+              , array('username' => 'antono', 'password' => 'pa$sword')
+            ),
+            $table->getHash()
+        );
+
+        $table = new TableNode(array(
+            array('username', 'password'),
+            array('', 'qwerty'),
+            array('antono', ''),
+            array('', '')
+        ));
+
+        $this->assertEquals(
+            array(
+                array('username' => '', 'password' => 'qwerty'),
+                array('username' => 'antono', 'password' => ''),
+                array('username' => '', 'password' => ''),
+            ),
+            $table->getHash()
+        );
+    }
+
+    public function testIterator()
+    {
+        $table = new TableNode(array(
+            array('username', 'password'),
+            array('', 'qwerty'),
+            array('antono', ''),
+            array('', ''),
+        ));
+
+        $this->assertEquals(
+            array(
+                array('username' => '', 'password' => 'qwerty'),
+                array('username' => 'antono', 'password' => ''),
+                array('username' => '', 'password' => ''),
+            ),
+            iterator_to_array($table)
+        );
+    }
+
+    public function testRowsHashTable()
+    {
+        $table = new TableNode(array(
+            array('username', 'everzet'),
+            array('password', 'qwerty'),
+            array('uid', '35'),
+        ));
+
+        $this->assertEquals(
+            array('username' => 'everzet', 'password' => 'qwerty', 'uid' => '35'),
+            $table->getRowsHash()
+        );
+    }
+
+    public function testLongRowsHashTable()
+    {
+        $table = new TableNode(array(
+            array('username', 'everzet', 'marcello'),
+            array('password', 'qwerty', '12345'),
+            array('uid', '35', '22')
+        ));
+
+        $this->assertEquals(array(
+            'username' => array('everzet', 'marcello'),
+            'password' => array('qwerty', '12345'),
+            'uid'      => array('35', '22')
+        ), $table->getRowsHash());
+    }
+
+    public function testGetRows()
+    {
+        $table = new TableNode(array(
+            array('username', 'password'),
+            array('everzet', 'qwerty'),
+            array('antono', 'pa$sword')
+        ));
+
+        $this->assertEquals(array(
+            array('username', 'password'),
+            array('everzet', 'qwerty'),
+            array('antono', 'pa$sword')
+        ), $table->getRows());
+    }
+
+    public function testGetLines()
+    {
+        $table = new TableNode(array(
+            5  => array('username', 'password'),
+            10 => array('everzet', 'qwerty'),
+            13 => array('antono', 'pa$sword')
+        ));
+
+        $this->assertEquals(array(5, 10, 13), $table->getLines());
+    }
+
+    public function testGetRow()
+    {
+        $table = new TableNode(array(
+            array('username', 'password'),
+            array('everzet', 'qwerty'),
+            array('antono', 'pa$sword')
+        ));
+
+        $this->assertEquals(array('username', 'password'), $table->getRow(0));
+        $this->assertEquals(array('antono', 'pa$sword'), $table->getRow(2));
+    }
+
+    public function testGetColumn()
+    {
+        $table = new TableNode(array(
+            array('username', 'password'),
+            array('everzet', 'qwerty'),
+            array('antono', 'pa$sword')
+        ));
+
+        $this->assertEquals(array('username', 'everzet', 'antono'), $table->getColumn(0));
+        $this->assertEquals(array('password', 'qwerty', 'pa$sword'), $table->getColumn(1));
+
+        $table = new TableNode(array(
+            array('username'),
+            array('everzet'),
+            array('antono')
+        ));
+
+        $this->assertEquals(array('username', 'everzet', 'antono'), $table->getColumn(0));
+    }
+
+    public function testGetRowWithLineNumbers()
+    {
+        $table = new TableNode(array(
+            5  => array('username', 'password'),
+            10 => array('everzet', 'qwerty'),
+            13 => array('antono', 'pa$sword')
+        ));
+
+        $this->assertEquals(array('username', 'password'), $table->getRow(0));
+        $this->assertEquals(array('antono', 'pa$sword'), $table->getRow(2));
+    }
+
+    public function testGetTable()
+    {
+        $table = new TableNode($a = array(
+            5  => array('username', 'password'),
+            10 => array('everzet', 'qwerty'),
+            13 => array('antono', 'pa$sword')
+        ));
+
+        $this->assertEquals($a, $table->getTable());
+    }
+
+    public function testGetRowLine()
+    {
+        $table = new TableNode(array(
+            5  => array('username', 'password'),
+            10 => array('everzet', 'qwerty'),
+            13 => array('antono', 'pa$sword')
+        ));
+
+        $this->assertEquals(5, $table->getRowLine(0));
+        $this->assertEquals(13, $table->getRowLine(2));
+    }
+
+    public function testGetRowAsString()
+    {
+        $table = new TableNode(array(
+            5  => array('username', 'password'),
+            10 => array('everzet', 'qwerty'),
+            13 => array('antono', 'pa$sword')
+        ));
+
+        $this->assertEquals('| username | password |', $table->getRowAsString(0));
+        $this->assertEquals('| antono   | pa$sword |', $table->getRowAsString(2));
+    }
+
+    public function testGetTableAsString()
+    {
+        $table = new TableNode(array(
+            5  => array('id', 'username', 'password'),
+            10 => array('42', 'everzet', 'qwerty'),
+            13 => array('2', 'antono', 'pa$sword')
+        ));
+
+        $expected = <<<TABLE
+| id | username | password |
+| 42 | everzet  | qwerty   |
+| 2  | antono   | pa\$sword |
+TABLE;
+        $this->assertEquals($expected, $table->getTableAsString());
+    }
+
+    public function testFromList()
+    {
+        $table = TableNode::fromList(array(
+            'everzet',
+            'antono'
+        ));
+
+        $expected = new TableNode(array(
+            array('everzet'),
+            array('antono'),
+        ));
+        $this->assertEquals($expected, $table);
+    }
+
+    /**
+     * @expectedException \Behat\Gherkin\Exception\NodeException
+     */
+    public function testGetTableFromListWithMultidimensionalArrayArgument()
+    {
+        TableNode::fromList(array(
+            array(1, 2, 3),
+            array(4, 5, 6)
+        ));
+    }
+
+}