signin(); $response = $this->call('PROPFIND', '/dav'); $response->assertStatus(207); $response->assertHeader('X-Sabre-Version'); $response->assertSee('/dav/', false); $response->assertSee('/dav/principals/', false); $response->assertSee('/dav/addressbooks/', false); $response->assertSee('/dav/calendars/', false); } /** * @group dav */ public function test_dav_propfind_principals() { $user = $this->signin(); $response = $this->call('PROPFIND', '/dav/principals'); $response->assertStatus(207); $response->assertHeader('X-Sabre-Version'); $response->assertSee('/dav/principals/', false); $response->assertSee("/dav/principals/{$user->email}/", false); } /** * @group dav */ public function test_dav_propfind_principals_user() { $user = $this->signin(); $response = $this->call('PROPFIND', "/dav/principals/{$user->email}"); $response->assertStatus(207); $response->assertHeader('X-Sabre-Version'); $response->assertSee("/dav/principals/{$user->email}/", false); } /** * @group dav */ public function test_dav_ensure_browser_plugin_not_enabled() { $user = $this->signin(); $response = $this->call('GET', '/dav'); $response->assertStatus(302); $response->assertHeader('X-Sabre-Version'); $response->assertHeader('Location', route('settings.dav')); } /** * @group dav */ public function test_carddav_propfind_groupmemberset() { $user = $this->signin(); $response = $this->call('PROPFIND', "/dav/principals/{$user->email}/", [], [], [], [ 'content-type' => 'application/xml; charset=utf-8', ], ' ' ); $response->assertStatus(207); $response->assertHeader('X-Sabre-Version'); $response->assertSee(''. ''. "/dav/principals/{$user->email}/". ''. ''. ''. "/dav/addressbooks/{$user->email}/". ''. ''. "/dav/principals/{$user->email}/". ''. ''. 'HTTP/1.1 200 OK'. ''. ''. '', false); } /** * @group dav */ public function test_carddav_report_propertysearch() { $user = $this->signin(); $response = $this->call('REPORT', '/dav/principals/', [], [], [], [ 'HTTP_DEPTH' => '0', 'content-type' => 'application/xml; charset=utf-8', ], " {$user->name} " ); $response->assertStatus(207); $response->assertHeader('X-Sabre-Version'); $response->assertSee(''. ''. "/dav/principals/{$user->email}/". ''. ''. "{$user->name}". ''. 'HTTP/1.1 200 OK'. ''. ''. '', false); } /** * @group dav */ public function test_caldav_propfind() { $user = $this->signin(); $response = $this->call('PROPFIND', '/dav/calendars'); $response->assertStatus(207); $response->assertHeader('X-Sabre-Version'); $response->assertSee('/dav/calendars/', false); $response->assertSee("/dav/calendars/{$user->email}/", false); } /** * @group dav */ public function test_caldav_propfind_calendars_user() { $user = $this->signin(); $response = $this->call('PROPFIND', "/dav/calendars/{$user->email}"); $response->assertStatus(207); $response->assertHeader('X-Sabre-Version'); $response->assertSee("/dav/calendars/{$user->email}/", false); $response->assertSee("/dav/calendars/{$user->email}/birthdays/", false); $response->assertSee("/dav/calendars/{$user->email}/tasks/", false); } /** * @group dav */ public function test_dav_limit_users_unauthorized() { $user = $this->signin(); config(['laravelsabre.users' => 'unauthorized']); $response = $this->call('PROPFIND', '/dav'); $response->assertStatus(403); } /** * @group dav */ public function test_dav_limit_users_authorized() { $user = $this->signin(); config(['laravelsabre.users' => $user->email]); $response = $this->call('PROPFIND', '/dav'); $response->assertStatus(207); } }