radarrplexorganizrnginxsonarrdashboardembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdall
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							116 lines
						
					
					
						
							3.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							116 lines
						
					
					
						
							3.2 KiB
						
					
					
				| <?php | |
| 
 | |
| class XdgTest extends PHPUnit_Framework_TestCase | |
| { | |
|     /** | |
|      * @return \XdgBaseDir\Xdg | |
|      */ | |
|     public function getXdg() | |
|     { | |
|         return new \XdgBaseDir\Xdg(); | |
|     } | |
| 
 | |
|     public function testGetHomeDir() | |
|     { | |
|          putenv('HOME=/fake-dir'); | |
|          $this->assertEquals('/fake-dir', $this->getXdg()->getHomeDir()); | |
|     } | |
| 
 | |
|     public function testGetFallbackHomeDir() | |
|     { | |
|         putenv('HOME='); | |
|         putenv('HOMEDRIVE=C:'); | |
|         putenv('HOMEPATH=fake-dir'); | |
|         $this->assertEquals('C:/fake-dir', $this->getXdg()->getHomeDir()); | |
|     } | |
| 
 | |
|     public function testXdgPutCache() | |
|     { | |
|         putenv('XDG_DATA_HOME=tmp/'); | |
|         putenv('XDG_CONFIG_HOME=tmp/'); | |
|         putenv('XDG_CACHE_HOME=tmp/'); | |
|         $this->assertEquals('tmp/', $this->getXdg()->getHomeCacheDir()); | |
|     } | |
| 
 | |
|     public function testXdgPutData() | |
|     { | |
|         putenv('XDG_DATA_HOME=tmp/'); | |
|         $this->assertEquals('tmp/', $this->getXdg()->getHomeDataDir()); | |
|     } | |
| 
 | |
|     public function testXdgPutConfig() | |
|     { | |
|         putenv('XDG_CONFIG_HOME=tmp/'); | |
|         $this->assertEquals('tmp/', $this->getXdg()->getHomeConfigDir()); | |
|     } | |
| 
 | |
|     public function testXdgDataDirsShouldIncludeHomeDataDir() | |
|     { | |
|         putenv('XDG_DATA_HOME=tmp/'); | |
|         putenv('XDG_CONFIG_HOME=tmp/'); | |
| 
 | |
|         $this->assertArrayHasKey('tmp/', array_flip($this->getXdg()->getDataDirs())); | |
|     } | |
| 
 | |
|     public function testXdgConfigDirsShouldIncludeHomeConfigDir() | |
|     { | |
|         putenv('XDG_CONFIG_HOME=tmp/'); | |
| 
 | |
|         $this->assertArrayHasKey('tmp/', array_flip($this->getXdg()->getConfigDirs())); | |
|     } | |
| 
 | |
|     /** | |
|      * If XDG_RUNTIME_DIR is set, it should be returned | |
|      */ | |
|     public function testGetRuntimeDir() | |
|     { | |
|         putenv('XDG_RUNTIME_DIR=/tmp/'); | |
|         $runtimeDir = $this->getXdg()->getRuntimeDir(); | |
| 
 | |
|         $this->assertEquals(is_dir($runtimeDir), true); | |
|     } | |
| 
 | |
|     /** | |
|      * In strict mode, an exception should be shown if XDG_RUNTIME_DIR does not exist | |
|      * | |
|      * @expectedException \RuntimeException | |
|      */ | |
|     public function testGetRuntimeDirShouldThrowException() | |
|     { | |
|         putenv('XDG_RUNTIME_DIR='); | |
|         $this->getXdg()->getRuntimeDir(true); | |
|     } | |
| 
 | |
|     /** | |
|      * In fallback mode a directory should be created | |
|      */ | |
|     public function testGetRuntimeDirShouldCreateDirectory() | |
|     { | |
|         putenv('XDG_RUNTIME_DIR='); | |
|         $dir = $this->getXdg()->getRuntimeDir(false); | |
|         $permission = decoct(fileperms($dir) & 0777); | |
|         $this->assertEquals(700, $permission); | |
|     } | |
| 
 | |
|     /** | |
|      * Ensure, that the fallback directories are created with correct permission | |
|      */ | |
|     public function testGetRuntimeShouldDeleteDirsWithWrongPermission() | |
|     { | |
|         $runtimeDir = sys_get_temp_dir() . DIRECTORY_SEPARATOR . XdgBaseDir\Xdg::RUNTIME_DIR_FALLBACK . getenv('USER'); | |
| 
 | |
|         rmdir($runtimeDir); | |
|         mkdir($runtimeDir, 0764, true); | |
| 
 | |
|         // Permission should be wrong now | |
|         $permission = decoct(fileperms($runtimeDir) & 0777); | |
|         $this->assertEquals(764, $permission); | |
| 
 | |
|         putenv('XDG_RUNTIME_DIR='); | |
|         $dir = $this->getXdg()->getRuntimeDir(false); | |
| 
 | |
|         // Permission should be fixed | |
|         $permission = decoct(fileperms($dir) & 0777); | |
|         $this->assertEquals(700, $permission); | |
|     } | |
| }
 | |
| 
 |