From 3cd9483143ec3e4480f679b82dfef8a45f62ae33 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Thu, 3 Dec 2015 20:36:27 +0100
Subject: [PATCH] no-jira: add selenium test for the direct deletion of user,
 remove empty info in the panel to create a business group, add the missing
 parameter of the uploaded by i18n key in different languages

---
 .../gta/ui/_i18n/LocalStrings_en.properties   |  2 +-
 .../gta/ui/_i18n/LocalStrings_fr.properties   |  2 +-
 .../ui/_i18n/LocalStrings_pt_BR.properties    |  2 +-
 .../org/olat/group/ui/_content/bgform.html    |  3 -
 .../group/ui/_i18n/LocalStrings_ar.properties |  1 -
 .../group/ui/_i18n/LocalStrings_bg.properties |  1 -
 .../group/ui/_i18n/LocalStrings_cs.properties |  1 -
 .../group/ui/_i18n/LocalStrings_da.properties |  1 -
 .../group/ui/_i18n/LocalStrings_de.properties |  1 -
 .../group/ui/_i18n/LocalStrings_el.properties |  1 -
 .../group/ui/_i18n/LocalStrings_en.properties |  1 -
 .../group/ui/_i18n/LocalStrings_es.properties |  1 -
 .../group/ui/_i18n/LocalStrings_fr.properties |  1 -
 .../group/ui/_i18n/LocalStrings_it.properties |  1 -
 .../group/ui/_i18n/LocalStrings_pl.properties |  1 -
 .../ui/_i18n/LocalStrings_pt_BR.properties    |  1 -
 .../group/ui/_i18n/LocalStrings_ru.properties |  1 -
 .../group/ui/_i18n/LocalStrings_sq.properties |  1 -
 .../ui/_i18n/LocalStrings_zh_CN.properties    |  1 -
 .../ui/_i18n/LocalStrings_zh_TW.properties    |  1 -
 src/test/java/org/olat/selenium/UserTest.java | 61 ++++++++++++++++++
 .../org/olat/selenium/page/LoginPage.java     | 26 ++++++++
 .../selenium/page/user/UserAdminPage.java     | 62 +++++++++++++++++++
 23 files changed, 152 insertions(+), 22 deletions(-)

diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties
index ffb0d559ced..dd1ba5b1f64 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties
@@ -224,7 +224,7 @@ task.title=Title
 task.type.description=Choose one or more groups and/or learning areas in order to assign the group task. In the group task are all steps of the workflow executed as a group and not as an individual.
 task.type.title=Task type
 upload.document=Upload document
-uploaded.by=uploaded by
+uploaded.by=uploaded by {0}
 wait.for.solutions=The sample solution will be displayed at the date specified above.
 warning.group.pick.task=This is a group task\! The selection made here is valid for all members of the group "{0}"\! Make sure you discussed this selection within the group prior to selecting a task\! Only one member of the group can select the task for the group.
 warning.group.submit=This is a group task\! The submitted document is valid for all members of the group "{0}"\! Make sure you discussed this solution document prior to uploading it here\! Only one member of the group can submit a solution on behalf of all group members.
diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_fr.properties
index ba6819f4fe2..a408d16b09e 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_fr.properties
@@ -200,7 +200,7 @@ table.header.group.step=Etape
 table.header.group.taskName=Devoir
 table.header.passed=R\u00E9ussi
 table.header.score=Points
-table.header.uploaded.by=T\u00E9l\u00E9charger par
+table.header.uploaded.by=T\u00E9l\u00E9charger par {0}
 task.alreadyChosen=$org.olat.course.nodes.ta\:task.chosen
 task.assigned.description=Le devoir suivant vous a \u00E9t\u00E9 affect\u00E9\:
 task.assignment=Affectation
diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_pt_BR.properties
index ec3b7e807da..b7a65353f8b 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_pt_BR.properties
@@ -188,7 +188,7 @@ table.header.group.step=Passo
 table.header.group.taskName=Tarefa
 table.header.passed=Passou
 table.header.score=Pontos
