File "SubjectTest.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/svg-support/vendor/enshrined/svg-sanitize/tests/SubjectTest.php
File size: 4.51 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace enshrined\svgSanitize\Tests;
use enshrined\svgSanitize\ElementReference\Subject;
use PHPUnit\Framework\TestCase;
/**
* Class SubjectTest
*/
class SubjectTest extends TestCase
{
/**
* @var int
*/
protected $nestingLimit = 15;
/**
* <first>
* <!-- 0 -->
* </first>
*
* @test
*/
public function oneLevelCountsUseIsCorrect()
{
$first = new \DOMElement('first');
$firstSubject = new Subject($first, $this->nestingLimit);
self::assertSame(0, $firstSubject->countUse(false));
self::assertSame(0, $firstSubject->countUse(true));
}
/**
* <first>
* <second /> <!-- 1 -->
* <second /> <!-- 2 -->
* </first>
*
* @test
*/
public function twoLevelsCountUseIsCorrect()
{
$first = new \DOMElement('first');
$second = new \DOMElement('second');
$firstSubject = new Subject($first, $this->nestingLimit);
$secondSubject = new Subject($second, $this->nestingLimit);
$firstSubject->addUse($secondSubject);
$firstSubject->addUse($secondSubject);
self::assertSame(2, $firstSubject->countUse(false));
self::assertSame(2, $firstSubject->countUse(true));
}
/**
* <first>
* <second> <!-- accumulated=false: 0; accumulated=true: 1 -->
* <third /> <!-- accumulated=false: 1; accumulated=true: 2 -->
* <third /> <!-- accumulated=false: 2; accumulated=true: 3 -->
* <third /> <!-- accumulated=false: 3; accumulated=true: 4 -->
* </second>
* <second> <!-- accumulated=false: 3; accumulated=true: 5 -->
* <third /> <!-- accumulated=false: 4; accumulated=true: 6 -->
* <third /> <!-- accumulated=false: 5; accumulated=true: 7 -->
* <third /> <!-- accumulated=false: 6; accumulated=true: 8 -->
* </second>
* </first>
*
* @test
*/
public function threeLevelsCountUseIsCorrect()
{
$first = new \DOMElement('first');
$second = new \DOMElement('second');
$third = new \DOMElement('third');
$firstSubject = new Subject($first, $this->nestingLimit);
$secondSubject = new Subject($second, $this->nestingLimit);
$thirdSubject = new Subject($third, $this->nestingLimit);
$firstSubject->addUse($secondSubject);
$firstSubject->addUse($secondSubject);
$secondSubject->addUse($thirdSubject);
$secondSubject->addUse($thirdSubject);
$secondSubject->addUse($thirdSubject);
self::assertSame(6, $firstSubject->countUse(false));
self::assertSame(8, $firstSubject->countUse(true));
}
/**
* <first>
* </first>
*
* @test
*/
public function oneLevelCountsUsedInIsCorrect()
{
$first = new \DOMElement('first');
$firstSubject = new Subject($first, $this->nestingLimit);
self::assertSame(0, $firstSubject->countUsedIn());
}
/**
* <first>
* <second /> <!-- 1 -->
* <second /> <!-- 2 -->
* </first>
*
* @test
*/
public function twoLevelsCountUsedInIsCorrect()
{
$first = new \DOMElement('first');
$second = new \DOMElement('second');
$firstSubject = new Subject($first, $this->nestingLimit);
$secondSubject = new Subject($second, $this->nestingLimit);
$secondSubject->addUsedIn($firstSubject);
$secondSubject->addUsedIn($firstSubject);
self::assertSame(2, $secondSubject->countUsedIn());
}
/**
* <first>
* <second>
* <third /> <!-- 1 -->
* <third /> <!-- 2 -->
* <third /> <!-- 3 -->
* </second>
* <second>
* <third /> <!-- 4 -->
* <third /> <!-- 5 -->
* <third /> <!-- 6 -->
* </second>
* </first>
*
* @test
*/
public function threeLevelsCountUsedInIsCorrect()
{
$first = new \DOMElement('first');
$second = new \DOMElement('second');
$third = new \DOMElement('third');
$firstSubject = new Subject($first, $this->nestingLimit);
$secondSubject = new Subject($second, $this->nestingLimit);
$thirdSubject = new Subject($third, $this->nestingLimit);
$thirdSubject->addUsedIn($secondSubject);
$thirdSubject->addUsedIn($secondSubject);
$thirdSubject->addUsedIn($secondSubject);
$secondSubject->addUsedIn($firstSubject);
$secondSubject->addUsedIn($firstSubject);
self::assertSame(6, $thirdSubject->countUsedIn());
}
}