X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Flocale%2Ftests%2Fmodules%2Flocale_test%2Flocale_test.module;fp=web%2Fcore%2Fmodules%2Flocale%2Ftests%2Fmodules%2Flocale_test%2Flocale_test.module;h=89ba2bae9a30af86b5ef628222eabf89fdc6f8fb;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hp=0000000000000000000000000000000000000000;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad;p=yaffs-website diff --git a/web/core/modules/locale/tests/modules/locale_test/locale_test.module b/web/core/modules/locale/tests/modules/locale_test/locale_test.module new file mode 100644 index 000000000..89ba2bae9 --- /dev/null +++ b/web/core/modules/locale/tests/modules/locale_test/locale_test.module @@ -0,0 +1,205 @@ +get('locale.test_system_info_alter')) { + if ($file->getName() == 'locale_test' || $file->getName() == 'locale_test_translate') { + // Don't hide the module. + $info['hidden'] = FALSE; + } + } +} + +/** + * Implements hook_locale_translation_projects_alter(). + * + * The translation status process by default checks the status of the installed + * projects. This function replaces the data of the installed modules by a + * predefined set of modules with fixed file names and release versions. Project + * names, versions, timestamps etc must be fixed because they must match the + * files created by the test script. + * + * The "locale.test_projects_alter" state variable must be set by the + * test script in order for this hook to take effect. + */ +function locale_test_locale_translation_projects_alter(&$projects) { + // Drupal core should not be translated. By overriding the server pattern we + // make sure that no translation for drupal core will be found and that the + // translation update system will not go out to l.d.o to check. + $projects['drupal']['server_pattern'] = 'translations://'; + + if (\Drupal::state()->get('locale.remove_core_project')) { + unset($projects['drupal']); + } + + if (\Drupal::state()->get('locale.test_projects_alter')) { + + // Instead of the default ftp.drupal.org we use the file system of the test + // instance to simulate a remote file location. + $url = \Drupal::url('', [], ['absolute' => TRUE]); + $remote_url = $url . PublicStream::basePath() . '/remote/'; + + // Completely replace the project data with a set of test projects. + $projects = [ + 'contrib_module_one' => [ + 'name' => 'contrib_module_one', + 'info' => [ + 'name' => 'Contributed module one', + 'interface translation server pattern' => $remote_url . '%core/%project/%project-%version.%language._po', + 'package' => 'Other', + 'version' => '8.x-1.1', + 'project' => 'contrib_module_one', + 'datestamp' => '1344471537', + '_info_file_ctime' => 1348767306, + ], + 'datestamp' => '1344471537', + 'project_type' => 'module', + 'project_status' => TRUE, + ], + 'contrib_module_two' => [ + 'name' => 'contrib_module_two', + 'info' => [ + 'name' => 'Contributed module two', + 'interface translation server pattern' => $remote_url . '%core/%project/%project-%version.%language._po', + 'package' => 'Other', + 'version' => '8.x-2.0-beta4', + 'project' => 'contrib_module_two', + 'datestamp' => '1344471537', + '_info_file_ctime' => 1348767306, + ], + 'datestamp' => '1344471537', + 'project_type' => 'module', + 'project_status' => TRUE, + ], + 'contrib_module_three' => [ + 'name' => 'contrib_module_three', + 'info' => [ + 'name' => 'Contributed module three', + 'interface translation server pattern' => $remote_url . '%core/%project/%project-%version.%language._po', + 'package' => 'Other', + 'version' => '8.x-1.0', + 'project' => 'contrib_module_three', + 'datestamp' => '1344471537', + '_info_file_ctime' => 1348767306, + ], + 'datestamp' => '1344471537', + 'project_type' => 'module', + 'project_status' => TRUE, + ], + 'locale_test' => [ + 'name' => 'locale_test', + 'info' => [ + 'name' => 'Locale test', + 'interface translation project' => 'locale_test', + 'interface translation server pattern' => 'core/modules/locale/tests/test.%language.po', + 'package' => 'Other', + 'version' => NULL, + 'project' => 'locale_test', + '_info_file_ctime' => 1348767306, + 'datestamp' => 0, + ], + 'datestamp' => 0, + 'project_type' => 'module', + 'project_status' => TRUE, + ], + 'custom_module_one' => [ + 'name' => 'custom_module_one', + 'info' => [ + 'name' => 'Custom module one', + 'interface translation project' => 'custom_module_one', + 'interface translation server pattern' => 'translations://custom_module_one.%language.po', + 'package' => 'Other', + 'version' => NULL, + 'project' => 'custom_module_one', + '_info_file_ctime' => 1348767306, + 'datestamp' => 0, + ], + 'datestamp' => 0, + 'project_type' => 'module', + 'project_status' => TRUE, + ], + ]; + } +} + +/** + * Implements hook_language_fallback_candidates_OPERATION_alter(). + */ +function locale_test_language_fallback_candidates_locale_lookup_alter(array &$candidates, array $context) { + \Drupal::state()->set('locale.test_language_fallback_candidates_locale_lookup_alter_candidates', $candidates); + \Drupal::state()->set('locale.test_language_fallback_candidates_locale_lookup_alter_context', $context); +} + +/** + * Implements hook_theme(). + */ +function locale_test_theme() { + $return = []; + + $return['locale_test_tokenized'] = [ + 'variable' => ['content' => ''], + ]; + + return $return; +} + +/** + * Implements hook_token_info(). + */ +function locale_test_token_info() { + $info = []; + + $info['types']['locale_test'] = [ + 'name' => t('Locale test'), + 'description' => t('Locale test'), + ]; + + $info['tokens']['locale_test']['security_test1'] = [ + 'type' => 'text', + 'name' => t('Security test 1'), + ]; + $info['tokens']['locale_test']['security_test2'] = [ + 'type' => 'text', + 'name' => t('Security test 2'), + ]; + + return $info; +} + +/** + * Implements hook_tokens(). + */ +function locale_test_tokens($type, $tokens, array $data = [], array $options = []) { + $return = []; + if ($type == 'locale_test') { + foreach ($tokens as $name => $original) { + switch ($name) { + case 'security_test1': + $return[$original] = "javascript:alert('Mooooh!');"; + break; + case 'security_test2': + $return[$original] = ""; + break; + } + } + } + + return $return; +}