-table.header.uploaded.by=Enviado por
+table.header.uploaded.by=Enviado por {0}
 task.alreadyChosen=$org.olat.course.nodes.ta\:task.chosen
 task.assigned.description=A tarefa seguinte foi atribu\u00EDda a voc\u00EA\:
 task.assignment=Atribui\u00E7\u00E3o de tarefas
diff --git a/src/main/java/org/olat/group/ui/_content/bgform.html b/src/main/java/org/olat/group/ui/_content/bgform.html
index 689cf80e339..5f4396f4a1d 100644
--- a/src/main/java/org/olat/group/ui/_content/bgform.html
+++ b/src/main/java/org/olat/group/ui/_content/bgform.html
@@ -1,4 +1 @@
-#if($bulkMode)
-<div class="o_info">$r.translate("create.form.bulkmode.bgnames")</div>
-#end
 $r.render("groupForm")
\ No newline at end of file
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_ar.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_ar.properties
index 1e95139d418..cd7e979ea33 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_ar.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_ar.properties
@@ -21,7 +21,6 @@ chkBox.show.owners=\u064A\u0645\u0643\u0646 \u0644\u0644\u0623\u0639\u0636\u0627
 cmd.group.create=\u0645\u062C\u0645\u0648\u0639\u0629 \u062A\u0639\u0644\u064A\u0645 \u062C\u062F\u064A\u062F\u0629
 cmd.owners.message=\u0631\u0633\u0627\u0644\u0629 \u0625\u0644\u0649 \u0627\u0644\u0645\u062F\u0631\u0633\u064A\u0646
 create.form.bulkmode.areanames=\u0627\u0644\u0627\u0646\u062A\u0627\u062C \u0627\u0644\u0634\u0627\u0645\u0644 \u0645\u0646 \u0646\u0641\u0633 \u0645\u0646\u0627\u0637\u0642 \u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A
-create.form.bulkmode.bgnames=\u0627\u0644\u0627\u0646\u062A\u0627\u062C \u0627\u0644\u0634\u0627\u0645\u0644 \u0645\u0646 \u0646\u0641\u0633 \u0645\u062C\u0645\u0648\u0639\u0627\u062A \u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A
 create.form.enableAutoCloseRanks=\u062A\u062D\u0631\u064A\u0643 \u062A\u0644\u0642\u0627\u0626\u0649 \u0644\u0644\u0623\u0639\u0644\u0649
 create.form.enableWaitinglist=\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0627\u0646\u062A\u0638\u0627\u0631
 create.form.error.enableAutoCloseRanks=\u062E\u064A\u0627\u0631 \u0627\u0644\u062A\u062D\u0631\u064A\u0643 \u0627\u0644\u062A\u0644\u0642\u0627\u0626\u0649 \u0644\u0644\u0623\u0639\u0644\u0649 \u064A\u062A\u0648\u0641\u0631 \u0641\u0642\u0637 \u0641\u0649 \u062D\u0627\u0644\u0629 \u0627\u0644\u062C\u0645\u0639 \u0645\u0639 \u0644\u0627\u0626\u062D\u0629 \u0627\u0644\u0627\u0646\u062A\u0638\u0627\u0631.
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_bg.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_bg.properties
index 58943d926ec..4cd6ccd61e9 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_bg.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_bg.properties
@@ -21,7 +21,6 @@ chkBox.show.owners=\u0427\u043B\u0435\u043D\u043E\u0432\u0435 \u043C\u043E\u0433
 cmd.group.create=\u041D\u043E\u0432\u0430 \u0443\u0447\u0435\u0431\u043D\u0430 \u0433\u0440\u0443\u043F\u0430
 cmd.owners.message=\u0418-\u043C\u0435\u0439\u043B \u0434\u043E \u043F\u043E\u043C\u043E\u0449\u043D\u0438\u043A \u043F\u0440\u0435\u043F\u043E\u0434\u0430\u0432\u0430\u0442\u0435\u043B\u0438
 create.form.bulkmode.areanames=\u0413\u0440\u0443\u043F\u043E\u0432\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u043D\u0430 \u043F\u043E\u0442\u043E\u0446\u0438 \u0441 \u0435\u0434\u043D\u0430\u043A\u0432\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F
