From fc27cf5830278bdc4e7fb218198eeeeafd921625 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Thu, 12 Mar 2020 06:35:40 +0100
Subject: [PATCH] OO-4566: set a default John Doe first / last name if null

---
 .../manager/AdobeConnect9Provider.java        |  6 ++-
 .../manager/AdobeConnectUtils.java            |  4 ++
 .../adobeconnect/manager/DFNprovider.java     |  8 ++--
 .../manager/AdobeConnectUtilsTest.java        | 45 +++++++++++++++++++
 .../java/org/olat/test/AllTestsJunit4.java    |  1 +
 5 files changed, 59 insertions(+), 5 deletions(-)
 create mode 100644 src/test/java/org/olat/modules/adobeconnect/manager/AdobeConnectUtilsTest.java

diff --git a/src/main/java/org/olat/modules/adobeconnect/manager/AdobeConnect9Provider.java b/src/main/java/org/olat/modules/adobeconnect/manager/AdobeConnect9Provider.java
index 3c543a8abfc..ed476520e9d 100644
--- a/src/main/java/org/olat/modules/adobeconnect/manager/AdobeConnect9Provider.java
+++ b/src/main/java/org/olat/modules/adobeconnect/manager/AdobeConnect9Provider.java
@@ -19,6 +19,8 @@
  */
 package org.olat.modules.adobeconnect.manager;
 
+import static org.olat.modules.adobeconnect.manager.AdobeConnectUtils.orDefault;
+
 import java.net.URI;
 import java.util.List;
 
@@ -88,8 +90,8 @@ public class AdobeConnect9Provider extends AbstractAdobeConnectProvider {
 		UriBuilder builder = adobeConnectModule.getAdobeConnectUriBuilder();
 		builder
 			.queryParam("action", "principal-update")
-			.queryParam("first-name", identity.getUser().getFirstName())
-			.queryParam("last-name", identity.getUser().getLastName());
+			.queryParam("first-name", orDefault(identity.getUser().getFirstName(), "John"))
+			.queryParam("last-name", orDefault(identity.getUser().getLastName(), "Doe"));
 		if(!adobeConnectModule.isLoginCompatibilityMode()) {
 			builder
 				.queryParam("email", identity.getUser().getEmail());
diff --git a/src/main/java/org/olat/modules/adobeconnect/manager/AdobeConnectUtils.java b/src/main/java/org/olat/modules/adobeconnect/manager/AdobeConnectUtils.java
index 86ff21c7baa..e1bb7d3d0f6 100644
--- a/src/main/java/org/olat/modules/adobeconnect/manager/AdobeConnectUtils.java
+++ b/src/main/java/org/olat/modules/adobeconnect/manager/AdobeConnectUtils.java
@@ -220,6 +220,10 @@ public class AdobeConnectUtils {
 		}
 	}
 	
+	protected static String orDefault(String val, String defaultValue) {
+		return StringHelper.containsNonWhitespace(val) ? val : defaultValue;
+	}
+	
 	protected static void print(Document document) {
 		if(log.isDebugEnabled()) {
 		    try(StringWriter writer = new StringWriter()) {
diff --git a/src/main/java/org/olat/modules/adobeconnect/manager/DFNprovider.java b/src/main/java/org/olat/modules/adobeconnect/manager/DFNprovider.java
index 21d9f3ceae6..28e72595220 100644
--- a/src/main/java/org/olat/modules/adobeconnect/manager/DFNprovider.java
+++ b/src/main/java/org/olat/modules/adobeconnect/manager/DFNprovider.java
@@ -19,6 +19,9 @@
  */
 package org.olat.modules.adobeconnect.manager;
 
+import static org.olat.modules.adobeconnect.manager.AdobeConnectUtils.orDefault;
+
+
 import java.util.List;
 
 import javax.ws.rs.core.UriBuilder;
@@ -39,7 +42,6 @@ import org.olat.modules.adobeconnect.model.AdobeConnectPrincipal;
 import org.olat.modules.adobeconnect.model.AdobeConnectSco;
 import org.olat.modules.adobeconnect.model.BreezeSession;
 import org.springframework.stereotype.Service;
-
 /**
  * 
  * Initial date: 17 avr. 2019<br>
@@ -92,8 +94,8 @@ public class DFNprovider extends AbstractAdobeConnectProvider {
 		builder
 			.queryParam("action", "lms-user-create")
 			.queryParam("login", identity.getUser().getEmail())
-			.queryParam("first-name", identity.getUser().getFirstName())
-			.queryParam("last-name", identity.getUser().getLastName());
+			.queryParam("first-name", orDefault(identity.getUser().getFirstName(), "John"))
+			.queryParam("last-name", orDefault(identity.getUser().getLastName(), "Doe"));
 
 		HttpGet get = createAdminMethod(builder, errors);
 		List<AdobeConnectPrincipal> users = null;
diff --git a/src/test/java/org/olat/modules/adobeconnect/manager/AdobeConnectUtilsTest.java b/src/test/java/org/olat/modules/adobeconnect/manager/AdobeConnectUtilsTest.java
new file mode 100644
index 00000000000..e4d1d4768d2
--- /dev/null
+++ b/src/test/java/org/olat/modules/adobeconnect/manager/AdobeConnectUtilsTest.java
@@ -0,0 +1,45 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.modules.adobeconnect.manager;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * 
+ * Initial date: 12 mars 2020<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class AdobeConnectUtilsTest {
+	
+	@Test
+	public void orDefault() {
+		String val = AdobeConnectUtils.orDefault("my-value", "a-default-value");
+		Assert.assertEquals("my-value", val);
+	}
+	
+	@Test
+	public void orDefault_default() {
+		String val = AdobeConnectUtils.orDefault(null, "a-default-value");
+		Assert.assertEquals("a-default-value", val);
+	}
+
+}
diff --git a/src/test/java/org/olat/test/AllTestsJunit4.java b/src/test/java/org/olat/test/AllTestsJunit4.java
index acfc385d41d..9cb6f9cc0c2 100644
--- a/src/test/java/org/olat/test/AllTestsJunit4.java
+++ b/src/test/java/org/olat/test/AllTestsJunit4.java
@@ -199,6 +199,7 @@ import org.junit.runners.Suite;
 	org.olat.modules.adobeconnect.manager.AdobeConnectProviderTest.class,
 	org.olat.modules.adobeconnect.manager.AdobeConnectUserDAOTest.class,
 	org.olat.modules.adobeconnect.manager.AdobeConnectMeetingDAOTest.class,
+	org.olat.modules.adobeconnect.manager.AdobeConnectUtilsTest.class,
 	org.olat.modules.iq.IQManagerTest.class,
 	org.olat.modules.fo.ForumManagerTest.class,//fail
 	org.olat.modules.wiki.WikiUnitTest.class,
-- 
GitLab