You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by md...@apache.org on 2014/06/03 14:14:40 UTC
svn commit: r1599502 - in /syncope/trunk/console/src:
main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java
test/java/org/apache/syncope/console/UserTestITCase.java
Author: mdisabatino
Date: Tue Jun 3 12:14:39 2014
New Revision: 1599502
URL: http://svn.apache.org/r1599502
Log:
[SYNCOPE-495] Fix X Close Button behavior, added new selenium test
Modified:
syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java
syncope/trunk/console/src/test/java/org/apache/syncope/console/UserTestITCase.java
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java?rev=1599502&r1=1599501&r2=1599502&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/MembershipsPanel.java Tue Jun 3 12:14:39 2014
@@ -78,7 +78,7 @@ public class MembershipsPanel extends Pa
super(id);
this.userTO = userTO;
this.statusPanel = statusPanel;
-
+
final WebMarkupContainer membershipsContainer = new WebMarkupContainer("membershipsContainer");
membershipsContainer.setOutputMarkupId(true);
add(membershipsContainer);
@@ -151,69 +151,69 @@ public class MembershipsPanel extends Pa
membView = new ListView<MembershipTO>("memberships",
new PropertyModel<List<? extends MembershipTO>>(userTO, "memberships")) {
- private static final long serialVersionUID = 9101744072914090143L;
+ private static final long serialVersionUID = 9101744072914090143L;
- @Override
- protected void populateItem(final ListItem<MembershipTO> item) {
- final MembershipTO membershipTO = (MembershipTO) item.getDefaultModelObject();
+ @Override
+ protected void populateItem(final ListItem<MembershipTO> item) {
+ final MembershipTO membershipTO = (MembershipTO) item.getDefaultModelObject();
- item.add(new Label("roleId", new Model<Long>(membershipTO.getRoleId())));
- item.add(new Label("roleName", new Model<String>(membershipTO.getRoleName())));
+ item.add(new Label("roleId", new Model<Long>(membershipTO.getRoleId())));
+ item.add(new Label("roleName", new Model<String>(membershipTO.getRoleName())));
- AjaxLink editLink = new ClearIndicatingAjaxLink("editLink", pageRef) {
+ AjaxLink editLink = new ClearIndicatingAjaxLink("editLink", pageRef) {
- private static final long serialVersionUID = -7978723352517770644L;
+ private static final long serialVersionUID = -7978723352517770644L;
- @Override
- protected void onClickInternal(final AjaxRequestTarget target) {
- membWin.setPageCreator(new ModalWindow.PageCreator() {
+ @Override
+ protected void onClickInternal(final AjaxRequestTarget target) {
+ membWin.setPageCreator(new ModalWindow.PageCreator() {
- private static final long serialVersionUID = -7834632442532690940L;
+ private static final long serialVersionUID = -7834632442532690940L;
- @Override
- public Page createPage() {
- return new MembershipModalPage(getPage().getPageReference(), membWin,
- membershipTO, templateMode);
+ @Override
+ public Page createPage() {
+ return new MembershipModalPage(getPage().getPageReference(), membWin,
+ membershipTO, templateMode);
+ }
+ });
+ membWin.show(target);
}
- });
- membWin.show(target);
- }
- };
- item.add(editLink);
+ };
+ item.add(editLink);
- AjaxLink deleteLink = new IndicatingOnConfirmAjaxLink("deleteLink", pageRef) {
+ AjaxLink deleteLink = new IndicatingOnConfirmAjaxLink("deleteLink", pageRef) {
- private static final long serialVersionUID = -7978723352517770644L;
+ private static final long serialVersionUID = -7978723352517770644L;
- @Override
- protected void onClickInternal(final AjaxRequestTarget target) {
- userTO.getMemberships().remove(membershipTO);
- ((UserModalPage) getPage()).getUserTO().getMemberships().remove(membershipTO);
- target.add(membershipsContainer);
+ @Override
+ protected void onClickInternal(final AjaxRequestTarget target) {
+ userTO.getMemberships().remove(membershipTO);
+ ((UserModalPage) getPage()).getUserTO().getMemberships().remove(membershipTO);
+ target.add(membershipsContainer);
- RoleTO roleTO = RoleUtils.findRole(roleTreeBuilder, membershipTO.getRoleId());
- Set<String> resourcesToRemove = roleTO == null
+ RoleTO roleTO = RoleUtils.findRole(roleTreeBuilder, membershipTO.getRoleId());
+ Set<String> resourcesToRemove = roleTO == null
? Collections.<String>emptySet() : roleTO.getResources();
- if (!resourcesToRemove.isEmpty()) {
- Set<String> resourcesAssignedViaMembership = new HashSet<String>();
- for (MembershipTO membTO : userTO.getMemberships()) {
- roleTO = RoleUtils.findRole(roleTreeBuilder, membTO.getRoleId());
- if (roleTO != null) {
- resourcesAssignedViaMembership.addAll(roleTO.getResources());
+ if (!resourcesToRemove.isEmpty()) {
+ Set<String> resourcesAssignedViaMembership = new HashSet<String>();
+ for (MembershipTO membTO : userTO.getMemberships()) {
+ roleTO = RoleUtils.findRole(roleTreeBuilder, membTO.getRoleId());
+ if (roleTO != null) {
+ resourcesAssignedViaMembership.addAll(roleTO.getResources());
+ }
+ }
+ resourcesToRemove.removeAll(resourcesAssignedViaMembership);
+ resourcesToRemove.removeAll(userTO.getResources());
}
- }
- resourcesToRemove.removeAll(resourcesAssignedViaMembership);
- resourcesToRemove.removeAll(userTO.getResources());
- }
- StatusUtils.update(
- userTO, statusPanel, target, Collections.<String>emptySet(), resourcesToRemove);
+ StatusUtils.update(
+ userTO, statusPanel, target, Collections.<String>emptySet(), resourcesToRemove);
+ }
+ };
+ item.add(deleteLink);
}
};
- item.add(deleteLink);
- }
- };
membershipsContainer.add(membView);
@@ -228,24 +228,25 @@ public class MembershipsPanel extends Pa
@Override
public void onClose(final AjaxRequestTarget target) {
final UserTO updatedUserTO = ((UserModalPage) getPage()).getUserTO();
-
- if (updatedUserTO.getMemberships().size() > userTO.getMemberships().size()) {
- Set<Long> diff = new HashSet<Long>(updatedUserTO.getMembershipMap().keySet());
- diff.removeAll(userTO.getMembershipMap().keySet());
-
- Set<String> resourcesToAdd = new HashSet<String>();
- for (Long diffMembId : diff) {
- long roleId = updatedUserTO.getMembershipMap().get(diffMembId).getRoleId();
- RoleTO roleTO = RoleUtils.findRole(roleTreeBuilder, roleId);
- resourcesToAdd.addAll(roleTO.getResources());
- StatusUtils.update(
- userTO, statusPanel, target, resourcesToAdd, Collections.<String>emptySet());
+ if (!userTO.equals(updatedUserTO)) {
+ if (updatedUserTO.getMemberships().size() > userTO.getMemberships().size()) {
+ Set<Long> diff = new HashSet<Long>(updatedUserTO.getMembershipMap().keySet());
+ diff.removeAll(userTO.getMembershipMap().keySet());
+
+ Set<String> resourcesToAdd = new HashSet<String>();
+ for (Long diffMembId : diff) {
+ long roleId = updatedUserTO.getMembershipMap().get(diffMembId).getRoleId();
+ RoleTO roleTO = RoleUtils.findRole(roleTreeBuilder, roleId);
+ resourcesToAdd.addAll(roleTO.getResources());
+ StatusUtils.update(
+ userTO, statusPanel, target, resourcesToAdd, Collections.<String>emptySet());
+ }
}
- }
- MembershipsPanel.this.userTO.getMemberships().clear();
- MembershipsPanel.this.userTO.getMemberships().addAll(updatedUserTO.getMemberships());
- target.add(container);
+ MembershipsPanel.this.userTO.getMemberships().clear();
+ MembershipsPanel.this.userTO.getMemberships().addAll(updatedUserTO.getMemberships());
+ target.add(container);
+ }
}
});
}
Modified: syncope/trunk/console/src/test/java/org/apache/syncope/console/UserTestITCase.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/test/java/org/apache/syncope/console/UserTestITCase.java?rev=1599502&r1=1599501&r2=1599502&view=diff
==============================================================================
--- syncope/trunk/console/src/test/java/org/apache/syncope/console/UserTestITCase.java (original)
+++ syncope/trunk/console/src/test/java/org/apache/syncope/console/UserTestITCase.java Tue Jun 3 12:14:39 2014
@@ -133,9 +133,38 @@ public class UserTestITCase extends Abst
selenium.click("//div[@class='navigator']/div/span/a");
selenium.waitForCondition("selenium.isElementPresent(" + "\"//td[div='ws-target-resource-1']\");", "30000");
-
+
seleniumDriver.switchTo().defaultContent();
selenium.click("css=a.w_close");
}
+
+ @Test
+ @SuppressWarnings("SleepWhileHoldingLock")
+ public void issueSyncope495() {
+ selenium.click("css=img[alt=\"Users\"]");
+
+ selenium.waitForCondition("selenium.isElementPresent(\"//div[@id='tabs']\");", "30000");
+
+ selenium.click("//*[@id=\"users-contain\"]//*[div=3]/../td[5]/div/span[12]/a");
+
+ selenium.waitForCondition("selenium.isElementPresent(\"//iframe\");", "30000");
+ selenium.selectFrame("index=0");
+
+ selenium.waitForCondition("selenium.isElementPresent(" + "\"//input[@value='Antonio Vivaldi']\");", "30000");
+
+ selenium.waitForCondition("selenium.isElementPresent(" + "\"//input[@value='Vivaldi']\");", "30000");
+
+ selenium.click("//div[@id='tabs']/ul/li[2]/a/span");
+ selenium.click("//div[@id='tabs']/ul/li[3]/a/span");
+ selenium.click("//div[@id='tabs']/ul/li[4]/a/span");
+ selenium.click("//div[@id='tabs']/ul/li[5]/a/span");
+ selenium.click("//div[@id='tabs']/ul/li[6]/a/span");
+
+ selenium.click("//span[2]/a/span");
+
+ selenium.waitForCondition("selenium.isElementPresent(\"//div[@class='infolabel']\");", "30000");
+ selenium.selectFrame("relative=up");
+ selenium.click("css=a.w_close");
+ }
}