diff options
author | Matthieu Aubry <mattab@users.noreply.github.com> | 2016-12-12 13:54:03 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-12 13:54:03 +0300 |
commit | 53454e8efd0ab2a03dd9bb9f837aa63f36cfe552 (patch) | |
tree | be7dc483dad0dcac6577b73e9e82ede7bc097682 /tests/PHPUnit/Integration/Settings/BaseSettingsTestCase.php | |
parent | b1c09fa5123155ab9cd79342a4a0cef42e80de7f (diff) | |
parent | 67f2661f24602a07ebee66172f8446887ab83787 (diff) |
Merge pull request #10994 from piwik/3.x-dev3.0.0-rc2
3.0.0-rc2 release
Diffstat (limited to 'tests/PHPUnit/Integration/Settings/BaseSettingsTestCase.php')
-rw-r--r-- | tests/PHPUnit/Integration/Settings/BaseSettingsTestCase.php | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/PHPUnit/Integration/Settings/BaseSettingsTestCase.php b/tests/PHPUnit/Integration/Settings/BaseSettingsTestCase.php index 4a91af3a1c..2d56a0dce7 100644 --- a/tests/PHPUnit/Integration/Settings/BaseSettingsTestCase.php +++ b/tests/PHPUnit/Integration/Settings/BaseSettingsTestCase.php @@ -11,6 +11,7 @@ namespace Piwik\Tests\Integration\Settings; use Piwik\Db; use Piwik\Piwik; use Piwik\Settings\FieldConfig; +use Piwik\Settings\Setting; /** * @group PluginSettings @@ -122,4 +123,41 @@ class BaseSettingsTestCase extends IntegrationTestCase return $this->settings->makeSetting($name, $default = '', $type, function () {}); } + public function test_addSetting_shouldAddNewSetting() + { + $settingName = 'testSetting'; + $setting = $this->buildSetting($settingName); + $settings = $this->createSettingsInstance(); + + $this->assertEmpty($settings->getSetting($settingName)); + + $settings->addSetting($setting); + + $this->assertSame($setting, $settings->getSetting($settingName)); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage "testSetting" does already exist + */ + public function test_addSetting_throwsException_IfSameSettingAddedTwice() + { + $settingName = 'testSetting'; + $setting = $this->buildSetting($settingName); + $settings = $this->createSettingsInstance(); + + $settings->addSetting($setting); + $settings->addSetting($setting); + } + + private function buildSetting($name, $type = null, $default = '') + { + if (!isset($type)) { + $type = FieldConfig::TYPE_STRING; + } + + $userSetting = new Setting($name, $default, $type, 'MyPluginName'); + + return $userSetting; + } } |