blob: 133b529883a1bfadf46516c4e5d754a0f210d1b3 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
const { doneLoading } = require("../utils");
const { login, sendPost } = require("../util/test-helper");
function setupBasicTest(componentName, properties, subpath = "") {
const body = {
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/slingform",
button: "Save",
"fields/jcr:primaryType": "nt:unstructured",
"fields/sling:resourceType": "sling-cms/components/general/container",
"fields/field/jcr:primaryType": "nt:unstructured",
"fields/field/sling:resourceType": `sling-cms/components/editor/fields/${subpath}${componentName}`,
};
Object.keys(properties).forEach((k) => {
body[`fields/field/${k}`] = properties[k];
});
sendPost(`/apps/it/${componentName}-basic`, body);
cy.visit(
`/cms/editor/edit.html/content/apache/sling-apache-org/it?editor=/apps/it/${componentName}-basic`
);
}
describe("Editor", () => {
before(() => {
login();
sendPost("/apps/it", {
":operation": "delete",
});
sendPost("/apps/it", {
"jcr:primaryType": "sling:Folder",
});
sendPost("/content/apache/sling-apache-org/it", {
":operation": "delete",
});
sendPost("/content/apache/sling-apache-org/it", {
"jcr:primaryType": "sling:Folder",
"jcr:content/jcr:primaryType": "nt:unstructured",
});
});
beforeEach(() => {
login();
});
describe("Fields", () => {
it("members", () => {
setupBasicTest("members", { name: "test" }, "auth/");
cy.get("input[name=test]").should("not.be.undefined");
});
it("membership", () => {
setupBasicTest("membership", { name: "test" }, "auth/");
cy.get("input[name=test]").should("not.be.undefined");
});
it("combobox", () => {
setupBasicTest("combobox", { label: "Test", name: "test" });
cy.get("input[name=test]").should("not.be.undefined");
cy.get("label[for=test]").should("not.be.undefined");
});
it("path", () => {
setupBasicTest("path", {
label: "Test",
name: "test",
basePath: "/content",
type: "page",
});
cy.get("input[name=test]").should("not.be.undefined");
cy.get("label[for=test]").should("not.be.undefined");
cy.get(".search-button").click();
doneLoading();
cy.get(".modal input[name=term]").type("apache");
cy.get(".modal select[name=type]").select("All");
cy.get(".modal button[type=submit]").click();
doneLoading();
cy.get(".modal .tile").should("not.be.undefined");
});
it("repeating", () => {
setupBasicTest("repeating", {
label: "Test",
name: "test",
});
cy.get("input[name=test]").should("not.be.undefined");
cy.get("label[for=test]").should("not.be.undefined");
cy.get("button.repeating__add").click();
cy.get(".repeating__container button.repeating__remove").click();
});
it("taxonomy", () => {
setupBasicTest("taxonomy", {
label: "Test",
name: "test",
basePath: "/etc/taxonomy",
});
cy.get("label[for=test]").should("not.be.undefined");
cy.get(".labelfield__field input[type=text]").type(
"/etc/taxonomy/reference"
);
cy.get(".labelfield__add").click();
cy.get('a[title="/etc/taxonomy/reference"]').should("not.be.undefined");
cy.get('a[title="/etc/taxonomy/reference"] button.delete').click();
});
it("text", () => {
setupBasicTest("text", {
label: "Test",
name: "test",
});
cy.get("label[for=test]").should("not.be.undefined");
cy.get("input[name=test]").should("not.be.undefined");
});
it("well", () => {
setupBasicTest("well", {
title: "Test",
collapse: "true",
"collapse@TypeHint": "Boolean",
});
cy.get(".card-content").should("not.be.visible");
cy.get(".card-header").click();
cy.get(".card-content").should("be.visible");
});
});
});