class ConnectionTest

Same name in this branch
  1. 11.x core/modules/sqlite/tests/src/Unit/ConnectionTest.php \Drupal\Tests\sqlite\Unit\ConnectionTest
  2. 11.x core/modules/mysql/tests/src/Unit/ConnectionTest.php \Drupal\Tests\mysql\Unit\ConnectionTest
  3. 11.x core/modules/mysql/tests/src/Kernel/mysql/ConnectionTest.php \Drupal\Tests\mysql\Kernel\mysql\ConnectionTest
  4. 11.x core/modules/mysqli/tests/src/Kernel/mysqli/ConnectionTest.php \Drupal\Tests\mysqli\Kernel\mysqli\ConnectionTest
  5. 11.x core/tests/Drupal/KernelTests/Core/Database/ConnectionTest.php \Drupal\KernelTests\Core\Database\ConnectionTest
  6. 11.x core/tests/Drupal/Tests/Core/Database/ConnectionTest.php \Drupal\Tests\Core\Database\ConnectionTest
  7. 11.x core/modules/pgsql/tests/src/Unit/ConnectionTest.php \Drupal\Tests\pgsql\Unit\ConnectionTest
Same name and namespace in other branches
  1. 10 core/modules/sqlite/tests/src/Kernel/sqlite/ConnectionTest.php \Drupal\Tests\sqlite\Kernel\sqlite\ConnectionTest
  2. 8.9.x core/tests/Drupal/Tests/Core/Database/Driver/sqlite/ConnectionTest.php \Drupal\Tests\Core\Database\Driver\sqlite\ConnectionTest
  3. 10 core/modules/sqlite/tests/src/Unit/ConnectionTest.php \Drupal\Tests\sqlite\Unit\ConnectionTest
  4. 10 core/modules/mysql/tests/src/Unit/ConnectionTest.php \Drupal\Tests\mysql\Unit\ConnectionTest
  5. 10 core/modules/mysql/tests/src/Kernel/mysql/ConnectionTest.php \Drupal\Tests\mysql\Kernel\mysql\ConnectionTest
  6. 10 core/tests/Drupal/KernelTests/Core/Database/ConnectionTest.php \Drupal\KernelTests\Core\Database\ConnectionTest
  7. 10 core/tests/Drupal/Tests/Core/Database/ConnectionTest.php \Drupal\Tests\Core\Database\ConnectionTest
  8. 9 core/modules/sqlite/tests/src/Unit/ConnectionTest.php \Drupal\Tests\sqlite\Unit\ConnectionTest
  9. 9 core/modules/mysql/tests/src/Unit/ConnectionTest.php \Drupal\Tests\mysql\Unit\ConnectionTest
  10. 9 core/modules/mysql/tests/src/Kernel/mysql/ConnectionTest.php \Drupal\Tests\mysql\Kernel\mysql\ConnectionTest
  11. 9 core/tests/Drupal/KernelTests/Core/Database/ConnectionTest.php \Drupal\KernelTests\Core\Database\ConnectionTest
  12. 9 core/tests/Drupal/Tests/Core/Database/ConnectionTest.php \Drupal\Tests\Core\Database\ConnectionTest
  13. 8.9.x core/tests/Drupal/KernelTests/Core/Database/ConnectionTest.php \Drupal\KernelTests\Core\Database\ConnectionTest
  14. 8.9.x core/tests/Drupal/Tests/Core/Database/ConnectionTest.php \Drupal\Tests\Core\Database\ConnectionTest
  15. main core/modules/sqlite/tests/src/Unit/ConnectionTest.php \Drupal\Tests\sqlite\Unit\ConnectionTest
  16. main core/modules/mysql/tests/src/Unit/ConnectionTest.php \Drupal\Tests\mysql\Unit\ConnectionTest
  17. main core/modules/mysql/tests/src/Kernel/mysql/ConnectionTest.php \Drupal\Tests\mysql\Kernel\mysql\ConnectionTest
  18. main core/modules/mysqli/tests/src/Kernel/mysqli/ConnectionTest.php \Drupal\Tests\mysqli\Kernel\mysqli\ConnectionTest
  19. main core/tests/Drupal/KernelTests/Core/Database/ConnectionTest.php \Drupal\KernelTests\Core\Database\ConnectionTest
  20. main core/tests/Drupal/Tests/Core/Database/ConnectionTest.php \Drupal\Tests\Core\Database\ConnectionTest

PostgreSQL-specific connection tests.

Attributes

#[Group('Database')] #[RunTestsInSeparateProcesses]

Hierarchy

Expanded class hierarchy of ConnectionTest

File

core/modules/pgsql/tests/src/Kernel/pgsql/ConnectionTest.php, line 17

Namespace

Drupal\Tests\pgsql\Kernel\pgsql
View source
class ConnectionTest extends DriverSpecificKernelTestBase {
  
  /**
   * Tests the client encoding is set to UTF8 when the connection is opened.
   *
   * The client encoding is set via the DSN in
   * \Drupal\pgsql\Driver\Database\pgsql\Connection::open(), so it is part of
   * the connection startup packet and no "SET NAMES" query is needed.
   */
  public function testClientEncoding() : void {
    $this->assertSame('UTF8', $this->connection
      ->query('SHOW client_encoding')
      ->fetchField());
    // Ensure multi-byte UTF-8 data round trips intact.
    $string = 'héllo wörld ✓ 漢字';
    $this->assertSame($string, $this->connection
      ->query('SELECT :string::text', [
      ':string' => $string,
    ])
      ->fetchField());
    // The client encoding in the DSN must take precedence over the
    // PGCLIENTENCODING environment variable, which libpq would otherwise use
    // as the default.
    putenv('PGCLIENTENCODING=LATIN1');
    try {
      Database::addConnectionInfo('encoding_test', 'default', Database::getConnectionInfo()['default']);
      $connection = Database::getConnection('default', 'encoding_test');
      $this->assertSame('UTF8', $connection->query('SHOW client_encoding')
        ->fetchField());
    } finally {
      putenv('PGCLIENTENCODING');
      Database::closeConnection('default', 'encoding_test');
    }
  }

}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.