update Piwik to version 2.16 (fixes #91)
This commit is contained in:
parent
296343bf3b
commit
d885a4baa9
5833 changed files with 418860 additions and 226988 deletions
|
|
@ -0,0 +1,261 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*/
|
||||
|
||||
namespace Piwik\Plugins\Diagnostics\Test\Integration\Commands;
|
||||
|
||||
use Piwik\Application\Kernel\GlobalSettingsProvider;
|
||||
use Piwik\Ini\IniReader;
|
||||
use Piwik\Plugins\Diagnostics\ConfigReader;
|
||||
use Piwik\Plugins\ExampleSettingsPlugin\Settings;
|
||||
use Piwik\Tests\Fixtures\OneVisitorTwoVisits;
|
||||
use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
|
||||
|
||||
/**
|
||||
* TODO: This could be a unit test if we could inject the ArchiveTableDao in the command
|
||||
* @group Diagnostics
|
||||
* @group Plugins
|
||||
*/
|
||||
class ConfigReaderTest extends IntegrationTestCase
|
||||
{
|
||||
/**
|
||||
* @var ConfigReader
|
||||
*/
|
||||
private $configReader;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$settings = new GlobalSettingsProvider($this->configPath('global.ini.php'), $this->configPath('config.ini.php'), $this->configPath('common.config.ini.php'));
|
||||
$this->configReader = new ConfigReader($settings, new IniReader());
|
||||
}
|
||||
|
||||
public function test_getConfigValuesFromFiles()
|
||||
{
|
||||
$fileConfig = $this->configReader->getConfigValuesFromFiles();
|
||||
|
||||
$expected = array (
|
||||
'Category' =>
|
||||
array (
|
||||
'key1' =>
|
||||
array (
|
||||
'value' => 'value_overwritten',
|
||||
'description' => '',
|
||||
'isCustomValue' => true,
|
||||
'defaultValue' => 'value1',
|
||||
),
|
||||
'key2' =>
|
||||
array (
|
||||
'value' => 'valueCommon',
|
||||
'description' => '',
|
||||
'isCustomValue' => false,
|
||||
'defaultValue' => 'value2',
|
||||
),
|
||||
'key3' =>
|
||||
array (
|
||||
'value' => '${@piwik(crash))}',
|
||||
'description' => '',
|
||||
'isCustomValue' => false,
|
||||
'defaultValue' => NULL,
|
||||
),
|
||||
),
|
||||
'CategoryOnlyInGlobalFile' =>
|
||||
array (
|
||||
'key3' =>
|
||||
array (
|
||||
'value' => 'value3',
|
||||
'description' => 'test comment',
|
||||
'isCustomValue' => false,
|
||||
'defaultValue' => 'value3',
|
||||
),
|
||||
'key4' =>
|
||||
array (
|
||||
'value' => 'value4',
|
||||
'description' => 'test comment 4',
|
||||
'isCustomValue' => false,
|
||||
'defaultValue' => 'value4',
|
||||
),
|
||||
),
|
||||
'TestArray' =>
|
||||
array (
|
||||
'installed' =>
|
||||
array (
|
||||
'value' =>
|
||||
array (
|
||||
0 => 'plugin"1',
|
||||
1 => 'plugin2',
|
||||
2 => 'plugin3',
|
||||
),
|
||||
'description' => 'test comment 2
|
||||
with multiple lines',
|
||||
'isCustomValue' => true,
|
||||
'defaultValue' =>
|
||||
array (
|
||||
0 => 'plugin1',
|
||||
1 => 'plugin4',
|
||||
),
|
||||
),
|
||||
),
|
||||
'TestArrayOnlyInGlobalFile' =>
|
||||
array (
|
||||
'my_array' =>
|
||||
array (
|
||||
'value' =>
|
||||
array (
|
||||
0 => 'value1',
|
||||
1 => 'value2',
|
||||
),
|
||||
'description' => '',
|
||||
'isCustomValue' => false,
|
||||
'defaultValue' =>
|
||||
array (
|
||||
0 => 'value1',
|
||||
1 => 'value2',
|
||||
),
|
||||
),
|
||||
),
|
||||
'GeneralSection' =>
|
||||
array (
|
||||
'password' =>
|
||||
array (
|
||||
'value' => '******',
|
||||
'description' => '',
|
||||
'isCustomValue' => true,
|
||||
'defaultValue' => NULL,
|
||||
),
|
||||
'login' =>
|
||||
array (
|
||||
'value' => 'tes"t',
|
||||
'description' => '',
|
||||
'isCustomValue' => true,
|
||||
'defaultValue' => NULL,
|
||||
),
|
||||
),
|
||||
'TestOnlyInCommon' =>
|
||||
array (
|
||||
'value' =>
|
||||
array (
|
||||
'value' => 'commonValue',
|
||||
'description' => '',
|
||||
'isCustomValue' => false,
|
||||
'defaultValue' => NULL,
|
||||
),
|
||||
),
|
||||
'Tracker' =>
|
||||
array (
|
||||
'commonConfigTracker' =>
|
||||
array (
|
||||
'value' => 'commonConfigTrackerValue',
|
||||
'description' => '',
|
||||
'isCustomValue' => false,
|
||||
'defaultValue' => NULL,
|
||||
),
|
||||
),
|
||||
);
|
||||
$this->assertEquals($expected, $fileConfig);
|
||||
}
|
||||
|
||||
public function test_addConfigValuesFromPluginSettings()
|
||||
{
|
||||
$settings = new Settings();
|
||||
|
||||
$configValues = $this->configReader->addConfigValuesFromPluginSettings(array(), array($settings));
|
||||
|
||||
$expected = array (
|
||||
'ExampleSettingsPlugin' =>
|
||||
array (
|
||||
'metric' =>
|
||||
array (
|
||||
'value' => NULL,
|
||||
'description' => 'Choose the metric that should be displayed in the browser tab',
|
||||
'isCustomValue' => false,
|
||||
'defaultValue' => 'nb_visits',
|
||||
),
|
||||
'browsers' =>
|
||||
array (
|
||||
'value' => NULL,
|
||||
'description' => 'The value will be only displayed in the following browsers',
|
||||
'isCustomValue' => false,
|
||||
'defaultValue' =>
|
||||
array (
|
||||
0 => 'firefox',
|
||||
1 => 'chromium',
|
||||
2 => 'safari',
|
||||
),
|
||||
),
|
||||
'description' =>
|
||||
array (
|
||||
'value' => NULL,
|
||||
'description' => 'This description will be displayed next to the value',
|
||||
'isCustomValue' => false,
|
||||
'defaultValue' => 'This is the value:
|
||||
Another line',
|
||||
),
|
||||
'password' =>
|
||||
array (
|
||||
'value' => NULL,
|
||||
'description' => 'Password for the 3rd API where we fetch the value',
|
||||
'isCustomValue' => false,
|
||||
'defaultValue' => NULL,
|
||||
),
|
||||
),
|
||||
);
|
||||
$this->assertEquals($expected, $configValues);
|
||||
}
|
||||
|
||||
public function test_addConfigValuesFromPluginSettings_shouldAddDescriptionAndDefaultValueForExistingConfigValues()
|
||||
{
|
||||
$settings = new Settings();
|
||||
|
||||
$existing = array(
|
||||
'ExampleSettingsPlugin' =>
|
||||
array (
|
||||
'metric' =>
|
||||
array (
|
||||
'value' => NULL,
|
||||
'description' => '',
|
||||
'isCustomValue' => false,
|
||||
'defaultValue' => null,
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
$configValues = $this->configReader->addConfigValuesFromPluginSettings($existing, array($settings));
|
||||
|
||||
$this->assertSame('Choose the metric that should be displayed in the browser tab', $configValues['ExampleSettingsPlugin']['metric']['description']);
|
||||
$this->assertSame('nb_visits', $configValues['ExampleSettingsPlugin']['metric']['defaultValue']);
|
||||
}
|
||||
|
||||
public function test_addConfigValuesFromPluginSettings_shouldMaskValueIfTypeIsPassword()
|
||||
{
|
||||
$settings = new Settings();
|
||||
$settings->metric->uiControlType = Settings::CONTROL_PASSWORD;
|
||||
|
||||
$existing = array(
|
||||
'ExampleSettingsPlugin' =>
|
||||
array (
|
||||
'metric' =>
|
||||
array (
|
||||
'value' => 'test',
|
||||
'description' => '',
|
||||
'isCustomValue' => false,
|
||||
'defaultValue' => null,
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
$configValues = $this->configReader->addConfigValuesFromPluginSettings($existing, array($settings));
|
||||
|
||||
$this->assertSame('******', $configValues['ExampleSettingsPlugin']['metric']['value']);
|
||||
}
|
||||
|
||||
private function configPath($file)
|
||||
{
|
||||
return PIWIK_INCLUDE_PATH . '/tests/resources/Config/' . $file;
|
||||
}
|
||||
}
|
||||
|
||||
AnalyzeArchiveTableTest::$fixture = new OneVisitorTwoVisits();
|
||||
Loading…
Add table
Add a link
Reference in a new issue