This event runs after we have built the query used to fetch a record
list in a model. It is used to apply automatic query filters.
public onAfterBuildQuery ( &$model, &$query ) : void | ||
return | void |
/** * @group Behaviour * @group OwnOnAfterBuildQuery * @covers FOF30\Model\DataModel\Behaviour\Own::onAfterBuildQuery * @dataProvider OwnDataprovider::getTestOnAfterBuildQuery */ public function testOnAfterBuildQuery($test, $check) { $msg = 'Own::onAfterBuildQuery %s - Case: ' . $check['case']; $config = array('idFieldName' => $test['tableid'], 'tableName' => $test['table']); $platform = static::$container->platform; $platform::$user = (object) array('id' => 99); $model = new DataModelStub(static::$container, $config); $query = \JFactory::getDbo()->getQuery(true)->select('*')->from('test'); $dispatcher = $model->getBehavioursDispatcher(); $filter = new Own($dispatcher); $filter->onAfterBuildQuery($model, $query); $rawQuery = (string) $query; if ($check['contains']) { $this->assertNotFalse(stripos($rawQuery, $check['query']), sprintf($msg, 'Query should contain the query clause')); } else { $this->assertFalse(stripos($rawQuery, $check['query']), sprintf($msg, 'Query should not contain the query clause')); } }