use of org.xwiki.appwithinminutes.test.po.ClassFieldEditPane in project xwiki-platform by xwiki.
the class ClassEditorTest method testDeleteField.
/**
* Tests that class fields can be deleted and that documents having objects of that class are updated.
*/
@Test
@IgnoreBrowsers({ @IgnoreBrowser(value = "internet.*", version = "8\\.*", reason = "See https://jira.xwiki.org/browse/XE-1146"), @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See https://jira.xwiki.org/browse/XE-1177") })
public void testDeleteField() {
// Add two fields.
editor.addField("Boolean").setPrettyName("Available");
editor.addField("Date").setPrettyName("Day");
// Save and assert they are present.
ViewPage classView = editor.clickSaveAndView();
Assert.assertTrue(classView.getContent().contains("Available (boolean1: Boolean)"));
Assert.assertTrue(classView.getContent().contains("Day (date1: Date)"));
// Edit again and delete one of the fields.
classView.edit();
new ClassFieldEditPane("boolean1").delete().clickYes();
// Save and check if the field was removed.
classView = new ApplicationClassEditPage().clickSaveAndView();
Assert.assertFalse(classView.getContent().contains("Available (boolean1: Boolean)"));
Assert.assertTrue(classView.getContent().contains("Day (date1: Date)"));
// Edit the class template and see if the deleted field is now deprecated.
ObjectEditPage objectEditor = new ClassSheetPage().clickTemplateLink().editObjects();
String className = String.format("%s.%s", getTestClassName(), getTestMethodName());
Assert.assertTrue(objectEditor.isPropertyDeprecated(className, "boolean1"));
Assert.assertFalse(objectEditor.isPropertyDeprecated(className, "date1"));
}
use of org.xwiki.appwithinminutes.test.po.ClassFieldEditPane in project xwiki-platform by xwiki.
the class ClassEditorTest method testInvalidFieldName.
/**
* Tests that invalid field names are not allowed.
*/
@Test
@IgnoreBrowsers({ @IgnoreBrowser(value = "internet.*", version = "8\\.*", reason = "See https://jira.xwiki.org/browse/XE-1146"), @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See https://jira.xwiki.org/browse/XE-1177") })
public void testInvalidFieldName() {
String invalidFieldNameErrorMessage = "Property names must follow these naming rules:";
ClassFieldEditPane field = editor.addField("Static List");
field.openConfigPanel();
field.setName("3times");
// Save the page and expect the error.
editor.getSaveAndViewButton().click();
waitForPageSourceContains(invalidFieldNameErrorMessage);
getDriver().navigate().back();
editor = new ApplicationClassEditPage();
field = editor.addField("User");
field.openConfigPanel();
// Unfortunately we don't allow Unicode letters because they are not fully supported in tag names.
// See XWIKI-7306: The class editor doesn't validate properly the field names
field.setName("\u021Bar\u0103");
// Save the page and expect the error.
editor.getSaveAndViewButton().click();
waitForPageSourceContains(invalidFieldNameErrorMessage);
getDriver().navigate().back();
editor = new ApplicationClassEditPage();
field = editor.addField("Group");
field.openConfigPanel();
field.setName("alice>bob");
// Save the page and expect the error.
editor.getSaveAndViewButton().click();
waitForPageSourceContains(invalidFieldNameErrorMessage);
}
use of org.xwiki.appwithinminutes.test.po.ClassFieldEditPane in project xwiki-platform by xwiki.
the class ClassEditorTest method testEmptyCanvasHint.
/**
* Tests that the hint is displayed only when the canvas is empty.
*/
@Test
@IgnoreBrowsers({ @IgnoreBrowser(value = "internet.*", version = "8\\.*", reason = "See https://jira.xwiki.org/browse/XE-1146"), @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See https://jira.xwiki.org/browse/XE-1177") })
public void testEmptyCanvasHint() {
Assert.assertTrue(editor.getContent().contains(EMPTY_CANVAS_HINT));
ClassFieldEditPane field = editor.addField("Short Text");
Assert.assertFalse(editor.getContent().contains(EMPTY_CANVAS_HINT));
field.delete().clickYes();
Assert.assertTrue(editor.getContent().contains(EMPTY_CANVAS_HINT));
}
use of org.xwiki.appwithinminutes.test.po.ClassFieldEditPane in project xwiki-platform by xwiki.
the class ClassEditorTest method testSaveAndContinue.
/**
* Tests the Save & Continue button.
*/
@Test
@IgnoreBrowsers({ @IgnoreBrowser(value = "internet.*", version = "8\\.*", reason = "See https://jira.xwiki.org/browse/XE-1146"), @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See https://jira.xwiki.org/browse/XE-1177") })
public void testSaveAndContinue() {
editor.addField("Date");
editor.clickSaveAndContinue();
// Check if the field was added.
ViewPage viewer = editor.clickCancel();
Assert.assertTrue(viewer.getContent().contains("Date (date1: Date)"));
// Edit again. This time check the error message.
viewer.edit();
editor = new ApplicationClassEditPage();
// Try to set the field name to an invalid value.
ClassFieldEditPane field = new ClassFieldEditPane("date1");
field.openConfigPanel();
field.setName("-delta");
editor.clickSaveAndContinue(false);
editor.waitForNotificationErrorMessage("Failed to save the page.");
// Double check that the field wasn't renamed.
Assert.assertTrue(editor.clickCancel().getContent().contains("Date (date1: Date)"));
}
use of org.xwiki.appwithinminutes.test.po.ClassFieldEditPane in project xwiki-platform by xwiki.
the class ClassEditorTest method testSwapFieldNames.
/**
* Tests that swapping field names is not allowed.
*/
@Test
@IgnoreBrowsers({ @IgnoreBrowser(value = "internet.*", version = "8\\.*", reason = "See https://jira.xwiki.org/browse/XE-1146"), @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See https://jira.xwiki.org/browse/XE-1177") })
public void testSwapFieldNames() {
ClassFieldEditPane field = editor.addField("Short Text");
field.openConfigPanel();
field.setName("alice");
field = editor.addField("Number");
field.openConfigPanel();
field.setName("bob");
editor.clickSaveAndView().edit();
editor = new ApplicationClassEditPage();
field = new ClassFieldEditPane("alice");
field.openConfigPanel();
field.setName("bob");
field = new ClassFieldEditPane("bob");
field.openConfigPanel();
field.setName("alice");
// Save the page and expect the error.
editor.getSaveAndViewButton().click();
waitForPageSourceContains("The class has two fields with the same name: alice");
}
Aggregations