Merge pull request #240 from tyx/dev/query-time-debugbar

Query time in debugbar
This commit is contained in:
Jeremy Mikola 2013-02-21 09:44:26 -08:00
commit 737b73b947
3 changed files with 39 additions and 0 deletions

View file

@ -40,6 +40,16 @@ class ElasticaDataCollector extends DataCollector
return $this->data['queries'];
}
public function getTime()
{
$time = 0;
foreach ($this->data['queries'] as $query) {
$time += $query['executionMS'];
}
return $time;
}
/**
* {@inheritdoc}
*/

View file

@ -10,6 +10,10 @@
<b>Queries</b>
<span>{{ collector.querycount }}</span>
</div>
<div class="sf-toolbar-info-piece">
<b>Query Time</b>
<span>{{ '%0.2f'|format(collector.time * 1000) }} ms</span>
</div>
{% endset %}
{% include 'WebProfilerBundle:Profiler:toolbar_item.html.twig' with { 'link': profiler_url } %}
{% endblock %}

View file

@ -60,4 +60,29 @@ class ElasticaDataCollectorTest extends \PHPUnit_Framework_TestCase
$this->assertEquals($queries, $elasticaDataCollector->getQueries());
}
public function testCorrectQueriesTime()
{
$requestMock = $this->getMockBuilder('Symfony\Component\HttpFoundation\Request')
->disableOriginalConstructor()
->getMock();
$responseMock = $this->getMockBuilder('Symfony\Component\HttpFoundation\Response')
->disableOriginalConstructor()
->getMock();
$loggerMock = $this->getMockBuilder('FOQ\ElasticaBundle\Logger\ElasticaLogger')
->disableOriginalConstructor()
->getMock();
$queries = array(array('executionMS' => 10), array('executionMS' => 20));
$loggerMock->expects($this->once())
->method('getQueries')
->will($this->returnValue($queries));
$elasticaDataCollector = new ElasticaDataCollector($loggerMock);
$elasticaDataCollector->collect($requestMock, $responseMock);
$this->assertEquals(30, $elasticaDataCollector->getTime());
}
}