!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/laravel-crm/vendor/brianium/paratest/src/JUnit/   drwxrwxrwx
Free 13.16 GB of 57.97 GB (22.7%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Writer.php (3.72 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

declare(strict_types=1);

namespace 
ParaTest\JUnit;

use 
DOMDocument;
use 
DOMElement;

use function 
assert;
use function 
dirname;
use function 
file_put_contents;
use function 
htmlspecialchars;
use function 
is_dir;
use function 
is_int;
use function 
is_string;
use function 
mkdir;
use function 
sprintf;
use function 
str_replace;

use const 
ENT_XML1;

/** @internal */
final class Writer
{
    private const 
TESTSUITES_NAME 'PHPUnit tests';
    private 
readonly DOMDocument $document;

    public function 
__construct()
    {
        
$this->document               = new DOMDocument('1.0''UTF-8');
        
$this->document->formatOutput true;
    }

    public function 
write(TestSuite $testSuitestring $path): void
    
{
        
$dir dirname($path);
        if (! 
is_dir($dir)) {
            
mkdir($dir0777true);
        }

        
$result file_put_contents($path$this->getXml($testSuite));
        
assert(is_int($result) && $result);
    }

    
/** @return non-empty-string */
    
private function getXml(TestSuite $testSuite): string
    
{
        
$xmlTestsuites $this->document->createElement('testsuites');
        
$xmlTestsuites->appendChild($this->createSuiteNode($testSuite));
        
$xmlTestsuites->setAttribute('name'self::TESTSUITES_NAME);
        
$this->document->appendChild($xmlTestsuites);

        
$xml $this->document->saveXML();
        
assert(is_string($xml) && $xml !== '');

        return 
$xml;
    }

    private function 
createSuiteNode(TestSuite $parentSuite): DOMElement
    
{
        
$suiteNode $this->document->createElement('testsuite');
        
$suiteNode->setAttribute('name'$parentSuite->name !== self::TESTSUITES_NAME $parentSuite->name '');
        if (
$parentSuite->file !== '') {
            
$suiteNode->setAttribute('file'$parentSuite->file);
        }

        
$suiteNode->setAttribute('tests', (string) $parentSuite->tests);
        
$suiteNode->setAttribute('assertions', (string) $parentSuite->assertions);
        
$suiteNode->setAttribute('errors', (string) $parentSuite->errors);
        
$suiteNode->setAttribute('failures', (string) $parentSuite->failures);
        
$suiteNode->setAttribute('skipped', (string) $parentSuite->skipped);
        
$suiteNode->setAttribute('time', (string) $parentSuite->time);

        foreach (
$parentSuite->suites as $suite) {
            
$suiteNode->appendChild($this->createSuiteNode($suite));
        }

        foreach (
$parentSuite->cases as $case) {
            
$suiteNode->appendChild($this->createCaseNode($case));
        }

        return 
$suiteNode;
    }

    private function 
createCaseNode(TestCase $case): DOMElement
    
{
        
$caseNode $this->document->createElement('testcase');

        
$caseNode->setAttribute('name'$case->name);
        
$caseNode->setAttribute('class'$case->class);
        
$caseNode->setAttribute('classname'str_replace('\\''.'$case->class));
        
$caseNode->setAttribute('file'$case->file);
        
$caseNode->setAttribute('line', (string) $case->line);
        
$caseNode->setAttribute('assertions', (string) $case->assertions);
        
$caseNode->setAttribute('time'sprintf('%F'$case->time));

        if (
$case instanceof TestCaseWithMessage) {
            if (
$case->xmlTagName === MessageType::skipped) {
                
$defectNode $this->document->createElement($case->xmlTagName->toString());
            } else {
                
$defectNode $this->document->createElement($case->xmlTagName->toString(), htmlspecialchars($case->textENT_XML1));
                
$type       $case->type;
                if (
$type !== null) {
                    
$defectNode->setAttribute('type'$type);
                }
            }

            
$caseNode->appendChild($defectNode);
        }

        return 
$caseNode;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0052 ]--