From 5ce9e73bad3d80657ab2b13f3cc5f91f3033a03f Mon Sep 17 00:00:00 2001
From: Daniel Kesselberg <mail@danielkesselberg.de>
Date: Mon, 2 Mar 2020 13:24:06 +0100
Subject: [PATCH] Add message for DoesNotExistException

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
---
 lib/private/Updater/ChangesCheck.php   |  4 ++--
 tests/lib/Updater/ChangesCheckTest.php | 17 +++++++++++++++++
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/lib/private/Updater/ChangesCheck.php b/lib/private/Updater/ChangesCheck.php
index 7346ceab6b1..259fb750c05 100644
--- a/lib/private/Updater/ChangesCheck.php
+++ b/lib/private/Updater/ChangesCheck.php
@@ -56,8 +56,8 @@ class ChangesCheck {
 		$version = $this->normalizeVersion($version);
 		$changesInfo = $this->mapper->getChanges($version);
 		$changesData = json_decode($changesInfo->getData(), true);
-		if(empty($changesData)) {
-			throw new DoesNotExistException();
+		if (empty($changesData)) {
+			throw new DoesNotExistException('Unable to decode changes info');
 		}
 		return $changesData;
 	}
diff --git a/tests/lib/Updater/ChangesCheckTest.php b/tests/lib/Updater/ChangesCheckTest.php
index 30cb9df2956..1bc8b47e58f 100644
--- a/tests/lib/Updater/ChangesCheckTest.php
+++ b/tests/lib/Updater/ChangesCheckTest.php
@@ -380,4 +380,21 @@ class ChangesCheckTest extends TestCase {
 		$this->assertTrue(isset($data['whatsNew']['en']['regular']));
 		$this->assertTrue(isset($data['changelogURL']));
 	}
+
+	public function testGetChangesForVersionEmptyData() {
+		$entry = $this->createMock(ChangesResult::class);
+		$entry->expects($this->once())
+			->method('__call')
+			->with('getData')
+			->willReturn('');
+
+		$this->mapper->expects($this->once())
+			->method('getChanges')
+			->with('13.0.7')
+			->willReturn($entry);
+
+		$this->expectException(DoesNotExistException::class);
+		/** @noinspection PhpUnhandledExceptionInspection */
+		$this->checker->getChangesForVersion('13.0.7');
+	}
 }
-- 
GitLab