You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2012/03/21 15:44:03 UTC

svn commit: r1303409 - in /myfaces/tobago/trunk: tobago-example/tobago-example-test/src/main/webapp/tc/popup/ tobago-example/tobago-example-test/src/test/java/org/apache/myfaces/tobago/example/test/tc/popup/ tobago-theme/tobago-theme-standard/src/main/...

Author: lofwyr
Date: Wed Mar 21 14:44:03 2012
New Revision: 1303409

URL: http://svn.apache.org/viewvc?rev=1303409&view=rev
Log:
TOBAGO-1103: Inputs are deactivated after opening and closing several layers of popups
 - convert the z-index to an integer for correct comparing

Added:
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/popup/popup-bug-tobago-1103.xhtml
      - copied, changed from r1303307, myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/popup/z-index.xhtml
    myfaces/tobago/trunk/tobago-example/tobago-example-test/src/test/java/org/apache/myfaces/tobago/example/test/tc/popup/BugTobago1103SeleniumTest.java
Modified:
    myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-popup.js

Copied: myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/popup/popup-bug-tobago-1103.xhtml (from r1303307, myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/popup/z-index.xhtml)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/popup/popup-bug-tobago-1103.xhtml?p2=myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/popup/popup-bug-tobago-1103.xhtml&p1=myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/popup/z-index.xhtml&r1=1303307&r2=1303409&rev=1303409&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/popup/z-index.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-test/src/main/webapp/tc/popup/popup-bug-tobago-1103.xhtml Wed Mar 21 14:44:03 2012
@@ -22,369 +22,61 @@
     xmlns:ui="http://java.sun.com/jsf/facelets"
     xmlns:f="http://java.sun.com/jsf/core">
 
-<tc:page width="800px" height="600px" id="page">
-<f:facet name="menuBar">
-<tc:menuBar>
-<tc:menu label="space -> space -> space">
-</tc:menu>
+  <tc:page width="600px" height="350px" id="page">
 
