1<?php 2 3namespace Sabre\DAV; 4 5class BasicNodeTest extends \PHPUnit_Framework_TestCase { 6 7 /** 8 * @expectedException Sabre\DAV\Exception\Forbidden 9 */ 10 function testPut() { 11 12 $file = new FileMock(); 13 $file->put('hi'); 14 15 } 16 17 /** 18 * @expectedException Sabre\DAV\Exception\Forbidden 19 */ 20 function testGet() { 21 22 $file = new FileMock(); 23 $file->get(); 24 25 } 26 27 function testGetSize() { 28 29 $file = new FileMock(); 30 $this->assertEquals(0, $file->getSize()); 31 32 } 33 34 35 function testGetETag() { 36 37 $file = new FileMock(); 38 $this->assertNull($file->getETag()); 39 40 } 41 42 function testGetContentType() { 43 44 $file = new FileMock(); 45 $this->assertNull($file->getContentType()); 46 47 } 48 49 /** 50 * @expectedException Sabre\DAV\Exception\Forbidden 51 */ 52 function testDelete() { 53 54 $file = new FileMock(); 55 $file->delete(); 56 57 } 58 59 /** 60 * @expectedException Sabre\DAV\Exception\Forbidden 61 */ 62 function testSetName() { 63 64 $file = new FileMock(); 65 $file->setName('hi'); 66 67 } 68 69 function testGetLastModified() { 70 71 $file = new FileMock(); 72 // checking if lastmod is within the range of a few seconds 73 $lastMod = $file->getLastModified(); 74 $compareTime = ($lastMod + 1) - time(); 75 $this->assertTrue($compareTime < 3); 76 77 } 78 79 function testGetChild() { 80 81 $dir = new DirectoryMock(); 82 $file = $dir->getChild('mockfile'); 83 $this->assertTrue($file instanceof FileMock); 84 85 } 86 87 function testChildExists() { 88 89 $dir = new DirectoryMock(); 90 $this->assertTrue($dir->childExists('mockfile')); 91 92 } 93 94 function testChildExistsFalse() { 95 96 $dir = new DirectoryMock(); 97 $this->assertFalse($dir->childExists('mockfile2')); 98 99 } 100 101 /** 102 * @expectedException Sabre\DAV\Exception\NotFound 103 */ 104 function testGetChild404() { 105 106 $dir = new DirectoryMock(); 107 $file = $dir->getChild('blabla'); 108 109 } 110 111 /** 112 * @expectedException Sabre\DAV\Exception\Forbidden 113 */ 114 function testCreateFile() { 115 116 $dir = new DirectoryMock(); 117 $dir->createFile('hello', 'data'); 118 119 } 120 121 /** 122 * @expectedException Sabre\DAV\Exception\Forbidden 123 */ 124 function testCreateDirectory() { 125 126 $dir = new DirectoryMock(); 127 $dir->createDirectory('hello'); 128 129 } 130 131 function testSimpleDirectoryConstruct() { 132 133 $dir = new SimpleCollection('simpledir', []); 134 $this->assertInstanceOf('Sabre\DAV\SimpleCollection', $dir); 135 136 } 137 138 /** 139 * @depends testSimpleDirectoryConstruct 140 */ 141 function testSimpleDirectoryConstructChild() { 142 143 $file = new FileMock(); 144 $dir = new SimpleCollection('simpledir', [$file]); 145 $file2 = $dir->getChild('mockfile'); 146 147 $this->assertEquals($file, $file2); 148 149 } 150 151 /** 152 * @expectedException Sabre\DAV\Exception 153 * @depends testSimpleDirectoryConstruct 154 */ 155 function testSimpleDirectoryBadParam() { 156 157 $dir = new SimpleCollection('simpledir', ['string shouldn\'t be here']); 158 159 } 160 161 /** 162 * @depends testSimpleDirectoryConstruct 163 */ 164 function testSimpleDirectoryAddChild() { 165 166 $file = new FileMock(); 167 $dir = new SimpleCollection('simpledir'); 168 $dir->addChild($file); 169 $file2 = $dir->getChild('mockfile'); 170 171 $this->assertEquals($file, $file2); 172 173 } 174 175 /** 176 * @depends testSimpleDirectoryConstruct 177 * @depends testSimpleDirectoryAddChild 178 */ 179 function testSimpleDirectoryGetChildren() { 180 181 $file = new FileMock(); 182 $dir = new SimpleCollection('simpledir'); 183 $dir->addChild($file); 184 185 $this->assertEquals([$file], $dir->getChildren()); 186 187 } 188 189 /* 190 * @depends testSimpleDirectoryConstruct 191 */ 192 function testSimpleDirectoryGetName() { 193 194 $dir = new SimpleCollection('simpledir'); 195 $this->assertEquals('simpledir', $dir->getName()); 196 197 } 198 199 /** 200 * @depends testSimpleDirectoryConstruct 201 * @expectedException Sabre\DAV\Exception\NotFound 202 */ 203 function testSimpleDirectoryGetChild404() { 204 205 $dir = new SimpleCollection('simpledir'); 206 $dir->getChild('blabla'); 207 208 } 209} 210 211class DirectoryMock extends Collection { 212 213 function getName() { 214 215 return 'mockdir'; 216 217 } 218 219 function getChildren() { 220 221 return [new FileMock()]; 222 223 } 224 225} 226 227class FileMock extends File { 228 229 function getName() { 230 231 return 'mockfile'; 232 233 } 234 235} 236