diff options
author | Thomas Steur <thomas.steur@googlemail.com> | 2014-02-04 05:30:33 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@googlemail.com> | 2014-02-04 05:30:33 +0400 |
commit | 1d6488271e0db0d926f52e5605e641ed86e67453 (patch) | |
tree | 71adcb46dc68fe790cb0c1e7265bfac9f46dbc46 | |
parent | e36c5964faa34157f3b01398c997c63918d71897 (diff) |
refs #4563 make sure getting purge data settings works if UI is disabled
-rw-r--r-- | plugins/PrivacyManager/PrivacyManager.php | 3 | ||||
-rw-r--r-- | tests/PHPUnit/Integration/Plugins/PrivacyManagerTest.php | 83 |
2 files changed, 85 insertions, 1 deletions
diff --git a/plugins/PrivacyManager/PrivacyManager.php b/plugins/PrivacyManager/PrivacyManager.php index d6908a61cd..29da25a76c 100644 --- a/plugins/PrivacyManager/PrivacyManager.php +++ b/plugins/PrivacyManager/PrivacyManager.php @@ -195,7 +195,8 @@ class PrivacyManager extends \Piwik\Plugin // load settings from ini config $config = PiwikConfig::getInstance(); foreach (self::$purgeDataOptions as $configKey => $configSection) { - $settings[$configKey] = $config->$configSection[$configKey]; + $values = $config->$configSection; + $settings[$configKey] = $values[$configKey]; } if (!Controller::isDataPurgeSettingsEnabled()) { diff --git a/tests/PHPUnit/Integration/Plugins/PrivacyManagerTest.php b/tests/PHPUnit/Integration/Plugins/PrivacyManagerTest.php new file mode 100644 index 0000000000..9a182bd8f7 --- /dev/null +++ b/tests/PHPUnit/Integration/Plugins/PrivacyManagerTest.php @@ -0,0 +1,83 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +use \Piwik\Plugins\PrivacyManager\PrivacyManager; + +/** + * Class Plugins_SitesManagerTest + * + * @group Plugins + */ +class Plugins_PrivacyManagerTest extends DatabaseTestCase +{ + /** + * @var PrivacyManager + */ + private $manager; + + public function setUp() + { + parent::setUp(); + + $this->manager = new PrivacyManager(); + \Piwik\Option::set('delete_logs_enable', 1); + \Piwik\Option::set('delete_logs_older_than', 270); + \Piwik\Option::set('delete_reports_keep_week_reports', 1); + } + + public function test_getPurgeDataSettings_shouldUseOnlyConfigValuesIfUIisDisabled() + { + $this->setUIEnabled(false); + + $settings = $this->manager->getPurgeDataSettings(); + $expected = $this->getDefaultPurgeSettings(); + + $this->assertEquals($expected, $settings); + } + + public function test_getPurgeDataSettings_shouldAlsoUseOptionValuesIfUIisEnabled() + { + $this->setUIEnabled(true); + + $settings = $this->manager->getPurgeDataSettings(); + $expected = $this->getDefaultPurgeSettings(); + + $expected['delete_logs_enable'] = 1; + $expected['delete_logs_older_than'] = 270; + $expected['delete_reports_keep_week_reports'] = 1; + + $this->assertEquals($expected, $settings); + } + + private function setUIEnabled($enabled) + { + \Piwik\Config::getInstance()->General['enable_delete_old_data_settings_admin'] = $enabled; + } + + private function getDefaultPurgeSettings() + { + $expected = array( + 'delete_logs_enable' => 0, + 'delete_logs_schedule_lowest_interval' => 7, + 'delete_logs_older_than' => 180, + 'delete_logs_max_rows_per_query' => 100000, + 'enable_auto_database_size_estimate' => 1, + 'delete_reports_enable' => 0, + 'delete_reports_older_than' => 12, + 'delete_reports_keep_basic_metrics' => 1, + 'delete_reports_keep_day_reports' => 0, + 'delete_reports_keep_week_reports' => 0, + 'delete_reports_keep_month_reports' => 1, + 'delete_reports_keep_year_reports' => 1, + 'delete_reports_keep_range_reports' => 0, + 'delete_reports_keep_segment_reports' => 0, + ); + return $expected; + } + +} |