-<tc:menu label="Help">
-<tc:menu label="Help 1">
-  <tc:menu label="Help 1 1">
-  </tc:menu>
-  <tc:menuSeparator/>
-  <tc:menu label="Help 1 2">
-  </tc:menu>
-  <tc:menu label="Help 1 3">
-  </tc:menu>
-  <tc:menu label="Help 1 4">
-  </tc:menu>
-  <tc:menuSeparator/>
-  <tc:menu label="Help 1 5">
-  </tc:menu>
-  <tc:menu label="Help 1 6">
-  </tc:menu>
-  <tc:menu label="Help 1 7">
-  </tc:menu>
-  <tc:menuSeparator/>
-  <tc:menu label="Help 1 8">
-  </tc:menu>
-  <tc:menu label="Help 1 9">
-  </tc:menu>
-  <tc:menu label="Help 1 10">
-  </tc:menu>
-</tc:menu>
-<tc:menu label="Help 2">
-  <tc:menu label="Help 2 1">
-  </tc:menu>
-  <tc:menu label="Help 2 2">
-  </tc:menu>
-  <tc:menu label="Help 2 3">
-  </tc:menu>
-  <tc:menu label="Help 2 4">
-  </tc:menu>
-  <tc:menu label="Help 2 5">
-  </tc:menu>
-  <tc:menu label="Help 2 6">
-  </tc:menu>
-  <tc:menu label="Help 2 7">
-  </tc:menu>
-  <tc:menu label="Help 2 8">
-  </tc:menu>
-  <tc:menu label="Help 2 9">
-  </tc:menu>
-  <tc:menu label="Help 2 10">
-  </tc:menu>
-</tc:menu>
-<tc:menu label="Help 3">
-  <tc:menu label="Help 3 1">
-  </tc:menu>
-  <tc:menu label="Help 3 2">
-  </tc:menu>
-  <tc:menu label="Help 3 3">
-  </tc:menu>
-  <tc:menu label="Help 3 4">
-  </tc:menu>
-  <tc:menu label="Help 3 5">
-  </tc:menu>
-  <tc:menu label="Help 3 6">
-  </tc:menu>
-  <tc:menu label="Help 3 7">
-  </tc:menu>
-  <tc:menu label="Help 3 8">
-  </tc:menu>
-  <tc:menu label="Help 3 9">
-  </tc:menu>
-  <tc:menu label="Help 3 10">
-  </tc:menu>
-</tc:menu>
-<tc:menu label="Help 4">
-  <tc:menu label="Help 4 1">
-  </tc:menu>
-  <tc:menu label="Help 4 2">
-  </tc:menu>
-  <tc:menu label="Help 4 3">
-  </tc:menu>
-  <tc:menu label="Help 4 4">
-  </tc:menu>
-  <tc:menu label="Help 4 5">
-  </tc:menu>
-  <tc:menu label="Help 4 6">
-  </tc:menu>
-  <tc:menu label="Help 4 7">
-  </tc:menu>
-  <tc:menu label="Help 4 8">
-  </tc:menu>
-  <tc:menu label="Help 4 9">
-  </tc:menu>
-  <tc:menu label="Help 4 10">
-  </tc:menu>
-</tc:menu>
-<tc:menu label="Help 5">
-  <tc:menu label="Help 5 1">
-  </tc:menu>
-  <tc:menu label="Help 5 2">
-  </tc:menu>
-  <tc:menu label="Help 5 3">
-  </tc:menu>
-  <tc:menu label="Help 5 4">
-  </tc:menu>
-  <tc:menu label="Help 5 5">
-  </tc:menu>
-  <tc:menu label="Help 5 6">
-  </tc:menu>
-  <tc:menu label="Help 5 7">
-  </tc:menu>
-  <tc:menu label="Help 5 8">
-  </tc:menu>
-  <tc:menu label="Help 5 9">
-  </tc:menu>
-  <tc:menu label="Help 5 10">
-  </tc:menu>
-</tc:menu>
-<tc:menu label="Help 6">
-  <tc:menu label="Help 6 1">
-  </tc:menu>
-  <tc:menu label="Help 6 2">
-  </tc:menu>
-  <tc:menu label="Help 6 3">
-  </tc:menu>
-  <tc:menu label="Help 6 4">
-  </tc:menu>
-  <tc:menu label="Help 6 5">
-  </tc:menu>
-  <tc:menu label="Help 6 6">
-  </tc:menu>
-  <tc:menu label="Help 6 7">
-  </tc:menu>
-  <tc:menu label="Help 6 8">
-  </tc:menu>
-  <tc:menu label="Help 6 9">
-  </tc:menu>
-  <tc:menu label="Help 6 10">
-  </tc:menu>
-</tc:menu>
-<tc:menu label="Help 7">
-  <tc:menu label="Help 7 1">
-  </tc:menu>
-  <tc:menu label="Help 7 2">
-  </tc:menu>
-  <tc:menu label="Help 7 3">
-  </tc:menu>
-  <tc:menu label="Help 7 4">
-  </tc:menu>
-  <tc:menu label="Help 7 5">
-  </tc:menu>
-  <tc:menu label="Help 7 6">
-  </tc:menu>
-  <tc:menu label="Help 7 7">
-  </tc:menu>
-  <tc:menu label="Help 7 8">
-  </tc:menu>
-  <tc:menu label="Help 7 9">
-  </tc:menu>
-  <tc:menu label="Help 7 10">
-  </tc:menu>
-</tc:menu>
-<tc:menu label="Help 8">
-  <tc:menu label="Help 8 1">
-  </tc:menu>
-  <tc:menu label="Help 8 2">
-  </tc:menu>
-  <tc:menu label="Help 8 3">
-  </tc:menu>
-  <tc:menu label="Help 8 4">
-  </tc:menu>
-  <tc:menu label="Help 8 5">
-  </tc:menu>
-  <tc:menu label="Help 8 6">
-  </tc:menu>
-  <tc:menu label="Help 8 7">
-  </tc:menu>
-  <tc:menu label="Help 8 8">
-  </tc:menu>
-  <tc:menu label="Help 8 9">
-  </tc:menu>
-  <tc:menu label="Help 8 10">
-  </tc:menu>
-</tc:menu>
-<tc:menu label="Help 9">
-  <tc:menu label="Help 9 1">
-  </tc:menu>
-  <tc:menu label="Help 9 2">
-  </tc:menu>
-  <tc:menu label="Help 9 3">
-  </tc:menu>
-  <tc:menu label="Help 9 4">
-  </tc:menu>
-  <tc:menu label="Help 9 5">
-  </tc:menu>
-  <tc:menu label="Help 9 6">
-  </tc:menu>
-  <tc:menu label="Help 9 7">
-  </tc:menu>
-  <tc:menu label="Help 9 8">
-  </tc:menu>
-  <tc:menu label="Help 9 9">
-  </tc:menu>
-  <tc:menu label="Help 9 10">
-  </tc:menu>
-</tc:menu>
-<tc:menu label="Help 10">
-  <tc:menu label="Help 10 1">
-  </tc:menu>
-  <tc:menu label="Help 10 2">
-  </tc:menu>
-  <tc:menu label="Help 10 3">
-  </tc:menu>
-  <tc:menu label="Help 10 4">
-  </tc:menu>
-  <tc:menu label="Help 10 5">
-  </tc:menu>
-  <tc:menu label="Help 10 6">
-  </tc:menu>
-  <tc:menu label="Help 10 7">
-  </tc:menu>
-  <tc:menu label="Help 10 8">
-  </tc:menu>
-  <tc:menu label="Help 10 9">
-  </tc:menu>
-  <tc:menu label="Help 10 10">
-  </tc:menu>
-</tc:menu>
-</tc:menu>
-</tc:menuBar>
-
-</f:facet>
-
-<tc:box label="Page (z-index = 0)">
-  <f:facet name="layout">
-    <tc:gridLayout rows="60px;auto;auto;*;auto;auto"/>
-  </f:facet>
-  <tc:out
-      value="This page is to check, if the layered presentation is corret. It will be usually defined by setting
-           the z-index in CSS or by the order of rendering in the document. The footer and header of the sheet
-           also have the z-index set in the common renderer."/>
-  <tc:panel>
     <f:facet name="layout">
