Newer
Older
Thomas Steur
a validé
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?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\Tests\Integration\Settings;
use Piwik\Db;
use Piwik\Settings\Setting;
use Piwik\Settings\Storage;
use Piwik\Tests\Framework\Mock\FakeAccess;
/**
* @group PluginSettings
* @group Settings
* @group Storage
*/
class IntegrationTestCase extends \Piwik\Tests\Framework\TestCase\IntegrationTestCase
{
/**
* @var CorePluginTestSettings
*/
protected $settings;
public function setUp()
{
parent::setUp();
Db::destroyDatabaseObject();
$this->settings = $this->createSettingsInstance();
}
public function tearDown()
{
$this->setSuperUser();
if ($this->settings) {
$this->settings->removeAllPluginSettings();
}
parent::tearDown();
}
public function test_constructor_shouldNotEstablishADatabaseConnection()
{
$this->assertNotDbConnectionCreated();
new Storage('PluginName');
$this->assertNotDbConnectionCreated();
}
protected function assertSettingHasValue(Setting $setting, $expectedValue, $expectedType = null)
{
$value = $setting->getValue($setting);
$this->assertEquals($expectedValue, $value);
if (!is_null($expectedType)) {
$this->assertInternalType($expectedType, $value);
}
}
protected function buildUserSetting($name, $title, $userLogin = null)
{
$userSetting = new \Piwik\Settings\UserSetting($name, $title, $userLogin);
$userSetting->setStorage(new Storage('ExampleSettingsPlugin'));
return $userSetting;
}
protected function buildSystemSetting($name, $title)
{
$systemSetting = new \Piwik\Settings\SystemSetting($name, $title);
$systemSetting->setStorage(new Storage('ExampleSettingsPlugin'));
return $systemSetting;
}
protected function setSuperUser()
{
FakeAccess::$superUser = true;
}
protected function setUser()
{
FakeAccess::clearAccess();
Thomas Steur
a validé
FakeAccess::$idSitesView = array(1);
}
protected function setAnonymousUser()
{
FakeAccess::clearAccess();
}
Thomas Steur
a validé
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
protected function createSettingsInstance()
{
return new CorePluginTestSettings('ExampleSettingsPlugin');
}
protected function addSystemSetting($name, $title)
{
$setting = $this->buildSystemSetting($name, $title);
$this->settings->addSetting($setting);
return $setting;
}
protected function addUserSetting($name, $title)
{
$setting = $this->buildUserSetting($name, $title);
$this->settings->addSetting($setting);
return $setting;
}
protected function assertSettingIsNotSavedInTheDb($settingName, $expectedValue)
{
// by creating a new instance...
$setting = $this->buildSystemSetting($settingName, 'mytitle');
$verifySettings = $this->createSettingsInstance();
$verifySettings->addSetting($setting);
$this->assertEquals($expectedValue, $setting->getValue());
}
public function provideContainerConfig()
{
return array(
'Piwik\Access' => new FakeAccess()
);
}