markTestSkipped($this->getDriver() . ' does not support expressions in GROUP BY'); } public function testSelectGroupByAutoExpr() { $this->markTestSkipped($this->getDriver() . ' does not support expressions in GROUP BY'); } /** * Ensures that from() provides expected behavior using schema specification * * @return void */ public function testSelectFromSchemaSpecified() { $schema = 'public'; $table = 'zfbugs'; $sql = $this->_db->select()->from($table, '*', $schema); $this->assertRegExp("/FROM \"$schema\".\"$table\"/", $sql->__toString()); $rowset = $this->_db->fetchAll($sql); $this->assertEquals(4, count($rowset)); } /** * Ensures that from() provides expected behavior using schema in the table name * * @return void */ public function testSelectFromSchemaInName() { $schema = 'public'; $table = 'zfbugs'; $name = "$schema.$table"; $sql = $this->_db->select()->from($name); $this->assertRegExp("/FROM \"$schema\".\"$table\"/", $sql->__toString()); $rowset = $this->_db->fetchAll($sql); $this->assertEquals(4, count($rowset)); } /** * Ensures that from() overrides schema specification with schema in the table name * * @return void */ public function testSelectFromSchemaInNameOverridesSchemaArgument() { $schema = 'public'; $table = 'zfbugs'; $name = "$schema.$table"; $sql = $this->_db->select()->from($name, '*', 'ignored'); $this->assertRegExp("/FROM \"$schema\".\"$table\"/", $sql->__toString()); $rowset = $this->_db->fetchAll($sql); $this->assertEquals(4, count($rowset)); } /** * This test must be done on string field */ protected function _selectColumnWithColonQuotedParameter () { $product_name = $this->_db->quoteIdentifier('product_name'); $select = $this->_db->select() ->from('zfproducts') ->where($product_name . ' = ?', "as'as:x"); return $select; } public function testSqlInjectionWithOrder() { $select = $this->_db->select(); $select->from(array('p' => 'products'))->order('MD5(1);select'); $this->assertEquals('SELECT "p".* FROM "products" AS "p" ORDER BY "MD5(1);select" ASC', $select->assemble()); $select = $this->_db->select(); $select->from(array('p' => 'products'))->order('name;select;MD5(1)'); $this->assertEquals('SELECT "p".* FROM "products" AS "p" ORDER BY "name;select;MD5(1)" ASC', $select->assemble()); } }