-      <tc:gridLayout columns="*;4*"/>
+      <tc:gridLayout margin="100px"/>
     </f:facet>
 
-    <tc:link label="Link to Apache" link="http://www.apache.org/"/>
-    <tx:date label="Date">
-      <f:convertDateTime pattern="dd/MM/yyyy"/>
-    </tx:date>
-  </tc:panel>
-  <tc:selectOneChoice>
-    <tc:selectItem itemLabel="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" itemValue="A"/>
-    <tc:selectItem itemLabel="BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" itemValue="B"/>
-    <tc:selectItem itemLabel="CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" itemValue="C"/>
-  </tc:selectOneChoice>
-  <tc:sheet var="v1" columns="*;*;*" showRowRange="left" showPageRange="right" showDirectLinks="center">
-    <tc:column label="Column 1"/>
-    <tc:column label="Column 2"/>
-    <tc:column label="Column 3"/>
-  </tc:sheet>
-  <tc:panel>
-    <f:facet name="layout">
-      <tc:gridLayout columns="*;*"/>
-    </f:facet>
-    <tx:selectBooleanCheckbox label="1st Popup Modal" value="#{zIndex.modal1}" id="modal1st"/>
-    <tc:cell/>
-    <tx:selectBooleanCheckbox label="2nd Popup Modal" value="#{zIndex.modal2}"/>
-    <tc:cell/>
-  </tc:panel>
-  <tc:panel>
-    <f:facet name="layout">
-      <tc:gridLayout columns="auto;auto;auto;*"/>
-    </f:facet>
-    <tc:button label="Open Popup">
-      <f:facet name="popup">
-        <tc:popup width="600px" height="470px" left="100px" top="100px" id="popup-1" modal="#{zIndex.modal1}">
-          <tc:box label="Popup (z-index = 1 (TODO))" id="box-1">
-            <f:facet name="layout">
-              <tc:gridLayout rows="auto;auto;*;auto"/>
-            </f:facet>
-            <tx:date label="Date">
-              <f:convertDateTime pattern="dd/MM/yyyy"/>
-            </tx:date>
-            <tc:selectOneChoice>
-              <tc:selectItem itemLabel="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" itemValue="A"/>
-              <tc:selectItem itemLabel="BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" itemValue="B"/>
-              <tc:selectItem itemLabel="CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" itemValue="C"/>
-            </tc:selectOneChoice>
-            <tc:sheet var="v1" columns="*;*;*" showRowRange="left" showPageRange="right" showDirectLinks="center">
-              <tc:column label="Column 1"/>
-              <tc:column label="Column 2"/>
-              <tc:column label="Column 3"/>
-            </tc:sheet>
-            <tc:panel>
-              <f:facet name="layout">
-                <tc:gridLayout columns="*;*;*;*"/>
-              </f:facet>
-              <tc:button label="Open Sub Popup">
-                <f:facet name="popup">
-                  <tc:popup width="400px" height="500px" left="200px" top="50px" id="popup-2" modal="#{zIndex.modal2}">
-                    <tc:box label="Popup (z-index = 2 (TODO))" id="box-2">
-                      <f:facet name="layout">
-                        <tc:gridLayout rows="auto;auto;*;auto"/>
-                      </f:facet>
-                      <tx:date label="Date">
-                        <f:convertDateTime pattern="dd/MM/yyyy"/>
-                      </tx:date>
-                      <tc:selectOneChoice>
-                        <tc:selectItem itemLabel="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" itemValue="A"/>
-                        <tc:selectItem itemLabel="BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" itemValue="B"/>
-                        <tc:selectItem itemLabel="CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" itemValue="C"/>
-                      </tc:selectOneChoice>
-                      <tc:sheet var="v1" columns="*;*;*" showRowRange="left" showPageRange="right"
-                                showDirectLinks="center">
-                        <tc:column label="Column 1"/>
-                        <tc:column label="Column 2"/>
-                        <tc:column label="Column 3"/>
-                      </tc:sheet>
-                      <tc:panel>
-                        <f:facet name="layout">
-                          <tc:gridLayout columns="*;*;*"/>
-                        </f:facet>
-                        <tc:button label="Cancel">
-                          <tc:attribute name="popupClose" value="immediate"/>
-                        </tc:button>
-                        <tc:button label="Redisplay">
-                          <tc:attribute name="renderedPartially" value="box-2"/>
-                        </tc:button>
-                        <tc:button label="Ok">
-                          <tc:attribute name="popupClose" value="afterSubmit"/>
-                        </tc:button>
-                      </tc:panel>
-                    </tc:box>
-                  </tc:popup>
-                </f:facet>
-              </tc:button>
-              <tc:button label="Open Popup (AJAX)">
-                <tc:attribute name="renderedPartially" value="popup-2"/>
-                <tc:popupReference for="popup-2"/>
-              </tc:button>
-              <tc:button label="Cancel">
-                <tc:attribute name="popupClose" value="immediate"/>
-              </tc:button>
-              <tc:button label="Redisplay">
-                <tc:attribute name="renderedPartially" value="box-1"/>
-              </tc:button>
-              <tc:button label="Ok">
-                <tc:attribute name="popupClose" value="afterSubmit"/>
-              </tc:button>
-            </tc:panel>
-          </tc:box>
-        </tc:popup>
+    <tc:box label="Page">
+      <f:facet name="layout">
+        <tc:gridLayout rows="*;auto"/>
       </f:facet>
