Вход Регистрация
Файл: gapps/vendor/dnoegel/php-xdg-base-dir/tests/XdgTest.php
Строк: 93
<?php

class XdgTest extends PHPUnit_Framework_TestCase
{
    
/**
     * @return XdgBaseDirXdg
     */
    
public function getXdg()
    {
        return new 
XdgBaseDirXdg();
    }

    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 XdgBaseDirXdg::RUNTIME_DIR_FALLBACK getenv('USER');

        
rmdir($runtimeDir);
        
mkdir($runtimeDir0764true);

        
// 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);
    }
}
Онлайн: 2
Реклама