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.
		
		
		
		
		
			
		
			
				
					
					
						
							80 lines
						
					
					
						
							2.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							80 lines
						
					
					
						
							2.7 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								/*
							 | 
						|
								 * This file is part of Psy Shell.
							 | 
						|
								 *
							 | 
						|
								 * (c) 2012-2018 Justin Hileman
							 | 
						|
								 *
							 | 
						|
								 * For the full copyright and license information, please view the LICENSE
							 | 
						|
								 * file that was distributed with this source code.
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								namespace Psy\Test;
							 | 
						|
								
							 | 
						|
								use Psy\Sudo;
							 | 
						|
								
							 | 
						|
								class SudoTest extends \PHPUnit\Framework\TestCase
							 | 
						|
								{
							 | 
						|
								    public function setUp()
							 | 
						|
								    {
							 | 
						|
								        if (\version_compare(PHP_VERSION, '7.1.0', '<')) {
							 | 
						|
								            $this->markTestSkipped('YOLO');
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testFetchProperty()
							 | 
						|
								    {
							 | 
						|
								        $obj = new ClassWithSecrets();
							 | 
						|
								        $this->assertSame('private and prop', Sudo::fetchProperty($obj, 'privateProp'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAssignProperty()
							 | 
						|
								    {
							 | 
						|
								        $obj = new ClassWithSecrets();
							 | 
						|
								        $this->assertSame('private and prop', Sudo::fetchProperty($obj, 'privateProp'));
							 | 
						|
								        $this->assertSame('not so private now', Sudo::assignProperty($obj, 'privateProp', 'not so private now'));
							 | 
						|
								        $this->assertSame('not so private now', Sudo::fetchProperty($obj, 'privateProp'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testCallMethod()
							 | 
						|
								    {
							 | 
						|
								        $obj = new ClassWithSecrets();
							 | 
						|
								        $this->assertSame('private and method', Sudo::callMethod($obj, 'privateMethod'));
							 | 
						|
								        $this->assertSame('private and method with 1', Sudo::callMethod($obj, 'privateMethod', 1));
							 | 
						|
								        $this->assertSame(
							 | 
						|
								            'private and method with ["foo",2]',
							 | 
						|
								            Sudo::callMethod($obj, 'privateMethod', ['foo', 2]
							 | 
						|
								        ));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testFetchStaticProperty()
							 | 
						|
								    {
							 | 
						|
								        $obj = new ClassWithSecrets();
							 | 
						|
								        $this->assertSame('private and static and prop', Sudo::fetchStaticProperty($obj, 'privateStaticProp'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAssignStaticProperty()
							 | 
						|
								    {
							 | 
						|
								        $obj = new ClassWithSecrets();
							 | 
						|
								        $this->assertSame('private and static and prop', Sudo::fetchStaticProperty($obj, 'privateStaticProp'));
							 | 
						|
								        $this->assertSame('not so private now', Sudo::assignStaticProperty($obj, 'privateStaticProp', 'not so private now'));
							 | 
						|
								        $this->assertSame('not so private now', Sudo::fetchStaticProperty($obj, 'privateStaticProp'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testCallStatic()
							 | 
						|
								    {
							 | 
						|
								        $obj = new ClassWithSecrets();
							 | 
						|
								        $this->assertSame('private and static and method', Sudo::callStatic($obj, 'privateStaticMethod'));
							 | 
						|
								        $this->assertSame('private and static and method with 1', Sudo::callStatic($obj, 'privateStaticMethod', 1));
							 | 
						|
								        $this->assertSame(
							 | 
						|
								            'private and static and method with ["foo",2]',
							 | 
						|
								            Sudo::callStatic($obj, 'privateStaticMethod', ['foo', 2]
							 | 
						|
								        ));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testFetchClassConst()
							 | 
						|
								    {
							 | 
						|
								        $obj = new ClassWithSecrets();
							 | 
						|
								        $this->assertSame('private and const', Sudo::fetchClassConst($obj, 'PRIVATE_CONST'));
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |