diff --git a/packages/fiori/src/UploadCollectionItem.hbs b/packages/fiori/src/UploadCollectionItem.hbs index f5ec24b2ea98..89f1b9edf5d8 100644 --- a/packages/fiori/src/UploadCollectionItem.hbs +++ b/packages/fiori/src/UploadCollectionItem.hbs @@ -99,8 +99,6 @@ {{#unless hideDeleteButton}} Some description. + + + Some description. + + + + Some description. + { await browser.keys("Enter") }); + it("Disabled item", async () => { + const item = await browser.$("#disabledPdf"); + const deleteBtn = await item.shadow$(".ui5-upload-collection-deletebtn"); + + assert.notOk(await item.isClickable(), "Item shouldn't be clickable"); + assert.notOk(await deleteBtn.isClickable(), "Delete button shouldn't be clickable"); + }); }); describe("Events", () => { @@ -163,13 +170,25 @@ describe("UploadCollection", () => { it("upload collection should fire 'item-delete' regardless of the selectionMode", async () => { const uploadCollection = await browser.$("#uploadCollection"); const item = await browser.$("#latestReportsPdf"); + const itemsLength = (await uploadCollection.getProperty("items")).length; await uploadCollection.setAttribute("selection-mode", "None"); const deleteBtn = await item.shadow$(".ui5-upload-collection-deletebtn"); await deleteBtn.click(); - assert.strictEqual((await uploadCollection.getProperty("items")).length, 4, "item should be deleted when 'item-delete' event is fired"); + assert.strictEqual((await uploadCollection.getProperty("items")).length, itemsLength - 1, "item should be deleted when 'item-delete' event is fired"); + }); + + it("upload collection should fire 'item-delete' when 'DELETE' key is pressed on item", async () => { + const uploadCollection = await browser.$("#uploadCollection"); + const item = await browser.$("#reportPdf"); + const itemsLength = (await uploadCollection.getProperty("items")).length; + + await item.click(); + await browser.keys("Delete"); + + assert.strictEqual((await uploadCollection.getProperty("items")).length, itemsLength - 1, "item should be deleted when 'item-delete' event is fired"); }); it("item should fire 'retry'", async () => { @@ -191,6 +210,31 @@ describe("UploadCollection", () => { }); }); + describe("Keyboard handling", () => { + it("Tab chain", async () => { + const isActiveElement = (element) => { + return browser.executeAsync((expectedActiveElem, done) => { + const activeElement = document.activeElement; + done(activeElement.shadowRoot.activeElement === expectedActiveElem); + }, element); + }; + + const item = await browser.$("#hiddenFileName"); + + await item.click(); + assert.ok(await item.isFocused(), "Item should be focused"); + + await browser.keys("Tab"); + assert.ok(await isActiveElement(await item.shadow$("[ui5-button][icon=refresh]")), "Retry button should be focused"); + + await browser.keys("Tab"); + assert.ok(await isActiveElement(await item.shadow$(".ui5-uci-edit")), "Edit button should be focused"); + + await browser.keys("Tab"); + assert.ok(await isActiveElement(await item.shadow$(".ui5-upload-collection-deletebtn")), "Delete button should be focused"); + }); + }); + describe("Edit - various file names", async () => { before(async () => { await browser.url(`test/pages/UploadCollection.html`);