first commit

This commit is contained in:
root
2022-03-06 11:49:27 +00:00
commit 1984e55837
1387 changed files with 121949 additions and 0 deletions

View File

@ -0,0 +1,113 @@
<?php
/*
* This file is part of the GlobalState package.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace SebastianBergmann\GlobalState;
use PHPUnit_Framework_TestCase;
/**
*/
class BlacklistTest extends PHPUnit_Framework_TestCase
{
/**
* @var \SebastianBergmann\GlobalState\Blacklist
*/
private $blacklist;
protected function setUp()
{
$this->blacklist = new Blacklist;
}
public function testGlobalVariableThatIsNotBlacklistedIsNotTreatedAsBlacklisted()
{
$this->assertFalse($this->blacklist->isGlobalVariableBlacklisted('variable'));
}
public function testGlobalVariableCanBeBlacklisted()
{
$this->blacklist->addGlobalVariable('variable');
$this->assertTrue($this->blacklist->isGlobalVariableBlacklisted('variable'));
}
public function testStaticAttributeThatIsNotBlacklistedIsNotTreatedAsBlacklisted()
{
$this->assertFalse(
$this->blacklist->isStaticAttributeBlacklisted(
'SebastianBergmann\GlobalState\TestFixture\BlacklistedClass',
'attribute'
)
);
}
public function testClassCanBeBlacklisted()
{
$this->blacklist->addClass('SebastianBergmann\GlobalState\TestFixture\BlacklistedClass');
$this->assertTrue(
$this->blacklist->isStaticAttributeBlacklisted(
'SebastianBergmann\GlobalState\TestFixture\BlacklistedClass',
'attribute'
)
);
}
public function testSubclassesCanBeBlacklisted()
{
$this->blacklist->addSubclassesOf('SebastianBergmann\GlobalState\TestFixture\BlacklistedClass');
$this->assertTrue(
$this->blacklist->isStaticAttributeBlacklisted(
'SebastianBergmann\GlobalState\TestFixture\BlacklistedChildClass',
'attribute'
)
);
}
public function testImplementorsCanBeBlacklisted()
{
$this->blacklist->addImplementorsOf('SebastianBergmann\GlobalState\TestFixture\BlacklistedInterface');
$this->assertTrue(
$this->blacklist->isStaticAttributeBlacklisted(
'SebastianBergmann\GlobalState\TestFixture\BlacklistedImplementor',
'attribute'
)
);
}
public function testClassNamePrefixesCanBeBlacklisted()
{
$this->blacklist->addClassNamePrefix('SebastianBergmann\GlobalState');
$this->assertTrue(
$this->blacklist->isStaticAttributeBlacklisted(
'SebastianBergmann\GlobalState\TestFixture\BlacklistedClass',
'attribute'
)
);
}
public function testStaticAttributeCanBeBlacklisted()
{
$this->blacklist->addStaticAttribute(
'SebastianBergmann\GlobalState\TestFixture\BlacklistedClass',
'attribute'
);
$this->assertTrue(
$this->blacklist->isStaticAttributeBlacklisted(
'SebastianBergmann\GlobalState\TestFixture\BlacklistedClass',
'attribute'
)
);
}
}

View File

