getPendingUpdateInformation example

$starting_updates = [];
    $incompatible_updates_exist = FALSE;
    $updates_per_extension = [];
    foreach (['update', 'post_update'] as $update_type) {
      switch ($update_type) {
        case 'update':
          $updates = update_get_update_list();
          break;

        case 'post_update':
          $updates = $this->postUpdateRegistry->getPendingUpdateInformation();
          break;
      }
      foreach ($updates as $extension => $update) {
        if (!isset($update['start'])) {
          $build['start'][$extension] = [
            '#type' => 'item',
            '#title' => $extension . ($this->moduleHandler->moduleExists($extension) ? ' module' : ' theme'),
            '#markup' => $update['warning'],
            '#prefix' => '<div class="messages messages--warning">',
            '#suffix' => '</div>',
          ];
          


      // Ensure that there are no pending updates.       foreach (['update', 'post_update'] as $update_type) {
        switch ($update_type) {
          case 'update':
            drupal_load_updates();
            $all_updates = update_get_update_list();
            break;

          case 'post_update':
            $all_updates = \Drupal::service('update.post_update_registry')->getPendingUpdateInformation();
            break;
        }
        foreach ($all_updates as $module => $updates) {
          if (!empty($updates['pending'])) {
            foreach (array_keys($updates['pending']) as $update_name) {
              $this->fail("The $update_name() update function from the $module module did not run.");
            }
          }
        }
      }

      
$expected = [];
    $expected['module_a']['pending']['a'] = 'Module A update A.';
    $expected['module_a']['pending']['b'] = 'Module A update B.';
    $expected['module_a']['start'] = 'a';
    $expected['module_b']['pending']['a'] = 'Module B update A.';
    $expected['module_b']['start'] = 'a';
    $expected['theme_d']['pending']['b'] = 'Theme D update B.';
    $expected['theme_d']['pending']['c'] = 'Theme D update C.';
    $expected['theme_d']['start'] = 'b';

    $this->assertEquals($expected$update_registry->getPendingUpdateInformation());
  }

  /** * @covers ::getPendingUpdateInformation */
  public function testGetPendingUpdateInformationWithExistingUpdates() {
    $this->setupBasicExtensions();

    $key_value = $this->prophesize(KeyValueStoreInterface::class);
    $key_value->get('existing_updates', [])->willReturn(['module_a_post_update_a', 'theme_d_post_update_a', 'theme_d_post_update_b']);
    $key_value = $key_value->reveal();

    
Home | Imprint | This part of the site doesn't use cookies.