diff options
author | Georg Ehrke <developer@georgehrke.com> | 2017-11-11 02:02:17 +0100 |
---|---|---|
committer | Georg Ehrke <developer@georgehrke.com> | 2017-11-11 11:28:34 +0100 |
commit | a87d9860418948a72fbe3d29a2cc5d589be147ec (patch) | |
tree | c4613956e0e60086f0f95f723f327d436ca51ebf /apps/dav | |
parent | 4d5ed1372a8a22f17b5da6673fcf151aab8ce801 (diff) | |
download | nextcloud-server-a87d9860418948a72fbe3d29a2cc5d589be147ec.tar.gz nextcloud-server-a87d9860418948a72fbe3d29a2cc5d589be147ec.zip |
create a user's birthday calendar right after they requested it
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
Diffstat (limited to 'apps/dav')
-rw-r--r-- | apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php | 11 | ||||
-rw-r--r-- | apps/dav/lib/Server.php | 4 | ||||
-rw-r--r-- | apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php | 19 |
3 files changed, 30 insertions, 4 deletions
diff --git a/apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php b/apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php index 9f9b24e2058..497d7112b3c 100644 --- a/apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php +++ b/apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php @@ -23,6 +23,7 @@ namespace OCA\DAV\CalDAV\BirthdayCalendar; +use OCA\DAV\CalDAV\BirthdayService; use OCA\DAV\CalDAV\CalendarHome; use Sabre\DAV\Server; use Sabre\DAV\ServerPlugin; @@ -45,6 +46,11 @@ class EnablePlugin extends ServerPlugin { protected $config; /** + * @var BirthdayService + */ + protected $birthdayService; + + /** * @var Server */ protected $server; @@ -53,9 +59,11 @@ class EnablePlugin extends ServerPlugin { * PublishPlugin constructor. * * @param IConfig $config + * @param BirthdayService $birthdayService */ - public function __construct(IConfig $config) { + public function __construct(IConfig $config, BirthdayService $birthdayService) { $this->config = $config; + $this->birthdayService = $birthdayService; } /** @@ -122,6 +130,7 @@ class EnablePlugin extends ServerPlugin { $userId = substr($principalUri, 17); $this->config->setUserValue($userId, 'dav', 'generateBirthdayCalendar', 'yes'); + $this->birthdayService->syncUser($userId); $this->server->httpResponse->setStatus(204); diff --git a/apps/dav/lib/Server.php b/apps/dav/lib/Server.php index ab20d14cab7..afa52530b00 100644 --- a/apps/dav/lib/Server.php +++ b/apps/dav/lib/Server.php @@ -33,6 +33,7 @@ namespace OCA\DAV; use OC\AppFramework\Utility\TimeFactory; +use OCA\DAV\CalDAV\BirthdayService; use OCA\DAV\CalDAV\Schedule\IMipPlugin; use OCA\DAV\CardDAV\ImageExportPlugin; use OCA\DAV\CardDAV\PhotoCache; @@ -260,7 +261,8 @@ class Server { ))); } $this->server->addPlugin(new \OCA\DAV\CalDAV\BirthdayCalendar\EnablePlugin( - \OC::$server->getConfig() + \OC::$server->getConfig(), + \OC::$server->query(BirthdayService::class) )); } diff --git a/apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php b/apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php index 6e7965ea61b..44bf9237b2f 100644 --- a/apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php +++ b/apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php @@ -22,6 +22,7 @@ namespace OCA\DAV\Tests\unit\CalDAV\BirthdayCalendar; use OCA\DAV\CalDAV\BirthdayCalendar\EnablePlugin; +use OCA\DAV\CalDAV\BirthdayService; use OCA\DAV\CalDAV\Calendar; use OCA\DAV\CalDAV\CalendarHome; use OCP\IConfig; @@ -35,6 +36,9 @@ class EnablePluginTest extends TestCase { /** @var \OCP\IConfig|\PHPUnit_Framework_MockObject_MockObject */ protected $config; + /** @var BirthdayService |\PHPUnit_Framework_MockObject_MockObject */ + protected $birthdayService; + /** @var \OCA\DAV\CalDAV\BirthdayCalendar\EnablePlugin $plugin */ protected $plugin; @@ -51,8 +55,9 @@ class EnablePluginTest extends TestCase { $this->server->xml = $this->createMock(\Sabre\DAV\Xml\Service::class); $this->config = $this->createMock(IConfig::class); + $this->birthdayService = $this->createMock(BirthdayService::class); - $this->plugin = new EnablePlugin($this->config); + $this->plugin = new EnablePlugin($this->config, $this->birthdayService); $this->plugin->initialize($this->server); $this->request = $this->createMock(\Sabre\HTTP\RequestInterface::class); @@ -70,7 +75,7 @@ class EnablePluginTest extends TestCase { public function testInitialize() { $server = $this->createMock(\Sabre\DAV\Server::class); - $plugin = new EnablePlugin($this->config); + $plugin = new EnablePlugin($this->config, $this->birthdayService); $server->expects($this->at(0)) ->method('on') @@ -93,6 +98,9 @@ class EnablePluginTest extends TestCase { $this->config->expects($this->never()) ->method('setUserValue'); + $this->birthdayService->expects($this->never()) + ->method('syncUser'); + $this->plugin->httpPost($this->request, $this->response); } @@ -124,6 +132,9 @@ class EnablePluginTest extends TestCase { $this->config->expects($this->never()) ->method('setUserValue'); + $this->birthdayService->expects($this->never()) + ->method('syncUser'); + $this->plugin->httpPost($this->request, $this->response); } @@ -160,6 +171,10 @@ class EnablePluginTest extends TestCase { ->method('setUserValue') ->with('BlaBlub', 'dav', 'generateBirthdayCalendar', 'yes'); + $this->birthdayService->expects($this->once()) + ->method('syncUser') + ->with('BlaBlub'); + $this->server->httpResponse->expects($this->once()) ->method('setStatus') ->with(204); |