icingaweb2/test/php/library/Icinga/Chart/GraphChartTest.php

52 lines
1.6 KiB
PHP

<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Tests\Icinga\Chart;
use DOMXPath;
use DOMDocument;
use Icinga\Chart\GridChart;
use Icinga\Test\BaseTestCase;
class GraphChartTest extends BaseTestCase
{
public function testBarChartCreation()
{
$chart = new GridChart();
$chart->drawBars(
array(
'label' => 'My bar',
'color' => 'black',
'data' => array(array(0, 0), array(1,1), array(1,2))
)
);
$doc = new DOMDocument();
$doc->preserveWhiteSpace = false;
$doc->loadXML($chart->render());
$xpath = new DOMXPath($doc);
$xpath->registerNamespace('x', 'http://www.w3.org/2000/svg');
$path = $xpath->query('//x:rect[@data-icinga-graph-type="bar"]');
$this->assertEquals(6, $path->length, 'Assert the correct number of datapoints being drawn as SVG bars');
}
public function testLineChartCreation()
{
$chart = new GridChart();
$chart->drawLines(
array(
'label' => 'My bar',
'color' => 'black',
'data' => array(array(0, 0), array(1,1), array(1,2))
)
);
$doc = new DOMDocument();
$doc->preserveWhiteSpace = false;
$doc->loadXML($chart->render());
$xpath = new DOMXPath($doc);
$xpath->registerNamespace('x', 'http://www.w3.org/2000/svg');
$path = $xpath->query('//x:path[@data-icinga-graph-type="line"]');
$this->assertEquals(1, $path->length, 'Assert the correct number of datapoints being drawn as SVG lines');
}
}