@ -0,0 +1,119 @@
<?php
/*
* This file is part of the GlobalState package.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace SebastianBergmann\GlobalState;
use ArrayObject;
use PHPUnit_Framework_TestCase;
use SebastianBergmann\GlobalState\TestFixture\SnapshotClass;
/**
*/
class SnapshotTest extends PHPUnit_Framework_TestCase
{
public function testStaticAttributes()
{
$blacklist = $this->getBlacklist();
$blacklist->method('isStaticAttributeBlacklisted')->willReturnCallback(function ($class) {
return $class !== 'SebastianBergmann\GlobalState\TestFixture\SnapshotClass';
});
SnapshotClass::init();
$snapshot = new Snapshot($blacklist, false, true, false, false, false, false, false, false, false);
$expected = array('SebastianBergmann\GlobalState\TestFixture\SnapshotClass' => array(
'string' => 'snapshot',
'arrayObject' => new ArrayObject(array(1, 2, 3)),
'stdClass' => new \stdClass(),
));
$this->assertEquals($expected, $snapshot->staticAttributes());
}
public function testConstants()
{
$snapshot = new Snapshot($this->getBlacklist(), false, false, true, false, false, false, false, false, false);
$this->assertArrayHasKey('GLOBALSTATE_TESTSUITE', $snapshot->constants());
}
public function testFunctions()
{
require_once __DIR__.'/_fixture/SnapshotFunctions.php';
$snapshot = new Snapshot($this->getBlacklist(), false, false, false, true, false, false, false, false, false);
$functions = $snapshot->functions();
$this->assertThat(
$functions,
$this->logicalOr(
// Zend
$this->contains('sebastianbergmann\globalstate\testfixture\snapshotfunction'),
// HHVM
$this->contains('SebastianBergmann\GlobalState\TestFixture\snapshotFunction')
)
);
$this->assertNotContains('assert', $functions);
}
public function testClasses()
{
$snapshot = new Snapshot($this->getBlacklist(), false, false, false, false, true, false, false, false, false);
$classes = $snapshot->classes();
$this->assertContains('PHPUnit_Framework_TestCase', $classes);
$this->assertNotContains('Exception', $classes);
}
public function testInterfaces()
{
$snapshot = new Snapshot($this->getBlacklist(), false, false, false, false, false, true, false, false, false);
$interfaces = $snapshot->interfaces();
$this->assertContains('PHPUnit_Framework_Test', $interfaces);
$this->assertNotContains('Countable', $interfaces);
}
/**
* @requires PHP 5.4
*/
public function testTraits()
{
spl_autoload_call('SebastianBergmann\GlobalState\TestFixture\SnapshotTrait');
$snapshot = new Snapshot($this->getBlacklist(), false, false, false, false, false, false, true, false, false);
$this->assertContains('SebastianBergmann\GlobalState\TestFixture\SnapshotTrait', $snapshot->traits());
}
public function testIniSettings()
{
$snapshot = new Snapshot($this->getBlacklist(), false, false, false, false, false, false, false, true, false);
$iniSettings = $snapshot->iniSettings();
$this->assertArrayHasKey('date.timezone', $iniSettings);
$this->assertEquals('Etc/UTC', $iniSettings['date.timezone']);
}
public function testIncludedFiles()
{
$snapshot = new Snapshot($this->getBlacklist(), false, false, false, false, false, false, false, false, true);
$this->assertContains(__FILE__, $snapshot->includedFiles());
}
/**
* @return \SebastianBergmann\GlobalState\Blacklist
*/
private function getBlacklist()
{
return $this->getMockBuilder('SebastianBergmann\GlobalState\Blacklist')
->disableOriginalConstructor()
->getMock();
}
}

View File

@ -0,0 +1,17 @@
<?php
/*
* This file is part of the GlobalState package.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace SebastianBergmann\GlobalState\TestFixture;
/**
*/
class BlacklistedChildClass extends BlacklistedClass
{
}

View File

@ -0,0 +1,18 @@
<?php
/*
* This file is part of the GlobalState package.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace SebastianBergmann\GlobalState\TestFixture;
/**
*/
class BlacklistedClass
{
private static $attribute;
}

View File

@ -0,0 +1,18 @@
<?php
/*
* This file is part of the GlobalState package.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace SebastianBergmann\GlobalState\TestFixture;
/**
*/
class BlacklistedImplementor implements BlacklistedInterface
{
private static $attribute;
}

View File

@ -0,0 +1,17 @@
<?php
/*
* This file is part of the GlobalState package.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace SebastianBergmann\GlobalState\TestFixture;
/**
*/
interface BlacklistedInterface
{
}

View File

@ -0,0 +1,37 @@
<?php
/*
* This file is part of the GlobalState package.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace SebastianBergmann\GlobalState\TestFixture;
use DomDocument;
use ArrayObject;
/**
*/
class SnapshotClass
{
private static $string = 'snapshot';
private static $dom;
private static $closure;
private static $arrayObject;
private static $snapshotDomDocument;
private static $resource;
private static $stdClass;
public static function init()
{
self::$dom = new DomDocument();
self::$closure = function () {};
self::$arrayObject = new ArrayObject(array(1, 2, 3));
self::$snapshotDomDocument = new SnapshotDomDocument();
self::$resource = fopen('php://memory', 'r');
self::$stdClass = new \stdClass();
}
}

View File

@ -0,0 +1,19 @@
<?php
/*
* This file is part of the GlobalState package.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace SebastianBergmann\GlobalState\TestFixture;
use DomDocument;
/**
*/
class SnapshotDomDocument extends DomDocument
{
}

View File

@ -0,0 +1,15 @@
<?php
/*
* This file is part of the GlobalState package.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace SebastianBergmann\GlobalState\TestFixture;
function snapshotFunction()
{
}

View File

@ -0,0 +1,17 @@
<?php
/*
* This file is part of the GlobalState package.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace SebastianBergmann\GlobalState\TestFixture;
/**
*/
trait SnapshotTrait
{
}