diff options
author | Bjoern Schiessle <bjoern@schiessle.org> | 2016-10-31 13:52:00 +0300 |
---|---|---|
committer | Bjoern Schiessle <bjoern@schiessle.org> | 2016-11-01 21:54:41 +0300 |
commit | 86b362809bb58c12864fce93af9c6e961bb7301d (patch) | |
tree | a1b19e6be605f5b52d0375f355c5ea440aa5f21f /apps/sharebymail | |
parent | ce08682c2fdeaeb835cd41c0e9e1207a4da422ab (diff) |
always show correct place holder, mention share by mail only if the share provider is enabled
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
Diffstat (limited to 'apps/sharebymail')
-rw-r--r-- | apps/sharebymail/appinfo/app.php | 24 | ||||
-rw-r--r-- | apps/sharebymail/lib/Settings.php | 38 | ||||
-rw-r--r-- | apps/sharebymail/tests/SettingsTest.php | 64 |
3 files changed, 126 insertions, 0 deletions
diff --git a/apps/sharebymail/appinfo/app.php b/apps/sharebymail/appinfo/app.php new file mode 100644 index 00000000000..5ef7b6f18cb --- /dev/null +++ b/apps/sharebymail/appinfo/app.php @@ -0,0 +1,24 @@ +<?php +/** + * @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +$settings = new \OCA\ShareByMail\Settings(); + +\OCP\Util::connectHook('\OCP\Config', 'js', $settings, 'announceShareProvider'); diff --git a/apps/sharebymail/lib/Settings.php b/apps/sharebymail/lib/Settings.php new file mode 100644 index 00000000000..4ab1622425b --- /dev/null +++ b/apps/sharebymail/lib/Settings.php @@ -0,0 +1,38 @@ +<?php +/** + * @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + + +namespace OCA\ShareByMail; + + +class Settings { + + /** + * announce that the share-by-mail share provider is enabled + * + * @param array $settings + */ + public function announceShareProvider(array $settings) { + $array = json_decode($settings['array']['oc_appconfig'], true); + $array['shareByMailEnabled'] = true; + $settings['array']['oc_appconfig'] = json_encode($array); + } +} diff --git a/apps/sharebymail/tests/SettingsTest.php b/apps/sharebymail/tests/SettingsTest.php new file mode 100644 index 00000000000..f415421b0cf --- /dev/null +++ b/apps/sharebymail/tests/SettingsTest.php @@ -0,0 +1,64 @@ +<?php +/** + * @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + + +namespace OCA\ShareByMail\Tests; + + +use OCA\ShareByMail\Settings; +use Test\TestCase; + +class SettingsTest extends TestCase { + + /** @var Settings */ + private $instance; + + public function setUp() { + parent::setUp(); + + $this->instance = new Settings(); + } + + public function testAnnounceShareProvider() { + $before = [ + 'oc_appconfig' => + json_encode([ + 'key1' => 'value1', + 'key2' => 'value2' + ]), + 'oc_foo' => 'oc_bar' + ]; + + $after = [ + 'oc_appconfig' => + json_encode([ + 'key1' => 'value1', + 'key2' => 'value2', + 'shareByMailEnabled' => true + ]), + 'oc_foo' => 'oc_bar' + ]; + + $this->instance->announceShareProvider(['array' => &$before]); + $this->assertSame($after, $before); + } + +} |