Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Steur <thomas.steur@googlemail.com>2014-02-04 05:30:33 +0400
committerThomas Steur <thomas.steur@googlemail.com>2014-02-04 05:30:33 +0400
commit1d6488271e0db0d926f52e5605e641ed86e67453 (patch)
tree71adcb46dc68fe790cb0c1e7265bfac9f46dbc46
parente36c5964faa34157f3b01398c997c63918d71897 (diff)
refs #4563 make sure getting purge data settings works if UI is disabled
-rw-r--r--plugins/PrivacyManager/PrivacyManager.php3
-rw-r--r--tests/PHPUnit/Integration/Plugins/PrivacyManagerTest.php83
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;
+ }
+
+}