table_name = 'bean'; self::$bean->field_defs = array( 'name' => array(), ); } /** * @param string $raw * @param string $expected * @param bool $suppress_table_name * * @dataProvider provider */ public function testProcessOrderBy($raw, $expected, $suppress_table_name = false) { $actual = self::$bean->process_order_by($raw, null, $suppress_table_name); $this->assertEquals($expected, $actual); } public static function provider() { return array( // existing field is accepted array('name', 'bean.name'), // valid order is accepted array('name asc', 'bean.name asc'), // order is case-insensitive array('name DeSc', 'bean.name DeSc'), // any white spaces are accepted array("\tname\t\nASC\n\r", 'bean.name ASC'), // invalid order is ignored array('name somehow', 'bean.name'), // everything after the first white space considered order array('name desc asc', 'bean.name'), // non-existing field is removed array('title', ''), // non-existing field is removed together with order array('title asc', ''), // field name containing table name is removed array('bean.name', ''), // $suppress_table_name usage array('name', 'name', true), ); } }