idSite)) { $type = WebsiteType::ID; Fixture::createWebsite( '2015-01-01 00:00:00', $ecommerce = 0, $siteName = false, $siteUrl = false, $siteSearch = 1, $searchKeywordParameters = null, $searchCategoryParameters = null, $timezone = null, $type ); } $this->settings = $this->createSettings(); } public function testSaveShouldActuallyStoreValues() { $this->settings->siteSearchKeywords->setValue(array('value2')); $this->settings->siteSearchCategory->setValue(array('value3')); $this->settings->save(); $this->assertStoredSettingsValue(array('value2'), 'sitesearch_keyword_parameters'); $this->assertStoredSettingsValue(array('value3'), 'sitesearch_category_parameters'); } public function testSaveShouldCheckAdminPermissionsForThatSite() { $this->expectException(\Exception::class); $this->expectExceptionMessage('CoreAdminHome_PluginSettingChangeNotAllowed'); FakeAccess::clearAccess(); $this->settings = $this->createSettings(); $this->settings->siteSearchKeywords->setValue(array('value4')); $this->settings->save(); } private function createSettings() { $provider = new Plugin\SettingsProvider(Plugin\Manager::getInstance()); $settings = $provider->getMeasurableSettings('WebsiteMeasurable', $this->idSite, WebsiteType::ID); return $settings; } private function assertStoredSettingsValue($expectedValue, $settingName) { $settings = $this->createSettings(); $value = $settings->getSetting($settingName)->getValue(); $this->assertSame($expectedValue, $value); } public function provideContainerConfig() { return array( 'Piwik\Access' => new FakeAccess(), ); } }