47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace Songshenzong\Support\Test\Core;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use ReflectionClass;
							 | 
						||
| 
								 | 
							
								use ReflectionException;
							 | 
						||
| 
								 | 
							
								use Songshenzong\Support\OS;
							 | 
						||
| 
								 | 
							
								use PHPUnit\Framework\TestCase;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Class OSTest
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @package Songshenzong\Support\Test\Core
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class OSTest extends TestCase
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @throws ReflectionException
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function testGetsHomeDirectoryForWindowsUser()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        putenv('HOME=');
							 | 
						||
| 
								 | 
							
								        putenv('HOMEDRIVE=C:');
							 | 
						||
| 
								 | 
							
								        putenv('HOMEPATH=\\Users\\Support');
							 | 
						||
| 
								 | 
							
								        $ref    = new ReflectionClass(OS::class);
							 | 
						||
| 
								 | 
							
								        $method = $ref->getMethod('getHomeDirectory');
							 | 
						||
| 
								 | 
							
								        $method->setAccessible(true);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('C:\\Users\\Support', $method->invoke(null));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @depends testGetsHomeDirectoryForWindowsUser
							 | 
						||
| 
								 | 
							
								     * @throws ReflectionException
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function testGetsHomeDirectoryForLinuxUser()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        putenv('HOME=/root');
							 | 
						||
| 
								 | 
							
								        putenv('HOMEDRIVE=');
							 | 
						||
| 
								 | 
							
								        putenv('HOMEPATH=');
							 | 
						||
| 
								 | 
							
								        $ref    = new ReflectionClass(OS::class);
							 | 
						||
| 
								 | 
							
								        $method = $ref->getMethod('getHomeDirectory');
							 | 
						||
| 
								 | 
							
								        $method->setAccessible(true);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('/root', $method->invoke(null));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |