From fec4d81a835f3d2b09232a0bcc65fbae0d256337 Mon Sep 17 00:00:00 2001
From: lucashedding <lucashedding@1463982.no-reply.drupal.org>
Date: Wed, 3 Apr 2019 16:06:02 -0500
Subject: [PATCH] Issue #3045690 by heddn: Handle contrib version that contains
 core version compatibility

---
 src/Services/AutomaticUpdatesPsa.php                   |  5 +++++
 .../src/Controller/JsonTestController.php              | 10 +++++-----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/Services/AutomaticUpdatesPsa.php b/src/Services/AutomaticUpdatesPsa.php
index b53ec61f7b..9b31b744ad 100644
--- a/src/Services/AutomaticUpdatesPsa.php
+++ b/src/Services/AutomaticUpdatesPsa.php
@@ -189,6 +189,11 @@ class AutomaticUpdatesPsa implements AutomaticUpdatesPsaInterface {
       $this->logger->error('Extension list of type "%extension" does not exist.', ['%extension' => $extension_list]);
       return;
     }
+    array_walk($json->secure_versions, function (&$version) {
+      if (substr($version, 0, 4) === \Drupal::CORE_COMPATIBILITY . '-') {
+        $version = substr($version, 4);
+      }
+    });
     foreach ($json->extensions as $extension_name) {
       if ($this->{$extension_list}->exists($extension_name)) {
         $extension = $this->{$extension_list}->getAllAvailableInfo()[$extension_name];
diff --git a/tests/modules/test_automatic_updates/src/Controller/JsonTestController.php b/tests/modules/test_automatic_updates/src/Controller/JsonTestController.php
index ce3e585925..c84d11d9e4 100644
--- a/tests/modules/test_automatic_updates/src/Controller/JsonTestController.php
+++ b/tests/modules/test_automatic_updates/src/Controller/JsonTestController.php
@@ -53,7 +53,7 @@ class JsonTestController extends ControllerBase {
       'project' => 'node',
       'extensions' => ['node'],
       'type' => 'module',
-      'secure_versions' => ['8.2.0'],
+      'secure_versions' => ['7.x-7.22', '8.x-8.2.0'],
       'pubDate' => 'Tue, 19 Mar 2019 12:50:00 +0000',
     ];
     $feed[] = [
@@ -62,7 +62,7 @@ class JsonTestController extends ControllerBase {
       'project' => 'Standard Install Profile',
       'extensions' => ['standard'],
       'type' => 'profile',
-      'secure_versions' => ['8.10.99'],
+      'secure_versions' => ['8.x-8.10.99'],
       'pubDate' => 'Tue, 19 Mar 2019 12:50:00 +0000',
     ];
     $feed[] = [
@@ -71,7 +71,7 @@ class JsonTestController extends ControllerBase {
       'project' => 'seven',
       'extensions' => ['seven'],
       'type' => 'theme',
-      'secure_versions' => ['8.10.99'],
+      'secure_versions' => ['8.x-8.10.99'],
       'pubDate' => 'Tue, 19 Mar 2019 12:50:00 +0000',
     ];
     $feed[] = [
@@ -80,7 +80,7 @@ class JsonTestController extends ControllerBase {
       'project' => 'foobar',
       'extensions' => ['foobar'],
       'type' => 'foobar',
-      'secure_versions' => ['8.10.99'],
+      'secure_versions' => ['8.x-1.2'],
       'pubDate' => 'Tue, 19 Mar 2019 12:50:00 +0000',
     ];
     $feed[] = [
@@ -89,7 +89,7 @@ class JsonTestController extends ControllerBase {
       'project' => 'token',
       'extensions' => ['token'],
       'type' => 'module',
-      'secure_versions' => ['1.5'],
+      'secure_versions' => ['7.x-1.7', '8.x-1.5'],
       'pubDate' => 'Tue, 19 Mar 2019 12:50:00 +0000',
     ];
     return new JsonResponse($feed);
-- 
GitLab