diff --git a/core/tests/Drupal/KernelTests/Core/Database/InsertDefaultsTest.php b/core/tests/Drupal/KernelTests/Core/Database/InsertDefaultsTest.php index 687d9328e9..90d61c8f67 100644 --- a/core/tests/Drupal/KernelTests/Core/Database/InsertDefaultsTest.php +++ b/core/tests/Drupal/KernelTests/Core/Database/InsertDefaultsTest.php @@ -3,6 +3,7 @@ namespace Drupal\KernelTests\Core\Database; use Drupal\Core\Database\Query\NoFieldsException; +use Drupal\TestTools\Extension\SchemaInspector; /** * Tests the Insert query builder with default values. @@ -56,4 +57,48 @@ public function testDefaultInsertWithFields() { $this->assertSame('Undefined', $job, 'Default field value is set.'); } + /** + * Tests that a semicolon can appear in a default value. + */ + public function testDefaultSemicolon() { + $module_handler = $this->container->get('module_handler'); + $specification = SchemaInspector::getTablesSpecification($module_handler, 'database_test'); + $schema = $specification['test']; + $schema['fields']['job']['default'] = ';'; + $this->connection->schema()->createTable('test_semicolon_default', $schema); + $query = $this->connection->insert('test_semicolon_default') + ->fields(['name' => 'Bob']) + ->useDefaults(['job']); + $id = $query->execute(); + + $job = $this->connection->select('test_semicolon_default', 'tsd') + ->fields('tsd', ['job']) + ->condition('id', $id) + ->execute() + ->fetchField(); + $this->assertSame('Undefined', $job, 'Default field value is set.'); + } + + /** + * Tests that curly brackets can appear in a default value. + */ + public function testDefaultBrackets() { + $module_handler = $this->container->get('module_handler'); + $specification = SchemaInspector::getTablesSpecification($module_handler, 'database_test'); + $schema = $specification['test']; + $schema['fields']['job']['default'] = '{test}'; + $this->connection->schema()->createTable('test_bracket_default', $schema); + $query = $this->connection->insert('test_bracket_default') + ->fields(['name' => 'Bob']) + ->useDefaults(['job']); + $id = $query->execute(); + + $job = $this->connection->select('test_bracket_default', 'tbd') + ->fields('tbd', ['job']) + ->condition('id', $id) + ->execute() + ->fetchField(); + $this->assertSame('Undefined', $job, 'Default field value is set.'); + } + }