class ToolkitTestBase
Same name in this branch
- 8.9.x core/tests/Drupal/FunctionalTests/Image/ToolkitTestBase.php \Drupal\FunctionalTests\Image\ToolkitTestBase
Same name and namespace in other branches
- 9 core/tests/Drupal/FunctionalTests/Image/ToolkitTestBase.php \Drupal\FunctionalTests\Image\ToolkitTestBase
Base class for image manipulation testing.
Hierarchy
- class \Drupal\simpletest\WebTestBase uses \Drupal\Core\Test\FunctionalTestSetupTrait, \Drupal\KernelTests\AssertContentTrait, \Drupal\Tests\TestFileCreationTrait, \Drupal\system\Tests\Cache\AssertPageCacheContextsAndTagsTrait, \Drupal\Tests\block\Traits\BlockCreationTrait, \Drupal\Tests\node\Traits\ContentTypeCreationTrait, \Drupal\Tests\Traits\Core\CronRunTrait, \Drupal\Core\Test\AssertMailTrait, \Drupal\Tests\node\Traits\NodeCreationTrait, \Drupal\Tests\user\Traits\UserCreationTrait, \Drupal\Tests\XdebugRequestTrait, \Drupal\Tests\EntityViewTrait extends \Drupal\simpletest\TestBase
- class \Drupal\system\Tests\Image\ToolkitTestBase extends \Drupal\simpletest\WebTestBase
Expanded class hierarchy of ToolkitTestBase
Deprecated
in drupal:8.4.0 and is removed from drupal:9.0.0. Use Drupal\FunctionalTests\Image\ToolkitTestBase instead.
See also
https://www.drupal.org/node/2862641
File
-
core/
modules/ system/ src/ Tests/ Image/ ToolkitTestBase.php, line 18
Namespace
Drupal\system\Tests\ImageView source
abstract class ToolkitTestBase extends WebTestBase {
/**
* Modules to enable.
*
* @var array
*/
public static $modules = [
'image_test',
];
/**
* The URI for the file.
*
* @var string
*/
protected $file;
/**
* The image factory service.
*
* @var \Drupal\Core\Image\ImageFactory
*/
protected $imageFactory;
/**
* The image object for the test file.
*
* @var \Drupal\Core\Image\ImageInterface
*/
protected $image;
protected function setUp() {
parent::setUp();
// Set the image factory service.
$this->imageFactory = $this->container
->get('image.factory');
// Pick a file for testing.
$file = current($this->drupalGetTestFiles('image'));
$this->file = $file->uri;
// Setup a dummy image to work with.
$this->image = $this->getImage();
// Clear out any hook calls.
$this->imageTestReset();
}
/**
* Sets up an image with the custom toolkit.
*
* @return \Drupal\Core\Image\ImageInterface
* The image object.
*/
protected function getImage() {
$image = $this->imageFactory
->get($this->file, 'test');
$this->assertTrue($image->isValid(), 'Image file was parsed.');
return $image;
}
/**
* Assert that all of the specified image toolkit operations were called
* exactly once once, other values result in failure.
*
* @param $expected
* Array with string containing with the operation name, e.g. 'load',
* 'save', 'crop', etc.
*/
public function assertToolkitOperationsCalled(array $expected) {
// If one of the image operations is expected, apply should be expected as
// well.
$operations = [
'resize',
'rotate',
'crop',
'desaturate',
'create_new',
'scale',
'scale_and_crop',
'my_operation',
'convert',
];
if (count(array_intersect($expected, $operations)) > 0 && !in_array('apply', $expected)) {
$expected[] = 'apply';
}
// Determine which operations were called.
$actual = array_keys(array_filter($this->imageTestGetAllCalls()));
// Determine if there were any expected that were not called.
$uncalled = array_diff($expected, $actual);
if (count($uncalled)) {
$this->assertTrue(FALSE, new FormattableMarkup('Expected operations %expected to be called but %uncalled was not called.', [
'%expected' => implode(', ', $expected),
'%uncalled' => implode(', ', $uncalled),
]));
}
else {
$this->assertTrue(TRUE, new FormattableMarkup('All the expected operations were called: %expected', [
'%expected' => implode(', ', $expected),
]));
}
// Determine if there were any unexpected calls.
// If all unexpected calls are operations and apply was expected, we do not
// count it as an error.
$unexpected = array_diff($actual, $expected);
if (count($unexpected) && (!in_array('apply', $expected) || count(array_intersect($unexpected, $operations)) !== count($unexpected))) {
$this->assertTrue(FALSE, new FormattableMarkup('Unexpected operations were called: %unexpected.', [
'%unexpected' => implode(', ', $unexpected),
]));
}
else {
$this->assertTrue(TRUE, 'No unexpected operations were called.');
}
}
/**
* Resets/initializes the history of calls to the test toolkit functions.
*/
public function imageTestReset() {
// Keep track of calls to these operations
$results = [
'parseFile' => [],
'save' => [],
'settings' => [],
'apply' => [],
'resize' => [],
'rotate' => [],
'crop' => [],
'desaturate' => [],
'create_new' => [],
'scale' => [],
'scale_and_crop' => [],
'convert' => [],
];
\Drupal::state()->set('image_test.results', $results);
}
/**
* Gets an array of calls to the test toolkit.
*
* @return array
* An array keyed by operation name ('parseFile', 'save', 'settings',
* 'resize', 'rotate', 'crop', 'desaturate') with values being arrays of
* parameters passed to each call.
*/
public function imageTestGetAllCalls() {
return \Drupal::state()->get('image_test.results') ?: [];
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|---|
AssertPageCacheContextsAndTagsTrait::assertCacheContext | protected | function | Asserts whether an expected cache context was present in the last response. | |||
AssertPageCacheContextsAndTagsTrait::assertCacheContexts | protected | function | Ensures that some cache contexts are present in the current response. | |||
AssertPageCacheContextsAndTagsTrait::assertCacheMaxAge | protected | function | Asserts the max age header. | |||
AssertPageCacheContextsAndTagsTrait::assertCacheTags | protected | function | Ensures that some cache tags are present in the current response. | |||
AssertPageCacheContextsAndTagsTrait::assertNoCacheContext | protected | function | Asserts that a cache context was not present in the last response. | |||
AssertPageCacheContextsAndTagsTrait::assertPageCacheContextsAndTags | protected | function | Asserts page cache miss, then hit for the given URL; checks cache headers. | |||
AssertPageCacheContextsAndTagsTrait::debugCacheTags | protected | function | Provides debug information for cache tags. | |||
AssertPageCacheContextsAndTagsTrait::enablePageCaching | protected | function | Enables page caching. | |||
AssertPageCacheContextsAndTagsTrait::getCacheHeaderValues | protected | function | Gets a specific header value as array. | |||
TestBase::$assertions | protected | property | Assertions thrown in that test case. | |||
TestBase::$configImporter | protected | property | The config importer that can used in a test. | |||
TestBase::$databasePrefix | protected | property | The database prefix of this test run. | |||
TestBase::$dieOnFail | public | property | Whether to die in case any test assertion fails. | |||
TestBase::$httpAuthCredentials | protected | property | HTTP authentication credentials (<username>:<password>). | |||
TestBase::$httpAuthMethod | protected | property | HTTP authentication method (specified as a CURLAUTH_* constant). | |||
TestBase::$originalConf | protected | property | The original configuration (variables), if available. | |||
TestBase::$originalConfig | protected | property | The original configuration (variables). | |||
TestBase::$originalConfigDirectories | protected | property | The original configuration directories. | |||
TestBase::$originalContainer | protected | property | The original container. | |||
TestBase::$originalFileDirectory | protected | property | The original file directory, before it was changed for testing purposes. | |||
TestBase::$originalLanguage | protected | property | The original language. | |||
TestBase::$originalPrefix | protected | property | The original database prefix when running inside Simpletest. | |||
TestBase::$originalSessionName | protected | property | The name of the session cookie of the test-runner. | |||
TestBase::$originalSettings | protected | property | The settings array. | |||
TestBase::$results | public | property | Current results of this test case. | |||
TestBase::$skipClasses | protected | property | This class is skipped when looking for the source of an assertion. | |||
TestBase::$timeLimit | protected | property | Time limit for the test. | |||
TestBase::$translationFilesDirectory | protected | property | The translation file directory for the test environment. | |||
TestBase::$verbose | public | property | TRUE if verbose debugging is enabled. | |||
TestBase::$verboseClassName | protected | property | Safe class name for use in verbose output filenames. | |||
TestBase::$verboseDirectory | protected | property | Directory where verbose output files are put. | |||
TestBase::$verboseDirectoryUrl | protected | property | URL to the verbose output file directory. | |||
TestBase::$verboseId | protected | property | Incrementing identifier for verbose output filenames. | |||
TestBase::assert | protected | function | Internal helper: stores the assert. | |||
TestBase::assertEqual | protected | function | Check to see if two values are equal. | |||
TestBase::assertErrorLogged | protected | function | Asserts that a specific error has been logged to the PHP error log. | |||
TestBase::assertFalse | protected | function | Check to see if a value is false. | |||
TestBase::assertIdentical | protected | function | Check to see if two values are identical. | |||
TestBase::assertIdenticalObject | protected | function | Checks to see if two objects are identical. | |||
TestBase::assertNoErrorsLogged | protected | function | Asserts that no errors have been logged to the PHP error.log thus far. | |||
TestBase::assertNotEqual | protected | function | Check to see if two values are not equal. | |||
TestBase::assertNotIdentical | protected | function | Check to see if two values are not identical. | |||
TestBase::assertNotNull | protected | function | Check to see if a value is not NULL. | |||
TestBase::assertNull | protected | function | Check to see if a value is NULL. | |||
TestBase::assertTrue | protected | function | Check to see if a value is not false. | |||
TestBase::beforePrepareEnvironment | protected | function | Act on global state information before the environment is altered for a test. | 1 | ||
TestBase::checkRequirements | protected | function | Checks the matching requirements for Test. | 1 | ||
TestBase::checkTestHierarchyMismatch | public | function | Fail the test if it belongs to a PHPUnit-based framework. | |||
TestBase::config | protected | function | Configuration accessor for tests. Returns non-overridden configuration. | |||
TestBase::deleteAssert | public static | function | Delete an assertion record by message ID. | |||
TestBase::error | protected | function | Fire an error assertion. | 1 | ||
TestBase::errorHandler | public | function | Handle errors during test runs. | |||
TestBase::exceptionHandler | protected | function | Handle exceptions. | |||
TestBase::fail | protected | function | Fire an assertion that is always negative. | |||
TestBase::filePreDeleteCallback | public static | function | Ensures test files are deletable. | |||
TestBase::getAssertionCall | protected | function | Cycles through backtrace until the first non-assertion method is found. | |||
TestBase::getDatabasePrefix | public | function | Gets the database prefix. | |||
TestBase::getTempFilesDirectory | public | function | Gets the temporary files directory. | |||
TestBase::insertAssert | Deprecated | public static | function | Store an assertion from outside the testing context. | 1 | |
TestBase::pass | protected | function | Fire an assertion that is always positive. | |||
TestBase::prepareDatabasePrefix | private | function | Generates a database prefix for running tests. | |||
TestBase::restoreEnvironment | private | function | Cleans up the test environment and restores the original environment. | |||
TestBase::run | public | function | Run all tests in this class. | 2 | ||
TestBase::settingsSet | protected | function | Changes in memory settings. | |||
TestBase::storeAssertion | protected | function | Helper method to store an assertion record in the configured database. | 1 | ||
TestBase::verbose | protected | function | Logs a verbose message in a text file. | |||
ToolkitTestBase::$file | protected | property | The URI for the file. | |||
ToolkitTestBase::$image | protected | property | The image object for the test file. | |||
ToolkitTestBase::$imageFactory | protected | property | The image factory service. | |||
ToolkitTestBase::$modules | public static | property | Modules to enable. | |||
ToolkitTestBase::assertToolkitOperationsCalled | public | function | Assert that all of the specified image toolkit operations were called exactly once once, other values result in failure. |
|||
ToolkitTestBase::getImage | protected | function | Sets up an image with the custom toolkit. | |||
ToolkitTestBase::imageTestGetAllCalls | public | function | Gets an array of calls to the test toolkit. | |||
ToolkitTestBase::imageTestReset | public | function | Resets/initializes the history of calls to the test toolkit functions. | |||
ToolkitTestBase::setUp | protected | function | Overrides WebTestBase::setUp | |||
WebTestBase::$additionalCurlOptions | protected | property | Additional cURL options. | |||
WebTestBase::$assertAjaxHeader | protected | property | Whether or not to assert the presence of the X-Drupal-Ajax-Token. | |||
WebTestBase::$cookieFile | protected | property | The current cookie file used by cURL. | |||
WebTestBase::$cookies | protected | property | The cookies of the page currently loaded in the internal browser. | |||
WebTestBase::$curlCookies | protected | property | Cookies to set on curl requests. | |||
WebTestBase::$curlHandle | protected | property | The handle of the current cURL connection. | |||
WebTestBase::$customTranslations | protected | property | An array of custom translations suitable for drupal_rewrite_settings(). | |||
WebTestBase::$dumpHeaders | protected | property | Indicates that headers should be dumped if verbose output is enabled. | 1 | ||
WebTestBase::$headers | protected | property | The headers of the page currently loaded in the internal browser. | |||
WebTestBase::$loggedInUser | protected | property | The current user logged in using the internal browser. | |||
WebTestBase::$maximumMetaRefreshCount | protected | property | The number of meta refresh redirects to follow, or NULL if unlimited. | |||
WebTestBase::$maximumRedirects | protected | property | The maximum number of redirects to follow when handling responses. | |||
WebTestBase::$metaRefreshCount | protected | property | The number of meta refresh redirects followed during ::drupalGet(). | |||
WebTestBase::$originalBatch | protected | property | The original batch, before it was changed for testing purposes. | |||
WebTestBase::$originalShutdownCallbacks | protected | property | The original shutdown handlers array, before it was cleaned for testing. | Overrides TestBase::$originalShutdownCallbacks | ||
WebTestBase::$originalUser | protected | property | The original user, before it was changed to a clean uid = 1 for testing. | Overrides TestBase::$originalUser | ||
WebTestBase::$profile | protected | property | The profile to install as a basis for testing. | 2 | ||
WebTestBase::$redirectCount | protected | property | The number of redirects followed during the handling of a request. | |||
WebTestBase::$sessionId | protected | property | The current session ID, if available. | |||
WebTestBase::$url | protected | property | The URL currently loaded in the internal browser. | |||
WebTestBase::addCustomTranslations | protected | function | Queues custom translations to be written to settings.php. | |||
WebTestBase::assertBlockAppears | protected | function | Checks to see whether a block appears on the page. | |||
WebTestBase::assertCacheTag | protected | function | Asserts whether an expected cache tag was present in the last response. | |||
WebTestBase::assertHeader | protected | function | Check if a HTTP response header exists and has the expected value. | |||
WebTestBase::assertNoBlockAppears | protected | function | Checks to see whether a block does not appears on the page. | |||
WebTestBase::assertNoCacheTag | protected | function | Asserts whether an expected cache tag was absent in the last response. | |||
WebTestBase::assertNoResponse | protected | function | Asserts the page did not return the specified response code. | |||
WebTestBase::assertResponse | protected | function | Asserts the page responds with the specified response code. | 1 | ||
WebTestBase::assertUrl | protected | function | Passes if the internal browser's URL matches the given path. | |||
WebTestBase::buildUrl | protected | function | Builds an a absolute URL from a system path or a URL object. | |||
WebTestBase::checkForMetaRefresh | protected | function | Checks for meta refresh tag and if found call drupalGet() recursively. | |||
WebTestBase::clickLink | protected | function | Follows a link by complete name. | |||
WebTestBase::clickLinkHelper | protected | function | Provides a helper for ::clickLink() and ::clickLinkPartialName(). | |||
WebTestBase::clickLinkPartialName | protected | function | Follows a link by partial name. | |||
WebTestBase::curlClose | protected | function | Close the cURL handler and unset the handler. | |||
WebTestBase::curlExec | protected | function | Initializes and executes a cURL request. | 1 | ||
WebTestBase::curlHeaderCallback | protected | function | Reads headers and registers errors received from the tested site. | |||
WebTestBase::curlInitialize | protected | function | Initializes the cURL connection. | |||
WebTestBase::drupalGet | protected | function | Retrieves a Drupal path or an absolute path. | 1 | ||
WebTestBase::drupalGetAjax | protected | function | Requests a path or URL in drupal_ajax format and JSON-decodes the response. | |||
WebTestBase::drupalGetHeader | protected | function | Gets the value of an HTTP response header. | 1 | ||
WebTestBase::drupalGetHeaders | protected | function | Gets the HTTP response headers of the requested page. | 1 | ||
WebTestBase::drupalGetJSON | protected | function | Retrieves a Drupal path or an absolute path and JSON decodes the result. | |||
WebTestBase::drupalGetWithFormat | protected | function | Retrieves a Drupal path or an absolute path for a given format. | |||
WebTestBase::drupalGetXHR | protected | function | Requests a Drupal path or an absolute path as if it is a XMLHttpRequest. | |||
WebTestBase::drupalHead | protected | function | Retrieves only the headers for a Drupal path or an absolute path. | |||
WebTestBase::drupalLogin | protected | function | Log in a user with the internal browser. | |||
WebTestBase::drupalLogout | protected | function | Logs a user out of the internal browser and confirms. | |||
WebTestBase::drupalPost | protected | function | Perform a POST HTTP request. | |||
WebTestBase::drupalPostAjaxForm | protected | function | Executes an Ajax form submission. | |||
WebTestBase::drupalPostForm | protected | function | Executes a form submission. | |||
WebTestBase::drupalPostWithFormat | protected | function | Performs a POST HTTP request with a specific format. | |||
WebTestBase::drupalProcessAjaxResponse | protected | function | Processes an AJAX response into current content. | |||
WebTestBase::drupalUserIsLoggedIn | protected | function | Returns whether a given user account is logged in. | |||
WebTestBase::findBlockInstance | protected | function | Find a block instance on the page. | |||
WebTestBase::getAbsoluteUrl | protected | function | Takes a path and returns an absolute path. | |||
WebTestBase::getAjaxPageStatePostData | protected | function | Get the Ajax page state from drupalSettings and prepare it for POSTing. | |||
WebTestBase::handleForm | protected | function | Handles form input related to drupalPostForm(). | |||
WebTestBase::isInChildSite | protected | function | Returns whether the test is being executed from within a test site. | |||
WebTestBase::restoreBatch | protected | function | Restore the original batch. | |||
WebTestBase::serializePostValues | protected | function | Serialize POST HTTP request values. | |||
WebTestBase::setBatch | protected | function | Preserve the original batch, and instantiate the test batch. | |||
WebTestBase::setHttpResponseDebugCacheabilityHeaders | protected | function | Enables/disables the cacheability headers. | |||
WebTestBase::tearDown | protected | function | Cleans up after testing. | Overrides TestBase::tearDown | 1 | |
WebTestBase::translatePostValues | protected | function | Transforms a nested array into a flat array suitable for WebTestBase::drupalPostForm(). | |||
WebTestBase::writeCustomTranslations | protected | function | Writes custom translations to the test site's settings.php. | |||
WebTestBase::__construct | public | function | Constructor for \Drupal\simpletest\WebTestBase. | Overrides TestBase::__construct | 1 |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.