This commit is contained in:
2020-07-13 17:09:59 +02:00
parent 03559a7b76
commit 3a082e23cc
492 changed files with 4129 additions and 982 deletions
@@ -31,12 +31,14 @@ class EndOfTransactionQueriesTest extends KernelTestBase {
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
// This can only be checked after installing Drupal as it requires functions
// from bootstrap.inc.
if (!class_exists($this->getDatabaseConnectionInfo()['default']['namespace'] . '\Connection')) {
$this->markTestSkipped(sprintf('No logging override exists for the %s database driver. Create it, subclass this test class and override ::getDatabaseConnectionInfo().', $this->getDatabaseConnectionInfo()['default']['driver']));
}
parent::setUp();
$this->installSchema('system', 'sequences');
$this->installEntitySchema('entity_test');
$this->installEntitySchema('user');
@@ -98,11 +98,11 @@ class DirectoryTest extends FileTestBase {
// Make directory read only.
@$file_system->chmod($directory, 0444);
$this->assertFalse($file_system->prepareDirectory($directory, 0), 'Error reported for a non-writeable directory.', 'File');
$this->assertFalse($file_system->prepareDirectory($directory, 0), 'Error reported for a non-writable directory.', 'File');
// Test directory permission modification.
$this->setSetting('file_chmod_directory', 0777);
$this->assertTrue($file_system->prepareDirectory($directory, FileSystemInterface::MODIFY_PERMISSIONS), 'No error reported when making directory writeable.', 'File');
$this->assertTrue($file_system->prepareDirectory($directory, FileSystemInterface::MODIFY_PERMISSIONS), 'No error reported when making directory writable.', 'File');
}
// Test that the directory has the correct permissions.
@@ -153,6 +153,7 @@ abstract class FileTestBase extends KernelTestBase {
* @param $path
* Optional string with a directory path. If none is provided, a random
* name in the site's files directory will be used.
*
* @return
* The path to the directory.
*/
@@ -178,6 +179,7 @@ abstract class FileTestBase extends KernelTestBase {
* @param $scheme
* Optional string indicating the stream scheme to use. Drupal core includes
* public, private, and temporary. The public wrapper is the default.
*
* @return
* File URI.
*/
@@ -66,16 +66,16 @@ class NameMungingTest extends FileTestBase {
}
/**
* White listed extensions are ignored by file_munge_filename().
* Tests that allowed extensions are ignored by file_munge_filename().
*/
public function testMungeIgnoreWhitelisted() {
// Declare our extension as whitelisted. The declared extensions should
// be case insensitive so test using one with a different case.
public function testMungeIgnoreAllowedExtensions() {
// Declare that our extension is allowed. The declared extensions should be
// case insensitive, so test using one with a different case.
$munged_name = file_munge_filename($this->nameWithUcExt, $this->badExtension);
$this->assertSame($munged_name, $this->nameWithUcExt, new FormattableMarkup('The new filename (%munged) matches the original (%original) once the extension has been whitelisted.', ['%munged' => $munged_name, '%original' => $this->nameWithUcExt]));
$this->assertSame($munged_name, $this->nameWithUcExt);
// The allowed extensions should also be normalized.
$munged_name = file_munge_filename($this->name, strtoupper($this->badExtension));
$this->assertSame($munged_name, $this->name, new FormattableMarkup('The new filename (%munged) matches the original (%original) also when the whitelisted extension is in uppercase.', ['%munged' => $munged_name, '%original' => $this->name]));
$this->assertSame($munged_name, $this->name);
}
/**
@@ -44,20 +44,20 @@ class DatabaseStorageExpirableTest extends StorageTestBase {
// Verify that an item can be stored with setWithExpire().
// Use a random expiration in each test.
$stores[0]->setWithExpire('foo', $this->objects[0], rand(500, 100000));
$this->assertIdenticalObject($this->objects[0], $stores[0]->get('foo'));
$this->assertEquals($this->objects[0], $stores[0]->get('foo'));
// Verify that the other collection is not affected.
$this->assertNull($stores[1]->get('foo'));
// Verify that an item can be updated with setWithExpire().
$stores[0]->setWithExpire('foo', $this->objects[1], rand(500, 100000));
$this->assertIdenticalObject($this->objects[1], $stores[0]->get('foo'));
$this->assertEquals($this->objects[1], $stores[0]->get('foo'));
// Verify that the other collection is still not affected.
$this->assertNull($stores[1]->get('foo'));
// Verify that the expirable data key is unique.
$stores[1]->setWithExpire('foo', $this->objects[2], rand(500, 100000));
$this->assertIdenticalObject($this->objects[1], $stores[0]->get('foo'));
$this->assertIdenticalObject($this->objects[2], $stores[1]->get('foo'));
$this->assertEquals($this->objects[1], $stores[0]->get('foo'));
$this->assertEquals($this->objects[2], $stores[1]->get('foo'));
// Verify that multiple items can be stored with setMultipleWithExpire().
$values = [
@@ -67,11 +67,11 @@ class DatabaseStorageExpirableTest extends StorageTestBase {
$stores[0]->setMultipleWithExpire($values, rand(500, 100000));
$result = $stores[0]->getMultiple(['foo', 'bar']);
foreach ($values as $j => $value) {
$this->assertIdenticalObject($value, $result[$j]);
$this->assertEquals($value, $result[$j]);
}
// Verify that the other collection was not affected.
$this->assertIdenticalObject($stores[1]->get('foo'), $this->objects[2]);
$this->assertEquals($this->objects[2], $stores[1]->get('foo'));
$this->assertNull($stores[1]->get('bar'));
// Verify that all items in a collection can be retrieved.
@@ -93,7 +93,7 @@ class DatabaseStorageExpirableTest extends StorageTestBase {
$this->assertNull($stores[0]->get('bar'));
$this->assertEmpty($stores[0]->getMultiple(['foo', 'bar']));
// Verify that the item in the other collection still exists.
$this->assertIdenticalObject($this->objects[5], $stores[1]->get('foo'));
$this->assertEquals($this->objects[5], $stores[1]->get('foo'));
// Test that setWithExpireIfNotExists() succeeds only the first time.
$key = $this->randomMachineName();
@@ -101,7 +101,7 @@ class DatabaseStorageExpirableTest extends StorageTestBase {
// setWithExpireIfNotExists() should be TRUE the first time (when $i is
// 0) and FALSE the second time (when $i is 1).
$this->assertEqual(!$i, $stores[0]->setWithExpireIfNotExists($key, $this->objects[$i], rand(500, 100000)));
$this->assertIdenticalObject($this->objects[0], $stores[0]->get($key));
$this->assertEquals($this->objects[0], $stores[0]->get($key));
// Verify that the other collection is not affected.
$this->assertNull($stores[1]->get($key));
}
@@ -110,7 +110,7 @@ class DatabaseStorageExpirableTest extends StorageTestBase {
$stores[0]->delete($key);
$stores[0]->setWithExpireIfNotExists($key, $this->objects[1], rand(500, 100000));
// This time it should succeed.
$this->assertIdenticalObject($this->objects[1], $stores[0]->get($key));
$this->assertEquals($this->objects[1], $stores[0]->get($key));
// Verify that the other collection is still not affected.
$this->assertNull($stores[1]->get($key));
@@ -54,21 +54,21 @@ abstract class StorageTestBase extends KernelTestBase {
// Verify that an item can be stored.
$stores[0]->set('foo', $this->objects[0]);
$this->assertTrue($stores[0]->has('foo'));
$this->assertIdenticalObject($this->objects[0], $stores[0]->get('foo'));
$this->assertEquals($this->objects[0], $stores[0]->get('foo'));
// Verify that the other collection is not affected.
$this->assertFalse($stores[1]->has('foo'));
$this->assertNull($stores[1]->get('foo'));
// Verify that an item can be updated.
$stores[0]->set('foo', $this->objects[1]);
$this->assertIdenticalObject($this->objects[1], $stores[0]->get('foo'));
$this->assertEquals($this->objects[1], $stores[0]->get('foo'));
// Verify that the other collection is still not affected.
$this->assertNull($stores[1]->get('foo'));
// Verify that a collection/name pair is unique.
$stores[1]->set('foo', $this->objects[2]);
$this->assertIdenticalObject($this->objects[1], $stores[0]->get('foo'));
$this->assertIdenticalObject($this->objects[2], $stores[1]->get('foo'));
$this->assertEquals($this->objects[1], $stores[0]->get('foo'));
$this->assertEquals($this->objects[2], $stores[1]->get('foo'));
// Verify that an item can be deleted.
$stores[0]->delete('foo');
@@ -77,7 +77,7 @@ abstract class StorageTestBase extends KernelTestBase {
// Verify that the other collection is not affected.
$this->assertTrue($stores[1]->has('foo'));
$this->assertIdenticalObject($this->objects[2], $stores[1]->get('foo'));
$this->assertEquals($this->objects[2], $stores[1]->get('foo'));
$stores[1]->delete('foo');
$this->assertNull($stores[1]->get('foo'));
@@ -91,7 +91,7 @@ abstract class StorageTestBase extends KernelTestBase {
// Verify that multiple items can be retrieved.
$result = $stores[0]->getMultiple(['foo', 'bar']);
foreach ($values as $j => $value) {
$this->assertIdenticalObject($value, $result[$j]);
$this->assertEquals($value, $result[$j]);
}
// Verify that the other collection was not affected.
@@ -119,7 +119,7 @@ abstract class StorageTestBase extends KernelTestBase {
// Verify that deleting no items does not cause an error.
$stores[0]->deleteMultiple([]);
// Verify that the item in the other collection still exists.
$this->assertIdenticalObject($this->objects[5], $stores[1]->get('foo'));
$this->assertEquals($this->objects[5], $stores[1]->get('foo'));
}
@@ -163,7 +163,7 @@ abstract class StorageTestBase extends KernelTestBase {
// setIfNotExists() should be TRUE the first time (when $i is 0) and
// FALSE the second time (when $i is 1).
$this->assertEqual(!$i, $stores[0]->setIfNotExists($key, $this->objects[$i]));
$this->assertIdenticalObject($this->objects[0], $stores[0]->get($key));
$this->assertEquals($this->objects[0], $stores[0]->get($key));
// Verify that the other collection is not affected.
$this->assertNull($stores[1]->get($key));
}
@@ -172,7 +172,7 @@ abstract class StorageTestBase extends KernelTestBase {
$stores[0]->delete($key);
$stores[0]->setIfNotExists($key, $this->objects[1]);
// This time it should succeed.
$this->assertIdenticalObject($this->objects[1], $stores[0]->get($key));
$this->assertEquals($this->objects[1], $stores[0]->get($key));
// Verify that the other collection is still not affected.
$this->assertNull($stores[1]->get($key));
}
@@ -128,6 +128,7 @@ class ExceptionHandlingTest extends KernelTestBase {
* Sets the given path to use as the 404 page and triggers a 404.
*
* @param string $path
*
* @return \Drupal\Core\Render\HtmlResponse
*
* @see \Drupal\system\Tests\Routing\ExceptionHandlingTest::testExceptionResponseGeneratedForOriginalRequest()
@@ -87,24 +87,24 @@ class TempStoreDatabaseTest extends KernelTestBase {
$this->assertEqual(!$i, $stores[0]->setIfNotExists($key, $this->objects[$i]));
$metadata = $stores[0]->getMetadata($key);
$this->assertEqual($users[0], $metadata->getOwnerId());
$this->assertIdenticalObject($this->objects[0], $stores[0]->get($key));
$this->assertEquals($this->objects[0], $stores[0]->get($key));
// Another user should get the same result.
$metadata = $stores[1]->getMetadata($key);
$this->assertEqual($users[0], $metadata->getOwnerId());
$this->assertIdenticalObject($this->objects[0], $stores[1]->get($key));
$this->assertEquals($this->objects[0], $stores[1]->get($key));
}
// Remove the item and try to set it again.
$stores[0]->delete($key);
$stores[0]->setIfNotExists($key, $this->objects[1]);
// This time it should succeed.
$this->assertIdenticalObject($this->objects[1], $stores[0]->get($key));
$this->assertEquals($this->objects[1], $stores[0]->get($key));
// This user can update the object.
$stores[0]->set($key, $this->objects[2]);
$this->assertIdenticalObject($this->objects[2], $stores[0]->get($key));
$this->assertEquals($this->objects[2], $stores[0]->get($key));
// The object is the same when another user loads it.
$this->assertIdenticalObject($this->objects[2], $stores[1]->get($key));
$this->assertEquals($this->objects[2], $stores[1]->get($key));
// This user should be allowed to get, update, delete.
$this->assertInstanceOf(\stdClass::class, $stores[0]->getIfOwner($key));
@@ -113,8 +113,8 @@ class TempStoreDatabaseTest extends KernelTestBase {
// Another user can update the object and become the owner.
$stores[1]->set($key, $this->objects[3]);
$this->assertIdenticalObject($this->objects[3], $stores[0]->get($key));
$this->assertIdenticalObject($this->objects[3], $stores[1]->get($key));
$this->assertEquals($this->objects[3], $stores[0]->get($key));
$this->assertEquals($this->objects[3], $stores[1]->get($key));
$metadata = $stores[1]->getMetadata($key);
$this->assertEqual($users[1], $metadata->getOwnerId());
@@ -14,9 +14,10 @@ trait FileSystemModuleDiscoveryDataProviderTrait {
* An array of module names to test.
*/
public function coreModuleListDataProvider() {
$module_dirs = array_keys(iterator_to_array(new \FilesystemIterator(__DIR__ . '/../../../modules/')));
$module_names = array_map(function ($path) {
return str_replace(__DIR__ . '/../../../modules/', '', $path);
$prefix = dirname(__DIR__, 3) . DIRECTORY_SEPARATOR . 'modules';
$module_dirs = array_keys(iterator_to_array(new \FilesystemIterator($prefix)));
$module_names = array_map(function ($path) use ($prefix) {
return str_replace($prefix . DIRECTORY_SEPARATOR, '', $path);
}, $module_dirs);
$modules_keyed = array_combine($module_names, $module_names);