diff --git a/build/nightly-E2E-test-pipelines.yml b/build/nightly-E2E-test-pipelines.yml
index 629b7ac841..405eb51aa4 100644
--- a/build/nightly-E2E-test-pipelines.yml
+++ b/build/nightly-E2E-test-pipelines.yml
@@ -9,7 +9,6 @@ schedules:
branches:
include:
- v15/dev
- - release/16.0
- main
parameters:
@@ -483,4 +482,4 @@ stages:
testResultsFormat: 'JUnit'
testResultsFiles: '*.xml'
searchFolder: "tests/Umbraco.Tests.AcceptanceTest/results"
- testRunTitle: "$(Agent.JobName)"
+ testRunTitle: "$(Agent.JobName)"
\ No newline at end of file
diff --git a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json
index 28a3acbf03..d337791026 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json
+++ b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json
@@ -61,6 +61,7 @@
"version": "2.0.37",
"resolved": "https://registry.npmjs.org/@umbraco/json-models-builders/-/json-models-builders-2.0.37.tgz",
"integrity": "sha512-97cRUrD+oeEno9I+qFjq7lWVS0+aDEK44lQQYWmVPAkCuAG1HMpBTEblS45CflrmLtgrDuZx68WIVVGpk9JzgQ==",
+ "license": "MIT",
"dependencies": {
"camelize": "^1.0.1"
}
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/BlockGridArea.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/BlockGridArea.spec.ts
index d92169baf2..c74f5cd821 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/BlockGridArea.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/BlockGridArea.spec.ts
@@ -155,8 +155,7 @@ test('can create content with block grid area with row span', async ({umbracoApi
await umbracoUi.content.doesBlockAreaContainRowSpan(firstElementTypeName, firstAreaName, rowSpan, 0);
});
-// Remove fixme when this issue is fixed https://github.com/umbraco/Umbraco-CMS/issues/18639
-test.fixme('can create content with block grid area with min allowed', async ({umbracoApi, umbracoUi}) => {
+test('can create content with block grid area with min allowed', async ({umbracoApi, umbracoUi}) => {
// Arrange
firstElementTypeId = await umbracoApi.documentType.createEmptyElementType(firstElementTypeName);
const secondElementTypeId = await umbracoApi.documentType.createEmptyElementType(secondElementTypeName);
@@ -169,7 +168,7 @@ test.fixme('can create content with block grid area with min allowed', async ({u
await umbracoUi.content.goToContentWithName(contentName);
// Act
- await umbracoUi.content.clickAddBlockGridElementWithName(firstElementTypeName);
+ await umbracoUi.content.clickAddBlockGridElementWithName('content');
await umbracoUi.content.clickSelectBlockElementWithName(firstElementTypeName);
await umbracoUi.content.clickLinkWithName(areaCreateLabel);
await umbracoUi.content.clickSelectBlockElementInAreaWithName(secondElementTypeName);
@@ -187,8 +186,7 @@ test.fixme('can create content with block grid area with min allowed', async ({u
await umbracoApi.documentType.ensureNameNotExists(secondElementTypeName);
});
-// Remove fixme when this issue is fixed https://github.com/umbraco/Umbraco-CMS/issues/18639
-test.fixme('can create content with block grid area with max allowed', async ({umbracoApi, umbracoUi}) => {
+test('can create content with block grid area with max allowed', async ({umbracoApi, umbracoUi}) => {
// Arrange
firstElementTypeId = await umbracoApi.documentType.createEmptyElementType(firstElementTypeName);
const secondElementTypeId = await umbracoApi.documentType.createEmptyElementType(secondElementTypeName);
@@ -201,11 +199,11 @@ test.fixme('can create content with block grid area with max allowed', async ({u
await umbracoUi.content.goToContentWithName(contentName);
// Act
- await umbracoUi.content.clickAddBlockGridElementWithName(firstElementTypeName);
+ await umbracoUi.content.clickAddBlockGridElementWithName('content');
await umbracoUi.content.clickSelectBlockElementWithName(firstElementTypeName);
await umbracoUi.content.clickLinkWithName(areaCreateLabel);
await umbracoUi.content.clickSelectBlockElementInAreaWithName(secondElementTypeName);
- await umbracoUi.content.isTextWithExactNameVisible('Maximum 0 entries, 1 too many.');
+ await umbracoUi.content.isTextWithExactNameVisible('Maximum 0 entries, you have entered 1 too many.');
await umbracoUi.content.clickSaveAndPublishButton();
await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished);
await umbracoUi.content.removeBlockFromArea(firstElementTypeName, firstAreaName, secondElementTypeName);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/ComplexBlockGridTest.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/ComplexBlockGridTest.spec.ts
index 910c19994a..4154aaf519 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/ComplexBlockGridTest.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/ComplexBlockGridTest.spec.ts
@@ -95,7 +95,7 @@ test('can update property value nested in a block grid area with an RTE with a b
await umbracoUi.content.clickAddBlockGridElementWithName(richTextEditorElementTypeName);
await umbracoUi.content.clickExactLinkWithName(richTextEditorElementTypeName);
await umbracoUi.content.clickInsertBlockButton();
- await umbracoUi.content.clickExactLinkWithName(blockListElementTypeName);
+ await umbracoUi.content.clickExactLinkWithName(blockListElementTypeName, true);
await umbracoUi.content.clickAddBlockGridElementWithName(textStringElementTypeName);
await umbracoUi.content.clickExactLinkWithName(textStringElementTypeName);
// Enter text in the textstring block that won't match regex
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/ContentWithBlockGrid.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/ContentWithBlockGrid.spec.ts
index f3b3ed50fa..0bf8876761 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/ContentWithBlockGrid.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/ContentWithBlockGrid.spec.ts
@@ -227,8 +227,7 @@ test('can set the number of columns for the layout in the content', async ({umbr
expect(layoutValue[0].columnSpan).toBe(gridColumns);
});
-// TODO: Remove skip when front-end is ready. Currently, it is impossible to create content with blockgrid that has a setting model
-test.skip('can add settings model for the block in the content', async ({umbracoApi, umbracoUi}) => {
+test('can add settings model for the block in the content', async ({umbracoApi, umbracoUi}) => {
// Arrange
const contentBlockInputText = 'This is textstring';
const settingBlockInputText = 'This is textarea';
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/VariantBlockGrid.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/VariantBlockGrid.spec.ts
index d1eb3ce3d7..57c0d11346 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/VariantBlockGrid.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockGrid/VariantBlockGrid.spec.ts
@@ -80,7 +80,6 @@ test('can not create unsupported invariant document type with invariant block gr
// Assert
await umbracoUi.content.isFailedStateButtonVisible();
- await umbracoUi.content.isErrorNotificationVisible();
await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished);
expect(await umbracoApi.document.isDocumentPublished(contentId)).toBeFalsy();
});
@@ -101,7 +100,6 @@ test('can not create unsupported invariant document type with invariant block gr
// Assert
await umbracoUi.content.isFailedStateButtonVisible();
- await umbracoUi.content.isErrorNotificationVisible();
await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished);
expect(await umbracoApi.document.isDocumentPublished(contentId)).toBeFalsy();
});
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockList/ContentWithBlockList.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockList/ContentWithBlockList.spec.ts
index 2c253a1b00..49ba06fed3 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockList/ContentWithBlockList.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockList/ContentWithBlockList.spec.ts
@@ -178,8 +178,7 @@ test('can set the label of block element in the content', async ({umbracoApi, um
await umbracoUi.content.doesBlockElementHaveName(blockLabel);
});
-// TODO: Remove skip when front-end is ready. Currently, it is impossible to create content with blocklist that has a setting model
-test.skip('can add settings model for the block in the content', async ({umbracoApi, umbracoUi}) => {
+test('can add settings model for the block in the content', async ({umbracoApi, umbracoUi}) => {
// Arrange
const contentBlockInputText = 'This is textstring';
const settingBlockInputText = 'This is textarea';
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockList/VariantBlockList.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockList/VariantBlockList.spec.ts
index a6f7c78730..63ff826e6b 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockList/VariantBlockList.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/BlockList/VariantBlockList.spec.ts
@@ -80,7 +80,6 @@ test('can not create unsupported invariant document type with invariant block li
// Assert
await umbracoUi.content.isFailedStateButtonVisible();
- await umbracoUi.content.isErrorNotificationVisible();
await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished);
expect(await umbracoApi.document.isDocumentPublished(contentId)).toBeFalsy();
});
@@ -100,7 +99,6 @@ test('can not create unsupported invariant document type with invariant block li
// Assert
await umbracoUi.content.isFailedStateButtonVisible();
- await umbracoUi.content.isErrorNotificationVisible();
await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished);
expect(await umbracoApi.document.isDocumentPublished(contentId)).toBeFalsy();
});
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithContentPicker.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithContentPicker.spec.ts
index 3eae342652..927e2cded4 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithContentPicker.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithContentPicker.spec.ts
@@ -1,4 +1,4 @@
-import {ConstantHelper, test} from '@umbraco/playwright-testhelpers';
+import {ConstantHelper, NotificationConstantHelper, test} from '@umbraco/playwright-testhelpers';
import {expect} from "@playwright/test";
const contentName = 'TestContent';
@@ -92,7 +92,7 @@ test('can open content picker in the content', async ({umbracoApi, umbracoUi}) =
await umbracoApi.dataType.ensureNameNotExists(customDataTypeName);
});
-test('can choose start node for the content picker in the content', async ({umbracoApi, umbracoUi}) => {
+test('can create content with content picker without ignore start node', async ({umbracoApi, umbracoUi}) => {
// Arrange
const customDataTypeName = 'CustomContentPicker';
const childContentPickerDocumentTypeName = 'ChildDocumentTypeForContentPicker';
@@ -111,11 +111,11 @@ test('can choose start node for the content picker in the content', async ({umbr
// Act
await umbracoUi.content.goToContentWithName(contentName);
- await umbracoUi.content.clickChooseButton();
+ await umbracoUi.content.addContentPicker(childContentPickerName);
+ await umbracoUi.content.clickSaveAndPublishButton();
// Assert
- await umbracoUi.content.isContentNameVisible(childContentPickerName);
- await umbracoUi.content.isContentNameVisible(contentPickerName, false);
+ await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.published);
// Clean
await umbracoApi.dataType.ensureNameNotExists(customDataTypeName);
@@ -123,7 +123,7 @@ test('can choose start node for the content picker in the content', async ({umbr
await umbracoApi.documentType.ensureNameNotExists(childContentPickerDocumentTypeName);
});
-test.skip('can ignore user start node for the content picker in the content', async ({umbracoApi, umbracoUi}) => {
+test('can create content with content picker with ignore start node', async ({umbracoApi, umbracoUi}) => {
// Arrange
const customDataTypeName = 'CustomContentPicker';
const childContentPickerDocumentTypeName = 'ChildDocumentTypeForContentPicker';
@@ -142,11 +142,11 @@ test.skip('can ignore user start node for the content picker in the content', as
// Act
await umbracoUi.content.goToContentWithName(contentName);
- await umbracoUi.content.clickChooseButton();
+ await umbracoUi.content.addContentPicker(childContentPickerName);
+ await umbracoUi.content.clickSaveAndPublishButton();
// Assert
- await umbracoUi.content.isContentNameVisible(childContentPickerName);
- await umbracoUi.content.isContentNameVisible(contentPickerName);
+ await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.published);
// Clean
await umbracoApi.dataType.ensureNameNotExists(customDataTypeName);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithCustomDataType.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithCustomDataType.spec.ts
index 896f3eff04..6323370e94 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithCustomDataType.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithCustomDataType.spec.ts
@@ -107,8 +107,7 @@ test('can add decimal number to the decimal in the content section', async ({umb
expect(contentData.values[0].value).toEqual(decimal);
});
-// Skip this test as currently there is no code editor property editor available.
-test.skip('can create content with the custom data type with code editor property editor', async ({umbracoApi, umbracoUi}) => {
+test('can create content with the custom data type with code editor property editor', async ({umbracoApi, umbracoUi}) => {
// Arrange
customDataTypeName = 'Code Editor';
const customDataTypeId = await umbracoApi.dataType.createCodeEditorDataType(customDataTypeName);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithImageMediaPicker.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithImageMediaPicker.spec.ts
index e55fb00f3e..b4bdc32674 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithImageMediaPicker.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithImageMediaPicker.spec.ts
@@ -142,7 +142,8 @@ test.skip('image count can not be more than max amount set in image media picker
// Act
await umbracoUi.content.goToContentWithName(contentName);
- await umbracoUi.content.clickChooseButtonAndSelectMediaWithName(mediaName);
+ await umbracoUi.content.clickChooseButton();
+ await umbracoUi.content.clickMediaWithName(mediaName);
await umbracoUi.content.clickSubmitButton();
await umbracoUi.content.clickSaveButton();
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithMultiURLPicker.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithMultiURLPicker.spec.ts
index 7f18baf83c..33d71b8531 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithMultiURLPicker.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithMultiURLPicker.spec.ts
@@ -82,6 +82,7 @@ test('can publish content with the document link', async ({umbracoApi, umbracoUi
await umbracoUi.content.clickAddMultiURLPickerButton();
await umbracoUi.content.clickDocumentLinkButton();
await umbracoUi.content.selectLinkByName(linkedDocumentName);
+ await umbracoUi.waitForTimeout(500); // Wait for the document link to be selected
await umbracoUi.content.clickButtonWithName('Choose');
await umbracoUi.content.clickAddButton();
await umbracoUi.content.clickSaveAndPublishButton();
@@ -350,9 +351,7 @@ test.skip('cannot submit an empty link using spacebar', async ({umbracoApi, umbr
await umbracoUi.content.isTextWithMessageVisible(ConstantHelper.validationMessages.emptyLinkPicker);
});
-// TODO: Remove skip when the front-end ready. Currently it is impossible to link to unpublished document
-// Issue link: https://github.com/umbraco/Umbraco-CMS/issues/17974
-test.skip('can create content with the link to an unpublished document', async ({umbracoApi, umbracoUi}) => {
+test('can create content with the link to an unpublished document', async ({umbracoApi, umbracoUi}) => {
// Arrange
const expectedState = 'Draft';
const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithPropertyEditors.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithPropertyEditors.spec.ts
deleted file mode 100644
index 46181dd242..0000000000
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithPropertyEditors.spec.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-import {ConstantHelper, test} from '@umbraco/playwright-testhelpers';
-import {expect} from "@playwright/test";
-
-const contentName = 'TestContent';
-const documentTypeName = 'TestDocumentTypeForContent';
-
-test.beforeEach(async ({umbracoApi}) => {
- await umbracoApi.documentType.ensureNameNotExists(documentTypeName);
- await umbracoApi.document.ensureNameNotExists(contentName);
-});
-
-test.afterEach(async ({umbracoApi}) => {
- await umbracoApi.document.ensureNameNotExists(contentName);
- await umbracoApi.documentType.ensureNameNotExists(documentTypeName);
-});
-
-// TODO: Skip this test as TinyMCE is replaced by Tiptap. This test should be updated.
-test.skip('can create content with the Rich Text Editor datatype', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => {
- // Arrange
- const dataTypeName = 'Richtext editor';
- const contentText = 'This is Rich Text Editor content!';
- 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.clickCreateActionMenuOption();
- await umbracoUi.content.chooseDocumentType(documentTypeName);
- await umbracoUi.content.enterContentName(contentName);
- await umbracoUi.content.enterRichTextArea(contentText);
- await umbracoUi.content.clickSaveAndPublishButton();
-
- // Assert
- await umbracoUi.content.isSuccessStateVisibleForSaveAndPublishButton();
- expect(await umbracoApi.document.doesNameExist(contentName)).toBeTruthy();
- const contentData = await umbracoApi.document.getByName(contentName);
- expect(contentData.values[0].value.markup).toEqual('
' + contentText + '
');
-});
-
-// TODO: Remove skip when the front-end is ready. Currently it returns error when publishing a content
-test.skip('can create content with the upload file datatype', async ({umbracoApi, umbracoUi}) => {
- // Arrange
- const dataTypeName = 'Upload File';
- const uploadFilePath = 'Umbraco.png';
- 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.clickCreateActionMenuOption();
- await umbracoUi.content.chooseDocumentType(documentTypeName);
- await umbracoUi.content.enterContentName(contentName);
- await umbracoUi.content.uploadFile('./fixtures/mediaLibrary/' + uploadFilePath);
- await umbracoUi.content.clickSaveAndPublishButton();
-
- // Assert
- await umbracoUi.content.isSuccessStateVisibleForSaveAndPublishButton();
- expect(await umbracoApi.document.doesNameExist(contentName)).toBeTruthy();
- const contentData = await umbracoApi.document.getByName(contentName);
- expect(contentData.values[0].value.src).toContainEqual(uploadFilePath);
-});
-
-// TODO: Remove skip and update the test when the front-end is ready. Currently the list of content is not displayed.
-test.skip('can create content with the list view - content datatype', async ({umbracoApi, umbracoUi}) => {
- // Arrange
- const dataTypeName = 'List View - Content';
- const contentListViewName = 'TestListViewContent';
- const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
- const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, dataTypeName, dataTypeData.id);
- const contentPickerId = await umbracoApi.document.createDefaultDocument(contentListViewName, documentTypeId);
- await umbracoUi.goToBackOffice();
- await umbracoUi.content.goToSection(ConstantHelper.sections.content);
-
- // Act
- await umbracoUi.content.clickActionsMenuAtRoot();
- await umbracoUi.content.clickCreateActionMenuOption();
- await umbracoUi.content.chooseDocumentType(documentTypeName);
- await umbracoUi.content.enterContentName(contentName);
- // TODO: add step to interact with the list
- await umbracoUi.content.clickSaveAndPublishButton();
-
- // Assert
- await umbracoUi.content.isSuccessStateVisibleForSaveAndPublishButton();
- expect(await umbracoApi.document.doesNameExist(contentName)).toBeTruthy();
-
- // Clean
- await umbracoApi.document.delete(contentPickerId);
-});
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadArticle.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadArticle.spec.ts
index 45ccef76cd..182d3ee83d 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadArticle.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadArticle.spec.ts
@@ -88,8 +88,7 @@ for (const uploadFile of uploadFiles) {
});
}
-// TODO: Remove skip when the front-end is ready. Currently the uploaded file still displays after removing.
-test.skip('can remove an article file in the content', async ({umbracoApi, umbracoUi}) => {
+test('can remove an article file in the content', async ({umbracoApi, umbracoUi}) => {
// Arrange
const uploadFileName = 'Article.pdf';
const mimeType = 'application/pdf';
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadAudio.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadAudio.spec.ts
index 22774235e1..a8180c09e3 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadAudio.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadAudio.spec.ts
@@ -89,8 +89,7 @@ for (const uploadFile of uploadFiles) {
});
}
-// TODO: Remove skip when the front-end is ready. Currently the uploaded file still displays after removing.
-test.skip('can remove an audio file in the content', async ({umbracoApi, umbracoUi}) => {
+test('can remove an audio file in the content', async ({umbracoApi, umbracoUi}) => {
// Arrange
const uploadFileName = 'Audio.mp3';
const mineType = 'audio/mpeg';
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadFile.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadFile.spec.ts
index fc619145e2..0a19ba7ff8 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadFile.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadFile.spec.ts
@@ -87,8 +87,7 @@ for (const uploadFile of uploadFiles) {
});
}
-// TODO: Remove skip when the front-end is ready. Currently the uploaded file still displays after removing.
-test.skip('can remove a text file in the content', async ({umbracoApi, umbracoUi}) => {
+test('can remove a text file in the content', async ({umbracoApi, umbracoUi}) => {
// Arrange
const uploadFileName = 'File.txt';
const mineType = 'text/plain';
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadVideo.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadVideo.spec.ts
index 5caafc4356..8824220a4f 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadVideo.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/ContentWithUploadVideo.spec.ts
@@ -77,6 +77,7 @@ for (const uploadVideo of uploadVideos) {
// Act
await umbracoUi.content.goToContentWithName(contentName);
await umbracoUi.content.uploadFile(uploadVideoPath + uploadVideo.fileName);
+ await umbracoUi.waitForTimeout(500);
await umbracoUi.content.clickSaveButton();
// Assert
@@ -88,8 +89,7 @@ for (const uploadVideo of uploadVideos) {
});
}
-// 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}) => {
+test('can remove a mp4 file in the content', async ({umbracoApi, umbracoUi}) => {
// Arrange
const uploadFileName = 'Video.mp4';
const mineType = 'video/mp4';
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/CultureAndHostnames.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/CultureAndHostnames.spec.ts
index 80b302f3e2..cbeb2def15 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/CultureAndHostnames.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/CultureAndHostnames.spec.ts
@@ -46,7 +46,7 @@ test('can add a culture', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => {
});
// Really flaky tests, only occurs on pipeline
-test('can add a domain', async ({umbracoApi, umbracoUi}) => {
+test.skip('can add a domain', async ({umbracoApi, umbracoUi}) => {
// Act
await umbracoUi.content.clickActionsMenuForContent(contentName);
await umbracoUi.content.clickCultureAndHostnamesActionMenuOption();
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/IssueWithScheduledPublishing.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/IssueWithScheduledPublishing.spec.ts
index c2845760e5..b29250dd89 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/IssueWithScheduledPublishing.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/IssueWithScheduledPublishing.spec.ts
@@ -18,8 +18,7 @@ test.afterEach(async ({umbracoApi}) => {
await umbracoApi.language.ensureNameNotExists(languageName);
});
-// https://github.com/umbraco/Umbraco-CMS/issues/18555
-test.skip('Can schedule publish after unselecting all languages', async ({umbracoUi}) => {
+test('can schedule publish after unselecting all languages', async ({umbracoUi}) => {
// Arrange
await umbracoUi.goToBackOffice();
await umbracoUi.content.goToSection(ConstantHelper.sections.content);
@@ -30,12 +29,12 @@ test.skip('Can schedule publish after unselecting all languages', async ({umbrac
await umbracoUi.content.goToContentWithName('(' + contentName + ')');
await umbracoUi.content.enterContentName('Tester');
await umbracoUi.content.clickViewMoreOptionsButton();
- await umbracoUi.content.clickScheduleButton();
+ await umbracoUi.content.clickSchedulePublishButton();
await umbracoUi.waitForTimeout(500);
await umbracoUi.content.clickSelectAllCheckbox();
await umbracoUi.waitForTimeout(500);
await umbracoUi.content.clickSelectAllCheckbox();
- await umbracoUi.content.clickButtonWithName(contentName);
+ await umbracoUi.content.clickSchedulePublishLanguageButton(languageName);
// Assert
await umbracoUi.content.doesSchedulePublishModalButtonContainDisabledTag(false);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RedirectManagement.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RedirectManagement.spec.ts
index 197a882e4f..a840fd03ff 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RedirectManagement.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RedirectManagement.spec.ts
@@ -5,27 +5,28 @@ const disableStatus = 'Disabled';
const enableStatus = 'Enabled';
let documentTypeId = '';
let contentId = '';
-const contentName = 'TestContent';
+const contentName = 'TestContentRedirectURL';
const documentTypeName = 'TestDocumentType';
const updatedContentName = 'UpdatedContentName';
+const rootDocumentName = 'RootDocument';
test.beforeEach(async ({umbracoApi, umbracoUi}) => {
await umbracoApi.redirectManagement.setStatus(enableStatus);
- await umbracoUi.goToBackOffice();
- // Create a content
await umbracoApi.documentType.ensureNameNotExists(documentTypeName);
documentTypeId = await umbracoApi.documentType.createDefaultDocumentTypeWithAllowAsRoot(documentTypeName);
+ await umbracoUi.goToBackOffice();
+ // Create a published root document
+ const rootDocumentId = await umbracoApi.document.createDefaultDocument(rootDocumentName, documentTypeId);
+ await umbracoApi.document.publish(rootDocumentId);
+ // Create a published content
contentId = await umbracoApi.document.createDefaultDocument(contentName, documentTypeId);
- // Publish the content
- await umbracoUi.content.goToSection(ConstantHelper.sections.content);
- await umbracoUi.content.clickActionsMenuForContent(contentName);
- await umbracoUi.content.clickPublishActionMenuOption();
- await umbracoUi.content.clickConfirmToPublishButton();
+ await umbracoApi.document.publish(contentId);
});
test.afterEach(async ({umbracoApi}) => {
await umbracoApi.redirectManagement.setStatus(enableStatus);
await umbracoApi.document.ensureNameNotExists(contentName);
+ await umbracoApi.document.ensureNameNotExists(rootDocumentName);
await umbracoApi.documentType.ensureNameNotExists(documentTypeName);
});
@@ -35,15 +36,15 @@ test('can disable URL tracker', async ({umbracoApi, umbracoUi}) => {
await umbracoUi.redirectManagement.clickRedirectManagementTab();
await umbracoUi.redirectManagement.clickDisableURLTrackerButton();
await umbracoUi.redirectManagement.clickDisableButton();
-
- // Assert
- // Verify that if renaming a published page, there are no redirects have been made
- // rename the published content
+ // Rename the published content
await umbracoUi.content.goToSection(ConstantHelper.sections.content);
await umbracoUi.content.goToContentWithName(contentName);
await umbracoUi.content.enterContentName(updatedContentName);
await umbracoUi.content.clickSaveAndPublishButton();
- // verify that there is no redirects have been made
+
+ // Assert
+ await umbracoUi.content.isSuccessStateVisibleForSaveAndPublishButton();
+ // Verify that there is no redirects have been made
const contentUrl = await umbracoApi.document.getDocumentUrl(contentId);
await umbracoUi.content.goToSection(ConstantHelper.sections.content);
await umbracoUi.redirectManagement.clickRedirectManagementTab();
@@ -53,8 +54,7 @@ test('can disable URL tracker', async ({umbracoApi, umbracoUi}) => {
expect(statusData.status).toBe(disableStatus);
});
-// TODO: Remove skip when the frond-end is ready. Currently there is no redirect have been made after renaming a published page
-test.skip('can re-enable URL tracker', async ({umbracoApi, umbracoUi}) => {
+test('can re-enable URL tracker', async ({umbracoApi, umbracoUi}) => {
// Arrange
await umbracoApi.redirectManagement.setStatus(disableStatus);
@@ -62,15 +62,15 @@ test.skip('can re-enable URL tracker', async ({umbracoApi, umbracoUi}) => {
await umbracoUi.content.goToSection(ConstantHelper.sections.content);
await umbracoUi.redirectManagement.clickRedirectManagementTab();
await umbracoUi.redirectManagement.clickEnableURLTrackerButton();
-
- // Assert
- // Verify that if renaming a published page, there are one redirects have been made
- // rename the published content
+ // Rename the published content
await umbracoUi.content.goToSection(ConstantHelper.sections.content);
await umbracoUi.content.goToContentWithName(contentName);
await umbracoUi.content.enterContentName(updatedContentName);
await umbracoUi.content.clickSaveAndPublishButton();
- // verify that there is one redirects have been made
+
+ // Assert
+ await umbracoUi.content.isSuccessStateVisibleForSaveAndPublishButton();
+ // Verify that there is one redirects have been made
const contentUrl = await umbracoApi.document.getDocumentUrl(contentId);
await umbracoUi.content.goToSection(ConstantHelper.sections.content);
await umbracoUi.redirectManagement.clickRedirectManagementTab();
@@ -80,11 +80,15 @@ test.skip('can re-enable URL tracker', async ({umbracoApi, umbracoUi}) => {
expect(statusData.status).toBe(enableStatus);
});
-// TODO: Remove skip and update this when the front-end is ready. Currently it always return "No redirects matching this search criteria" when searching.
-test.skip('can search for original URL', async ({umbracoUi}) => {
+test('can search for original URL', async ({umbracoApi, umbracoUi}) => {
// Arrange
- const searchKeyword = '/test-content/';
- // TODO: rename content to add an item in the redirect url management
+ const searchKeyword = 'redirect';
+ // Rename the published content
+ await umbracoUi.content.goToSection(ConstantHelper.sections.content);
+ await umbracoUi.content.goToContentWithName(contentName);
+ await umbracoUi.content.enterContentName(updatedContentName);
+ await umbracoUi.content.clickSaveAndPublishButton();
+ await umbracoUi.content.isSuccessStateVisibleForSaveAndPublishButton();
// Act
await umbracoUi.content.goToSection(ConstantHelper.sections.content);
@@ -93,24 +97,27 @@ test.skip('can search for original URL', async ({umbracoUi}) => {
await umbracoUi.redirectManagement.clickSearchButton();
// Assert
- // TODO: verify the search result
+ await umbracoUi.redirectManagement.doesRedirectManagementRowsHaveCount(1);
+ const contentUrl = await umbracoApi.document.getDocumentUrl(contentId);
+ await umbracoUi.redirectManagement.isTextWithExactNameVisible(contentUrl);
});
-// TODO: Remove skip when the frond-end is ready. Currently there is no redirect have been made after renaming a published page
-test.skip('can delete a redirect', async ({umbracoApi, umbracoUi}) => {
+test('can delete a redirect', async ({umbracoApi, umbracoUi}) => {
// Arrange
// Rename the published content
await umbracoUi.content.goToSection(ConstantHelper.sections.content);
await umbracoUi.content.goToContentWithName(contentName);
await umbracoUi.content.enterContentName(updatedContentName);
await umbracoUi.content.clickSaveAndPublishButton();
+ await umbracoUi.content.isSuccessStateVisibleForSaveAndPublishButton();
+ const contentUrl = await umbracoApi.document.getDocumentUrl(contentId);
// Act
await umbracoUi.content.goToSection(ConstantHelper.sections.content);
await umbracoUi.redirectManagement.clickRedirectManagementTab();
+ await umbracoUi.redirectManagement.isTextWithExactNameVisible(contentUrl);
await umbracoUi.redirectManagement.deleteFirstRedirectURL();
// Assert
- const contentUrl = await umbracoApi.document.getDocumentUrl(contentId);
await umbracoUi.redirectManagement.isTextWithExactNameVisible(contentUrl, false);
});
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/ContentWithTiptap.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/ContentWithTiptap.spec.ts
index 5feb94ba38..1b83e2a2f6 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/ContentWithTiptap.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/ContentWithTiptap.spec.ts
@@ -1,4 +1,4 @@
-import {ConstantHelper, NotificationConstantHelper, test} from '@umbraco/playwright-testhelpers';
+import {ConstantHelper, test} from '@umbraco/playwright-testhelpers';
import {expect} from "@playwright/test";
const contentName = 'TestContent';
@@ -85,131 +85,3 @@ test('can publish content with RTE Tiptap property editor', async ({umbracoApi,
expect(contentData.variants[0].state).toBe(expectedState);
expect(contentData.values[0].value.markup).toEqual('' + inputText + '
');
});
-
-test('can add a media in RTE Tiptap property editor', async ({umbracoApi, umbracoUi}) => {
- // Arrange
- const iconTitle = 'Media Picker';
- const imageName = 'Test Image For Content';
- await umbracoApi.media.ensureNameNotExists(imageName);
- await umbracoApi.media.createDefaultMediaWithImage(imageName);
- const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, customDataTypeName, customDataTypeId);
- 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.clickTipTapToolbarIconWithTitle(iconTitle);
- // fix this
- await umbracoUi.content.selectMediaWithName(imageName);
- await umbracoUi.content.clickChooseModalButton();
- await umbracoUi.content.clickMediaCaptionAltTextModalSubmitButton();
- await umbracoUi.content.clickSaveButton();
-
- // Assert
- await umbracoUi.content.isSuccessStateVisibleForSaveButton();
- expect(await umbracoApi.document.doesNameExist(contentName)).toBeTruthy();
- const contentData = await umbracoApi.document.getByName(contentName);
- expect(contentData.values[0].value.markup).toContain('
{
- // Arrange
- const iconTitle = 'Embed';
- const videoURL = 'https://www.youtube.com/watch?v=Yu29dE-0OoI';
- const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, customDataTypeName, customDataTypeId);
- 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.clickTipTapToolbarIconWithTitle(iconTitle);
- await umbracoUi.content.enterEmbeddedURL(videoURL);
- await umbracoUi.content.clickEmbeddedRetrieveButton();
- await umbracoUi.content.waitForEmbeddedPreviewVisible();
- await umbracoUi.content.clickEmbeddedMediaModalConfirmButton();
- await umbracoUi.content.clickSaveButton();
-
- // Assert
- await umbracoUi.content.isSuccessStateVisibleForSaveButton();
- expect(await umbracoApi.document.doesNameExist(contentName)).toBeTruthy();
- const contentData = await umbracoApi.document.getByName(contentName);
- expect(contentData.values[0].value.markup).toContain('data-embed-url');
- expect(contentData.values[0].value.markup).toContain(videoURL);
-});
-
-test('cannot submit an empty link in RTE Tiptap property editor', async ({umbracoApi, umbracoUi}) => {
- // Arrange
- const iconTitle = 'Link';
- const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, customDataTypeName, customDataTypeId);
- 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.clickTipTapToolbarIconWithTitle(iconTitle);
- await umbracoUi.content.clickManualLinkButton();
- await umbracoUi.content.enterLink('');
- await umbracoUi.content.enterAnchorOrQuerystring('');
- await umbracoUi.content.enterLinkTitle('');
- await umbracoUi.content.clickAddButton();
-
- // Assert
- await umbracoUi.content.isTextWithMessageVisible(ConstantHelper.validationMessages.emptyLinkPicker);
-});
-
-test('cannot submit an empty URL with an anchor or querystring in RTE Tiptap property editor', async ({umbracoApi, umbracoUi}) => {
- // Arrange
- const iconTitle = 'Link';
- const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, customDataTypeName, customDataTypeId);
- 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.clickTipTapToolbarIconWithTitle(iconTitle);
- await umbracoUi.content.clickManualLinkButton();
- await umbracoUi.content.enterLink('');
- await umbracoUi.content.enterAnchorOrQuerystring('#value');
- await umbracoUi.content.clickAddButton();
-
- // Assert
- await umbracoUi.content.isTextWithMessageVisible(ConstantHelper.validationMessages.emptyLinkPicker);
-});
-
-test('can insert a link to an unpublished document in RTE Tiptap property editor', async ({umbracoApi, umbracoUi}) => {
- // Arrange
- const iconTitle = 'Link';
- const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithPropertyEditor(documentTypeName, customDataTypeName, customDataTypeId);
- await umbracoApi.document.createDefaultDocument(contentName, documentTypeId);
- // Create a document to link
- const documentTypeForLinkedDocumentName = 'TestDocumentType';
- const documentTypeForLinkedDocumentId = await umbracoApi.documentType.createDefaultDocumentTypeWithAllowAsRoot(documentTypeForLinkedDocumentName);
- const linkedDocumentName = 'LinkedDocument';
- await umbracoApi.document.createDefaultDocument(linkedDocumentName, documentTypeForLinkedDocumentId);
- await umbracoUi.goToBackOffice();
- await umbracoUi.content.goToSection(ConstantHelper.sections.content);
-
- // Act
- await umbracoUi.content.goToContentWithName(contentName);
- await umbracoUi.content.clickTipTapToolbarIconWithTitle(iconTitle);
- await umbracoUi.content.clickDocumentLinkButton();
- await umbracoUi.content.selectLinkByName(linkedDocumentName);
- await umbracoUi.content.clickButtonWithName('Choose');
- await umbracoUi.content.clickAddButton();
- await umbracoUi.content.clickSaveButton();
-
- // Assert
- await umbracoUi.content.waitForContentToBeCreated();
-
- // Clean
- await umbracoApi.documentType.ensureNameNotExists(documentTypeForLinkedDocumentName);
- await umbracoApi.document.ensureNameNotExists(linkedDocumentName);
-});
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/TiptapToolbar.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/TiptapToolbar.spec.ts
index dc4a77ffe9..9c61a24955 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/TiptapToolbar.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/TiptapToolbar.spec.ts
@@ -1,4 +1,4 @@
-import {ConstantHelper, NotificationConstantHelper, test} from '@umbraco/playwright-testhelpers';
+import {ConstantHelper, test} from '@umbraco/playwright-testhelpers';
import {expect} from "@playwright/test";
const contentName = 'TestContent';
@@ -137,6 +137,7 @@ test('can insert a link to an unpublished document in RTE Tiptap property editor
await umbracoUi.content.clickDocumentLinkButton();
await umbracoUi.content.selectLinkByName(linkedDocumentName);
await umbracoUi.content.clickButtonWithName('Choose');
+ await umbracoUi.waitForTimeout(500); // Wait for the link to be inserted
await umbracoUi.content.clickAddButton();
await umbracoUi.content.clickSaveButton();
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/VariantTipTapBlocks.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/VariantTipTapBlocks.spec.ts
index a15238c55e..84dc1ed91c 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/VariantTipTapBlocks.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Content/RichTextEditor/VariantTipTapBlocks.spec.ts
@@ -80,7 +80,6 @@ test('can not create unsupported invariant document type with invariant tiptap R
// Assert
await umbracoUi.content.isFailedStateButtonVisible();
- await umbracoUi.content.isErrorNotificationVisible();
await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished);
expect(await umbracoApi.document.isDocumentPublished(contentId)).toBeFalsy();
});
@@ -101,7 +100,6 @@ test('can not create unsupported invariant document type with invariant tiptap R
// Assert
await umbracoUi.content.isFailedStateButtonVisible();
- await umbracoUi.content.isErrorNotificationVisible();
await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.documentCouldNotBePublished);
expect(await umbracoApi.document.isDocumentPublished(contentId)).toBeFalsy();
});
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/Block/BlockGridBlockAdvanced.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/Block/BlockGridBlockAdvanced.spec.ts
index d05b35237c..be267b18ff 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/Block/BlockGridBlockAdvanced.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/Block/BlockGridBlockAdvanced.spec.ts
@@ -42,7 +42,7 @@ test.skip('can remove a custom view from a block', async ({umbracoApi, umbracoUi
await umbracoUi.dataType.goToBlockAdvancedTab();
});
-// TODO: Remove skip and update test when the front-end is ready. Currently stylesheets are saved as arrays
+// TODO: Remove skip and update test when the front-end is ready. Currently it is not possible to add a custom stylesheet to a block
test.skip('can remove a custom stylesheet from a block', async ({umbracoApi, umbracoUi}) => {
// Arrange
const stylesheetName = 'TestStylesheet.css'
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/BlockGridEditor.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/BlockGridEditor.spec.ts
index e1c0b28fb3..f255bdc861 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/BlockGridEditor.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockGrid/BlockGridEditor.spec.ts
@@ -392,5 +392,22 @@ test('can update grid columns in a block grid editor', async ({umbracoApi, umbra
test.skip('can add a stylesheet a block grid editor', async ({umbracoApi, umbracoUi}) => {
});
-test.skip('can remove a stylesheet in a block grid editor', async ({umbracoApi, umbracoUi}) => {
+test('can remove a stylesheet in a block grid editor', async ({umbracoApi, umbracoUi}) => {
+ // Arrange
+ const stylesheetName = 'TestStylesheet.css';
+ await umbracoApi.stylesheet.createDefaultStylesheet(stylesheetName);
+ await umbracoApi.dataType.createBlockGridWithLayoutStylesheet(blockGridEditorName, stylesheetName);
+
+ // Act
+ await umbracoUi.dataType.goToDataType(blockGridEditorName);
+ await umbracoUi.dataType.clickRemoveStylesheetButton(stylesheetName);
+ await umbracoUi.dataType.clickConfirmRemoveButton();
+ await umbracoUi.dataType.clickSaveButton();
+
+ // Assert
+ await umbracoUi.dataType.isSuccessStateVisibleForSaveButton();
+ expect(await umbracoApi.dataType.doesBlockGridContainLayoutStylesheet(blockGridEditorName, stylesheetName)).toBeFalsy();
+
+ // Clean
+ await umbracoApi.stylesheet.ensureNameNotExists(stylesheetName);
});
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockListEditor/BlockListBlocks.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockListEditor/BlockListBlocks.spec.ts
index e2f5be0f5e..49f502c462 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockListEditor/BlockListBlocks.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/BlockListEditor/BlockListBlocks.spec.ts
@@ -111,7 +111,7 @@ test('can open content model in a block', async ({umbracoApi, umbracoUi}) => {
await umbracoUi.dataType.isElementWorkspaceOpenInBlock(elementTypeName);
});
-// TODO: Skip this test as it is impossible to remove a content model
+// Skip this test as it is impossible to remove a content model in front-end
test.skip('can remove a content model from a block', async ({umbracoApi, umbracoUi}) => {
// Arrange
const textStringData = await umbracoApi.dataType.getByName(dataTypeName);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/ImageCropper.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/ImageCropper.spec.ts
index a801abc0df..5583ac494d 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/ImageCropper.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/ImageCropper.spec.ts
@@ -18,57 +18,64 @@ test.afterEach(async ({umbracoApi}) => {
test('can add crop', async ({umbracoApi, umbracoUi}) => {
// Arrange
- const cropData = ['Test Label', 'Test Alias', 100, 50];
+ const cropObject = {label: 'Test Label', alias: AliasHelper.toAlias('Test Label'), width: 100, height: 50};
await umbracoApi.dataType.createDefaultImageCropperDataType(customDataTypeName);
await umbracoUi.dataType.goToDataType(customDataTypeName);
// Act
+ await umbracoUi.dataType.clickCreateCropButton();
await umbracoUi.dataType.enterCropValues(
- cropData[0].toString(),
- cropData[1].toString(),
- cropData[2].toString(),
- cropData[3].toString()
+ cropObject.label,
+ cropObject.alias,
+ cropObject.width.toString(),
+ cropObject.height.toString()
);
- await umbracoUi.dataType.clickAddCropButton();
+ await umbracoUi.dataType.clickCreateCropButton();
await umbracoUi.dataType.clickSaveButton();
// Assert
await umbracoUi.dataType.isSuccessStateVisibleForSaveButton();
- expect(await umbracoApi.dataType.doesDataTypeHaveCrops(customDataTypeName, cropData[0], cropData[1], cropData[2], cropData[3])).toBeTruthy();
+ expect(await umbracoApi.dataType.doesDataTypeHaveCrops(customDataTypeName, cropObject.label, cropObject.alias, cropObject.width, cropObject.height)).toBeTruthy();
});
test('can edit crop', async ({umbracoApi, umbracoUi}) => {
// Arrange
- const cropData = ['Test Label', AliasHelper.toAlias('Test Label'), 100, 50];
- const updatedCropData = ['Updated Label', AliasHelper.toAlias('Updated Label'), 80, 30];
- await umbracoApi.dataType.createImageCropperDataTypeWithOneCrop(customDataTypeName, cropData[0], cropData[2], cropData[3]);
+ const cropObject = {label: 'Test Label', alias: AliasHelper.toAlias('Test Label'), width: 100, height: 50};
+ const updatedCropObject = {label: 'Updated Label', alias: AliasHelper.toAlias('Updated Label'), width: 80, height: 30};
+
+ await umbracoApi.dataType.createImageCropperDataTypeWithOneCrop(customDataTypeName, cropObject.label, cropObject.width, cropObject.height);
await umbracoUi.dataType.goToDataType(customDataTypeName);
// Act
- await umbracoUi.dataType.editCropByAlias(cropData[0]);
- await umbracoUi.dataType.enterCropValues(updatedCropData[0], updatedCropData[1], updatedCropData[2].toString(), updatedCropData[3].toString());
- await umbracoUi.dataType.clickSaveCropButton();
+ await umbracoUi.dataType.editCropByAlias(cropObject.alias);
+ await umbracoUi.dataType.enterCropValues(
+ updatedCropObject.label,
+ updatedCropObject.alias,
+ updatedCropObject.width.toString(),
+ updatedCropObject.height.toString()
+ );
+ await umbracoUi.dataType.clickEditCropButton();
await umbracoUi.dataType.clickSaveButton();
// Assert
await umbracoUi.dataType.isSuccessStateVisibleForSaveButton();
- expect(await umbracoApi.dataType.doesDataTypeHaveCrops(customDataTypeName, updatedCropData[0], updatedCropData[1], updatedCropData[2], updatedCropData[3])).toBeTruthy();
- expect(await umbracoApi.dataType.doesDataTypeHaveCrops(customDataTypeName, cropData[0], cropData[1], cropData[2], cropData[3])).toBeFalsy();
+ expect(await umbracoApi.dataType.doesDataTypeHaveCrops(customDataTypeName, updatedCropObject.label, updatedCropObject.alias, updatedCropObject.width, updatedCropObject.height)).toBeTruthy();
+ expect(await umbracoApi.dataType.doesDataTypeHaveCrops(customDataTypeName, cropObject.label, cropObject.alias, cropObject.width, cropObject.height)).toBeFalsy();
});
test('can delete crop', async ({umbracoApi, umbracoUi}) => {
// Arrange
- const cropData = ['Deleted Alias', AliasHelper.toAlias('Deleted Alias'), 50, 100];
- await umbracoApi.dataType.createImageCropperDataTypeWithOneCrop(customDataTypeName, cropData[0], cropData[2], cropData[3]);
+ const cropObject = {label: 'Deleted Label', alias: AliasHelper.toAlias('Deleted Label'), width: 50, height: 100};
+ await umbracoApi.dataType.createImageCropperDataTypeWithOneCrop(customDataTypeName, cropObject.label, cropObject.width, cropObject.height);
await umbracoUi.dataType.goToDataType(customDataTypeName);
// Act
- await umbracoUi.dataType.removeCropByAlias(cropData[0].toString());
+ await umbracoUi.dataType.removeCropByAlias(cropObject.alias);
await umbracoUi.dataType.clickSaveButton();
// Assert
await umbracoUi.dataType.isSuccessStateVisibleForSaveButton();
- expect(await umbracoApi.dataType.doesDataTypeHaveCrops(customDataTypeName, cropData[0], cropData[1], cropData[2], cropData[3])).toBeFalsy();
+ expect(await umbracoApi.dataType.doesDataTypeHaveCrops(customDataTypeName, cropObject.label, cropObject.alias, cropObject.width, cropObject.height)).toBeFalsy();
});
test('the default configuration is correct', async ({umbracoApi, umbracoUi}) => {
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/MediaPicker.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/MediaPicker.spec.ts
index 747751d49d..b15983c854 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/MediaPicker.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/MediaPicker.spec.ts
@@ -1,4 +1,4 @@
-import {ConstantHelper, NotificationConstantHelper, test} from '@umbraco/playwright-testhelpers';
+import {AliasHelper, ConstantHelper, test} from '@umbraco/playwright-testhelpers';
import {expect} from "@playwright/test";
const mediaPickerTypes = [
@@ -67,23 +67,25 @@ test('can update enable focal point', async ({umbracoApi, umbracoUi}) => {
test('can add image crop', async ({umbracoApi, umbracoUi}) => {
// Arrange
- const cropData = ['Test Label', 'testAlias', 100, 50];
+ const cropObject = {label: 'Test Label', alias: AliasHelper.toAlias('Test Label'), width: 100, height: 50};
await umbracoApi.dataType.createDefaultMediaPickerDataType(customDataTypeName);
await umbracoUi.dataType.goToDataType(customDataTypeName);
// Act
+ await umbracoUi.dataType.clickCreateCropButton();
+
await umbracoUi.dataType.enterCropValues(
- cropData[0].toString(),
- cropData[1].toString(),
- cropData[2].toString(),
- cropData[3].toString()
+ cropObject.label,
+ cropObject.alias,
+ cropObject.width.toString(),
+ cropObject.height.toString()
);
- await umbracoUi.dataType.clickAddCropButton();
+ await umbracoUi.dataType.clickCreateCropButton();
await umbracoUi.dataType.clickSaveButton();
// Assert
await umbracoUi.dataType.isSuccessStateVisibleForSaveButton();
- expect(await umbracoApi.dataType.doesDataTypeHaveCrops(customDataTypeName, cropData[0], cropData[1], cropData[2], cropData[3])).toBeTruthy();
+ expect(await umbracoApi.dataType.doesDataTypeHaveCrops(customDataTypeName, cropObject.label, cropObject.alias, cropObject.width, cropObject.height)).toBeTruthy();
});
test('can update ignore user start nodes', async ({umbracoApi, umbracoUi}) => {
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/MultiUrlPicker.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/MultiUrlPicker.spec.ts
index 599c94b185..ac0661264a 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/MultiUrlPicker.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/MultiUrlPicker.spec.ts
@@ -90,6 +90,7 @@ test('can update hide anchor/query string input', async ({umbracoApi, umbracoUi}
});
// TODO: Remove skip when the front-end is ready. Currently you still can update the minimum greater than the maximum.
+// Issue link: https://github.com/umbraco/Umbraco-CMS/issues/17509
test.skip('cannot update the minimum number of items greater than the maximum', async ({umbracoApi, umbracoUi}) => {
// Arrange
const minimumValue = 5;
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/Numeric.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/Numeric.spec.ts
index 5ca6b71eb8..93a9837faf 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/Numeric.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/Numeric.spec.ts
@@ -77,6 +77,7 @@ test.skip('can allow decimals', async ({umbracoApi, umbracoUi}) => {
});
// TODO: Remove skip when the front-end is ready. Currently you still can update the minimum greater than the maximum.
+// Issue link: https://github.com/umbraco/Umbraco-CMS/issues/17509
test.skip('cannot update the minimum greater than the maximum', async ({umbracoApi, umbracoUi}) => {
// Arrange
const minimumValue = 5;
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/Textstring.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/Textstring.spec.ts
index 02821b3d50..2123e8a631 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/Textstring.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/DataType/Textstring.spec.ts
@@ -31,8 +31,9 @@ test('can update maximum allowed characters value', async ({umbracoApi, umbracoU
expect(await umbracoApi.dataType.doesDataTypeHaveValue(customDataTypeName, 'maxChars', maxCharsValue)).toBeTruthy();
});
-// Remove fixme when the front-end is ready. The "Input type" should be removed.
-test.fixme('the default configuration is correct', async ({umbracoApi, umbracoUi}) => {
+// Remove .skip when the front-end is ready. The "Input type" should be removed.
+// Issue link: https://github.com/umbraco/Umbraco-CMS/issues/19340
+test.skip('the default configuration is correct', async ({umbracoApi, umbracoUi}) => {
// Act
await umbracoUi.dataType.goToDataType(dataTypeName);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Dictionary/Dictionary.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Dictionary/Dictionary.spec.ts
index c8155e889c..f77000d4e9 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Dictionary/Dictionary.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Dictionary/Dictionary.spec.ts
@@ -169,7 +169,7 @@ test('can import a dictionary item with descendants', {tag: '@smoke'}, async ({u
});
// Skip this test as the search function is removed
-test.skip('can search a dictionary item in list when have results', async ({umbracoApi, umbracoUi}) => {
+test('can search a dictionary item in list when have results', async ({umbracoApi, umbracoUi}) => {
// Arrange
await umbracoApi.dictionary.ensureNameNotExists(dictionaryName);
await umbracoApi.dictionary.create(dictionaryName);
@@ -182,10 +182,9 @@ test.skip('can search a dictionary item in list when have results', async ({umbr
expect(await umbracoUi.dictionary.doesDictionaryListHaveText(dictionaryName)).toBeTruthy();
});
-// Skip this test as the search function is removed
-test.skip('can search a dictionary item in list when have no results', async ({umbracoApi, umbracoUi}) => {
+test('can search a dictionary item in list when have no results', async ({umbracoApi, umbracoUi}) => {
// Arrange
- const emptySearchResultMessage = 'No Dictionary items to choose from';
+ const emptySearchResultMessage = 'No items';
await umbracoApi.dictionary.ensureNameNotExists(dictionaryName);
await umbracoApi.dictionary.create(dictionaryName);
await umbracoUi.dictionary.goToSection(ConstantHelper.sections.dictionary);
@@ -195,4 +194,4 @@ test.skip('can search a dictionary item in list when have no results', async ({u
// Assert
await umbracoUi.dictionary.isSearchResultMessageDisplayEmpty(emptySearchResultMessage);
-});
+});
\ No newline at end of file
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Media/ListViewMedia.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Media/ListViewMedia.spec.ts
index f33a608668..9ec4658c46 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Media/ListViewMedia.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Media/ListViewMedia.spec.ts
@@ -114,8 +114,7 @@ test('can allow bulk trash in the media section', async ({umbracoApi, umbracoUi}
await umbracoUi.media.isItemVisibleInRecycleBin(secondMediaFileName, true, false);
});
-// TODO: Remove fixme when update code to select media successfully.
-test.fixme('can allow bulk move in the media section', async ({umbracoApi, umbracoUi}) => {
+test('can allow bulk move in the media section', async ({umbracoApi, umbracoUi}) => {
// Arrange
const mediaFolderName = 'Test Folder Name';
await umbracoApi.media.ensureNameNotExists(mediaFolderName);
@@ -125,10 +124,12 @@ test.fixme('can allow bulk move in the media section', async ({umbracoApi, umbra
await umbracoUi.media.goToSection(ConstantHelper.sections.media);
await umbracoUi.media.selectMediaWithName(firstMediaFileName);
await umbracoUi.media.selectMediaWithName(secondMediaFileName);
+ await umbracoUi.waitForTimeout(200);
await umbracoUi.media.clickBulkMoveToButton();
await umbracoUi.media.clickCaretButtonForName('Media');
await umbracoUi.media.clickModalTextByName(mediaFolderName);
await umbracoUi.media.clickChooseModalButton();
+ await umbracoUi.waitForTimeout(500);
// Assert
await umbracoUi.media.waitForMediaToBeMoved();
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Media/Media.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Media/Media.spec.ts
index ada2e6f149..14ec1d0fe5 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Media/Media.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Media/Media.spec.ts
@@ -67,6 +67,7 @@ for (const mediaFileType of mediaFileTypes) {
await umbracoUi.media.clickCreateMediaWithType(mediaFileType.fileName);
await umbracoUi.media.enterMediaItemName(mediaFileType.fileName);
await umbracoUi.media.uploadFile('./fixtures/mediaLibrary/' + mediaFileType.filePath);
+ await umbracoUi.waitForTimeout(500); // Wait for the file to be uploaded
await umbracoUi.media.clickSaveButton();
// Assert
@@ -219,7 +220,7 @@ test('can delete a media item from the recycle bin', async ({umbracoApi, umbraco
await umbracoUi.media.goToSection(ConstantHelper.sections.media);
// Act
- await umbracoUi.media.isItemVisibleInRecycleBin(mediaFileName);
+ await umbracoUi.media.isItemVisibleInRecycleBin(mediaFileName, true, true);
await umbracoUi.media.deleteMediaItem(mediaFileName);
// Assert
@@ -237,13 +238,13 @@ test('can empty the recycle bin', async ({umbracoApi, umbracoUi}) => {
await umbracoUi.media.goToSection(ConstantHelper.sections.media);
// Act
- await umbracoUi.media.isItemVisibleInRecycleBin(mediaFileName);
+ await umbracoUi.media.isItemVisibleInRecycleBin(mediaFileName, true, true);
await umbracoUi.media.clickEmptyRecycleBinButton();
await umbracoUi.media.clickConfirmEmptyRecycleBinButton();
// Assert
+ await umbracoUi.media.waitForRecycleBinToBeEmptied();
await umbracoUi.media.isItemVisibleInRecycleBin(mediaFileName, false, false);
- await umbracoUi.media.doesSuccessNotificationHaveText(NotificationConstantHelper.success.emptiedRecycleBin);
expect(await umbracoApi.media.doesNameExist(mediaFileName)).toBeFalsy();
expect(await umbracoApi.media.doesMediaItemExistInRecycleBin(mediaFileName)).toBeFalsy();
});
@@ -260,7 +261,7 @@ test('can trash a media node with a relation', async ({umbracoApi, umbracoUi}) =
// Act
await umbracoUi.media.clickActionsMenuForName(mediaFileName);
- await umbracoUi.media.clickTrashButton();
+ await umbracoUi.media.clickTrashActionMenuOption();
// Verify the references list
await umbracoUi.media.doesReferenceHeadlineHaveText(ConstantHelper.trashDeleteDialogMessage.referenceHeadline);
await umbracoUi.media.doesReferenceItemsHaveCount(1);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Members/Members.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Members/Members.spec.ts
index 6bbc40f1dd..c959d876c3 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Members/Members.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Members/Members.spec.ts
@@ -1,4 +1,4 @@
-import {ConstantHelper, NotificationConstantHelper, test} from '@umbraco/playwright-testhelpers';
+import {NotificationConstantHelper, test} from '@umbraco/playwright-testhelpers';
import {expect} from "@playwright/test";
let memberId = '';
@@ -39,6 +39,7 @@ test('can create a member', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) =>
// Assert
await umbracoUi.member.waitForMemberToBeCreated();
+ await umbracoUi.member.isSuccessStateIconVisible()
await umbracoUi.member.clickMembersSidebarButton();
await umbracoUi.member.isMemberWithNameVisible(memberName, true);
expect(await umbracoApi.member.doesNameExist(memberName)).toBeTruthy();
@@ -244,8 +245,7 @@ test('cannot create member with invalid email', async ({umbracoApi, umbracoUi})
expect(await umbracoApi.member.doesNameExist(memberName)).toBeFalsy();
});
-// TODO: Remove skip when the front-end is ready. Currently it is possible to update member with invalid email.
-test.skip('cannot update email to an invalid email', async ({umbracoApi, umbracoUi}) => {
+test('cannot update email to an invalid email', async ({umbracoApi, umbracoUi}) => {
// Arrange
const invalidEmail = 'invalidemail';
memberTypeId = await umbracoApi.memberType.createDefaultMemberType(memberTypeName);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Packages/InstalledPackages.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Packages/InstalledPackages.spec.ts
index fbd11c8cfd..9164b496f5 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Packages/InstalledPackages.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Packages/InstalledPackages.spec.ts
@@ -1,6 +1,6 @@
import {ConstantHelper, test} from '@umbraco/playwright-testhelpers';
-test.skip('can see the umbraco package is installed', async ({umbracoUi}) => {
+test('can see the umbraco package is installed', async ({umbracoUi}) => {
// Arrange
await umbracoUi.goToBackOffice();
await umbracoUi.package.goToSection(ConstantHelper.sections.packages);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Packages/PackagesPackages.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Packages/PackagesPackages.spec.ts
index 19b4f74a99..ac91cf55d6 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Packages/PackagesPackages.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Packages/PackagesPackages.spec.ts
@@ -1,14 +1,12 @@
import {ConstantHelper, test} from '@umbraco/playwright-testhelpers';
-// TODO: There is currently an issue with playwright and the Iframe in the marketplace, look into this.
// The MarketPlace is a iFrame we are using from the DXP team, so it is not something we should test. This test is just checking if we have the IFrame
-test.skip('can see the marketplace', async ({umbracoUi}) => {
+test('can see the marketplace', async ({umbracoUi}) => {
// Arrange
await umbracoUi.goToBackOffice();
- await umbracoUi.package.goToSection(ConstantHelper.sections.packages);
// Act
- await umbracoUi.package.clickPackagesTab();
+ await umbracoUi.package.goToSection(ConstantHelper.sections.packages);
// Assert
await umbracoUi.package.isMarketPlaceIFrameVisible();
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/RelationTypes/RelationTypes.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/RelationTypes/RelationTypes.spec.ts
index f831ca285e..536cf77f5d 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/RelationTypes/RelationTypes.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/RelationTypes/RelationTypes.spec.ts
@@ -1,7 +1,6 @@
import {test} from '@umbraco/playwright-testhelpers';
import {expect} from "@playwright/test";
-// Skip all tests as this feature is removed
const relationTypeName = 'Test Relation Type';
const objectTypeName = 'Document';
let relationTypeId = '';
@@ -18,6 +17,7 @@ test.afterEach(async ({umbracoApi}) => {
await umbracoApi.relationType.ensureNameNotExists(relationTypeName);
});
+// Skip all tests as this feature is removed
test.skip('can create a relation type', async ({umbracoApi, umbracoUi}) => {
// Act
await umbracoUi.relationType.clickActionsMenuAtRoot();
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/RenderingContent/RenderingContentWithMultipleMediaPicker.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/RenderingContent/RenderingContentWithMultipleMediaPicker.spec.ts
index 6b516df736..0d231bd569 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/RenderingContent/RenderingContentWithMultipleMediaPicker.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/RenderingContent/RenderingContentWithMultipleMediaPicker.spec.ts
@@ -40,8 +40,7 @@ test('can render content with multiple media picker value', async ({umbracoApi,
await umbracoUi.contentRender.doesContentRenderValueContainText(secondMediaFileName);
});
-// Remove .fixme when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18531
-test.fixme('can render content with multiple image media picker value', async ({umbracoApi, umbracoUi}) => {
+test('can render content with multiple image media picker value', async ({umbracoApi, umbracoUi}) => {
// Arrange
const dataTypeName = 'Multiple Image Media Picker';
const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/ExamineManagement.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/ExamineManagement.spec.ts
index b5b61a5faf..c8fdd1fb24 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/ExamineManagement.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/ExamineManagement.spec.ts
@@ -7,7 +7,7 @@ test.beforeEach(async ({umbracoUi}) => {
await umbracoUi.examineManagement.clickExamineManagementTab();
});
-test.skip('can view indexers information', async ({umbracoApi, umbracoUi}) => {
+test('can view indexers information', async ({umbracoApi, umbracoUi}) => {
// Arrange
const allIndexersData = await umbracoApi.indexer.getAll();
const indexerCount = allIndexersData.total;
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/Profiling.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/Profiling.spec.ts
index be7ae4e21d..7f5d864ba4 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/Profiling.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/Profiling.spec.ts
@@ -1,12 +1,11 @@
import {ConstantHelper, test} from '@umbraco/playwright-testhelpers';
-test.beforeEach(async ({umbracoUi}) => {
+test('can update value of activate the profiler by default', async ({umbracoUi}) => {
+ // Arrange
await umbracoUi.goToBackOffice();
await umbracoUi.profiling.goToSection(ConstantHelper.sections.settings);
await umbracoUi.profiling.clickProfilingTab();
-});
-test('can update value of activate the profiler by default', async ({umbracoUi}) => {
// Act
await umbracoUi.profiling.clickActivateProfilerByDefaultToggle();
await umbracoUi.reloadPage();
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/Telemetry.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/Telemetry.spec.ts
index 09595139c2..dc116934d7 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/Telemetry.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Dashboard/Telemetry.spec.ts
@@ -16,7 +16,9 @@ test('can change telemetry level', async ({page, umbracoApi, umbracoUi}) => {
const expectedLevel = "Minimal";
const levelValue = "1";
await umbracoUi.telemetryData.clickTelemetryDataTab();
+ await umbracoUi.waitForTimeout(500);
await umbracoUi.telemetryData.changeTelemetryDataLevelValue(levelValue);
+ await umbracoUi.waitForTimeout(500);
// We wait until we are sure that the Telemetry level has been saved before we continue.
await Promise.all([
@@ -27,8 +29,7 @@ test('can change telemetry level', async ({page, umbracoApi, umbracoUi}) => {
// Assert
// UI
await umbracoUi.reloadPage();
- await expect(page.locator('[name="telemetryLevel"] >> input[id=input]')).toHaveValue(levelValue, {timeout: 20000});
- // await umbracoUi.telemetryData.doesTelemetryDataLevelHaveValue(levelValue);
+ await umbracoUi.telemetryData.doesTelemetryDataLevelHaveValue(levelValue);
// API
expect(await umbracoApi.telemetry.getLevel() == expectedLevel).toBeTruthy();
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeCollectionWorkspace.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeCollectionWorkspace.spec.ts
index 3001fe9c99..85edfa5c21 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeCollectionWorkspace.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeCollectionWorkspace.spec.ts
@@ -1,4 +1,4 @@
-import {ConstantHelper, NotificationConstantHelper, test} from '@umbraco/playwright-testhelpers';
+import {ConstantHelper, test} from '@umbraco/playwright-testhelpers';
import {expect} from '@playwright/test';
const documentTypeName = 'TestDocumentType';
@@ -93,8 +93,6 @@ test('can create a document type folder using create options', async ({umbracoAp
// Assert
await umbracoUi.documentType.waitForDocumentTypeToBeCreated();
- const folder = await umbracoApi.documentType.getByName(documentFolderName);
- expect(folder.name).toBe(documentFolderName);
// Check if the created document type folder is displayed in the collection view and has correct icon
await umbracoUi.documentType.clickDocumentTypesMenu();
await umbracoUi.documentType.doesCollectionTreeItemTableRowHaveName(documentFolderName);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeDesignTab.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeDesignTab.spec.ts
index c4c317d3e2..6f085a9bd5 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeDesignTab.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeDesignTab.spec.ts
@@ -258,7 +258,8 @@ test('can remove a composition from a document type', async ({umbracoApi, umbrac
await umbracoApi.documentType.ensureNameNotExists(compositionDocumentTypeName);
});
-test('can reorder groups in a document type', async ({umbracoApi, umbracoUi}) => {
+// Skip this flaky tests as sometimes the properties are not dragged correctly.
+test.skip('can reorder groups in a document type', async ({umbracoApi, umbracoUi}) => {
// Arrange
const dataTypeData = await umbracoApi.dataType.getByName(dataTypeName);
const secondGroupName = 'SecondGroup';
@@ -268,7 +269,9 @@ test('can reorder groups in a document type', async ({umbracoApi, umbracoUi}) =>
// Act
await umbracoUi.documentType.clickReorderButton();
- const groupValues = await umbracoUi.documentType.reorderTwoGroups();
+
+ // Drag and Drop
+ const groupValues = await umbracoUi.documentType.reorderTwoGroups(groupName, secondGroupName);
const firstGroupValue = groupValues.firstGroupValue;
const secondGroupValue = groupValues.secondGroupValue;
await umbracoUi.documentType.clickIAmDoneReorderingButton();
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeTemplatesTab.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeTemplatesTab.spec.ts
index 8d0aeb57b7..2fb5eb9f9a 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeTemplatesTab.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/DocumentType/DocumentTypeTemplatesTab.spec.ts
@@ -60,8 +60,7 @@ test('can set an allowed template as default for document type', async ({umbraco
await umbracoApi.template.ensureNameNotExists(secondTemplateName);
});
-// TODO: Remove skip when the front-end is ready. Currently the error displays when remove an allowed template
-test.skip('can remove an allowed template from a document type', async ({umbracoApi, umbracoUi}) => {
+test('can remove an allowed template from a document type', async ({umbracoApi, umbracoUi}) => {
// Arrange
await umbracoApi.documentType.createDocumentTypeWithAllowedTemplate(documentTypeName, templateId);
await umbracoUi.documentType.goToSection(ConstantHelper.sections.settings);
@@ -69,7 +68,7 @@ test.skip('can remove an allowed template from a document type', async ({umbraco
// Act
await umbracoUi.documentType.goToDocumentType(documentTypeName);
await umbracoUi.documentType.clickDocumentTypeTemplatesTab();
- await umbracoUi.documentType.clickRemoveWithName(templateName, true);
+ await umbracoUi.documentType.clickRemoveWithName(templateName);
await umbracoUi.documentType.clickSaveButton();
// Assert
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/PartialView/PartialView.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/PartialView/PartialView.spec.ts
index fb975529e6..8c77f463f4 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/PartialView/PartialView.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/PartialView/PartialView.spec.ts
@@ -1,4 +1,4 @@
-import {ConstantHelper, NotificationConstantHelper, test} from '@umbraco/playwright-testhelpers';
+import {ConstantHelper, test} from '@umbraco/playwright-testhelpers';
import {expect} from "@playwright/test";
const partialViewName = 'TestPartialView';
@@ -111,8 +111,7 @@ test('can update a partial view content', {tag: '@smoke'}, async ({umbracoApi, u
expect(updatedPartialView.content).toBe(updatedPartialViewContent);
});
-// Remove .fixme when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18536
-test.fixme('can use query builder with Order By statement for a partial view', async ({umbracoApi, umbracoUi}) => {
+test('can use query builder with Order By statement for a partial view', async ({umbracoApi, umbracoUi}) => {
//Arrange
const propertyAliasValue = 'UpdateDate';
const isAscending = true;
@@ -151,8 +150,7 @@ test.fixme('can use query builder with Order By statement for a partial view', a
expect(updatedPartialView.content).toBe(expectedTemplateContent);
});
-// Remove .fixme when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18536
-test.fixme('can use query builder with Where statement for a partial view', async ({umbracoApi, umbracoUi}) => {
+test('can use query builder with Where statement for a partial view', async ({umbracoApi, umbracoUi}) => {
//Arrange
const propertyAliasValue = 'Name';
const operatorValue = 'is';
@@ -194,17 +192,16 @@ test.fixme('can use query builder with Where statement for a partial view', asyn
test('can insert dictionary item into a partial view', async ({umbracoApi, umbracoUi}) => {
// Arrange
+ const partialViewContent = '@Umbraco.GetDictionaryValue("' + dictionaryName + '")' + defaultPartialViewContent;
await umbracoApi.partialView.create(partialViewFileName, defaultPartialViewContent, '/');
expect(await umbracoApi.partialView.doesExist(partialViewFileName)).toBeTruthy();
-
await umbracoApi.dictionary.ensureNameNotExists(dictionaryName);
await umbracoApi.dictionary.create(dictionaryName);
- const partialViewContent = '@Umbraco.GetDictionaryValue("' + dictionaryName + '")' + defaultPartialViewContent;
-
// Act
await umbracoUi.partialView.openPartialViewAtRoot(partialViewFileName);
await umbracoUi.partialView.insertDictionaryItem(dictionaryName);
+ await umbracoUi.waitForTimeout(500); // Wait for the dictionary item to be inserted
await umbracoUi.partialView.clickSaveButton();
// Assert
@@ -250,8 +247,7 @@ test('can delete a partial view', {tag: '@smoke'}, async ({umbracoApi, umbracoUi
await umbracoUi.partialView.isPartialViewRootTreeItemVisible(partialViewFileName, false, false);
});
-// TODO: Remove skip when the front-end is ready. Currently the returned items count is not updated after choosing the root content.
-test.skip('can show returned items in query builder ', async ({umbracoApi, umbracoUi}) => {
+test('can show returned items in query builder ', async ({umbracoApi, umbracoUi}) => {
//Arrange
// Create content at root with a child
const documentTypeName = 'ParentDocumentType';
@@ -261,12 +257,14 @@ test.skip('can show returned items in query builder ', async ({umbracoApi, umbra
const childDocumentTypeId = await umbracoApi.documentType.createDefaultDocumentTypeWithAllowAsRoot(childDocumentTypeName);
const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithAllowedChildNode(documentTypeName, childDocumentTypeId);
const contentId = await umbracoApi.document.createDefaultDocument(contentName, documentTypeId);
- await umbracoApi.document.createDefaultDocumentWithParent(childContentName, childDocumentTypeId, contentId);
+ const childContentId = await umbracoApi.document.createDefaultDocumentWithParent(childContentName, childDocumentTypeId, contentId);
+ await umbracoApi.document.publish(contentId);
+ await umbracoApi.document.publish(childContentId);
// Create partial view
await umbracoApi.partialView.create(partialViewFileName, partialViewFileName, '/');
expect(await umbracoApi.partialView.doesExist(partialViewFileName)).toBeTruthy();
- //Act
+ // Act
await umbracoUi.partialView.openPartialViewAtRoot(partialViewFileName);
await umbracoUi.partialView.clickQueryBuilderButton();
await umbracoUi.partialView.chooseRootContentInQueryBuilder(contentName);
@@ -277,6 +275,9 @@ test.skip('can show returned items in query builder ', async ({umbracoApi, umbra
// Clean
await umbracoApi.documentType.ensureNameNotExists(documentTypeName);
+ await umbracoApi.documentType.ensureNameNotExists(childDocumentTypeName);
+ await umbracoApi.document.ensureNameNotExists(contentName);
+ await umbracoApi.document.ensureNameNotExists(childContentName);
});
test('cannot create a partial view with an empty name', async ({umbracoApi, umbracoUi}) => {
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Stylesheet/Stylesheet.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Stylesheet/Stylesheet.spec.ts
index be9657a16e..0667fdce87 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Stylesheet/Stylesheet.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Stylesheet/Stylesheet.spec.ts
@@ -2,9 +2,7 @@ import {ConstantHelper, NotificationConstantHelper, test} from '@umbraco/playwri
import {expect} from '@playwright/test';
const stylesheetName = 'TestStyleSheetFile.css';
-const styleName = 'TestStyleName';
-const styleSelector = 'h1';
-const styleStyles = 'color:red';
+const stylesheetContent = 'TestContent';
test.beforeEach(async ({umbracoUi,umbracoApi}) => {
await umbracoUi.goToBackOffice();
@@ -34,7 +32,6 @@ test('can create a empty stylesheet', {tag: '@smoke'}, async ({umbracoApi, umbra
test('can create a stylesheet with content', async ({umbracoApi, umbracoUi}) => {
// Arrange
- const stylesheetContent = 'TestContent';
await umbracoUi.stylesheet.goToSection(ConstantHelper.sections.settings);
//Act
@@ -53,21 +50,22 @@ test('can create a stylesheet with content', async ({umbracoApi, umbracoUi}) =>
await umbracoUi.stylesheet.isStylesheetRootTreeItemVisible(stylesheetName);
});
-test.skip('can update a stylesheet', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => {
+test('can update a stylesheet', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => {
// Arrange
- const stylesheetContent = '/**umb_name:' + styleName + '*/\n' + styleSelector + ' {\n\t' + styleStyles + '\n}';
- await umbracoApi.stylesheet.create(stylesheetName, '', '/');
+ const updatedContent = 'UpdatedTestContent';
+ await umbracoApi.stylesheet.create(stylesheetName, stylesheetContent, '/');
expect(await umbracoApi.stylesheet.doesExist(stylesheetName)).toBeTruthy();
await umbracoUi.stylesheet.goToSection(ConstantHelper.sections.settings);
//Act
await umbracoUi.stylesheet.openStylesheetByNameAtRoot(stylesheetName);
+ await umbracoUi.stylesheet.enterStylesheetContent(updatedContent);
await umbracoUi.stylesheet.clickSaveButton();
// Assert
await umbracoUi.stylesheet.isSuccessStateVisibleForSaveButton();
const stylesheetData = await umbracoApi.stylesheet.getByName(stylesheetName);
- expect(stylesheetData.content).toEqual(stylesheetContent);
+ expect(stylesheetData.content).toEqual(updatedContent);
});
test('can delete a stylesheet', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => {
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Template/Templates.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Template/Templates.spec.ts
index bdca513e24..17d89c475a 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Template/Templates.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Settings/Template/Templates.spec.ts
@@ -136,8 +136,7 @@ test('can remove a master template', async ({umbracoApi, umbracoUi}) => {
await umbracoApi.template.ensureNameNotExists(childTemplateName);
});
-// Remove skip when the front-end is ready. Currently this function is not stable, sometimes the shown code is not updated after choosing Order By
-test.skip('can use query builder with Order By statement for a template', async ({umbracoApi, umbracoUi}) => {
+test('can use query builder with Order By statement for a template', async ({umbracoApi, umbracoUi}) => {
// Arrange
const propertyAliasValue = 'UpdateDate';
const isAscending = true;
@@ -175,8 +174,7 @@ test.skip('can use query builder with Order By statement for a template', async
expect(templateData.content).toBe(expectedTemplateContent);
});
-// Remove .fixme when the issue is fixed: https://github.com/umbraco/Umbraco-CMS/issues/18536
-test.fixme('can use query builder with Where statement for a template', async ({umbracoApi, umbracoUi}) => {
+test('can use query builder with Where statement for a template', async ({umbracoApi, umbracoUi}) => {
// Arrange
const propertyAliasValue = 'Name';
const operatorValue = 'is';
@@ -330,25 +328,26 @@ test('can insert value into a template', async ({umbracoApi, umbracoUi}) => {
expect(templateData.content).toBe(templateContent);
});
-// TODO: Remove skip when the front-end is ready. Currently the returned items count is not updated after choosing the root content.
-test.skip('can show returned items in query builder ', async ({umbracoApi, umbracoUi}) => {
+test('can show returned items in query builder ', async ({umbracoApi, umbracoUi}) => {
// Arrange
// Create content at root with a child
const documentTypeName = 'ParentDocumentType';
const childDocumentTypeName = 'ChildDocumentType';
- const contentName = 'ContentName';
- const childContentName = 'ChildContentName';
+ const contentName = 'ContentNameTemplate';
+ const childContentName = 'ChildContentNameTemplate';
const childDocumentTypeId = await umbracoApi.documentType.createDefaultDocumentTypeWithAllowAsRoot(childDocumentTypeName);
const documentTypeId = await umbracoApi.documentType.createDocumentTypeWithAllowedChildNode(documentTypeName, childDocumentTypeId);
const contentId = await umbracoApi.document.createDefaultDocument(contentName, documentTypeId);
- await umbracoApi.document.createDefaultDocumentWithParent(childContentName, childDocumentTypeId, contentId);
+ const childContentId = await umbracoApi.document.createDefaultDocumentWithParent(childContentName, childDocumentTypeId, contentId);
+ await umbracoApi.document.publish(contentId);
+ await umbracoApi.document.publish(childContentId);
// Create template
await umbracoApi.template.createDefaultTemplate(templateName);
// Act
await umbracoUi.template.goToTemplate(templateName);
await umbracoUi.template.clickQueryBuilderButton();
- await umbracoUi.template.chooseRootContentInQueryBuilder('(' + contentName + ')');
+ await umbracoUi.template.chooseRootContentInQueryBuilder(contentName);
// Assert
await umbracoUi.template.doesReturnedItemsHaveCount(1);
@@ -356,6 +355,9 @@ test.skip('can show returned items in query builder ', async ({umbracoApi, umbra
// Clean
await umbracoApi.documentType.ensureNameNotExists(documentTypeName);
+ await umbracoApi.documentType.ensureNameNotExists(childDocumentTypeName);
+ await umbracoApi.document.ensureNameNotExists(contentName);
+ await umbracoApi.document.ensureNameNotExists(childContentName);
});
test('cannot create a template with an empty name', {tag: '@smoke'}, async ({umbracoApi, umbracoUi}) => {
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/User/ContentStartNodes.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/User/ContentStartNodes.spec.ts
index 70bd76fcca..ea84ad5161 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/User/ContentStartNodes.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/User/ContentStartNodes.spec.ts
@@ -69,9 +69,7 @@ test('can see parent of start node but not access it', async ({umbracoApi, umbra
// Assert
await umbracoUi.content.isContentInTreeVisible(rootDocumentName);
await umbracoUi.content.goToContentWithName(rootDocumentName);
- await umbracoUi.content.isErrorNotificationVisible();
- // TODO: Uncomment this when this issue is fixed https://github.com/umbraco/Umbraco-CMS/issues/18533
- //await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.noAccessToResource);
+ await umbracoUi.content.doesDocumentWorkspaceHaveText('Access denied');
await umbracoUi.content.clickCaretButtonForContentName(rootDocumentName);
await umbracoUi.content.isChildContentInTreeVisible(rootDocumentName, childDocumentOneName);
await umbracoUi.content.isChildContentInTreeVisible(rootDocumentName, childDocumentTwoName, false);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/User/MediaStartNodes.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/User/MediaStartNodes.spec.ts
index bc9637b05a..c8720a7a41 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/User/MediaStartNodes.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/User/MediaStartNodes.spec.ts
@@ -61,11 +61,8 @@ test('can see parent of start node but not access it', async ({umbracoApi, umbra
// Assert
await umbracoUi.media.isMediaTreeItemVisible(rootFolderName);
- await umbracoUi.waitForTimeout(500);
await umbracoUi.media.goToMediaWithName(rootFolderName);
- await umbracoUi.content.isErrorNotificationVisible();
- // TODO: Uncomment this when this issue is fixed https://github.com/umbraco/Umbraco-CMS/issues/18533
- //await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.noAccessToResource);
+ await umbracoUi.media.doesMediaWorkspaceHaveText('Access denied');
await umbracoUi.media.clickCaretButtonForMediaName(rootFolderName);
await umbracoUi.media.isChildMediaVisible(rootFolderName, childFolderOneName);
await umbracoUi.media.isChildMediaVisible(rootFolderName, childFolderTwoName, false);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/ContentStartNodes.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/ContentStartNodes.spec.ts
index 09c8ed8e39..1648b0e6ff 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/ContentStartNodes.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/ContentStartNodes.spec.ts
@@ -1,4 +1,4 @@
-import {ConstantHelper, NotificationConstantHelper, test} from '@umbraco/playwright-testhelpers';
+import {ConstantHelper, test} from '@umbraco/playwright-testhelpers';
const testUser = ConstantHelper.testUserCredentials;
let testUserCookieAndToken = {cookie: "", accessToken: "", refreshToken: ""};
@@ -71,9 +71,7 @@ test('can see parent of start node but not access it', async ({umbracoApi, umbra
// Assert
await umbracoUi.content.isContentInTreeVisible(rootDocumentName);
await umbracoUi.content.goToContentWithName(rootDocumentName);
- await umbracoUi.content.isErrorNotificationVisible();
- // TODO: Uncomment this when this issue is fixed https://github.com/umbraco/Umbraco-CMS/issues/18533
- //await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.noAccessToResource);
+ await umbracoUi.content.doesDocumentWorkspaceHaveText('Access denied');
await umbracoUi.content.clickCaretButtonForContentName(rootDocumentName);
await umbracoUi.content.isChildContentInTreeVisible(rootDocumentName, childDocumentOneName);
await umbracoUi.content.isChildContentInTreeVisible(rootDocumentName, childDocumentTwoName, false);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DefaultPermissionsInContent.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DefaultPermissionsInContent.spec.ts
index 4778d60401..11aad82ae3 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DefaultPermissionsInContent.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DefaultPermissionsInContent.spec.ts
@@ -76,9 +76,7 @@ test('can not browse content node with permission disabled', async ({umbracoApi,
await umbracoUi.content.goToContentWithName(rootDocumentName);
// Assert
- await umbracoUi.content.isErrorNotificationVisible();
- // TODO: Uncomment this when this issue is fixed https://github.com/umbraco/Umbraco-CMS/issues/18533
- //await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.noAccessToResource);
+ await umbracoUi.content.doesDocumentWorkspaceHaveText('Not found');
});
test('can create document blueprint with permission enabled', async ({umbracoApi, umbracoUi}) => {
@@ -127,7 +125,8 @@ test('can delete content with delete permission enabled', async ({umbracoApi, um
await umbracoUi.content.clickConfirmTrashButton();
// Assert
- await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.movedToRecycleBin);
+ await umbracoUi.content.waitForContentToBeTrashed();
+ await umbracoUi.content.isItemVisibleInRecycleBin(rootDocumentName);
});
test('can not delete content with delete permission disabled', async ({umbracoApi, umbracoUi}) => {
@@ -159,7 +158,8 @@ test('can empty recycle bin with delete permission enabled', async ({umbracoApi,
await umbracoUi.content.clickConfirmEmptyRecycleBinButton();
// Assert
- await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.emptiedRecycleBin);
+ await umbracoUi.content.waitForRecycleBinToBeEmptied();
+ await umbracoUi.content.isItemVisibleInRecycleBin(rootDocumentName, false, false);
});
test('can not empty recycle bin with delete permission disabled', async ({umbracoApi, umbracoUi}) => {
@@ -270,7 +270,8 @@ test('can not publish content with publish permission disabled', async ({umbraco
await umbracoUi.content.isActionsMenuForNameVisible(rootDocumentName, false);
});
-// Bug, does nothing in the frontend.
+// Remove .skip when the front-end is ready. Currently there is no "Permissions" menu item displays
+// Issue link: https://github.com/umbraco/Umbraco-CMS/issues/19339
test.skip('can set permissions with set permissions permission enabled', async ({umbracoApi, umbracoUi}) => {
// Arrange
userGroupId = await umbracoApi.userGroup.createUserGroupWithSetPermissionsPermission(userGroupName);
@@ -539,8 +540,7 @@ test('can not set culture and hostnames with culture and hostnames permission di
await umbracoUi.content.isActionsMenuForNameVisible(rootDocumentName, false);
});
-// TODO: Notification is not correct 'Public access setting created' should be 'access'
-test.skip('can set public access with public access permission enabled', async ({umbracoApi, umbracoUi}) => {
+test('can set public access with public access permission enabled', async ({umbracoApi, umbracoUi}) => {
// Arrange
userGroupId = await umbracoApi.userGroup.createUserGroupWithPublicAccessPermission(userGroupName);
const testMemberGroup = 'TestMemberGroup';
@@ -593,6 +593,7 @@ test('can rollback content with rollback permission enabled', async ({umbracoApi
await umbracoUi.content.doesDocumentPropertyHaveValue(dataTypeName, updatedTextStringText);
await umbracoUi.content.clickInfoTab();
await umbracoUi.content.clickRollbackButton();
+ await umbracoUi.waitForTimeout(700); // Wait for the rollback items to load
await umbracoUi.content.clickLatestRollBackItem();
await umbracoUi.content.clickRollbackContainerButton();
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValueGranularPermission.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValueGranularPermission.spec.ts
index 8541d8d9d1..dd7ef6ebdc 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValueGranularPermission.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValueGranularPermission.spec.ts
@@ -50,7 +50,7 @@ test('can only see property values for specific document with read UI enabled',
await umbracoUi.content.isPropertyEditorUiWithNameReadOnly(firstPropertyName[1]);
await umbracoUi.content.isPropertyEditorUiWithNameReadOnly(secondPropertyName[1]);
await umbracoUi.content.goToContentWithName(secondDocumentName);
- await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.permissionDenied);
+ await umbracoUi.content.doesDocumentWorkspaceHaveText('Access denied');
});
test('cannot see specific property value without UI read permission enabled', async ({umbracoApi, umbracoUi}) => {
@@ -101,7 +101,7 @@ test('can see property with UI read enabled but not another property with UI rea
await umbracoUi.content.isPropertyEditorUiWithNameVisible(secondPropertyName[1], false);
});
-// Remove .skip when the front-end is ready.
+// Remove .skip when the front-end is ready.
// Issue link: https://github.com/umbraco/Umbraco-CMS/issues/19395
test.skip('can edit specific property values with UI read and write permission enabled', async ({umbracoApi, umbracoUi}) => {
// Arrange
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValuePermission.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValuePermission.spec.ts
index 4b558f8397..47a1703c9c 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValuePermission.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/DocumentPropertyValuePermission.spec.ts
@@ -70,7 +70,7 @@ test('cannot open content without document read permission even with UI read per
await umbracoUi.content.goToContentWithName(documentName);
// Assert
- await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.permissionDenied);
+ await umbracoUi.content.doesDocumentWorkspaceHaveText('Access denied');
});
test('cannot edit property values without UI write permission', async ({umbracoApi, umbracoUi}) => {
@@ -122,4 +122,4 @@ test('cannot see property values with only UI write but no UI read permission',
// Assert
await umbracoUi.content.isPropertyEditorUiWithNameVisible('text-box', false);
-});
\ No newline at end of file
+});
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/GranularPermissionsInContent.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/GranularPermissionsInContent.spec.ts
index 450d94b528..e2cb5eedef 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/GranularPermissionsInContent.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/GranularPermissionsInContent.spec.ts
@@ -269,6 +269,7 @@ test('can set culture and hostnames for a specific content with culture and host
// Assert
await umbracoUi.content.waitForDomainToBeCreated();
+ await umbracoUi.waitForTimeout(500); // Wait for the domain to be set
const document = await umbracoApi.document.getByName(firstDocumentName);
const domains = await umbracoApi.document.getDomains(document.id);
expect(domains.domains[0].domainName).toEqual(domainName);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/Languages.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/Languages.spec.ts
index e27f43c25e..29dd874a10 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/Languages.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/Languages.spec.ts
@@ -62,7 +62,8 @@ test.afterEach(async ({umbracoApi}) => {
await umbracoApi.documentType.ensureNameNotExists(documentTypeName);
});
-test.fixme('can rename content with language set in userGroup', async ({umbracoApi, umbracoUi}) => {
+// Remove .skip when the front-end is ready. Currently the content name is read-only so cannot remane it.
+test.skip('can rename content with language set in userGroup', async ({umbracoApi, umbracoUi}) => {
// Arrange
const updatedContentName = 'UpdatedContentName';
userGroupId = await umbracoApi.userGroup.createUserGroupWithLanguageAndContentSection(userGroupName, englishIsoCode);
@@ -75,7 +76,6 @@ test.fixme('can rename content with language set in userGroup', async ({umbracoA
// Act
await umbracoUi.content.isDocumentReadOnly(false);
await umbracoUi.content.enterContentName(updatedContentName);
- // Fix this later. Currently the "Save" button changed to "Save..." button
await umbracoUi.content.clickSaveButton();
await umbracoUi.content.clickSaveAndCloseButton();
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/MediaStartNodes.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/MediaStartNodes.spec.ts
index 1a72772e3b..ac284c12ba 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/MediaStartNodes.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/MediaStartNodes.spec.ts
@@ -62,11 +62,8 @@ test('can see parent of start node but not access it', async ({umbracoApi, umbra
// Assert
await umbracoUi.media.isMediaTreeItemVisible(rootFolderName);
- await umbracoUi.waitForTimeout(500);
await umbracoUi.media.goToMediaWithName(rootFolderName);
- await umbracoUi.content.isErrorNotificationVisible();
- // TODO: Uncomment this when this issue is fixed https://github.com/umbraco/Umbraco-CMS/issues/18533
- //await umbracoUi.content.doesErrorNotificationHaveText(NotificationConstantHelper.error.noAccessToResource);
+ await umbracoUi.media.doesMediaWorkspaceHaveText('Access denied');
await umbracoUi.media.clickCaretButtonForMediaName(rootFolderName);
await umbracoUi.media.isChildMediaVisible(rootFolderName, childFolderOneName);
await umbracoUi.media.isChildMediaVisible(rootFolderName, childFolderTwoName, false);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/MemberSection.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/MemberSection.spec.ts
index 47d0b2d1ea..f0233c05bc 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/MemberSection.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/Permissions/UserGroup/MemberSection.spec.ts
@@ -46,8 +46,7 @@ test('can access members section with section enabled', async ({umbracoApi, umbr
await umbracoUi.member.doesErrorNotificationHaveText(NotificationConstantHelper.error.noAccessToResource, false);
});
-// TODO: unskip when member creation is fixed
-test.skip('can create member with members section set', async ({umbracoApi, umbracoUi}) => {
+test('can create member with members section set', async ({umbracoApi, umbracoUi}) => {
// Arrange
userGroupId = await umbracoApi.userGroup.createUserGroupWithMemberSection(userGroupName);
await umbracoApi.user.setUserPermissions(testUser.name, testUser.email, testUser.password, userGroupId, [], true, [], false, 'en-us');
@@ -57,7 +56,7 @@ test.skip('can create member with members section set', async ({umbracoApi, umbr
await umbracoUi.member.clickMembersMenu();
// Act
- await umbracoUi.member.clickCreateButton();
+ await umbracoUi.member.clickCreateMembersButton();
await umbracoUi.member.enterMemberName(memberName);
await umbracoUi.member.clickInfoTab();
await umbracoUi.member.enterUsername(username);
@@ -74,8 +73,7 @@ test.skip('can create member with members section set', async ({umbracoApi, umbr
expect(await umbracoApi.member.doesNameExist(memberName)).toBeTruthy();
});
-// TODO: unskip when member creation is fixed
-test.skip('can update member with members section set', async ({umbracoApi, umbracoUi}) => {
+test('can update member with members section set', async ({umbracoApi, umbracoUi}) => {
// Arrange
userGroupId = await umbracoApi.userGroup.createUserGroupWithMemberSection(userGroupName);
memberTypeId = await umbracoApi.memberType.createDefaultMemberType(memberTypeName);
@@ -85,6 +83,7 @@ test.skip('can update member with members section set', async ({umbracoApi, umbr
testUserCookieAndToken = await umbracoApi.user.loginToUser(testUser.name, testUser.email, testUser.password);
await umbracoUi.goToBackOffice();
await umbracoUi.member.goToSection(ConstantHelper.sections.members, false);
+ await umbracoUi.member.clickMembersMenu();
// Act
await umbracoUi.member.clickMemberLinkByName(memberName);
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/User.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/User.spec.ts
index 32c7d55344..6feac90525 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/User.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/User.spec.ts
@@ -113,14 +113,14 @@ test('can remove a user group from a user', {tag: '@smoke'}, async ({umbracoApi,
test('can update culture for a user', async ({umbracoApi, umbracoUi}) => {
// Arrange
- const danishIsoCode = 'da-dk';
+ const danishIsoCode = 'da';
const userGroup = await umbracoApi.userGroup.getByName(defaultUserGroupName);
await umbracoApi.user.createDefaultUser(nameOfTheUser, userEmail, [userGroup.id]);
await umbracoUi.user.goToUsers();
// Act
await umbracoUi.user.clickUserWithName(nameOfTheUser);
- await umbracoUi.user.selectUserLanguage('Dansk (Danmark)');
+ await umbracoUi.user.selectUserLanguage(danishIsoCode);
await umbracoUi.user.clickSaveButton();
// Assert
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/UserGroups.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/UserGroups.spec.ts
index 1d54792e0c..c1aba1e0a4 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/UserGroups.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Users/UserGroups.spec.ts
@@ -3,7 +3,7 @@ import {expect} from "@playwright/test";
const allPermissions = {
uiPermission:
- ['Browse',
+ ['Read',
'Create Document Blueprint',
'Delete',
'Create',
diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Webhook/WebhookTrigger.spec.ts b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Webhook/WebhookTrigger.spec.ts
index 5b9f22d45a..9d4f1c68a2 100644
--- a/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Webhook/WebhookTrigger.spec.ts
+++ b/tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Webhook/WebhookTrigger.spec.ts
@@ -63,7 +63,7 @@ test('can trigger when content is deleted', async ({umbracoApi, umbracoUi}) => {
await umbracoUi.content.clickConfirmEmptyRecycleBinButton();
// Assert
- await umbracoUi.content.doesSuccessNotificationHaveText(NotificationConstantHelper.success.emptiedRecycleBin);
+ await umbracoUi.content.waitForRecycleBinToBeEmptied();
const webhookSiteData = await umbracoApi.webhook.getWebhookSiteRequestResponse(webhookSiteToken);
expect(webhookSiteData[0].content).toContain(contentId);
});
@@ -123,7 +123,7 @@ test('can trigger when media is deleted', async ({umbracoApi, umbracoUi}) => {
await umbracoUi.webhook.goToSection(ConstantHelper.sections.media);
// Act
- await umbracoUi.media.isItemVisibleInRecycleBin(mediaName);
+ await umbracoUi.media.isItemVisibleInRecycleBin(mediaName, true, true);
await umbracoUi.media.deleteMediaItem(mediaName);
await umbracoUi.media.waitForMediaToBeTrashed();
@@ -147,7 +147,7 @@ test('can trigger the webhook for a specific media type', async ({umbracoApi, um
await umbracoUi.webhook.goToSection(ConstantHelper.sections.media);
// Act
- await umbracoUi.media.isItemVisibleInRecycleBin(mediaName);
+ await umbracoUi.media.isItemVisibleInRecycleBin(mediaName, true, true);
await umbracoUi.media.deleteMediaItem(mediaName);
await umbracoUi.media.deleteMediaItem(secondMediaName);
@@ -239,4 +239,4 @@ test('can custom header for the webhook request', async ({umbracoApi, umbracoUi}
// Assert
const webhookSiteData = await umbracoApi.webhook.getWebhookSiteRequestResponse(webhookSiteToken);
expect(webhookSiteData[0].headers[headerName]).toEqual([headerValue]);
-});
\ No newline at end of file
+});