Skip to content

Commit

Permalink
Tests for autoloader class name detection
Browse files Browse the repository at this point in the history
  • Loading branch information
gsherwood committed Oct 1, 2020
1 parent 95e69ac commit ed83c67
Show file tree
Hide file tree
Showing 7 changed files with 156 additions and 1 deletion.
21 changes: 21 additions & 0 deletions package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,17 @@ http://pear.php.net/dtd/package-2.0.xsd">
</dir>
<dir name="tests">
<dir name="Core">
<dir name="Autoloader">
<dir name="TestFiles">
<dir name="Sub">
<file baseinstalldir="" name="C.inc" role="test" />
</dir>
<file baseinstalldir="" name="A.inc" role="test" />
<file baseinstalldir="" name="B.inc" role="test" />
<file baseinstalldir="" name="C.inc" role="test" />
</dir>
<file baseinstalldir="" name="DetermineLoadedClassTest.php" role="test" />
</dir>
<dir name="File">
<file baseinstalldir="" name="FindEndOfStatementTest.inc" role="test" />
<file baseinstalldir="" name="FindEndOfStatementTest.php" role="test" />
Expand Down Expand Up @@ -1993,6 +2004,11 @@ http://pear.php.net/dtd/package-2.0.xsd">
<install as="CodeSniffer/Core/AllTests.php" name="tests/Core/AllTests.php" />
<install as="CodeSniffer/Core/IsCamelCapsTest.php" name="tests/Core/IsCamelCapsTest.php" />
<install as="CodeSniffer/Core/ErrorSuppressionTest.php" name="tests/Core/ErrorSuppressionTest.php" />
<install as="CodeSniffer/Core/Autoloader/DetermineLoadedClassTest.php" name="tests/Core/Autoloader/DetermineLoadedClassTest.php" />
<install as="CodeSniffer/Core/Autoloader/TestFiles/A.inc" name="tests/Core/Autoloader/TestFiles/A.inc" />
<install as="CodeSniffer/Core/Autoloader/TestFiles/B.inc" name="tests/Core/Autoloader/TestFiles/B.inc" />
<install as="CodeSniffer/Core/Autoloader/TestFiles/C.inc" name="tests/Core/Autoloader/TestFiles/C.inc" />
<install as="CodeSniffer/Core/Autoloader/TestFiles/Sub/C.inc" name="tests/Core/Autoloader/TestFiles/Sub/C.inc" />
<install as="CodeSniffer/Core/File/FindEndOfStatementTest.php" name="tests/Core/File/FindEndOfStatementTest.php" />
<install as="CodeSniffer/Core/File/FindEndOfStatementTest.inc" name="tests/Core/File/FindEndOfStatementTest.inc" />
<install as="CodeSniffer/Core/File/FindExtendedClassNameTest.php" name="tests/Core/File/FindExtendedClassNameTest.php" />
Expand Down Expand Up @@ -2058,6 +2074,11 @@ http://pear.php.net/dtd/package-2.0.xsd">
<install as="CodeSniffer/Core/AllTests.php" name="tests/Core/AllTests.php" />
<install as="CodeSniffer/Core/IsCamelCapsTest.php" name="tests/Core/IsCamelCapsTest.php" />
<install as="CodeSniffer/Core/ErrorSuppressionTest.php" name="tests/Core/ErrorSuppressionTest.php" />
<install as="CodeSniffer/Core/Autoloader/DetermineLoadedClassTest.php" name="tests/Core/Autoloader/DetermineLoadedClassTest.php" />
<install as="CodeSniffer/Core/Autoloader/TestFiles/A.inc" name="tests/Core/Autoloader/TestFiles/A.inc" />
<install as="CodeSniffer/Core/Autoloader/TestFiles/B.inc" name="tests/Core/Autoloader/TestFiles/B.inc" />
<install as="CodeSniffer/Core/Autoloader/TestFiles/C.inc" name="tests/Core/Autoloader/TestFiles/C.inc" />
<install as="CodeSniffer/Core/Autoloader/TestFiles/Sub/C.inc" name="tests/Core/Autoloader/TestFiles/Sub/C.inc" />
<install as="CodeSniffer/Core/File/FindEndOfStatementTest.php" name="tests/Core/File/FindEndOfStatementTest.php" />
<install as="CodeSniffer/Core/File/FindEndOfStatementTest.inc" name="tests/Core/File/FindEndOfStatementTest.inc" />
<install as="CodeSniffer/Core/File/FindExtendedClassNameTest.php" name="tests/Core/File/FindExtendedClassNameTest.php" />
Expand Down
2 changes: 1 addition & 1 deletion phpcs.xml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<file>tests</file>

