locale_test.module

Simulate a custom module with a local po file.

File

drupal/core/modules/locale/tests/modules/locale_test/locale_test.module
View source
<?php

/**
 * @file
 * Simulate a custom module with a local po file.
 */

/**
 * Implements hook_system_info_alter().
 *
 * Make the test scripts to be believe this is not a hidden test module, but
 * a regular custom module.
 */
function locale_test_system_info_alter(&$info, $file, $type) {

  // Only modify the system info if required.
  // By default the locale_test modules are hidden and have a project specified.
  // To test the module detection proces by locale_project_list() the
  // test modules should mimic a custom module. I.e. be non-hidden.
  if (state()
    ->get('locale_translation_test_system_info_alter')) {
    if ($file->name == 'locale_test' || $file->name == 'locale_test_disabled') {

      // 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_translation_test_projects" 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) {
  if (state()
    ->get('locale_translation_test_projects')) {

    // Instead of the default ftp.drupal.org we use the file system of the test
    // instance to simulate a remote file location.
    $url = url(NULL, array(
      'absolute' => TRUE,
    ));
    $remote_url = $url . variable_get('file_public_path', conf_path() . '/files') . '/remote/';

    // Completely replace the project data with a set of test projects.
    $base_url = url();
    $files_url = variable_get('file_public_path', conf_path() . '/files');
    $projects = array(
      'drupal' => array(
        'name' => 'drupal',
        'info' => array(
          'name' => 'Drupal',
          'interface translation server pattern' => $remote_url . '%core/%project/%project-%version.%language.txt',
          'package' => 'Core',
          'version' => '8.0',
          'project' => 'drupal',
          '_info_file_ctime' => 1348824632,
          'datestamp' => 0,
        ),
        'datestamp' => 0,
        'project_type' => 'core',
        'project_status' => TRUE,
      ),
      'contrib_module_one' => array(
        'name' => 'contrib_module_one',
        'info' => array(
          'name' => 'Contributed module one',
          'interface translation server pattern' => $remote_url . '%core/%project/%project-%version.%language.txt',
          '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' => array(
        'name' => 'contrib_module_two',
        'info' => array(
          'name' => 'Contributed module two',
          'interface translation server pattern' => $remote_url . '%core/%project/%project-%version.%language.txt',
          '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' => array(
        'name' => 'contrib_module_three',
        'info' => array(
          'name' => 'Contributed module three',
          'interface translation server pattern' => $remote_url . '%core/%project/%project-%version.%language.txt',
          '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' => array(
        'name' => 'locale_test',
        'info' => array(
          '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' => array(
        'name' => 'custom_module_one',
        'info' => array(
          '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,
      ),
    );
  }
}

Functions