From 66aeafe7979ceccb1675edf517cdf85e3e6722e4 Mon Sep 17 00:00:00 2001 From: Andreas Zerbst <73799582+andr317c@users.noreply.github.com> Date: Tue, 17 Sep 2024 12:13:35 +0200 Subject: [PATCH] V14 QA Content with upload video (#17066) * Added tests for upload video in content * Added ogv file * Added ogv to test * Reverted smokeTest command --- .../fixtures/mediaLibrary/Ogv.ogv | Bin 0 -> 9479 bytes .../fixtures/mediaLibrary/Webm.webm | Bin 0 -> 6017 bytes .../Content/ContentWithUploadVideo.spec.ts | 112 ++++++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 tests/Umbraco.Tests.AcceptanceTest/fixtures/mediaLibrary/Ogv.ogv create mode 100644 tests/Umbraco.Tests.AcceptanceTest/fixtures/mediaLibrary/Webm.webm create mode 100644 tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadVideo.spec.ts diff --git a/tests/Umbraco.Tests.AcceptanceTest/fixtures/mediaLibrary/Ogv.ogv b/tests/Umbraco.Tests.AcceptanceTest/fixtures/mediaLibrary/Ogv.ogv new file mode 100644 index 0000000000000000000000000000000000000000..e979ba49e91078c3a9aaa3a2d5d56594bfa74f06 GIT binary patch literal 9479 zcmeI2Pe>GT6vyA}Dk>C73VD#676T8h=F*`;Les*d2a667O*^yg;Lgr6GfsaFxrfNT zd6iixuS#@|Ej)SXARRgdN$5=o><%SW=pw?zajT`T?Lh;}`}&S77Oyhv%`DR;&~EuQv3o&kZPTKWeL> zLeJpf;21z0a4;T!_pNmO7J4;g-wzZ4PW?1WPhqN7TU(!l#HX)|TSs&J{_?6K52=7u zKq?>=kP1izqyka_sen{KDj*e*3P=T{0#X5~fK)&#AQg}bNCl2kfw$qG1?RDD8440G zU2NLC8$}}=WjHEvw7}7_QiZOyVl?~)L*-WGv*1-uaWt+hie5fPv&wVPtHRNW@C#uGOeSX9*34VXXuf(CgKWvuI$SfljMphW9iX;F= z5{!&6l3}F8$O0qFjQm}n#%q>s`?!-i%g^fAMl8M#aQr1GK*yf#J3%a*5AJy$)QjO? z{2x6>o4~=_-bA=&JmR<=4c8S-Sm&U1n~In=a50?NZRnnhy-p+NQsw~}M%a!U#)^+w zx~U;oEnU3#0mL8R#u80~WLD2PVGk?c)G?!B&u-$mJ*wsPoIyUZEz8Vju+#2aVbJJh zckA`BPTeuchm6LLO*%QX-jBU;y?Z(Azi>TwXG6$mhSDmqC5y%kK~oWLdlb7=$e2eR zN9vAR4bLuN)L{kFF=}gvNy|`nvNE8<^+J6qA}wZ81_)X^UN-4YMx06~vNQp-9ftnY zS6<`T<8Y*2A@4|Hx9teZNsKAWztI5qIc?XsEZkH2ss3wH_cUz3TSnN@@R{hlgYTQ8 z6$y=$_w}W7W+9!`tU_;^a*beSK5fxkJsou( zb_~rkRC+;eSAAf5S@ppAeMY`7bV?e!>Di8&R4GkKwevYMzdc{A51p$=Q*qUTW4NyE N?2){0IG*A3{s9L`yqN$1 literal 0 HcmV?d00001 diff --git a/tests/Umbraco.Tests.AcceptanceTest/fixtures/mediaLibrary/Webm.webm b/tests/Umbraco.Tests.AcceptanceTest/fixtures/mediaLibrary/Webm.webm new file mode 100644 index 0000000000000000000000000000000000000000..ac90535d4dc5ed90ab9f28442c8c3957a860bb9a GIT binary patch literal 6017 zcmeI0O=#3W6o6l{U2Kcmwf0b@Xu4ML;CAgIC{nbwMT+O@Nu+U;bwiWQlBDtHpnE8E zLBwlKQ0lQgc+$%vJxGs5i&v}ITR~7f2>!sX?`7L=c4k57MGtvoX5M`B=1uZu2EqdX zDd*fNYPM+rh(IltjO=EIjN<7b0BFxystVA3*id8#`(j4|Yw702wxgR1C&Ul65|rSX zAP6G>F~F+p*z5j7Q)ttce=}SH=zOe}XW@RWwz0VY$@gEEfA9AB_4#=vdZGwK5r`rX zMIeem6oDuLQ3Rq0>^1_g@F!L5IE8h`sF#Gf(*6VZzuG|KJj(H?%%dd+wU2tMLKV(l z+VPI$3rqZj@Uhv(&v0Z?SY~Woj?4>B8Jh}6)`feFO_e1c2-ll!yd+1)h4YL}jw5B^ z2xGIvk=57_*ywGF4@>++>~^z_pW(=)$oTPHj?9a!p9)9T_k4=YPKDmbud>90IAh}_ zIWpeWbgFRQa~vsiWQilI9Qnc$Kf#d2K zqY<5-P&EAi^?t=K7^dmso9c#}SFjC9Y!hJL0}z0ohBS2$GyRcU!^+hZ%&0ZwD)!9@xuEDO*@)i_t&l^d$29_{;nyBe>SKM1rIHN^ zjqjbYbg8b3FKy?Bj`|bZv9~vbY#vft4_lJ3&j7^fvnNocLc&?paj5RC)v$L4y^aZ( z4ycJMJ8(CETeGG7qvu1s}g8igl@Sih^BV+r`P=l6+`@^>eZ<-|+i*&GeWJRlA&D5e} zlEdSeqb4VGNFeVxMf+Sjoz=BsHZL2+!7OFD;n8B&p!+-*HXgH7*-<6Bnx-w?(ww~1 ya(-GZqywXrs%VaBNhygE { + await umbracoApi.documentType.ensureNameNotExists(documentTypeName); + await umbracoApi.document.ensureNameNotExists(contentName); +}); + +test.afterEach(async ({umbracoApi}) => { + await umbracoApi.document.ensureNameNotExists(contentName); + await umbracoApi.documentType.ensureNameNotExists(documentTypeName); +}); + +test('can create content with the upload video data type', async ({umbracoApi, umbracoUi}) => { + // Arrange + const expectedState = 'Draft'; + const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName); + await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, dataTypeName, dataTypeData.id); + await umbracoUi.goToBackOffice(); + await umbracoUi.content.goToSection(ConstantHelper.sections.content); + + // Act + await umbracoUi.content.clickActionsMenuAtRoot(); + await umbracoUi.content.clickCreateButton(); + await umbracoUi.content.chooseDocumentType(documentTypeName); + await umbracoUi.content.enterContentName(contentName); + await umbracoUi.content.clickSaveButton(); + + // Assert + await umbracoUi.content.isSuccessNotificationVisible(); + expect(await umbracoApi.document.doesNameExist(contentName)).toBeTruthy(); + const contentData = await umbracoApi.document.getByName(contentName); + expect(contentData.variants[0].state).toBe(expectedState); + expect(contentData.values).toEqual([]); +}); + +test('can publish content with the upload video data type', async ({umbracoApi, umbracoUi}) => { + // Arrange + const expectedState = 'Published'; + const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName); + const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, dataTypeName, dataTypeData.id); + await umbracoApi.document.createDefaultDocument(contentName, documentTypeId); + await umbracoUi.goToBackOffice(); + await umbracoUi.content.goToSection(ConstantHelper.sections.content); + + // Act + await umbracoUi.content.goToContentWithName(contentName); + await umbracoUi.content.clickSaveAndPublishButton(); + + // Assert + await umbracoUi.content.doesSuccessNotificationsHaveCount(2); + expect(await umbracoApi.document.doesNameExist(contentName)).toBeTruthy(); + const contentData = await umbracoApi.document.getByName(contentName); + expect(contentData.variants[0].state).toBe(expectedState); + expect(contentData.values).toEqual([]); +}); + +const uploadVideos = [ + {fileExtension: 'mp4', fileName: 'Video.mp4'}, + {fileExtension: 'webm', fileName: 'Webm.webm'}, + {fileExtension: 'ogv', fileName: 'Ogv.ogv'} +]; +for (const uploadVideo of uploadVideos) { + test(`can upload a video with the ${uploadVideo.fileExtension} extension in the content`, async ({umbracoApi, umbracoUi}) => { + // Arrange + const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName); + const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, dataTypeName, dataTypeData.id); + await umbracoApi.document.createDefaultDocument(contentName, documentTypeId); + await umbracoUi.goToBackOffice(); + await umbracoUi.content.goToSection(ConstantHelper.sections.content); + + // Act + await umbracoUi.content.goToContentWithName(contentName); + await umbracoUi.content.uploadFile(uploadVideoPath + uploadVideo.fileName); + await umbracoUi.content.clickSaveButton(); + + // Assert + await umbracoUi.content.isSuccessNotificationVisible(); + expect(await umbracoApi.document.doesNameExist(contentName)).toBeTruthy(); + const contentData = await umbracoApi.document.getByName(contentName); + expect(contentData.values[0].alias).toEqual(AliasHelper.toAlias(dataTypeName)); + expect(contentData.values[0].value.src).toContain(AliasHelper.toAlias(uploadVideo.fileName)); + }); +} + +// TODO: Remove skip when the front-end is ready. Currently the uploaded video still displays after removing. +test.skip('can remove a mp4 file in the content', async ({umbracoApi, umbracoUi}) => { + // Arrange + const uploadFileName = 'Video.mp4'; + const mineType = 'video/mp4'; + const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName); + const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, dataTypeName, dataTypeData.id); + await umbracoApi.document.createDocumentWithUploadFile(contentName, documentTypeId, dataTypeName, uploadFileName, mineType); + await umbracoUi.goToBackOffice(); + await umbracoUi.content.goToSection(ConstantHelper.sections.content); + + // Act + await umbracoUi.content.goToContentWithName(contentName); + await umbracoUi.content.clickRemoveFilesButton(); + await umbracoUi.content.clickSaveButton(); + + // Assert + await umbracoUi.content.isSuccessNotificationVisible(); + expect(await umbracoApi.document.doesNameExist(contentName)).toBeTruthy(); + const contentData = await umbracoApi.document.getByName(contentName); + expect(contentData.values).toEqual([]); +});