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);