PHP code example of cds-uwb / nette-presenter-tests
1. Go to this page and download the library: Download cds-uwb/nette-presenter-tests library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
cds-uwb / nette-presenter-tests example snippets
final class PresenterTest extends Cds\NettePresenterTests\PresenterTestCase
{
protected function setUp() : void
{
parent::setUp();
// Initialize presenter for all following tests
$this->presenter = $this->createPresenter(MyPresenter::class);
}
public function testAction(): void
{
// Invoke MyPresenter:default action with parameters
$response = $this->request('default', [
'param1' => 'value1',
]);
// Check the presenter response is TextResponse with non-empty result
self::assertNonEmptyTextResponse($response);
}
public function testActionRedirect(): void
{
// Invoke MyPresenter:redirect action
$response = $this->request('redirect');
// Check the presenter response is RedirectResponse with given target
self::assertRedirectResponseTo('MyPresenter:default', $response);
}
public function testFormSubmit(): void
{
// Submit form 'testForm' via action default
$response = $this->submitForm('default', [], [
'key1' => 'value1',
'key2' => [1, 2, 3],
], 'testForm');
// Check the presenter response is RedirectResponse with given target
self::assertRedirectResponseTo('MyPresenter:default', $response);
}
// Presenter instance is created from the Nette DI container.
// In this function you can configure the container as needed for your tests.
// This is the simplest example how to create the container.
protected function configureContainer(): Container
{
$tempDirectory = __DIR__ . '/temp';
$configurator = new Configurator();
$configurator->setDebugMode(true);
$configurator->setTempDirectory($tempDirectory);
return $configurator->createContainer();
}
}
final class PresenterTest extends \PHPUnit\Framework\TestCase
{
// Whole functionality is available via traits
use \Cds\NettePresenterTests\Traits\Presenter;
// Provide container for the traits
protected Container $container;
protected function setUp() : void
{
parent::setUp();
$tempDirectory = __DIR__ . '/temp';
$configurator = new Configurator();
$configurator->setDebugMode(true);
$configurator->setTempDirectory($tempDirectory);
// Create and store the container so traits can use it
$this->container = $configurator->createContainer();
// Initialize presenter for all following tests
$this->presenter = $this->createPresenter(MyPresenter::class);
}
// Tests ...
}
final class MyTest extends \PHPUnit\Framework\TestCase
{
use \Cds\NettePresenterTests\Traits\Presenter;
protected function buildNameFromPresenter(string $class) : string
{
// All request are from TestPresenter
return 'Test';
}
}
final class PresenterTest extends \PHPUnit\Framework\TestCase
{
// Whole functionality is available via traits
use \Cds\NettePresenterTests\Traits\Presenter;
protected function setUp() : void
{
parent::setUp();
// Initialize presenter for all following tests
$this->presenter = $this->createPresenter(MyPresenter::class);
}
public function testFileUpload(): void
{
$response = $this->submitForm('default', [], [
'file1' => $this->uploadFile('file1.txt', 'Hello World!'),
// Upload failure can be tested via error argument
'file2' => $this->uploadFile(error: UPLOAD_ERR_CANT_WRITE),
], 'testForm');
// Check the presenter response is RedirectResponse with given target
self::assertRedirectResponseTo('MyPresenter:default', $response);
}
}
final class PresenterTest extends \PHPUnit\Framework\TestCase
{
use \Cds\NettePresenterTests\Traits\PresenterRequest;
use \Cds\NettePresenterTests\Traits\PresenterCreate;
public function testAction(): void
{
$presenter = $this->createPresenter(MyPresenter::class);
// Invoke MyPresenter:default action with parameters
$response = $this->runPresenter($presenter, 'default', [
'param1' => 'value1',
]);
// Check the presenter response is TextResponse with non-empty result
self::assertNonEmptyTextResponse($response);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.