1<?php
2
3namespace Sabre\DAV\Browser;
4
5use Sabre\DAV;
6
7require_once 'Sabre/DAV/AbstractServer.php';
8class GuessContentTypeTest extends DAV\AbstractServer {
9
10    function setUp() {
11
12        parent::setUp();
13        \Sabre\TestUtil::clearTempDir();
14        file_put_contents(SABRE_TEMPDIR . '/somefile.jpg','blabla');
15        file_put_contents(SABRE_TEMPDIR . '/somefile.hoi','blabla');
16
17    }
18
19    function tearDown() {
20
21        \Sabre\TestUtil::clearTempDir();
22        parent::tearDown();
23    }
24
25    function testGetProperties() {
26
27        $properties = array(
28            '{DAV:}getcontenttype',
29        );
30        $result = $this->server->getPropertiesForPath('/somefile.jpg',$properties);
31        $this->assertArrayHasKey(0,$result);
32        $this->assertArrayHasKey(404,$result[0]);
33        $this->assertArrayHasKey('{DAV:}getcontenttype',$result[0][404]);
34
35    }
36
37    /**
38     * @depends testGetProperties
39     */
40    function testGetPropertiesPluginEnabled() {
41
42        $this->server->addPlugin(new GuessContentType());
43        $properties = array(
44            '{DAV:}getcontenttype',
45        );
46        $result = $this->server->getPropertiesForPath('/somefile.jpg',$properties);
47        $this->assertArrayHasKey(0,$result);
48        $this->assertArrayHasKey(200,$result[0], 'We received: ' . print_r($result,true));
49        $this->assertArrayHasKey('{DAV:}getcontenttype',$result[0][200]);
50        $this->assertEquals('image/jpeg',$result[0][200]['{DAV:}getcontenttype']);
51
52    }
53
54    /**
55     * @depends testGetPropertiesPluginEnabled
56     */
57    function testGetPropertiesUnknown() {
58
59        $this->server->addPlugin(new GuessContentType());
60        $properties = array(
61            '{DAV:}getcontenttype',
62        );
63        $result = $this->server->getPropertiesForPath('/somefile.hoi',$properties);
64        $this->assertArrayHasKey(0,$result);
65        $this->assertArrayHasKey(200,$result[0]);
66        $this->assertArrayHasKey('{DAV:}getcontenttype',$result[0][200]);
67        $this->assertEquals('application/octet-stream',$result[0][200]['{DAV:}getcontenttype']);
68
69    }
70}
71