/** * Creates an application and edits it using the Actions column from the applications live table. */ @Test @IgnoreBrowsers({ @IgnoreBrowser( value = "internet.*", version = "8\\.*", reason = "See http://jira.xwiki.org/browse/XE-1146"), @IgnoreBrowser( value = "internet.*", version = "9\\.*", reason = "See http://jira.xwiki.org/browse/XE-1177") }) public void testEditApplication() { // Create the application. String appName = RandomStringUtils.randomAlphabetic(6); createApplication(appName); // Edit the application. ApplicationsLiveTableElement appsLiveTable = homePage.getAppsLiveTable(); appsLiveTable.waitUntilReady(); ApplicationClassEditPage classEditor = appsLiveTable.clickEditApplication(appName); // Edit the existing class field. ClassFieldEditPane fieldEditPane = new ClassFieldEditPane("shortText1"); fieldEditPane.setPrettyName("City Name"); fieldEditPane.openConfigPanel(); fieldEditPane.setName("cityName"); // Move to the next step. ApplicationHomeEditPage homeEditPage = classEditor.clickNextStep(); homeEditPage.setDescription("demo"); // Finish editing. ApplicationHomePage homePage = homeEditPage.clickFinish(); Assert.assertTrue(homePage.getContent().contains("demo")); }
@Before public void setUp() { // Register a simple user, login and go to the AppWithinMinutes home page. String userName = RandomStringUtils.randomAlphanumeric(5); String password = RandomStringUtils.randomAlphanumeric(6); getUtil().createUser(userName, password); homePage = AppWithinMinutesHomePage.gotoPage(); }
/** * Creates an application and deletes it using the Actions column from the applications live * table. */ @Test @IgnoreBrowsers({ @IgnoreBrowser( value = "internet.*", version = "8\\.*", reason = "See http://jira.xwiki.org/browse/XE-1146"), @IgnoreBrowser( value = "internet.*", version = "9\\.*", reason = "See http://jira.xwiki.org/browse/XE-1177") }) public void testDeleteApplication() { // Create the application. String appName = RandomStringUtils.randomAlphabetic(6); createApplication(appName); // Check the the applications live table lists the created application. ApplicationsLiveTableElement appsLiveTable = homePage.getAppsLiveTable(); appsLiveTable.waitUntilReady(); Assert.assertTrue(appsLiveTable.hasColumn("Actions")); appsLiveTable.filterApplicationName(appName.substring(0, 3)); Assert.assertTrue(appsLiveTable.isApplicationListed(appName)); // Click the delete icon then cancel the confirmation. appsLiveTable.clickDeleteApplication(appName).clickNo(); // We should be taken back to the AppWithinMinutes home page. homePage = new AppWithinMinutesHomePage(); appsLiveTable = homePage.getAppsLiveTable(); appsLiveTable.waitUntilReady(); // The application name filter should've been preserved. Assert.assertEquals(appName.substring(0, 3), appsLiveTable.getApplicationNameFilter()); // Click the delete icon again and this confirm the action. appsLiveTable.clickDeleteApplication(appName).clickYes(); // We should be taken back to the AppWithinMinutes home page. homePage = new AppWithinMinutesHomePage(); appsLiveTable = homePage.getAppsLiveTable(); appsLiveTable.waitUntilReady(); // The application name filter should've been preserved. Assert.assertEquals(appName.substring(0, 3), appsLiveTable.getApplicationNameFilter()); // And the deleted application shouldn't be listed anymore. Assert.assertFalse(appsLiveTable.isApplicationListed(appName)); }
/** * Tests that the actions are displayed only when the current user has the right to perform them. */ @Test @IgnoreBrowsers({ @IgnoreBrowser( value = "internet.*", version = "8\\.*", reason = "See http://jira.xwiki.org/browse/XE-1146"), @IgnoreBrowser( value = "internet.*", version = "9\\.*", reason = "See http://jira.xwiki.org/browse/XE-1177") }) public void testActionRights() { // Create the application. String appName = RandomStringUtils.randomAlphabetic(6); createApplication(appName); // The application author should be able to edit and delete the application. ApplicationsLiveTableElement appsLiveTable = homePage.getAppsLiveTable(); appsLiveTable.waitUntilReady(); appsLiveTable.filterApplicationName(appName); Assert.assertTrue(appsLiveTable.canEditApplication(appName)); Assert.assertTrue(appsLiveTable.canDeleteApplication(appName)); // Logout. Guests shouldn't be able to edit nor delete the application. homePage.logout(); getUtil().recacheSecretToken(); homePage = new AppWithinMinutesHomePage(); appsLiveTable = homePage.getAppsLiveTable(); appsLiveTable.waitUntilReady(); appsLiveTable.filterApplicationName(appName); Assert.assertFalse(appsLiveTable.canEditApplication(appName)); Assert.assertFalse(appsLiveTable.canDeleteApplication(appName)); // Login with a different user. The new user shouldn't be able to delete the application. getUtil().createUser("someOtherUser", "somePassword"); appsLiveTable = AppWithinMinutesHomePage.gotoPage().getAppsLiveTable(); appsLiveTable.waitUntilReady(); appsLiveTable.filterApplicationName(appName); Assert.assertTrue(appsLiveTable.canEditApplication(appName)); Assert.assertFalse(appsLiveTable.canDeleteApplication(appName)); }
/** * Creates an application with the specified name. The application class will have just one field. * * @param appName the name of the application to create */ private void createApplication(String appName) { ApplicationCreatePage appCreatePage = homePage.clickCreateApplication(); appCreatePage.setApplicationName(appName); appCreatePage.waitForApplicationNamePreview(); ApplicationClassEditPage classEditPage = appCreatePage.clickNextStep(); classEditPage.addField("Short Text"); // Wait for the application home edit page to load before clicking finish to be sure the page // layout is stable. classEditPage .clickNextStep() .waitUntilPageIsLoaded() .clickFinish() .clickBreadcrumbLink(AppWithinMinutesHomePage.TITLE); homePage = new AppWithinMinutesHomePage(); }