update_test.module

Same filename in other branches
  1. 7.x modules/update/tests/update_test.module
  2. 9 core/modules/update/tests/modules/update_test/update_test.module
  3. 10 core/modules/update/tests/modules/update_test/update_test.module
  4. 11.x core/modules/update/tests/modules/update_test/update_test.module

Module for testing Update Manager functionality.

File

core/modules/update/tests/modules/update_test/update_test.module

View source
<?php


/**
 * @file
 * Module for testing Update Manager functionality.
 */
use Drupal\Core\Extension\Extension;

/**
 * Implements hook_system_info_alter().
 *
 * Checks the 'update_test.settings:system_info' configuration and sees if we
 * need to alter the system info for the given $file based on the setting. The
 * setting is expected to be a nested associative array. If the key '#all' is
 * defined, its subarray will include .info.yml keys and values for all modules
 * and themes on the system. Otherwise, the settings array is keyed by the
 * module or theme short name ($file->name) and the subarrays contain settings
 * just for that module or theme.
 */
function update_test_system_info_alter(&$info, Extension $file) {
    $setting = \Drupal::config('update_test.settings')->get('system_info');
    foreach ([
        '#all',
        $file->getName(),
    ] as $id) {
        if (!empty($setting[$id])) {
            foreach ($setting[$id] as $key => $value) {
                $info[$key] = $value;
            }
        }
    }
}

/**
 * Implements hook_update_status_alter().
 *
 * Checks the 'update_test.settings:update_status' configuration and sees if we
 * need to alter the update status for the given project based on the setting.
 * The setting is expected to be a nested associative array. If the key '#all'
 * is defined, its subarray will include .info.yml keys and values for all modules
 * and themes on the system. Otherwise, the settings array is keyed by the
 * module or theme short name and the subarrays contain settings just for that
 * module or theme.
 */
function update_test_update_status_alter(&$projects) {
    $setting = \Drupal::config('update_test.settings')->get('update_status');
    if (!empty($setting)) {
        foreach ($projects as $project_name => &$project) {
            foreach ([
                '#all',
                $project_name,
            ] as $id) {
                if (!empty($setting[$id])) {
                    foreach ($setting[$id] as $key => $value) {
                        $project[$key] = $value;
                    }
                }
            }
        }
    }
}

/**
 * Implements hook_filetransfer_info().
 */
function update_test_filetransfer_info() {
    // Define a test file transfer method, to ensure that there will always be at
    // least one method available in the user interface (regardless of the
    // environment in which the update manager tests are run).
    return [
        'system_test' => [
            'title' => t('Update Test FileTransfer'),
            'class' => 'Drupal\\update_test\\TestFileTransferWithSettingsForm',
            'weight' => -20,
        ],
    ];
}

Functions

Title Deprecated Summary
update_test_filetransfer_info Implements hook_filetransfer_info().
update_test_system_info_alter Implements hook_system_info_alter().
update_test_update_status_alter Implements hook_update_status_alter().

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