<exclude-pattern>*/src/Standards/*/Tests/*\.(inc|css|js)$</exclude-pattern>
<exclude-pattern>*/tests/Core/*/*Test\.(inc|css|js)$</exclude-pattern>
<exclude-pattern>*/tests/Core/*/*\.(inc|css|js)$</exclude-pattern>

<arg name="basepath" value="."/>
<arg name="colors"/>
Expand Down
118 changes: 118 additions & 0 deletions tests/Core/Autoloader/DetermineLoadedClassTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
<?php
/**
* Tests for the \PHP_CodeSniffer\Util\Common::isCamelCaps method.
*
* @author Greg Sherwood <gsherwood@squiz.net>
* @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600)
* @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
*/

namespace PHP_CodeSniffer\Tests\Core\Autoloader;

use PHPUnit\Framework\TestCase;

class DetermineLoadedClassTest extends TestCase
{


/**
* Load the test files.
*
* @return void
*/
public static function setUpBeforeClass()
{
include __DIR__.'/TestFiles/Sub/C.inc';

}//end setUpBeforeClass()


/**
* Test for when class list is ordered.
*
* @return void
*/
public function testOrdered()
{
$classesBeforeLoad = [
'classes' => [],
'interfaces' => [],
'traits' => [],
];

$classesAfterLoad = [
'classes' => [
'PHP_CodeSniffer\Tests\Core\Autoloader\A',
'PHP_CodeSniffer\Tests\Core\Autoloader\B',
'PHP_CodeSniffer\Tests\Core\Autoloader\C',
'PHP_CodeSniffer\Tests\Core\Autoloader\Sub\C',
],
'interfaces' => [],
'traits' => [],
];

$className = \PHP_CodeSniffer\Autoload::determineLoadedClass($classesBeforeLoad, $classesAfterLoad);
$this->assertEquals('PHP_CodeSniffer\Tests\Core\Autoloader\Sub\C', $className);

}//end testOrdered()


/**
* Test for when class list is out of order.
*
* @return void
*/
public function testUnordered()
{
$classesBeforeLoad = [
'classes' => [],
'interfaces' => [],
'traits' => [],
];

$classesAfterLoad = [
'classes' => [
'PHP_CodeSniffer\Tests\Core\Autoloader\A',
'PHP_CodeSniffer\Tests\Core\Autoloader\Sub\C',
'PHP_CodeSniffer\Tests\Core\Autoloader\C',
'PHP_CodeSniffer\Tests\Core\Autoloader\B',
],
'interfaces' => [],
'traits' => [],
];

$className = \PHP_CodeSniffer\Autoload::determineLoadedClass($classesBeforeLoad, $classesAfterLoad);
$this->assertEquals('PHP_CodeSniffer\Tests\Core\Autoloader\Sub\C', $className);

$classesAfterLoad = [
'classes' => [
'PHP_CodeSniffer\Tests\Core\Autoloader\A',
'PHP_CodeSniffer\Tests\Core\Autoloader\C',
'PHP_CodeSniffer\Tests\Core\Autoloader\Sub\C',
'PHP_CodeSniffer\Tests\Core\Autoloader\B',
],
'interfaces' => [],
'traits' => [],
];

$className = \PHP_CodeSniffer\Autoload::determineLoadedClass($classesBeforeLoad, $classesAfterLoad);
$this->assertEquals('PHP_CodeSniffer\Tests\Core\Autoloader\Sub\C', $className);

$classesAfterLoad = [
'classes' => [
'PHP_CodeSniffer\Tests\Core\Autoloader\Sub\C',
'PHP_CodeSniffer\Tests\Core\Autoloader\A',
'PHP_CodeSniffer\Tests\Core\Autoloader\C',
'PHP_CodeSniffer\Tests\Core\Autoloader\B',
],
'interfaces' => [],
'traits' => [],
];

$className = \PHP_CodeSniffer\Autoload::determineLoadedClass($classesBeforeLoad, $classesAfterLoad);
$this->assertEquals('PHP_CodeSniffer\Tests\Core\Autoloader\Sub\C', $className);

}//end testUnordered()


}//end class
3 changes: 3 additions & 0 deletions tests/Core/Autoloader/TestFiles/A.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<?php
namespace PHP_CodeSniffer\Tests\Core\Autoloader;
class A {}
4 changes: 4 additions & 0 deletions tests/Core/Autoloader/TestFiles/B.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?php
namespace PHP_CodeSniffer\Tests\Core\Autoloader;
require 'A.inc';
class B extends A {}
4 changes: 4 additions & 0 deletions tests/Core/Autoloader/TestFiles/C.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?php
namespace PHP_CodeSniffer\Tests\Core\Autoloader;
require 'B.inc';
class C extends B {}
5 changes: 5 additions & 0 deletions tests/Core/Autoloader/TestFiles/Sub/C.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?php
namespace PHP_CodeSniffer\Tests\Core\Autoloader\Sub;
require __DIR__.'/../C.inc';
use PHP_CodeSniffer\Tests\Core\Autoloader\C as ParentC;
class C extends ParentC {}

0 comments on commit ed83c67

Please sign in to comment.