Mercurial > hg > isophonics-drupal-site
diff core/modules/system/src/Tests/Path/UrlAliasFixtures.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 129ea1e6d783 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/system/src/Tests/Path/UrlAliasFixtures.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,97 @@ +<?php + +namespace Drupal\system\Tests\Path; + +use Drupal\Core\Database\Connection; +use Drupal\Core\Path\AliasStorage; + +/** + * Utility methods to generate sample data, database configuration, etc. + */ +class UrlAliasFixtures { + + /** + * Create the tables required for the sample data. + * + * @param \Drupal\Core\Database\Connection $connection + * The connection to use to create the tables. + */ + public function createTables(Connection $connection) { + $tables = $this->tableDefinition(); + $schema = $connection->schema(); + + foreach ($tables as $name => $table) { + $schema->dropTable($name); + $schema->createTable($name, $table); + } + } + + /** + * Drop the tables used for the sample data. + * + * @param \Drupal\Core\Database\Connection $connection + * The connection to use to drop the tables. + */ + public function dropTables(Connection $connection) { + $tables = $this->tableDefinition(); + $schema = $connection->schema(); + + foreach ($tables as $name => $table) { + $schema->dropTable($name); + } + } + + /** + * Returns an array of URL aliases for testing. + * + * @return array of URL alias definitions. + */ + public function sampleUrlAliases() { + return [ + [ + 'source' => '/node/1', + 'alias' => '/alias_for_node_1_en', + 'langcode' => 'en' + ], + [ + 'source' => '/node/2', + 'alias' => '/alias_for_node_2_en', + 'langcode' => 'en' + ], + [ + 'source' => '/node/1', + 'alias' => '/alias_for_node_1_fr', + 'langcode' => 'fr' + ], + [ + 'source' => '/node/1', + 'alias' => '/alias_for_node_1_und', + 'langcode' => 'und' + ] + ]; + } + + + /** + * Returns the table definition for the URL alias fixtures. + * + * @return array + * Table definitions. + */ + public function tableDefinition() { + $tables = []; + + // Prime the drupal_get_filename() cache with the location of the system + // module as its location is known and shouldn't change. + // @todo Remove as part of https://www.drupal.org/node/2186491 + drupal_get_filename('module', 'system', 'core/modules/system/system.info.yml'); + module_load_install('system'); + $schema = system_schema(); + + $tables['url_alias'] = AliasStorage::schemaDefinition(); + $tables['key_value'] = $schema['key_value']; + + return $tables; + } + +}