Author: ivaynberg
Date: Sat Oct 30 22:57:28 2010
New Revision: 1029219

URL: http://svn.apache.org/viewvc?rev=1029219&view=rev
Log:
code cleanup: moved all the behavior collection management junk into a helper 
object

Added:
    wicket/trunk/wicket/Wicket - Tests.launch   (with props)
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Behaviors.java   (with 
props)
    
wicket/trunk/wicket/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java
   (contents, props changed)
      - copied, changed from r1028987, 
wicket/trunk/wicket/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIndexTest.java
Removed:
    
wicket/trunk/wicket/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIndexTest.java
Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java

Added: wicket/trunk/wicket/Wicket - Tests.launch
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/Wicket%20-%20Tests.launch?rev=1029219&view=auto
==============================================================================
--- wicket/trunk/wicket/Wicket - Tests.launch (added)
+++ wicket/trunk/wicket/Wicket - Tests.launch Sat Oct 30 22:57:28 2010
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<stringAttribute key="bad_container_name" value="\wicket\regenerate-tests"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/wicket/src/test/java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="2"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" 
value="=wicket/src\/test\/java"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" 
value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="wicket"/>
+</launchConfiguration>

Propchange: wicket/trunk/wicket/Wicket - Tests.launch
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/Behaviors.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Behaviors.java?rev=1029219&view=auto
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Behaviors.java (added)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Behaviors.java Sat Oct 
30 22:57:28 2010
@@ -0,0 +1,301 @@
+/*
+ * 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.
+ */
+package org.apache.wicket;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.behavior.IBehavior;
+import org.apache.wicket.behavior.InvalidBehaviorIdException;
+import org.apache.wicket.model.IDetachable;
+import org.apache.wicket.util.lang.Args;
+
+/**
+ * Manages behaviors in a {...@link Component} instance
+ * 
+ * @author igor
+ */
+final class Behaviors implements IDetachable
+{
+       private final Component component;
+
+       public Behaviors(Component component)
+       {
+               this.component = component;
+       }
+
+       public void add(IBehavior... behaviors)
+       {
+               if (behaviors == null)
+               {
+                       throw new IllegalArgumentException("Argument may not be 
null");
+               }
+
+               for (IBehavior behavior : behaviors)
+               {
+                       if (behavior == null)
+                       {
+                               throw new IllegalArgumentException("Argument 
may not be null");
+                       }
+
+                       internalAdd(behavior);
+
+                       if (!behavior.isTemporary())
+                       {
+                               component.addStateChange();
+                       }
+
+                       // Give handler the opportunity to bind this component
+                       behavior.bind(component);
+               }
+       }
+
+       private void internalAdd(final IBehavior behavior)
+       {
+               component.data_add(behavior);
+       }
+
+       @SuppressWarnings("unchecked")
+       public <M extends IBehavior> List<M> getBehaviors(Class<M> type)
+       {
+               final int len = component.data_length();
+               final int start = component.data_start();
+               if (len < start)
+               {
+                       return Collections.emptyList();
+               }
+
+               List<M> subset = new ArrayList<M>(len);
+               for (int i = component.data_start(); i < len; i++)
+               {
+                       Object obj = component.data_get(i);
+                       if (obj != null && obj instanceof IBehavior)
+                       {
+                               if (type == null || 
type.isAssignableFrom(obj.getClass()))
+                               {
+                                       subset.add((M)obj);
+                               }
+                       }
+               }
+               return Collections.unmodifiableList(subset);
+       }
+
+
+       public void remove(IBehavior behavior)
+       {
+               if (behavior == null)
+               {
+                       throw new IllegalArgumentException("Argument `behavior` 
cannot be null");
+               }
+
+               if (internalRemove(behavior))
+               {
+                       if (!behavior.isTemporary())
+                       {
+                               component.addStateChange();
+                       }
+                       behavior.detach(component);
+               }
+               else
+               {
+                       throw new IllegalStateException(
+                               "Tried to remove a behavior that was not added 
to the component. Behavior: " +
+                                       behavior.toString());
+               }
+       }
+
+       /**
+        * THIS IS WICKET INTERNAL ONLY. DO NOT USE IT.
+        * 
+        * Traverses all behaviors and calls detachModel() on them. This is 
needed to cleanup behavior
+        * after render. This method is necessary for {...@link 
AjaxRequestTarget} to be able to cleanup
+        * component's behaviors after header contribution has been done (which 
is separated from
+        * component render).
+        */
+       public final void detach()
+       {
+               final int len = component.data_length();
+               for (int i = component.data_start(); i < len; i++)
+               {
+                       Object obj = component.data_get(i);
+                       if (obj != null && obj instanceof IBehavior)
+                       {
+                               final IBehavior behavior = (IBehavior)obj;
+
+                               behavior.detach(component);
+
+                               if (behavior.isTemporary())
+                               {
+                                       internalRemove(behavior);
+                               }
+                       }
+               }
+       }
+
+       private boolean internalRemove(final IBehavior behavior)
+       {
+               final int len = component.data_length();
+               for (int i = component.data_start(); i < len; i++)
+               {
+                       Object o = component.data_get(i);
+                       if (o != null && o.equals(behavior))
+                       {
+                               component.data_remove(i);
+                               behavior.unbind(component);
+
+                               // remove behavior from behavior-ids
+                               ArrayList<IBehavior> ids = 
getBehaviorsIdList(false);
+                               if (ids != null)
+                               {
+                                       int idx = ids.indexOf(behavior);
+                                       if (idx == ids.size() - 1)
+                                       {
+                                               ids.remove(idx);
+                                       }
+                                       else if (idx >= 0)
+                                       {
+                                               ids.set(idx, null);
+                                       }
+                                       ids.trimToSize();
+
+                                       if (ids.isEmpty())
+                                       {
+                                               removeBehaviorsIdList();
+                                       }
+
+                               }
+                               return true;
+                       }
+               }
+               return false;
+       }
+
+       private void removeBehaviorsIdList()
+       {
+               for (int i = component.data_start(); i < 
component.data_length(); i++)
+               {
+                       Object obj = component.data_get(i);
+                       if (obj != null && obj instanceof BehaviorIdList)
+                       {
+                               component.data_remove(i);
+                               return;
+                       }
+               }
+       }
+
+       private BehaviorIdList getBehaviorsIdList(boolean createIfNotFound)
+       {
+               int len = component.data_length();
+               for (int i = component.data_start(); i < len; i++)
+               {
+                       Object obj = component.data_get(i);
+                       if (obj != null && obj instanceof BehaviorIdList)
+                       {
+                               return (BehaviorIdList)obj;
+                       }
+               }
+               if (createIfNotFound)
+               {
+                       BehaviorIdList list = new BehaviorIdList();
+                       component.data_add(list);
+                       return list;
+               }
+               return null;
+       }
+
+       private static class BehaviorIdList extends ArrayList<IBehavior>
+       {
+               public BehaviorIdList()
+               {
+                       super(1);
+               }
+       }
+
+       /** {...@inheritdoc} */
+       public final int getBehaviorId(IBehavior behavior)
+       {
+               Args.notNull(behavior, "behavior");
+
+               boolean found = false;
+               for (int i = component.data_start(); i < 
component.data_length(); i++)
+               {
+                       if (behavior == component.data_get(i))
+                       {
+                               found = true;
+                               break;
+                       }
+               }
+               if (!found)
+               {
+                       throw new IllegalStateException(
+                               "Behavior must be added to component before its 
id can be generated. Behavior: " +
+                                       behavior + ", Component: " + this);
+               }
+
+               ArrayList<IBehavior> ids = getBehaviorsIdList(true);
+
+               int id = ids.indexOf(behavior);
+
+               if (id < 0)
+               {
+                       // try to find an unused slot
+                       for (int i = 0; i < ids.size(); i++)
+                       {
+                               if (ids.get(i) == null)
+                               {
+                                       ids.set(i, behavior);
+                                       id = i;
+                                       break;
+                               }
+                       }
+               }
+
+               if (id < 0)
+               {
+                       // no unused slots, add to the end
+                       id = ids.size();
+                       ids.add(behavior);
+                       ids.trimToSize();
+               }
+
+               return id;
+       }
+
+       public final IBehavior getBehaviorById(int id)
+       {
+               IBehavior behavior = null;
+
+               ArrayList<IBehavior> ids = getBehaviorsIdList(false);
+               if (ids != null)
+               {
+                       if (id >= 0 && id < ids.size())
+                       {
+                               behavior = ids.get(id);
+                       }
+               }
+
+               if (behavior != null)
+               {
+                       return behavior;
+               }
+               throw new InvalidBehaviorIdException(component, id);
+       }
+
+
+}

Propchange: wicket/trunk/wicket/src/main/java/org/apache/wicket/Behaviors.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java?rev=1029219&r1=1029218&r2=1029219&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java 
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java Sat Oct 
30 22:57:28 2010
@@ -18,19 +18,16 @@ package org.apache.wicket;
 
 import java.io.Serializable;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Stack;
 
-import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.authorization.Action;
 import org.apache.wicket.authorization.AuthorizationException;
 import org.apache.wicket.authorization.IAuthorizationStrategy;
 import org.apache.wicket.authorization.UnauthorizedActionException;
 import org.apache.wicket.behavior.IBehavior;
-import org.apache.wicket.behavior.InvalidBehaviorIdException;
 import org.apache.wicket.event.Broadcast;
 import org.apache.wicket.event.IEvent;
 import org.apache.wicket.event.IEventSink;
@@ -236,12 +233,6 @@ public abstract class Component
 
        private static final long serialVersionUID = 1L;
 
-       /** metadata key that stores stable ids for behavior - ids are used 
when generating a url, etc */
-       private static MetaDataKey<ArrayList<IBehavior>> BEHAVIOR_IDS = new 
MetaDataKey<ArrayList<IBehavior>>()
-       {
-               private static final long serialVersionUID = 1L;
-       };
-
        /**
         * Action used with IAuthorizationStrategy to determine whether a 
component is allowed to be
         * enabled.
@@ -491,7 +482,12 @@ public abstract class Component
         */
        Object data = null;
 
-       private final int data_length()
+       final int data_start()
+       {
+               return getFlag(FLAG_MODEL_SET) ? 1 : 0;
+       }
+
+       final int data_length()
        {
                if (data == null)
                {
@@ -507,7 +503,7 @@ public abstract class Component
                }
        }
 
-       private final Object data_get(int index)
+       final Object data_get(int index)
        {
                if (data == null)
                {
@@ -528,7 +524,7 @@ public abstract class Component
                }
        }
 
-       private final Object data_set(int index, Object object)
+       final Object data_set(int index, Object object)
        {
                if (index > data_length() - 1)
                {
@@ -549,12 +545,12 @@ public abstract class Component
                }
        }
 
-       private final void data_add(Object object)
+       final void data_add(Object object)
        {
                data_insert(-1, object);
        }
 
-       private final void data_insert(int position, Object object)
+       final void data_insert(int position, Object object)
        {
                int currentLength = data_length();
                if (position == -1)
@@ -603,7 +599,7 @@ public abstract class Component
                }
        }
 
-       private Object data_remove(int position)
+       Object data_remove(int position)
        {
                int currentLength = data_length();
 
@@ -1010,80 +1006,6 @@ public abstract class Component
        }
 
        /**
-        * Adds a behavior modifier to the component.
-        * 
-        * <p>
-        * Note: this method is override to enable users to do things like 
discussed in <a
-        * 
href="http://www.nabble.com/Why-add%28IBehavior%29-is-final--tf2598263.html#a7248198";>this
-        * thread</a>.
-        * </p>
-        * 
-        * @param behaviors
-        *            The behavior modifier(s) to be added
-        * @return this (to allow method call chaining)
-        */
-       public Component add(final IBehavior... behaviors)
-       {
-               if (behaviors == null)
-               {
-                       throw new IllegalArgumentException("Argument may not be 
null");
-               }
-
-               for (IBehavior behavior : behaviors)
-               {
-                       if (behavior == null)
-                       {
-                               throw new IllegalArgumentException("Argument 
may not be null");
-                       }
-
-                       addBehavior(behavior);
-
-                       if (!behavior.isTemporary())
-                       {
-                               addStateChange();
-                       }
-
-                       // Give handler the opportunity to bind this component
-                       behavior.bind(this);
-               }
-               return this;
-       }
-
-       /**
-        * 
-        * @param behavior
-        */
-       private void addBehavior(final IBehavior behavior)
-       {
-               data_add(behavior);
-       }
-
-       private final List<? extends IBehavior> getBehaviorsRawList()
-       {
-               if (data != null)
-               {
-                       // if the model is set, we must skip it
-                       final int startIndex = getFlag(FLAG_MODEL_SET) ? 1 : 0;
-                       int length = data_length();
-
-                       if (length > startIndex)
-                       {
-                               final ArrayList<IBehavior> result = new 
ArrayList<IBehavior>();
-                               for (int i = startIndex; i < length; ++i)
-                               {
-                                       Object o = data_get(i);
-                                       if (o == null || o instanceof IBehavior)
-                                       {
-                                               result.add((IBehavior)o);
-                                       }
-                               }
-                               return result;
-                       }
-               }
-               return null;
-       }
-
-       /**
         * Called on very component after the page is rendered. It will call 
onAfterRender for it self
         * and its children.
         */
@@ -1300,7 +1222,7 @@ public abstract class Component
                detachModels();
 
                // detach any behaviors
-               detachBehaviors();
+               new Behaviors(this).detach();
 
                // always detach children because components can be attached
                // independently of their parents
@@ -1328,32 +1250,6 @@ public abstract class Component
        }
 
        /**
-        * THIS IS WICKET INTERNAL ONLY. DO NOT USE IT.
-        * 
-        * Traverses all behaviors and calls detachModel() on them. This is 
needed to cleanup behavior
-        * after render. This method is necessary for {...@link 
AjaxRequestTarget} to be able to cleanup
-        * component's behaviors after header contribution has been done (which 
is separated from
-        * component render).
-        */
-       public final void detachBehaviors()
-       {
-               for (IBehavior behavior : getBehaviors())
-               {
-                       // Always detach models, 'accepted' or not. Otherwise, 
if they
-                       // are accepted during render, but not here - something 
can go
-                       // undetached, and calling isEnabled can also lead to 
nasty side
-                       // effects. See for instance Timo's comment on
-                       // http://issues.apache.org/jira/browse/WICKET-673
-                       behavior.detach(this);
-
-                       if (behavior.isTemporary())
-                       {
-                               removeBehavior(behavior);
-                       }
-               }
-       }
-
-       /**
         * Detaches all models
         */
        public void detachModels()
@@ -1451,17 +1347,6 @@ public abstract class Component
        }
 
        /**
-        * Gets the currently coupled {...@link IBehavior}s as a unmodifiable 
list. Returns an empty list
-        * rather than null if there are no behaviors coupled to this component.
-        * 
-        * @return The currently coupled behaviors as a unmodifiable list
-        */
-       public final List<? extends IBehavior> getBehaviors()
-       {
-               return getBehaviors(IBehavior.class);
-       }
-
-       /**
         * @return A path of the form [page-class-name].[page-relative-path]
         * @see Component#getPageRelativePath()
         */
@@ -2401,73 +2286,6 @@ public abstract class Component
                parent.remove(this);
        }
 
-       /**
-        * Removes behavior from component
-        * 
-        * @param behavior
-        *            behavior to remove
-        * 
-        * @return this (to allow method call chaining)
-        */
-       public Component remove(final IBehavior behavior)
-       {
-               if (behavior == null)
-               {
-                       throw new IllegalArgumentException("Argument `behavior` 
cannot be null");
-               }
-
-               if (removeBehavior(behavior))
-               {
-                       if (!behavior.isTemporary())
-                       {
-                               addStateChange();
-                       }
-               }
-               else
-               {
-                       throw new IllegalStateException(
-                               "Tried to remove a behavior that was not added 
to the component. Behavior: " +
-                                       behavior.toString());
-               }
-               return this;
-       }
-
-       /**
-        * 
-        * @param behavior
-        * @return true if behavior found and removed
-        */
-       private boolean removeBehavior(final IBehavior behavior)
-       {
-               final int len = data_length();
-               for (int i = 0; i < len; i++)
-               {
-                       Object o = data_get(i);
-                       if (o != null && o.equals(behavior))
-                       {
-                               data_remove(i);
-                               behavior.unbind(this);
-
-                               // remove behavior from behavior-ids metadata
-                               ArrayList<IBehavior> ids = 
getMetaData(BEHAVIOR_IDS);
-                               if (ids != null)
-                               {
-                                       int idx = ids.indexOf(behavior);
-                                       if (idx == ids.size() - 1)
-                                       {
-                                               ids.remove(idx);
-                                       }
-                                       else if (idx >= 0)
-                                       {
-                                               ids.set(idx, null);
-                                       }
-                                       ids.trimToSize();
-                                       return true;
-                               }
-                       }
-               }
-               return false;
-       }
 
        /**
         * Render the Component.
@@ -3687,28 +3505,7 @@ public abstract class Component
        @SuppressWarnings("unchecked")
        public <M extends IBehavior> List<M> getBehaviors(Class<M> type)
        {
-               List<? extends IBehavior> behaviors = getBehaviorsRawList();
-               if (behaviors == null)
-               {
-                       return Collections.emptyList();
-               }
-
-               List<M> subset = new ArrayList<M>(behaviors.size()); // avoid 
growing
-               for (IBehavior behavior : behaviors)
-               {
-                       if (behavior != null)
-                       {
-                               if (type == null)
-                               {
-                                       subset.add((M)behavior);
-                               }
-                               else if 
(type.isAssignableFrom(behavior.getClass()))
-                               {
-                                       subset.add(type.cast(behavior));
-                               }
-                       }
-               }
-               return Collections.unmodifiableList(subset);
+               return new Behaviors(this).getBehaviors(type);
        }
 
        /**
@@ -4493,69 +4290,60 @@ public abstract class Component
                new ComponentEventSender(this).send(sink, type, payload);
        }
 
+       /**
+        * Removes behavior from component
+        * 
+        * @param behavior
+        *            behavior to remove
+        * 
+        * @return this (to allow method call chaining)
+        */
+       public Component remove(final IBehavior behavior)
+       {
+               new Behaviors(this).remove(behavior);
+               return this;
+       }
+
        /** {...@inheritdoc} */
        public final IBehavior getBehaviorById(int id)
        {
-               IBehavior behavior = null;
-
-               ArrayList<IBehavior> ids = getMetaData(BEHAVIOR_IDS);
-               if (ids != null)
-               {
-                       if (id >= 0 && id < ids.size())
-                       {
-                               behavior = ids.get(id);
-                       }
-               }
-
-               if (behavior != null)
-               {
-                       return behavior;
-               }
-               throw new InvalidBehaviorIdException(this, id);
+               return new Behaviors(this).getBehaviorById(id);
        }
 
        /** {...@inheritdoc} */
        public final int getBehaviorId(IBehavior behavior)
        {
-               if (!getBehaviorsRawList().contains(behavior))
-               {
-                       throw new IllegalStateException(
-                               "Behavior must be added to component before its 
id can be generated. Behavior: " +
-                                       behavior + ", Component: " + this);
-               }
-
-               ArrayList<IBehavior> ids = getMetaData(BEHAVIOR_IDS);
-
-               if (ids == null)
-               {
-                       ids = new ArrayList<IBehavior>(1);
-                       setMetaData(BEHAVIOR_IDS, ids);
-               }
-
-               int id = ids.indexOf(behavior);
-
-               if (id < 0)
-               {
-                       // try to find an unused slot
-                       for (int i = 0; i < ids.size(); i++)
-                       {
-                               if (ids.get(i) == null)
-                               {
-                                       ids.set(i, behavior);
-                                       id = i;
-                               }
-                       }
-               }
+               return new Behaviors(this).getBehaviorId(behavior);
+       }
 
-               if (id < 0)
-               {
-                       // no unused slots, add to the end
-                       id = ids.size();
-                       ids.add(behavior);
-                       ids.trimToSize();
-               }
+       /**
+        * Adds a behavior modifier to the component.
+        * 
+        * <p>
+        * Note: this method is override to enable users to do things like 
discussed in <a
+        * 
href="http://www.nabble.com/Why-add%28IBehavior%29-is-final--tf2598263.html#a7248198";>this
+        * thread</a>.
+        * </p>
+        * 
+        * @param behaviors
+        *            The behavior modifier(s) to be added
+        * @return this (to allow method call chaining)
+        */
+       public Component add(final IBehavior... behaviors)
+       {
+               new Behaviors(this).add(behaviors);
+               return this;
+       }
 
-               return id;
+       /**
+        * Gets the currently coupled {...@link IBehavior}s as a unmodifiable 
list. Returns an empty list
+        * rather than null if there are no behaviors coupled to this component.
+        * 
+        * @return The currently coupled behaviors as a unmodifiable list
+        */
+       public final List<? extends IBehavior> getBehaviors()
+       {
+               return getBehaviors(IBehavior.class);
        }
 
 }

Copied: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java
 (from r1028987, 
wicket/trunk/wicket/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIndexTest.java)
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java?p2=wicket/trunk/wicket/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java&p1=wicket/trunk/wicket/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIndexTest.java&r1=1028987&r2=1029219&rev=1029219&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIndexTest.java
 (original)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java
 Sat Oct 30 22:57:28 2010
@@ -29,7 +29,7 @@ import org.apache.wicket.util.resource.I
 import org.apache.wicket.util.resource.StringResourceStream;
 
 /** IBehavior array management tests */
-public class ImmutableBehaviorIndexTest extends WicketTestCase
+public class ImmutableBehaviorIdsTest extends WicketTestCase
 {
        /** Tests simple behavior */
        public void testSimple()
@@ -59,6 +59,7 @@ public class ImmutableBehaviorIndexTest 
                tester.startPage(page);
 
                String output = tester.getLastResponseAsString();
+               System.out.println(output);
                assertTrue(output.contains("class=\"border\""));
                assertTrue(output.contains("autocomplete=\"off\""));
                assertTrue(output.contains("class2=\"border\""));

Propchange: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/behavior/ImmutableBehaviorIdsTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain


Reply via email to