You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by do...@apache.org on 2004/09/15 05:53:37 UTC
svn commit: rev 46077 - in incubator/beehive/trunk/netui: src/tags-html/org/apache/beehive/netui/tags/html test/webapps/drt/coreWeb/tags/selectEmptyOption test/webapps/drt/testRecorder/config test/webapps/drt/testRecorder/tests
Author: dolander
Date: Tue Sep 14 20:53:35 2004
New Revision: 46077
Added:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tags/selectEmptyOption/
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tags/selectEmptyOption/Controller.jpf
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tags/selectEmptyOption/index.jsp
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/SelectEmptyOption.xml
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Select.java
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
Log:
Fix a bug in the select. In a repeating select, if the optionDataSource was an empty array, the result was an
exception in the iterator.
Added a BVT.
Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Select.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Select.java (original)
+++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Select.java Tue Sep 14 20:53:35 2004
@@ -687,7 +687,13 @@
registerTagError(s, null);
return SKIP_BODY;
}
- _repCurItem = ((Iterator) _dynamicOptions).next();
+ Iterator it = (Iterator) _dynamicOptions;
+ if (!it.hasNext()) {
+ _repCurStage = STAGE_NULL;
+ return SKIP_BODY;
+
+ }
+ _repCurItem = it.next();
_repCurStage = STAGE_OPTION;
DataAccessProviderStack.addDataAccessProvider(this, pageContext);
@@ -911,17 +917,12 @@
int realEnd = end + END_TOKEN.length() + 1;
body.append(_saveBody.substring(pos,start));
error.append(_saveBody.substring(start,realEnd));
- System.err.println("Body:" + body);
- System.err.println("Error:" + error);
pos = realEnd;
}
// recreate the remainder of the body, everything not left
body.append(_saveBody.substring(pos,len));
_saveBody = body.toString();
-
- System.err.println("Body:" + body);
- System.err.println("Error:" + error);
// return the error
return error.toString();
Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tags/selectEmptyOption/Controller.jpf
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tags/selectEmptyOption/Controller.jpf Tue Sep 14 20:53:35 2004
@@ -0,0 +1,63 @@
+package tags.selectEmptyOption;
+
+import javax.servlet.http.HttpSession;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+/**
+ * This is the default controller for a blank web application.
+ */
+@Jpf.Controller
+public class Controller extends PageFlowController
+{
+ private String[] _opts = new String[0];
+ private String[] _select;
+
+ public String[] getOptions() {
+ return _opts;
+ }
+
+ public String[] getSelect() {
+ return _select;
+ }
+ public void setSelect(String[] select) {
+ _select = select;
+ }
+
+ @Jpf.Action(
+ forwards={
+ @Jpf.Forward(name="index", path="index.jsp")
+ }
+ )
+ protected Forward begin()
+ {
+ return new Forward("index");
+ }
+
+
+ /**
+ * Callback that is invoked when this controller instance is created.
+ */
+ protected void onCreate()
+ {
+ }
+
+ /**
+ * Callback that is invoked when this controller instance is destroyed.
+ */
+ protected void onDestroy(HttpSession session)
+ {
+ }
+}
+
+@Jpf.ViewProperties(value = {
+ "<!-- This data is auto-generated. Hand-editing this section is not recommended. -->",
+ "<view-properties>",
+ "<pageflow-object id='pageflow:/bug/Controller.jpf'/>",
+ "<pageflow-object id='page:index.jsp'><property value='220' name='x'/><property value='100' name='y'/></pageflow-object>",
+ "<pageflow-object id='action:begin.do'><property value='80' name='x'/><property value='100' name='y'/></pageflow-object>",
+ "<pageflow-object id='forward:path#index#index.jsp#@action:begin.do@'><property value='116,140,140,164' name='elbowsX'/><property value='92,92,92,92' name='elbowsY'/><property value='East_1' name='fromPort'/><property value='West_1' name='toPort'/><property value='index' name='label'/></pageflow-object>",
+ "</view-properties>"
+})
+interface VIEW_PROPERTIES { }
Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tags/selectEmptyOption/index.jsp
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/tags/selectEmptyOption/index.jsp Tue Sep 14 20:53:35 2004
@@ -0,0 +1,23 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+<%@ taglib prefix="netui-data" uri="http://beehive.apache.org/netui/tags-databinding-1.0"%>
+<%@ taglib prefix="netui-template" uri="http://beehive.apache.org/netui/tags-template-1.0"%>
+<netui:html>
+ <head>
+ <netui:base/>
+ </head>
+ <netui:body>
+ <h4>Select Empty OptionDataSource</h4>
+ <p style="color:green">This is a test of an empty array being used as an options
+ data source for a repeating select. The result should be that the select has no content.
+ There should be an error either on the console or page.
+ </p>
+ <hr>
+ <netui:select dataSource="pageFlow.select" optionsDataSource="${pageFlow.options}" repeater="true">
+ <netui:selectOption repeatingType="Option" value="${container.item}">
+ </netui:selectOption>
+ </netui:select>
+ </netui:body>
+</netui:html>
+
+
\ No newline at end of file
Modified: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml (original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml Tue Sep 14 20:53:35 2004
@@ -4487,6 +4487,19 @@
</features>
</test>
<test>
+ <name>SelectEmptyOption</name>
+ <description>Repeating Select with an OptionDataSource that has an empty array.</description>
+ <webapp>coreWeb</webapp>
+ <categories>
+ <category>bvt</category>
+ <category>tags</category>
+ </categories>
+ <features>
+ <feature>Select</feature>
+ <feature>OptionDataSource</feature>
+ </features>
+ </test>
+ <test>
<name>SerializeXMLTag</name>
<description>Tests the SerializeXML tag.</description>
<webapp>coreWeb</webapp>
Added: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/SelectEmptyOption.xml
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/SelectEmptyOption.xml Tue Sep 14 20:53:35 2004
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
+ <ses:sessionName>SelectEmptyOption</ses:sessionName>
+ <ses:tester>Daryl</ses:tester>
+ <ses:startDate>14 Sep 2004, 09:20:23.112 PM MDT</ses:startDate>
+ <ses:description>test of an empty array in a repeating select.</ses:description>
+ <ses:tests>
+ <ses:test>
+ <ses:testNumber>1</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/tags/selectEmptyOption/Controller.jpf</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>1B8A12E51E46B375A8781175253E5A61</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip, deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>Keep-Alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=1B8A12E51E46B375A8781175253E5A61</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 2.0.40607)</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <base href="http://localhost:8080/coreWeb/tags/selectEmptyOption/index.jsp">
+ </head>
+ <body>
+ <h4>Select Empty OptionDataSource</h4>
+ <p style="color:green">This is a test of an empty array being used as an options
+ data source for a repeating select. The result should be that the select has no content.
+ There should be an error either on the console or page.
+ </p>
+ <hr>
+ <input type="hidden" name="wlw-select_key:{pageFlow.select}OldValue" value="true">
+<select name="wlw-select_key:{pageFlow.select}"></select>
+ </body>
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ </ses:tests>
+ <ses:endDate>14 Sep 2004, 09:20:28.901 PM MDT</ses:endDate>
+ <ses:testCount>1</ses:testCount>
+</ses:recorderSession>