-    </tc:button>
-    <tc:button label="Open Popup (AJAX)">
-      <tc:attribute name="renderedPartially" value="popup-1"/>
-      <tc:popupReference for="popup-1"/>
-    </tc:button>
-    <tc:button label="Update"/>
-  </tc:panel>
-</tc:box>
-</tc:page>
+      <tc:out value="Test: Open all popups (also the date picker). Then try to close all."/>
+      <tc:panel>
+        <f:facet name="layout">
+          <tc:gridLayout columns="auto;*"/>
+        </f:facet>
+        <tc:button label="Open Popup (AJAX)" id="open-0">
+          <tc:attribute name="renderedPartially" value="popup-1"/>
+          <f:facet name="popup">
+            <tc:popup width="400px" height="150px" left="150px" top="150px" id="popup-1">
+              <tc:box label="Popup Level 1" id="box-1">
+                <f:facet name="layout">
+                  <tc:gridLayout rows="auto;auto;*;auto"/>
+                </f:facet>
+                <tc:panel>
+                  <f:facet name="layout">
+                    <tc:gridLayout columns="*;*;*;*"/>
+                  </f:facet>
+                  <tc:button label="Open Sub Popup (AJAX)" id="open-1">
+                    <tc:attribute name="renderedPartially" value="popup-2"/>
+                    <f:facet name="popup">
+                      <tc:popup width="400px" height="150px" left="200px" top="200px" id="popup-2">
+                        <tc:box label="Popup Level 2" id="box-2">
+                          <f:facet name="layout">
+                            <tc:gridLayout rows="auto;auto"/>
+                          </f:facet>
+                          <tx:date label="Date" id="date">
+                            <f:convertDateTime pattern="dd/MM/yyyy"/>
+                          </tx:date>
+                          <tc:button label="Cancel" id="close-2">
+                            <tc:attribute name="popupClose" value="immediate"/>
+                          </tc:button>
+                          <tc:panel/>
+                        </tc:box>
+                      </tc:popup>
+                    </f:facet>
+                  </tc:button>
+                  <tc:button label="Cancel" id="close-1">
+                    <tc:attribute name="popupClose" value="immediate"/>
+                  </tc:button>
+                </tc:panel>
+              </tc:box>
+            </tc:popup>
+          </f:facet>
+        </tc:button>
+      </tc:panel>
+    </tc:box>
+  </tc:page>
 </f:view>

