diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FileElementRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FileElementRenderer.java index 6e0855cbc3a925463f121beedc2d52ff76cafde1..c56cc950e81d18edee35cfc8acecbaa3bdeccd41 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FileElementRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FileElementRenderer.java @@ -93,7 +93,9 @@ public class FileElementRenderer extends DefaultComponentRenderer { boolean showDeleteButton = fileElem.isDeleteEnabled() && (fileElem.getInitialFile() != null || fileElem.getUploadFile() != null); - sb.append("<div class='o_fileinput'>"); + sb.append("<div class='o_fileinput") + .append(" o_sel_file_uploaded", fileElem.getUploadFile() != null) + .append("'>"); // input.Browse is the real filebrowser, but set to be transparent. // the div.o_fakechooser is layered below the input.Browse and represents the visual GUI. // Since input.Browse is layered above div.o_fakechooser, all click events to go input.Browse @@ -106,7 +108,9 @@ public class FileElementRenderer extends DefaultComponentRenderer { if (fileElem.getMaxUploadSizeKB() != FileElement.UPLOAD_UNLIMITED) { sb.append("\" data-max-size=\"").append(fileElem.getMaxUploadSizeKB() * 1024l); } - sb.append("\" class='form-control o_realchooser ").append(" o_chooser_with_delete", showDeleteButton).append("' "); + sb.append("\" class='form-control o_realchooser ") + .append(" o_chooser_with_delete", showDeleteButton) + .append("' "); // Add on* event handlers StringBuilder eventHandlers = FormJSHelper.getRawJSFor(fileElem.getRootForm(), id, fileElem.getAction()); int onChangePos = eventHandlers.indexOf("onchange="); diff --git a/src/test/java/org/olat/selenium/AssessmentTest.java b/src/test/java/org/olat/selenium/AssessmentTest.java index 1450da951bf975a05418e5abc75d1cef00060c41..ae80bd0213f91226cccb4e6f89269da42c2d81b0 100644 --- a/src/test/java/org/olat/selenium/AssessmentTest.java +++ b/src/test/java/org/olat/selenium/AssessmentTest.java @@ -902,7 +902,7 @@ public class AssessmentTest extends Deployments { @Drone @Participant WebDriver kanuBrowser) throws IOException, URISyntaxException { - UserVO author = new UserRestClient(deploymentUrl).createAuthor(); + UserVO author = new UserRestClient(deploymentUrl).createRandomAuthor(); UserVO kanu = new UserRestClient(deploymentUrl).createRandomUser("Kanu"); UserVO ryomou = new UserRestClient(deploymentUrl).createRandomUser("Ryomou"); diff --git a/src/test/java/org/olat/selenium/page/core/FolderPage.java b/src/test/java/org/olat/selenium/page/core/FolderPage.java index c438a65fdad6b8df1c5a2fbfbbd2b7ec290f0db5..6755552ddc7675989a21c54d76ffe9370f77d9f0 100644 --- a/src/test/java/org/olat/selenium/page/core/FolderPage.java +++ b/src/test/java/org/olat/selenium/page/core/FolderPage.java @@ -126,6 +126,8 @@ public class FolderPage { By inputBy = By.cssSelector("div.modal-dialog div.o_fileinput input[type='file']"); OOGraphene.uploadFile(inputBy, file, browser); OOGraphene.waitBusy(browser); + By uploadedBy = By.cssSelector("div.modal-dialog div.o_sel_file_uploaded"); + OOGraphene.waitElement(uploadedBy, browser); By saveButtonBy = By.cssSelector("div.o_sel_upload_buttons button.btn-primary"); browser.findElement(saveButtonBy).click(); diff --git a/src/test/java/org/olat/selenium/page/course/DialogConfigurationPage.java b/src/test/java/org/olat/selenium/page/course/DialogConfigurationPage.java index ea25e1ef0dbbdae4b407b832c539cad498b36c96..36ba7b6f38baa5e8569d9479c0bb742dbf7bc0e2 100644 --- a/src/test/java/org/olat/selenium/page/course/DialogConfigurationPage.java +++ b/src/test/java/org/olat/selenium/page/course/DialogConfigurationPage.java @@ -53,6 +53,8 @@ public class DialogConfigurationPage { By inputBy = By.xpath("//div[contains(@class,'modal-body')]//div[@class='o_fileinput']/input[@type='file']"); OOGraphene.uploadFile(inputBy, file, browser); OOGraphene.waitBusy(browser); + By uploadedBy = By.cssSelector("div.modal-body .o_sel_file_uploaded"); + OOGraphene.waitElement(uploadedBy, browser); By uploadButtonBy = By.cssSelector("div.modal-body div.o_sel_upload_buttons button.btn-primary"); OOGraphene.waitElement(uploadButtonBy, browser); diff --git a/src/test/java/org/olat/selenium/page/course/DialogPage.java b/src/test/java/org/olat/selenium/page/course/DialogPage.java index 08400db37a9b5e056a8c6af697995a941f03e511..b6803845c472aade06b68f0f0071de01cb973f74 100644 --- a/src/test/java/org/olat/selenium/page/course/DialogPage.java +++ b/src/test/java/org/olat/selenium/page/course/DialogPage.java @@ -49,6 +49,8 @@ public class DialogPage { By inputBy = By.cssSelector("div.modal-dialog div.o_fileinput input[type='file']"); OOGraphene.uploadFile(inputBy, file, browser); OOGraphene.waitBusy(browser); + By uploadedBy = By.cssSelector("div.modal-dialog .o_sel_file_uploaded"); + OOGraphene.waitElement(uploadedBy, browser); By saveButtonBy = By.cssSelector("div.o_sel_upload_buttons button.btn-primary"); browser.findElement(saveButtonBy).click(); diff --git a/src/test/java/org/olat/selenium/page/course/GroupTaskConfigurationPage.java b/src/test/java/org/olat/selenium/page/course/GroupTaskConfigurationPage.java index 24c67de297551eb3cfa0a80ce5fc5f11dfb0f9c0..d69d2deb9530595f8570ac847f716cddb86c0c75 100644 --- a/src/test/java/org/olat/selenium/page/course/GroupTaskConfigurationPage.java +++ b/src/test/java/org/olat/selenium/page/course/GroupTaskConfigurationPage.java @@ -166,6 +166,8 @@ public class GroupTaskConfigurationPage { By inputBy = By.cssSelector(".o_fileinput input[type='file']"); OOGraphene.uploadFile(inputBy, file, browser); OOGraphene.waitBusy(browser); + By uploadedBy = By.cssSelector(".o_sel_course_gta_upload_task_form .o_sel_file_uploaded"); + OOGraphene.waitElement(uploadedBy, browser); //save By saveBy = By.cssSelector(".o_sel_course_gta_upload_task_form button.btn-primary"); @@ -203,6 +205,8 @@ public class GroupTaskConfigurationPage { By inputBy = By.cssSelector(".o_fileinput input[type='file']"); OOGraphene.uploadFile(inputBy, file, browser); OOGraphene.waitBusy(browser); + By uploadedBy = By.cssSelector(".o_sel_course_gta_upload_solution_form .o_sel_file_uploaded"); + OOGraphene.waitElement(uploadedBy, browser); //save By saveBy = By.cssSelector(".o_sel_course_gta_upload_solution_form button.btn-primary"); diff --git a/src/test/java/org/olat/selenium/page/course/GroupTaskPage.java b/src/test/java/org/olat/selenium/page/course/GroupTaskPage.java index 8de53820d48dd895b32ea648dcf925c3b2d88475..e6b7d86c5dcc7023bbc3904768ed0cdb28a6b19c 100644 --- a/src/test/java/org/olat/selenium/page/course/GroupTaskPage.java +++ b/src/test/java/org/olat/selenium/page/course/GroupTaskPage.java @@ -127,6 +127,8 @@ public class GroupTaskPage { By inputBy = By.cssSelector(".o_fileinput input[type='file']"); OOGraphene.uploadFile(inputBy, file, browser); OOGraphene.waitBusy(browser); + By uploadedBy = By.cssSelector(".o_sel_course_gta_upload_form .o_sel_file_uploaded"); + OOGraphene.waitElement(uploadedBy, browser); By saveButtonBy = By.cssSelector(".o_sel_course_gta_upload_form button.btn-primary"); browser.findElement(saveButtonBy).click(); diff --git a/src/test/java/org/olat/selenium/page/course/GroupTaskToCoachPage.java b/src/test/java/org/olat/selenium/page/course/GroupTaskToCoachPage.java index a74ebae757a10937a80d80cd20732d6fad254ac2..bb236a23ef907f9f6f70bfe8b594e31ca89ef373 100644 --- a/src/test/java/org/olat/selenium/page/course/GroupTaskToCoachPage.java +++ b/src/test/java/org/olat/selenium/page/course/GroupTaskToCoachPage.java @@ -137,6 +137,8 @@ public class GroupTaskToCoachPage { By inputBy = By.cssSelector(".o_fileinput input[type='file']"); OOGraphene.uploadFile(inputBy, correctionFile, browser); OOGraphene.waitBusy(browser); + By uploadedBy = By.cssSelector(".o_sel_course_gta_upload_form .o_sel_file_uploaded"); + OOGraphene.waitElement(uploadedBy, browser); By saveButtonBy = By.cssSelector(".o_sel_course_gta_upload_form button.btn-primary"); browser.findElement(saveButtonBy).click(); diff --git a/src/test/java/org/olat/selenium/page/course/SinglePageConfigurationPage.java b/src/test/java/org/olat/selenium/page/course/SinglePageConfigurationPage.java index 771054695b9ea46103ea046013b2f89eaddaf698..dbe48dc26294203ccaa595c788ce96bfc3a2c1a5 100644 --- a/src/test/java/org/olat/selenium/page/course/SinglePageConfigurationPage.java +++ b/src/test/java/org/olat/selenium/page/course/SinglePageConfigurationPage.java @@ -79,6 +79,8 @@ public class SinglePageConfigurationPage { By inputBy = By.cssSelector(".modal-body .o_fileinput input[type='file']"); OOGraphene.uploadFile(inputBy, file, browser); OOGraphene.waitBusy(browser); + By uploadedBy = By.cssSelector(".modal-body .o_sel_file_uploaded"); + OOGraphene.waitElement(uploadedBy, browser); By uploadBy = By.cssSelector(".modal-body .o_sel_upload_buttons button.btn-primary"); OOGraphene.waitElement(uploadBy, browser); diff --git a/src/test/java/org/olat/selenium/page/portfolio/EntryPage.java b/src/test/java/org/olat/selenium/page/portfolio/EntryPage.java index dfb8bbbf050642baf05bc94a5a232394078b28fc..464e64a2b58d771b94af419d3b4d7932e3aeb8da 100644 --- a/src/test/java/org/olat/selenium/page/portfolio/EntryPage.java +++ b/src/test/java/org/olat/selenium/page/portfolio/EntryPage.java @@ -130,7 +130,9 @@ public class EntryPage { By inputBy = By.cssSelector("fieldset.o_sel_pf_collect_document_form .o_fileinput input[type='file']"); OOGraphene.uploadFile(inputBy, document, browser); - OOGraphene.waitingALittleLonger();//wait event + OOGraphene.waitBusy(browser); + By uploadedBy = By.cssSelector("fieldset.o_sel_pf_collect_document_form .o_sel_file_uploaded"); + OOGraphene.waitElement(uploadedBy, browser); By titleBy = By.cssSelector("fieldset.o_sel_pf_collect_document_form .o_sel_pf_collect_title input[type='text']"); browser.findElement(titleBy).sendKeys(title); @@ -139,6 +141,7 @@ public class EntryPage { By saveBy = By.cssSelector("fieldset.o_sel_pf_collect_document_form button.btn-primary"); browser.findElement(saveBy).click(); OOGraphene.waitBusy(browser); + OOGraphene.waitModalDialogDisappears(browser); return this; } diff --git a/src/test/java/org/olat/selenium/page/repository/CPEditorPage.java b/src/test/java/org/olat/selenium/page/repository/CPEditorPage.java index e29da679bf000cb270bd4428d79bbf7155608be5..5c96343b5e0afdbaa5c09b57b7ce61c4d4177ff4 100644 --- a/src/test/java/org/olat/selenium/page/repository/CPEditorPage.java +++ b/src/test/java/org/olat/selenium/page/repository/CPEditorPage.java @@ -92,11 +92,13 @@ public class CPEditorPage { //wait popup By metadataPopupBy = By.cssSelector("fieldset.o_sel_cp_import"); - OOGraphene.waitElement(metadataPopupBy, 2, browser); + OOGraphene.waitElement(metadataPopupBy, browser); By inputBy = By.cssSelector("fieldset.o_sel_cp_import .o_fileinput input[type='file']"); OOGraphene.uploadFile(inputBy, page, browser); - OOGraphene.waitingALittleLonger();//wait event + OOGraphene.waitBusy(browser); + By uploadedBy = By.cssSelector("fieldset.o_sel_cp_import .o_sel_file_uploaded"); + OOGraphene.waitElement(uploadedBy, browser); //ok save By saveBy = By.cssSelector("fieldset.o_sel_cp_import button.btn-primary");