-create.form.bulkmode.bgnames=\u0413\u0440\u0443\u043F\u043E\u0432\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u043D\u0430 \u0433\u0440\u0443\u043F\u0438 \u0441 \u0435\u0434\u043D\u0430\u043A\u0432\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F
 create.form.enableAutoCloseRanks=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430\u0433\u043E\u0440\u0435 \u0432 \u0441\u043F\u0438\u0441\u044A\u043A\u0430
 create.form.enableWaitinglist=\u0421\u043F\u0438\u0441\u044A\u043A \u0441 \u0440\u0435\u0437\u0435\u0440\u0432\u0438
 create.form.error.enableAutoCloseRanks=\u041E\u043F\u0446\u0438\u044F\u0442\u0430 \u0437\u0430 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430\u0433\u043E\u0440\u0435 \u043F\u043E \u0441\u043F\u0438\u0441\u044A\u043A\u0430 \u0440\u0430\u0431\u043E\u0442\u0438 \u0441\u0430\u043C\u043E \u0432 \u043A\u043E\u043C\u0431\u0438\u043D\u0430\u0446\u0438\u044F \u0441\u044A\u0441 \u0441\u043F\u0438\u0441\u044A\u043A\u0430 \u0441 \u0440\u0435\u0437\u0435\u0440\u0432\u0438.
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_cs.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_cs.properties
index 7c388249429..9995df97e20 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_cs.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_cs.properties
@@ -21,7 +21,6 @@ chkBox.show.owners=\u010Clenov\u00E9 vid\u00ED garanty
 cmd.group.create=Nov\u00E1 studijn\u00ED skupina
 cmd.owners.message=E-mail garant\u016Fm
 create.form.bulkmode.areanames=Velk\u00E9 mno\u017Estv\u00ED oblast\u00ED konfigurovan\u00FDch stejn\u011B
-create.form.bulkmode.bgnames=Velk\u00E9 mno\u017Est\u00ED skupin konfigurovan\u00FDch stejn\u011B
 create.form.enableAutoCloseRanks=Posunovat nahoru automaticky
 create.form.enableWaitinglist=Po\u0159adn\u00EDk
 create.form.error.enableAutoCloseRanks=Volba k posunov\u00E1n\u00ED nahoru je dostupn\u00E1 pouze v kombinaci s volbou po\u0159adn\u00EDku. 
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_da.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_da.properties
index 6cef2cfad76..3956939ea87 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_da.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_da.properties
@@ -5,7 +5,6 @@ chkBox.show.owners=Medlemmer kan se tutorer
 cmd.group.create=Ny l\u00E6ringsgruppe
 cmd.owners.message=E-mail til tutorer
 create.form.bulkmode.areanames=Masseproduktion af omr\u00E5der som er konfigureret ens
-create.form.bulkmode.bgnames=Masseproduktion af grupper som er konfigureret ens
 create.form.enableAutoCloseRanks=Flytter op automatisk
 create.form.enableWaitinglist=Venteliste
 create.form.error.enableAutoCloseRanks=Muligheden for at flytte op automatisk er kun tilg\u00E6ngelig i kombination med en venteliste.
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_de.properties
index b1ab411ca00..32e35d4f6ed 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_de.properties
@@ -24,7 +24,6 @@ chkBox.show.owners=Mitglieder sehen Betreuer
 cmd.group.create=Neue Gruppe
 cmd.owners.message=E-Mail an Betreuer
 create.form.bulkmode.areanames=
