Commit c91d7281 authored by Drew Webber's avatar Drew Webber
Browse files

Issue #3182785 by mcdruid, mar4ehk0, elsteff1385, John Franklin: PHP 7.4...

Issue #3182785 by mcdruid, mar4ehk0, elsteff1385, John Franklin: PHP 7.4 notice in /modules/system/system.admin.inc when a module has an invalid configure path
parent 6c6045d6
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -122,6 +122,19 @@ class ModuleUnitTest extends DrupalWebTestCase {
    $this->assertText('System null version test', 'Module admin UI listed dependency with null version successfully.');
  }

  /**
   * Test system_modules() with a module with a broken configure path.
   */
  function testSystemModulesBrokenConfigure() {
    module_enable(array('system_admin_test'));
    $this->resetAll();
    $admin = $this->drupalCreateUser(array('administer modules'));
    $this->drupalLogin($admin);
    $this->drupalGet('admin/modules');
    $module_log = db_query_range('SELECT message FROM {watchdog} WHERE type = :type ORDER BY wid DESC', 0, 1, array(':type' => 'system'))->fetchField();
    $this->assertEqual('Module %module specifies an invalid path for configuration: %configure', $module_log, 'An error was logged for the module\'s broken configure path.');
  }

  /**
   * Test that module_invoke() can load a hook defined in hook_hook_info().
   */
+7 −0
Original line number Diff line number Diff line
name = System Admin Test
description = 'Support module for testing system.admin.inc.'
package = Only For Testing
version = VERSION
core = 7.x
hidden = FALSE
configure = config/broken
+6 −0
Original line number Diff line number Diff line
<?php

/**
 * @file
 * Helper module for module for testing system.admin.inc.
 */
+7 −1
Original line number Diff line number Diff line
@@ -886,7 +886,13 @@ function system_modules($form, $form_state = array()) {
    // one.
    if ($module->status && isset($module->info['configure'])) {
      $configure_link = menu_get_item($module->info['configure']);
      if ($configure_link['access']) {
      if ($configure_link === FALSE) {
        watchdog('system', 'Module %module specifies an invalid path for configuration: %configure', array(
          '%module' => $module->info['name'],
          '%configure' => $module->info['configure'],
        ));
      }
      else if ($configure_link['access']) {
        $extra['links']['configure'] = array(
          '#type' => 'link',
          '#title' => t('Configure'),