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");
+    }
 }