-create.form.bulkmode.bgnames=
 create.form.businesspath=Link zu dieser Gruppe
 create.form.enableAutoCloseRanks=Automatisches Nachr\u00FCcken
 create.form.enableWaitinglist=Warteliste
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_el.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_el.properties
index 2ee16a7b535..efd0ce386fb 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_el.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_el.properties
@@ -20,7 +20,6 @@ bgcopywizard.copyform.owners=\u039F\u03BC\u03B1\u03B4\u03BF\u03C0\u03BF\u03AF\u0
 chkBox.show.owners=\u039F\u03B9 \u03B5\u03BA\u03C0\u03B1\u03B9\u03B4\u03B5\u03C5\u03C4\u03AD\u03C2 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BF\u03C1\u03B1\u03C4\u03BF\u03AF \u03B1\u03C0\u03CC \u03C4\u03B1 \u03BC\u03AD\u03BB\u03B7
 cmd.group.create=\u039D\u03AD\u03B1 \u03BF\u03BC\u03AC\u03B4\u03B1 \u03BC\u03AC\u03B8\u03B7\u03C3\u03B7\u03C2
 cmd.owners.message=E-mail \u03C3\u03C4\u03BF\u03C5\u03C2 \u03B5\u03BA\u03C0\u03B1\u03B9\u03B4\u03B5\u03C5\u03C4\u03AD\u03C2
-create.form.bulkmode.bgnames=\u039C\u03B1\u03B6\u03B9\u03BA\u03AE \u03A0\u03B1\u03C1\u03B1\u03B3\u03C9\u03B3\u03AE \u039F\u03BC\u03AC\u03B4\u03C9\u03BD \u03BC\u03B5 \u03C0\u03B1\u03C1\u03CC\u03BC\u03BF\u03B9\u03B5\u03C2 \u03B9\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B5\u03C2
 create.form.enableAutoCloseRanks=A\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03B7 \u03B1\u03BD\u03B1\u03C1\u03C1\u03AF\u03C7\u03B7\u03C3\u03B7
 create.form.enableWaitinglist=\u039B\u03AF\u03C3\u03C4\u03B1 \u0391\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE\u03C2
 create.form.error.enableAutoCloseRanks=\u0397 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u03B1\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03B7\u03C2 \u03B1\u03BD\u03B1\u03C1\u03C1\u03AF\u03C7\u03B7\u03C3\u03B7\u03C2 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03C5\u03BD\u03B1\u03C4\u03AE \u03BC\u03CC\u03BD\u03BF \u03C3\u03B5 \u03C3\u03C5\u03BD\u03B4\u03C5\u03B1\u03C3\u03BC\u03CC \u03BC\u03B5 \u03BC\u03B9\u03B1 \u03BB\u03AF\u03C3\u03C4\u03B1 \u03B1\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE\u03C2. 
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_en.properties
index 082de09135b..d9f0cfc90ce 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_en.properties
@@ -24,7 +24,6 @@ chkBox.show.owners=Members can see coaches
 cmd.group.create=New group
 cmd.owners.message=E-mail to coaches
 create.form.bulkmode.areanames=
-create.form.bulkmode.bgnames=
 create.form.businesspath=Link to this group
 create.form.enableAutoCloseRanks=Moving up automatically
 create.form.enableWaitinglist=Waiting list
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_es.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_es.properties
index 13e875867dc..aee330a5203 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_es.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_es.properties
@@ -21,7 +21,6 @@ chkBox.show.owners=Los miembros ven a los tutores
 cmd.group.create=Nuevo grupo de estudios
 cmd.owners.message=E-mail a los tutores
 create.form.bulkmode.areanames=Crear varios \u00E1reas configurado igualmente
-create.form.bulkmode.bgnames=Crear varios grupos configurado igualmente
 create.form.enableAutoCloseRanks=Levantarse autom\u00E1ticamente 
 create.form.enableWaitinglist=Lista de espera
 create.form.error.enableAutoCloseRanks=La opci\u00F3n de levantarse autom\u00E1ticamente solamente es disponible en conjunto con una lista de espera.
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_fr.properties
index 4162a06e7ac..36ba6c2316a 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_fr.properties
@@ -24,7 +24,6 @@ chkBox.show.owners=Membres voient tuteurs
 cmd.group.create=Nouveau groupe d'\u00E9tude
 cmd.owners.message=E-mail au tuteur
 create.form.bulkmode.areanames=Cr\u00E9ation en masse d'espaces configur\u00E9s identiquement
