public function formatSelect($select, $params = array())
 {
     if (!isset($params['queryTextColumn_text']) || !$params['queryTextColumn_text']) {
         return $select;
     }
     $params['query'] = $params['queryTextColumn_text'];
     if (!empty($params['queryTextColumn_column'])) {
         $queryFieldsBefore = $this->getQueryFields();
         $this->setQueryFields(array($params['queryTextColumn_column']));
         $ret = parent::formatSelect($select, $params);
         $this->setQueryFields($queryFieldsBefore);
     } else {
         $ret = parent::formatSelect($select, $params);
     }
     return $ret;
 }
 public function testTextFilter()
 {
     $model = new Kwf_Model_FnF(array('data' => array(array('id' => 1, 'value' => 'foo'), array('id' => 2, 'value' => 'foobar'), array('id' => 3, 'value' => 'bar'))));
     $filter = new Kwf_Controller_Action_Auto_Filter_Text();
     $filter->setModel($model);
     $filter->setQueryFields(array('value'));
     $select = $filter->formatSelect($model->select());
     $this->assertEquals(3, $model->countRows($select));
     $select = $filter->formatSelect($model->select(), array('query' => 'foo'));
     $this->assertEquals(2, $model->countRows($select));
     $select = $filter->formatSelect($model->select(), array('query' => 'foobar'));
     $this->assertEquals(1, $model->countRows($select));
     $select = $filter->formatSelect($model->select(), array('query' => 'foo bar'));
     $this->assertEquals(1, $model->countRows($select));
     $select = $filter->formatSelect($model->select(), array('query' => 'xxx yyy'));
     $this->assertEquals(0, $model->countRows($select));
     $select = $filter->formatSelect($model->select(), array('query' => 'value:foo'));
     $this->assertEquals(2, $model->countRows($select));
     $select = $filter->formatSelect($model->select(), array('query' => 'value: foo'));
     $this->assertEquals(2, $model->countRows($select));
     $select = $filter->formatSelect($model->select(), array('query' => 'id:2'));
     $this->assertEquals(1, $model->countRows($select));
     $this->assertEquals(2, $model->getRows($select)->current()->id);
 }