Added: myfaces/tobago/trunk/tobago-example/tobago-example-test/src/test/java/org/apache/myfaces/tobago/example/test/tc/popup/BugTobago1103SeleniumTest.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-test/src/test/java/org/apache/myfaces/tobago/example/test/tc/popup/BugTobago1103SeleniumTest.java?rev=1303409&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-test/src/test/java/org/apache/myfaces/tobago/example/test/tc/popup/BugTobago1103SeleniumTest.java (added)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-test/src/test/java/org/apache/myfaces/tobago/example/test/tc/popup/BugTobago1103SeleniumTest.java Wed Mar 21 14:44:03 2012
@@ -0,0 +1,73 @@
+package org.apache.myfaces.tobago.example.test.tc.popup;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.myfaces.tobago.example.test.MultiSuffixSeleniumTest;
+import org.apache.myfaces.tobago.util.Parameterized;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(Parameterized.class)
+public class BugTobago1103SeleniumTest extends MultiSuffixSeleniumTest {
+
+  public BugTobago1103SeleniumTest(String suffix) {
+    super(suffix);
+  }
+
+  @Test
+  public void testWithoutModel() throws InterruptedException {
+
+    // load page
+    open("/tc/popup/popup-bug-tobago-1103.");
+
+    // click on open 1st popup
+    getSelenium().click("page:open-0");
+    getSelenium().waitForCondition(
+        "selenium.browserbot.getCurrentWindow().document.getElementById('page:popup-1') != null", "5000");
+
+    // click on open 2nd popup
+    getSelenium().click("page:popup-1:open-1");
+    getSelenium().waitForCondition(
+        "selenium.browserbot.getCurrentWindow().document.getElementById('page:popup-1:popup-2') != null", "5000");
+
+    // click on open date popup
+    getSelenium().click("page:popup-1:popup-2:j_id14"); // XXX autogenerated id
+    getSelenium().waitForCondition(
+        "selenium.browserbot.getCurrentWindow().document.getElementById(" +
+            "'page:popup-1:popup-2:j_id14popup:cancel') != null", "5000");
+
+    // click on close date popup
+    getSelenium().click("page:popup-1:popup-2:j_id14popup:cancel");
+    getSelenium().waitForCondition(
+        "selenium.browserbot.getCurrentWindow().document.getElementById(" +
+            "'page:popup-1:popup-2:j_id14popup:cancel') == null", "5000");
+
+    // click on close 2nd popup
+    getSelenium().click("page:popup-1:popup-2:close-2");
+    getSelenium().waitForCondition(
+        "selenium.browserbot.getCurrentWindow().document.getElementById(" +
+            "'page:popup-1:popup-2') == null", "5000");
+
+    // click on close 2nd popup
+    getSelenium().click("page:popup-1:close-1");
+    getSelenium().waitForCondition(
+        "selenium.browserbot.getCurrentWindow().document.getElementById(" +
+            "'page:popup-1') == null", "5000");
+
+  }
+}

Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-popup.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-popup.js?rev=1303409&r1=1303408&r2=1303409&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-popup.js (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-popup.js Wed Mar 21 14:44:03 2012
@@ -37,7 +37,7 @@ Tobago.Popup.setup = function () {
   var maxZIndex = -Infinity;
   var maxModalPopup = null;
   jQuery('.tobago-popup-markup-modal').each(function () {
-    var zIndex = jQuery(this).css('z-index');
+    var zIndex = parseInt(jQuery(this).css('z-index'));
     if (zIndex >= maxZIndex) {
       maxZIndex = zIndex;
       maxModalPopup = jQuery(this);