-create.form.bulkmode.bgnames=Cr\u00E9ation en masse de groupes configur\u00E9s identiquement
 create.form.businesspath=Lien vers ce groupe
 create.form.enableAutoCloseRanks=Avancement automatique
 create.form.enableWaitinglist=Liste d'attente
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_it.properties
index b4a92c17d42..68edbae5598 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_it.properties
@@ -24,7 +24,6 @@ chkBox.show.owners=Membri vedono tutori
 cmd.group.create=Nuovo gruppo di studio
 cmd.owners.message=E-mail ai tutori
 create.form.bulkmode.areanames=Creazione in massa di aree configurate identicamente
-create.form.bulkmode.bgnames=Creazione in massa di gruppi configurati identicamente
 create.form.businesspath=Collegamento a questo gruppo
 create.form.enableAutoCloseRanks=Avanzamento automatico
 create.form.enableWaitinglist=Lista d'attesa
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_pl.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_pl.properties
index 3861b2726e0..e7cdace443c 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_pl.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_pl.properties
@@ -24,7 +24,6 @@ chkBox.show.owners=Uczestnicy widz\u0105 nauczycieli
 cmd.group.create=Nowa grupa edukacyjna
 cmd.owners.message=E-mail do nauczycieli
 create.form.bulkmode.areanames=Masowe tworzenie podobnych obszar\u00F3w edukacyjnych
-create.form.bulkmode.bgnames=Masowe tworzenie podobnych grup edukacyjnych
 create.form.businesspath=\u0141\u0105cze do tej grupy
 create.form.enableAutoCloseRanks=Automatyczne przesuwanie
 create.form.enableWaitinglist=Lista oczekuj\u0105cych
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_pt_BR.properties
index 9a37728f9d7..616ab8c7a66 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_pt_BR.properties
@@ -24,7 +24,6 @@ chkBox.show.owners=Membros podem ver tutores
 cmd.group.create=Novo grupo de estudo
 cmd.owners.message=E-mail aos tutores
 create.form.bulkmode.areanames=Volume de produ\u00E7\u00E3o de \u00E1reas configurados iguais
-create.form.bulkmode.bgnames=Volume de produ\u00E7\u00E3o de grupos configurados iguais
 create.form.businesspath=Link para esse grupo
 create.form.enableAutoCloseRanks=Movimenta\u00E7\u00E3o automatica
 create.form.enableWaitinglist=Lista de espera
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_ru.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_ru.properties
index 98b4bcc9364..afbffd2d8f7 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_ru.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_ru.properties
@@ -24,7 +24,6 @@ chkBox.show.owners=\u0427\u043B\u0435\u043D\u044B \u0433\u0440\u0443\u043F\u043F
 cmd.group.create=\u041D\u043E\u0432\u0430\u044F \u0433\u0440\u0443\u043F\u043F\u0430 \u043E\u0431\u0443\u0447\u0435\u043D\u0438\u044F
 cmd.owners.message=E-mail \u0432\u0441\u0435\u043C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\u043C
 create.form.bulkmode.areanames=\u041C\u0430\u0441\u0441\u043E\u0432\u043E\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u043E\u0434\u0438\u043D\u0430\u043A\u043E\u0432\u043E \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u043E\u0431\u043B\u0430\u0441\u0442\u0435\u0439 
