Blame view

sources/3rdparty/sabre/dav/tests/Sabre/DAV/Browser/PluginTest.php 2.99 KB
6d9380f96   Cédric Dupont   Update sources OC...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
  <?php
  
  namespace Sabre\DAV\Browser;
  
  use Sabre\DAV;
  use Sabre\HTTP;
  
  require_once 'Sabre/DAV/AbstractServer.php';
  
  class PluginTest extends DAV\AbstractServer{
  
      function setUp() {
  
          parent::setUp();
          $this->server->addPlugin(new Plugin());
  
      }
  
      function testCollectionGet() {
  
          $serverVars = array(
              'REQUEST_URI'    => '/dir',
              'REQUEST_METHOD' => 'GET',
          );
  
          $request = new HTTP\Request($serverVars);
          $this->server->httpRequest = ($request);
          $this->server->exec();
  
          $this->assertEquals('HTTP/1.1 200 OK',$this->response->status);
          $this->assertEquals(array(
              'Content-Type' => 'text/html; charset=utf-8',
              ),
              $this->response->headers
          );
  
          $this->assertTrue(strpos($this->response->body, 'Index for dir/') !== false);
          $this->assertTrue(strpos($this->response->body, '<a href="/dir/child.txt"><img src="/?sabreAction=asset&assetName=icons%2Ffile.png" alt="" width="24" />')!==false);
  
      }
  
      function testNotFound() {
  
          $serverVars = array(
              'REQUEST_URI'    => '/random',
              'REQUEST_METHOD' => 'GET',
          );
  
          $request = new HTTP\Request($serverVars);
          $this->server->httpRequest = ($request);
          $this->server->exec();
  
          $this->assertEquals('HTTP/1.1 404 Not Found',$this->response->status);
  
      }
  
      function testPostOtherContentType() {
  
          $serverVars = array(
              'REQUEST_URI'    => '/',
              'REQUEST_METHOD' => 'POST',
              'CONTENT_TYPE' => 'text/xml',
          );
          $request = new HTTP\Request($serverVars);
          $this->server->httpRequest = $request;
          $this->server->exec();
  
          $this->assertEquals('HTTP/1.1 501 Not Implemented', $this->response->status);
  
      }
  
      function testPostNoSabreAction() {
  
          $serverVars = array(
              'REQUEST_URI'    => '/',
              'REQUEST_METHOD' => 'POST',
              'CONTENT_TYPE' => 'application/x-www-form-urlencoded',
          );
          $postVars = array();
  
          $request = new HTTP\Request($serverVars,$postVars);
          $this->server->httpRequest = $request;
          $this->server->exec();
  
          $this->assertEquals('HTTP/1.1 501 Not Implemented', $this->response->status);
  
      }
  
      function testPostMkCol() {
  
          $serverVars = array(
              'REQUEST_URI'    => '/',
              'REQUEST_METHOD' => 'POST',
              'CONTENT_TYPE' => 'application/x-www-form-urlencoded',
          );
          $postVars = array(
              'sabreAction' => 'mkcol',
              'name' => 'new_collection',
          );
  
          $request = new HTTP\Request($serverVars,$postVars);
          $this->server->httpRequest = $request;
          $this->server->exec();
  
          $this->assertEquals('HTTP/1.1 302 Found', $this->response->status);
          $this->assertEquals(array(
              'Location' => '/',
          ), $this->response->headers);
  
          $this->assertTrue(is_dir(SABRE_TEMPDIR . '/new_collection'));
  
      }
  
  }