Repository: syncope Updated Branches: refs/heads/1_2_X e8d8549d0 -> d2d3d3dfa refs/heads/master 1c90cb7df -> 44bc3e5bc
[SYNCOPE-605] Updating connector capabilities Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/3fb39a46 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/3fb39a46 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/3fb39a46 Branch: refs/heads/1_2_X Commit: 3fb39a46b7c33aacb2c42c9b79da07b025a718b9 Parents: b836d8c Author: Marco Di Sabatino Di Diodoro <[email protected]> Authored: Wed Nov 12 16:22:15 2014 +0100 Committer: Marco Di Sabatino Di Diodoro <[email protected]> Committed: Wed Nov 12 16:22:15 2014 +0100 ---------------------------------------------------------------------- .../console/pages/ConnectorModalPage.java | 15 +++++++- .../apache/syncope/console/AbstractTest.java | 2 +- .../syncope/console/ConnInstanceTestITCase.java | 39 ++++++++++++++++++++ .../syncope/console/EditProfileTestITCase.java | 4 +- .../syncope/core/rest/ConnectorTestITCase.java | 14 +++++++ 5 files changed, 70 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/3fb39a46/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java ---------------------------------------------------------------------- diff --git a/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java b/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java index a2a814e..7ec19a9 100644 --- a/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java +++ b/console/src/main/java/org/apache/syncope/console/pages/ConnectorModalPage.java @@ -41,6 +41,8 @@ import org.apache.syncope.console.wicket.markup.html.form.AjaxTextFieldPanel; import org.apache.syncope.console.wicket.markup.html.form.SpinnerFieldPanel; import org.apache.wicket.PageReference; import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.WicketEventJQueryResourceReference; +import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior; import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; import org.apache.wicket.ajax.markup.html.form.AjaxButton; import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy; @@ -278,7 +280,7 @@ public class ConnectorModalPage extends BaseModalPage { // form - second tab (properties) final ListView<ConnConfProperty> connPropView = new ConnConfPropertyListView("connectorProperties", - new PropertyModel<List<ConnConfProperty>>(this, "properties"), + new PropertyModel<List<ConnConfProperty>>(this, "properties"), true, connInstanceTO.getConfiguration()); connPropView.setOutputMarkupId(true); connectorPropForm.add(connPropView); @@ -321,6 +323,16 @@ public class ConnectorModalPage extends BaseModalPage { CheckBoxMultipleChoice<ConnectorCapability> capabilitiesPalette = new CheckBoxMultipleChoice<ConnectorCapability>("capabilitiesPalette", new PropertyModel<List<ConnectorCapability>>(this, "selectedCapabilities"), capabilities); + + capabilitiesPalette.add(new AjaxFormChoiceComponentUpdatingBehavior() { + + private static final long serialVersionUID = -1107858522700306810L; + + @Override + protected void onUpdate(AjaxRequestTarget target) { + } + }); + connectorForm.add(capabilitiesPalette); // form - submit / cancel buttons @@ -339,6 +351,7 @@ public class ConnectorModalPage extends BaseModalPage { conn.getConfiguration().addAll(connPropView.getModelObject()); // Set the model object's capabilities to capabilitiesPalette's converted Set + conn.getCapabilities().clear(); conn.getCapabilities().addAll(selectedCapabilities.isEmpty() ? EnumSet.noneOf(ConnectorCapability.class) : EnumSet.copyOf(selectedCapabilities)); http://git-wip-us.apache.org/repos/asf/syncope/blob/3fb39a46/console/src/test/java/org/apache/syncope/console/AbstractTest.java ---------------------------------------------------------------------- diff --git a/console/src/test/java/org/apache/syncope/console/AbstractTest.java b/console/src/test/java/org/apache/syncope/console/AbstractTest.java index f48f6ae..73af181 100644 --- a/console/src/test/java/org/apache/syncope/console/AbstractTest.java +++ b/console/src/test/java/org/apache/syncope/console/AbstractTest.java @@ -65,7 +65,7 @@ public abstract class AbstractTest extends TestCase { element.sendKeys(ADMIN); element = seleniumDriver.findElement(By.name("password")); element.sendKeys(PASSWORD); - seleniumDriver.findElement(By.name(":submit")).click(); + seleniumDriver.findElement(By.name("p::submit")).click(); (new WebDriverWait(seleniumDriver, 6)) .until(ExpectedConditions.presenceOfElementLocated(By.xpath("//img[@alt='Logout']"))); http://git-wip-us.apache.org/repos/asf/syncope/blob/3fb39a46/console/src/test/java/org/apache/syncope/console/ConnInstanceTestITCase.java ---------------------------------------------------------------------- diff --git a/console/src/test/java/org/apache/syncope/console/ConnInstanceTestITCase.java b/console/src/test/java/org/apache/syncope/console/ConnInstanceTestITCase.java index a6d1b10..343d4f8 100644 --- a/console/src/test/java/org/apache/syncope/console/ConnInstanceTestITCase.java +++ b/console/src/test/java/org/apache/syncope/console/ConnInstanceTestITCase.java @@ -188,4 +188,43 @@ public class ConnInstanceTestITCase extends AbstractTest { seleniumDriver.findElement(By.xpath("//a[@class='w_close']")).click(); } + + @Test + public void issueSyncope605() { + seleniumDriver.findElement(By.xpath("//img[@alt=\"Resources\"]")).click(); + + wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//div[@id='tabs']"))); + + seleniumDriver.findElement(By.xpath("//div[3]/ul/li[2]/a")).click(); + seleniumDriver.findElement(By.xpath("//tr[8]/td[7]/div/span[13]/a")).click(); + + wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//iframe"))); + seleniumDriver.switchTo().frame(0); + + wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath( + "//div[2]/form/div[2]/div/div/div[3]/div[2]/span/select"))); + + assertEquals("H2-testsync", + seleniumDriver.findElement(By.xpath("//input[@name='displayName:textField']")).getAttribute("value")); + + seleniumDriver.findElement(By.xpath("//div[2]/form/div[2]/ul/li[3]/a")).click(); + seleniumDriver.findElement(By.xpath("//div[2]/form/div[2]/div[3]/span/input[7]")).click(); + + seleniumDriver.findElement(By.name("apply")).click(); + + seleniumDriver.switchTo().defaultContent(); + + seleniumDriver.findElement(By.xpath("//tr[8]/td[7]/div/span[13]/a")).click(); + + wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//iframe"))); + seleniumDriver.switchTo().frame(0); + + wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath( + "//div[2]/form/div[2]/div/div/div[3]/div[2]/span/select"))); + + assertFalse(seleniumDriver.findElement(By.xpath("//div[2]/form/div[2]/div[3]/span/input[7]")).isSelected()); + + seleniumDriver.switchTo().defaultContent(); + seleniumDriver.findElement(By.xpath("//a[@class='w_close']")).click(); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/3fb39a46/console/src/test/java/org/apache/syncope/console/EditProfileTestITCase.java ---------------------------------------------------------------------- diff --git a/console/src/test/java/org/apache/syncope/console/EditProfileTestITCase.java b/console/src/test/java/org/apache/syncope/console/EditProfileTestITCase.java index c06e084..484a2a1 100644 --- a/console/src/test/java/org/apache/syncope/console/EditProfileTestITCase.java +++ b/console/src/test/java/org/apache/syncope/console/EditProfileTestITCase.java @@ -59,7 +59,7 @@ public class EditProfileTestITCase extends AbstractTest { element.sendKeys(ADMIN); element = seleniumDriver.findElement(By.name("password")); element.sendKeys(PASSWORD); - seleniumDriver.findElement(By.name(":submit")).click(); + seleniumDriver.findElement(By.name("p::submit")).click(); seleniumDriver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); } @@ -69,7 +69,7 @@ public class EditProfileTestITCase extends AbstractTest { element.sendKeys("rossini"); element = seleniumDriver.findElement(By.name("password")); element.sendKeys("password"); - seleniumDriver.findElement(By.name(":submit")).click(); + seleniumDriver.findElement(By.name("p::submit")).click(); wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//div[@id='username']/a"))); seleniumDriver.findElement(By.xpath("//div[@id='username']/a")).click(); http://git-wip-us.apache.org/repos/asf/syncope/blob/3fb39a46/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java b/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java index 4fc6450..d1063f5 100644 --- a/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java +++ b/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java @@ -706,4 +706,18 @@ public class ConnectorTestITCase extends AbstractTest { assertNotNull(e); } } + + @Test + public void issueSYNCOPE605() { + + ConnInstanceTO connectorInstanceTO = connectorService.read(103L); + assertTrue(connectorInstanceTO.getCapabilities().isEmpty()); + + connectorInstanceTO.getCapabilities().add(ConnectorCapability.SEARCH); + connectorService.update(connectorInstanceTO.getId(), connectorInstanceTO); + + ConnInstanceTO updatedCapabilities = connectorService.read(connectorInstanceTO.getId()); + assertNotNull(updatedCapabilities.getCapabilities()); + assertTrue(updatedCapabilities.getCapabilities().size() == 1); + } }