-create.form.bulkmode.bgnames=\u041C\u0430\u0441\u0441\u043E\u0432\u043E\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u043E\u0434\u0438\u043D\u0430\u043A\u043E\u0432\u043E \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0433\u0440\u0443\u043F\u043F 
 create.form.businesspath=\u0421\u0441\u044B\u043B\u043A\u0430 \u043D\u0430 \u044D\u0442\u0443 \u0433\u0440\u0443\u043F\u043F\u0443
 create.form.enableAutoCloseRanks=\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u043F\u0440\u043E\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0435
 create.form.enableWaitinglist=\u0421\u043F\u0438\u0441\u043E\u043A \u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_sq.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_sq.properties
index 0a7b5c7073c..0e0349fee36 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_sq.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_sq.properties
@@ -21,7 +21,6 @@ chkBox.show.owners=An\u00EBtar\u00EBt mund t'i shohin tutor\u00EBt
 cmd.group.create=Grup i ri m\u00EBsimi
 cmd.owners.message=E-posto tutor\u00EBve
 create.form.bulkmode.areanames=Krijimi i hap\u00EBsirave n\u00EB tuf\u00EB t\u00EB konfiguruara si
-create.form.bulkmode.bgnames=Krijimi i grupeve n\u00EB tuf\u00EB t\u00EB konfiguruara si
 create.form.enableAutoCloseRanks=Zhvendosje lart automatike
 create.form.enableWaitinglist=Lista e pritjes
 create.form.error.enableAutoCloseRanks=Opsioni p\u00EBr tu zhvendosur lart automatikisht vet\u00EBm n\u00EB kombinimin me nj\u00EB list\u00EB t\u00EB pritjes.
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_zh_CN.properties
index 840fc335ce9..e5dacf6afcb 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_zh_CN.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_zh_CN.properties
@@ -23,7 +23,6 @@ bgcopywizard.copyform.owners=\u7FA4\u7EC4\u8F85\u5BFC\u6559\u5E08
 chkBox.show.owners=\u6210\u5458\u53EF\u4EE5\u770B\u89C1\u8F85\u5BFC\u6559\u5E08
 cmd.group.create=\u65B0\u5EFA\u5B66\u4E60\u7EC4
 cmd.owners.message=\u7ED9\u8F85\u5BFC\u6559\u5E08\u53D1\u7535\u5B50\u90AE\u4EF6
-create.form.bulkmode.bgnames=\u5927\u91CF\u7FA4\u7EC4\u4EA7\u751F\u7684\u7EDF\u4E00\u914D\u7F6E
 create.form.businesspath=\u5230\u7FA4\u7EC4\u7684\u94FE\u63A5
 create.form.enableAutoCloseRanks=\u81EA\u52A8\u4E0A\u79FB
 create.form.enableWaitinglist=\u7B49\u5F85\u5217\u8868
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_zh_TW.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_zh_TW.properties
index 78c59c82e4b..70c6c80b3a7 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_zh_TW.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_zh_TW.properties
@@ -21,7 +21,6 @@ chkBox.show.owners=\u6210\u54E1\u53EF\u4EE5\u770B\u898B\u6559\u5E2B
 cmd.group.create=\u65B0\u589E\u5B78\u7FD2\u7FA4\u7D44
 cmd.owners.message=\u767C\u9001\u96FB\u5B50\u90F5\u4EF6\u7D66\u6559\u5E2B
 create.form.bulkmode.areanames=\u5927\u6279\u7522\u751F\u985E\u4F3C\u8A2D\u5B9A\u7684\u5340
-create.form.bulkmode.bgnames=\u5927\u6279\u7522\u751F\u985E\u4F3C\u8A2D\u5B9A\u7684\u7FA4\u7D44
 create.form.enableAutoCloseRanks=\u81EA\u52D5\u4E0A\u79FB
 create.form.enableWaitinglist=\u5019\u88DC\u6E05\u55AE
 create.form.error.enableAutoCloseRanks=\u9019\u500B\u81EA\u52D5\u4E0A\u79FB\u7684\u9078\u9805\u53EA\u6709\u548C\u5019\u88DC\u6E05\u55AE\u806F\u5408\u624D\u80FD\u4F7F\u7528\u3002
diff --git a/src/test/java/org/olat/selenium/UserTest.java b/src/test/java/org/olat/selenium/UserTest.java
index 664422fe07e..56bf94aed2e 100644
--- a/src/test/java/org/olat/selenium/UserTest.java
+++ b/src/test/java/org/olat/selenium/UserTest.java
@@ -492,6 +492,67 @@ public class UserTest {
 			.assertLoggedIn(userVo);
 	}
 	
+	/**
+	 * Test if deleted user cannot login anymore. An administrator
+	 * create a user. This user log in and log out. The administrator
+	 * use the direct delete workflow in user management to delete
+	 * it.<br>
+	 * The user try to log in again, unsuccessfully. The
+	 * administrator doesn't find it anymore in the user
+	 * search of the user management tab.
+	 * 
+	 */
+	@Test
+	@RunAsClient
+	public void deleteUser(@InitialPage LoginPage loginPage,
+			@Drone @User WebDriver userBrowser) {
+		//login
+		loginPage
+			.assertOnLoginPage()
+			.loginAs("administrator", "openolat")
+			.resume();
+		
+		String uuid = UUID.randomUUID().toString();
+		String username = "miku-" + uuid;
+		String lastName = "Hatsune" + uuid;
+		UserVO userVo = UserAdminPage.createUserVO(username, "Miku", lastName, "miku-" + uuid + "@openolat.com", "miku01");
+		UserAdminPage userAdminPage = navBar
+			.openUserManagement()
+			.openCreateUser()
+			.fillUserForm(userVo)
+			.assertOnUserEditView(username);
+		
+		//user log in
+		LoginPage userLoginPage = LoginPage.getLoginPage(userBrowser, deploymentUrl);
+		//tools
+		userLoginPage
+			.loginAs(username, "miku01")
+			.resume()
+			.assertLoggedIn(userVo);
+		//log out
+		new UserToolsPage(userBrowser).logout();
+		
+		//admin delete
+		userAdminPage
+			.openDirectDeleteUser()
+			.searchUserToDelete(username)
+			.selectAndDeleteUser(lastName);
+		
+		//user try the login
+		userLoginPage = LoginPage.getLoginPage(userBrowser, deploymentUrl);
+		userLoginPage
+			.loginDenied(username, "miku01");
+		//assert on error message
+		By errorMessageby = By.cssSelector("div.modal-body.alert.alert-danger");
+		OOGraphene.waitElement(errorMessageby, 2, userBrowser);
+
+		// administrator search the deleted user
+		userAdminPage
+			.openSearchUser()
+			.searchByUsername(username)
+			.assertNotInUserList(username);
+	}
+	
 	/**
 	 * Import 2 new users and check if the first can log in.
 	 * 
diff --git a/src/test/java/org/olat/selenium/page/LoginPage.java b/src/test/java/org/olat/selenium/page/LoginPage.java
index 5ef4e7e17be..177da708746 100644
--- a/src/test/java/org/olat/selenium/page/LoginPage.java
+++ b/src/test/java/org/olat/selenium/page/LoginPage.java
@@ -159,6 +159,32 @@ public class LoginPage {
 		return this;
 	}
 	
+	/**
+	 * The login will not be successful. The method assert
+	 * on the error message.
+	 * 
+	 * @param username
+	 * @param password
+	 * @return
+	 */
+	public LoginPage loginDenied(String username, String password) {
+		//fill login form
+		By usernameId = By.id("o_fiooolat_login_name");
+		WebElement usernameInput = browser.findElement(usernameId);
+		usernameInput.sendKeys(username);
+		By passwordId = By.id("o_fiooolat_login_pass");
+		WebElement passwordInput = browser.findElement(passwordId);
+		passwordInput.sendKeys(password);
+		
+		By loginBy = By.id("o_fiooolat_login_button");
+		browser.findElement(loginBy).click();
+		OOGraphene.waitBusy(browser);
+		
+		By errorMessageby = By.cssSelector("div.modal-body.alert.alert-danger");
+		OOGraphene.waitElement(errorMessageby, 2, browser);
+		return this;
+	}
+	
 	/**
 	 * Resume the session, and assert that the resume panel has popped
 	 */
diff --git a/src/test/java/org/olat/selenium/page/user/UserAdminPage.java b/src/test/java/org/olat/selenium/page/user/UserAdminPage.java
index 3a502c36990..582b6889120 100644
--- a/src/test/java/org/olat/selenium/page/user/UserAdminPage.java
+++ b/src/test/java/org/olat/selenium/page/user/UserAdminPage.java
@@ -66,6 +66,61 @@ public class UserAdminPage {
 		return this;
 	}
 	
+	public UserAdminPage openDirectDeleteUser() {
+		By createBy = By.cssSelector(".o_tree li.o_sel_useradmin_direct_delete>div>span.o_tree_link>a");
+		WebElement createMenuItem = browser.findElement(createBy);
+		createMenuItem.click();
+		OOGraphene.waitBusy(browser);
+		return this;
+	}
+	
+	/**
+	 * Search a user in the search form of the direct delete
+	 * workflow.
+	 * 
+	 * @param username
+	 * @return
+	 */
+	public UserAdminPage searchUserToDelete(String username) {
+		By createBy = By.cssSelector("fieldset.o_sel_user_search_form div.o_sel_user_search_username input[type='text']");
+		browser.findElement(createBy).sendKeys(username);
+		
+		//search
+		By searchBy = By.cssSelector("fieldset.o_sel_user_search_form a.o_sel_user_search_button");
+		browser.findElement(searchBy).click();
+		OOGraphene.waitBusy(browser);	
+		return this;
+	}
+	
+	/**
+	 * After searching a user, you can select it and delete it.
+	 * 
+	 * @param lastName
+	 * @return
+	 */
+	public UserAdminPage selectAndDeleteUser(String lastName) {
+		By checkBy = By.cssSelector("fieldset.o_sel_usersearch_searchform table input[type='checkbox']");
+		browser.findElement(checkBy).click();
+		
+		//select
+		By selectBy = By.cssSelector("fieldset.o_sel_usersearch_searchform div.o_table_wrapper div.o_table_buttons button.btn.btn-default");
+		browser.findElement(selectBy).click();
+		OOGraphene.waitBusy(browser);
+		
+		//confirm
+		By usernameBy = By.xpath("//div[contains(@class,'modal-dialog')]//p[text()[contains(.,'" + lastName + "')]]");
+		List<WebElement> confirmUserEls = browser.findElements(usernameBy);
+		Assert.assertFalse(confirmUserEls.isEmpty());
+		
+		By buttonsBy = By.cssSelector("div.modal-dialog div.modal-footer a.btn.btn-default");
+		List<WebElement> buttonEls = browser.findElements(buttonsBy);
+		Assert.assertEquals(2, buttonEls.size());
+		buttonEls.get(0).click();
+		OOGraphene.waitBusy(browser);
+		OOGraphene.waitAndCloseBlueMessageWindow(browser);
+		return this;
+	}
+	
 	public UserAdminPage openImportUsers() {
 		By importBy = By.cssSelector(".o_tree li.o_sel_useradmin_import>div>span.o_tree_link>a");
 		browser.findElement(importBy).click();
@@ -161,6 +216,13 @@ public class UserAdminPage {
 		return this;
 	}
 	
+	public UserAdminPage assertNotInUserList(String username) {
+		By userLinksBy = By.xpath("//div[contains(@class,'o_table_wrapper')]//table//tr//td//a[text()[contains(.,'" + username + "')]]");
+		List<WebElement> usernameEls = browser.findElements(userLinksBy);
+		Assert.assertTrue(usernameEls.isEmpty());
+		return this;
+	}
+	
 	public UserAdminPage selectByUsername(String username) {
 		By rows = By.cssSelector("div.o_table_wrapper table tbody tr");
 		By usernameLinksBy = By.xpath("td//a[text()[contains(.,'" + username + "')]]");
-- 
GitLab