JBoss Rich Faces SVN: r14905 - in framework/trunk: impl/src/main/java/org/ajax4jsf/cache and 2 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2009-07-12 18:59:51 -0400 (Sun, 12 Jul 2009)
New Revision: 14905
Added:
framework/trunk/impl/src/test/java/org/ajax4jsf/cache/LRUMapCacheTest.java
Modified:
framework/trunk/api/
framework/trunk/impl/src/main/java/org/ajax4jsf/cache/CacheManager.java
framework/trunk/impl/src/main/java/org/ajax4jsf/cache/EhCacheCache.java
framework/trunk/impl/src/main/java/org/ajax4jsf/cache/JBossCacheCacheFactory.java
framework/trunk/impl/src/main/java/org/ajax4jsf/cache/LRUMapCache.java
framework/trunk/impl/src/main/java/org/richfaces/resource/CachedResourceImpl.java
framework/trunk/impl/src/main/java/org/richfaces/resource/ResourceHandlerImpl.java
framework/trunk/impl/src/main/java/org/richfaces/resource/ResourceImpl.java
framework/trunk/impl/src/main/java/org/richfaces/resource/TestResource2.java
Log:
Resources: further work on caching
Property changes on: framework/trunk/api
___________________________________________________________________
Name: svn:ignore
- .project
.checkstyle
target
.metadata
.settings
.classpath
+ .project
.checkstyle
target
.metadata
.settings
.classpath
.clover
Modified: framework/trunk/impl/src/main/java/org/ajax4jsf/cache/CacheManager.java
===================================================================
--- framework/trunk/impl/src/main/java/org/ajax4jsf/cache/CacheManager.java 2009-07-12 22:54:35 UTC (rev 14904)
+++ framework/trunk/impl/src/main/java/org/ajax4jsf/cache/CacheManager.java 2009-07-12 22:59:51 UTC (rev 14905)
@@ -34,6 +34,7 @@
/**
* CacheManager is used in J2SE environments for looking up named caches.
*/
+//TODO stop caches on application stop
public class CacheManager {
private static final Log log = LogFactory.getLog(CacheManager.class);
@@ -44,7 +45,7 @@
"org.ajax4jsf.cache.JBossCacheCacheFactory", "org.ajax4jsf.cache.EhCacheCacheFactory"
};
- protected static CacheManager instance = new CacheManager();
+ protected static CacheManager instance = new CacheManager();
// REVIEW brian(a)quiotix.com
// Should this be a HashMap<String, WeakReference<Cache>>?
Modified: framework/trunk/impl/src/main/java/org/ajax4jsf/cache/EhCacheCache.java
===================================================================
--- framework/trunk/impl/src/main/java/org/ajax4jsf/cache/EhCacheCache.java 2009-07-12 22:54:35 UTC (rev 14904)
+++ framework/trunk/impl/src/main/java/org/ajax4jsf/cache/EhCacheCache.java 2009-07-12 22:59:51 UTC (rev 14905)
@@ -43,7 +43,7 @@
Integer ttl = null;
if (expired != 0) {
eternal = Boolean.FALSE;
- ttl = (int) (expired - System.currentTimeMillis());
+ ttl = (int) (expired - System.currentTimeMillis()) / 1000;
}
Element element = new Element(key, value, eternal, null, ttl);
Modified: framework/trunk/impl/src/main/java/org/ajax4jsf/cache/JBossCacheCacheFactory.java
===================================================================
--- framework/trunk/impl/src/main/java/org/ajax4jsf/cache/JBossCacheCacheFactory.java 2009-07-12 22:54:35 UTC (rev 14904)
+++ framework/trunk/impl/src/main/java/org/ajax4jsf/cache/JBossCacheCacheFactory.java 2009-07-12 22:59:51 UTC (rev 14905)
@@ -3,8 +3,14 @@
*/
package org.ajax4jsf.cache;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
import java.util.Map;
+import javax.faces.FacesException;
+
+import org.ajax4jsf.resource.util.URLToStreamHelper;
import org.jboss.cache.Cache;
import org.jboss.cache.DefaultCacheFactory;
@@ -23,7 +29,33 @@
}
public org.ajax4jsf.cache.Cache createCache(Map<?, ?> env) {
- Cache<String, Object> cache = cacheFactory.createCache("/jboss-cache.xml");
+ ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
+ Cache<String, Object> cache = null;
+ URL cacheConfigurationURL = null;
+ if (contextClassLoader != null) {
+ cacheConfigurationURL = contextClassLoader.getResource("/jboss-cache.xml");
+ }
+
+ if (cacheConfigurationURL != null) {
+ InputStream stream = null;
+ try {
+ stream = URLToStreamHelper.urlToStream(cacheConfigurationURL);
+ cache = cacheFactory.createCache(stream);
+ } catch (IOException e) {
+ throw new FacesException(e.getLocalizedMessage(), e);
+ } finally {
+ if (stream != null) {
+ try {
+ stream.close();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
+ } else {
+ cache = cacheFactory.createCache();
+ }
return new JBossCacheCache(cache);
}
Modified: framework/trunk/impl/src/main/java/org/ajax4jsf/cache/LRUMapCache.java
===================================================================
--- framework/trunk/impl/src/main/java/org/ajax4jsf/cache/LRUMapCache.java 2009-07-12 22:54:35 UTC (rev 14904)
+++ framework/trunk/impl/src/main/java/org/ajax4jsf/cache/LRUMapCache.java 2009-07-12 22:59:51 UTC (rev 14905)
@@ -32,7 +32,7 @@
*/
public class LRUMapCache implements Cache {
- private static final class CacheMap extends LRUMap<Object, CacheEntry> {
+ protected static final class CacheMap extends LRUMap<Object, CacheEntry> {
/**
*
*/
@@ -46,11 +46,12 @@
super(capacity);
}
- private PriorityQueue<CacheEntry> expirationQueue = new PriorityQueue<CacheEntry>();
+ protected PriorityQueue<CacheEntry> expirationQueue = new PriorityQueue<CacheEntry>();
public CacheEntry put(Object key, CacheEntry value) {
CacheEntry entry = super.put(key, value);
if (entry != null) {
+ //prolong
expirationQueue.remove(entry);
expirationQueue.add(value);
} else {
@@ -77,14 +78,16 @@
public void purge() {
CacheEntry queueEntry = null;
- while ((queueEntry = expirationQueue.peek()) != null && queueEntry.isExpired()) {
+ while ((queueEntry = expirationQueue.peek()) != null &&
+ queueEntry.isExpired()) {
+
super.remove(queueEntry.getKey());
expirationQueue.remove();
}
}
}
- private static final class CacheEntry implements Comparable<CacheEntry> {
+ protected static final class CacheEntry implements Comparable<CacheEntry> {
private Object key;
@@ -153,7 +156,7 @@
@Override
public String toString() {
- if (expired != 0) {
+ if (expired == 0) {
return key.toString();
} else {
return key + ": " + new Date(expired);
Modified: framework/trunk/impl/src/main/java/org/richfaces/resource/CachedResourceImpl.java
===================================================================
--- framework/trunk/impl/src/main/java/org/richfaces/resource/CachedResourceImpl.java 2009-07-12 22:54:35 UTC (rev 14904)
+++ framework/trunk/impl/src/main/java/org/richfaces/resource/CachedResourceImpl.java 2009-07-12 22:59:51 UTC (rev 14905)
@@ -54,6 +54,8 @@
private Date lastModified;
+ //serves only to define server cache entry expiration time only
+ //browser cache expiration is controlled by stored HTTP headers value
private long expired = 0;
private void initializeFromHeaders() {
Modified: framework/trunk/impl/src/main/java/org/richfaces/resource/ResourceHandlerImpl.java
===================================================================
--- framework/trunk/impl/src/main/java/org/richfaces/resource/ResourceHandlerImpl.java 2009-07-12 22:54:35 UTC (rev 14904)
+++ framework/trunk/impl/src/main/java/org/richfaces/resource/ResourceHandlerImpl.java 2009-07-12 22:59:51 UTC (rev 14905)
@@ -68,6 +68,8 @@
CacheFactory cacheFactory = cacheManager.getCacheFactory(envMap);
this.cache = cacheFactory.createCache(envMap);
+ //TODO - who is responsible for caches starting/stopping?
+ this.cache.start();
}
private static final String RESOURCE_CODEC_ATTRIBUTE_NAME =
Modified: framework/trunk/impl/src/main/java/org/richfaces/resource/ResourceImpl.java
===================================================================
--- framework/trunk/impl/src/main/java/org/richfaces/resource/ResourceImpl.java 2009-07-12 22:54:35 UTC (rev 14904)
+++ framework/trunk/impl/src/main/java/org/richfaces/resource/ResourceImpl.java 2009-07-12 22:59:51 UTC (rev 14905)
@@ -68,7 +68,7 @@
}
/**
- * @param resourceContext current {@link ResourceContext}
+ * <b>IMPORTANT:</b> this method returned TTL in RF 3.x, now it returns expiration time
* @return Returns the expired.
*/
protected long getExpired(FacesContext context) {
@@ -201,9 +201,10 @@
boolean cacheable = isCacheable(facesContext);
if (cacheable) {
+ long currentTime = System.currentTimeMillis();
long expires = getExpired(facesContext);
if (expires <= 0) {
- expires = InternetResource.DEFAULT_EXPIRE;
+ expires = currentTime + InternetResource.DEFAULT_EXPIRE;
}
String entityTag = getEntityTag(facesContext);
@@ -211,8 +212,8 @@
headers.put("ETag", "W/\"" + entityTag + "\"");
}
- headers.put("Expires", Util.formatHttpDate(expires + System.currentTimeMillis()));
- headers.put("Cache-Control", "max-age=" + expires / 1000L);
+ headers.put("Expires", Util.formatHttpDate(expires));
+ headers.put("Cache-Control", "max-age=" + (expires - currentTime) / 1000L);
} else {
headers.put("Expires", "0");
headers.put("Cache-Control", "max-age=0, no-store, no-cache");
Modified: framework/trunk/impl/src/main/java/org/richfaces/resource/TestResource2.java
===================================================================
--- framework/trunk/impl/src/main/java/org/richfaces/resource/TestResource2.java 2009-07-12 22:54:35 UTC (rev 14904)
+++ framework/trunk/impl/src/main/java/org/richfaces/resource/TestResource2.java 2009-07-12 22:59:51 UTC (rev 14905)
@@ -113,7 +113,7 @@
@Override
protected long getExpired(FacesContext context) {
- return 10000;
+ return System.currentTimeMillis() + 10000;
}
@Override
Added: framework/trunk/impl/src/test/java/org/ajax4jsf/cache/LRUMapCacheTest.java
===================================================================
--- framework/trunk/impl/src/test/java/org/ajax4jsf/cache/LRUMapCacheTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/ajax4jsf/cache/LRUMapCacheTest.java 2009-07-12 22:59:51 UTC (rev 14905)
@@ -0,0 +1,195 @@
+
+package org.ajax4jsf.cache;
+
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import org.ajax4jsf.cache.LRUMapCache.CacheMap;
+import org.junit.Assert;
+import org.junit.Test;
+
+
+/**
+ * @author Nick Belaevski
+ * @since 4.0
+ */
+public class LRUMapCacheTest {
+
+ @Test
+ public void testname() throws Exception {
+
+ }
+
+ @Test
+ public void testBasic() throws Exception {
+ LRUMapCache cache = new LRUMapCache();
+ cache.start();
+
+ Assert.assertNull(cache.get("key"));
+ cache.put("key", "value", 0);
+ Assert.assertEquals("value", cache.get("key"));
+
+ cache.stop();
+ }
+
+ @Test
+ public void testLRUEviction() throws Exception {
+ LRUMapCache cache = new LRUMapCache(3);
+ cache.start();
+
+ cache.put("key1", "value1", 0);
+ cache.put("key2", "value2", 0);
+ cache.put("key3", "value3", 0);
+
+ Assert.assertEquals("value1", cache.get("key1"));
+ Assert.assertEquals("value2", cache.get("key2"));
+ Assert.assertEquals("value3", cache.get("key3"));
+
+ cache.get("key1");
+ cache.get("key3");
+
+ cache.put("key4", "value4", 0);
+
+ Assert.assertEquals("value1", cache.get("key1"));
+ Assert.assertNull(cache.get("key2"));
+ Assert.assertEquals("value3", cache.get("key3"));
+ Assert.assertEquals("value4", cache.get("key4"));
+
+ cache.stop();
+ }
+
+ @Test
+ public void testCacheMap() throws Exception {
+ CacheMap cacheMap = new LRUMapCache.CacheMap();
+ Assert.assertTrue(cacheMap.expirationQueue.isEmpty());
+
+ LRUMapCache.CacheEntry cacheEntry = new LRUMapCache.CacheEntry("key", "value", System.currentTimeMillis() + 1000);
+ cacheMap.put("key", cacheEntry);
+
+ Assert.assertNotNull(cacheMap.get("key"));
+ Assert.assertSame(cacheEntry, cacheMap.get("key"));
+ Assert.assertFalse(cacheMap.expirationQueue.isEmpty());
+
+ cacheMap.clear();
+ Assert.assertTrue(cacheMap.expirationQueue.isEmpty());
+
+ cacheMap.put("key2", new LRUMapCache.CacheEntry("key2", "value2", System.currentTimeMillis() + 1000));
+ Assert.assertNotNull(cacheMap.get("key2"));
+ cacheMap.remove("key2");
+ Assert.assertTrue(cacheMap.expirationQueue.isEmpty());
+ }
+
+ @Test
+ public void testExpiration() throws Exception {
+ //this test uses Thread.sleep, so may fail if debugged
+
+ LRUMapCache cache = new LRUMapCache();
+ cache.start();
+
+ cache.put("key", "value", System.currentTimeMillis() + 1000);
+ cache.put("key2", "value2", System.currentTimeMillis() + 1400);
+ cache.put("key3", "value3", System.currentTimeMillis() + 600);
+ cache.put("key4", "value4", System.currentTimeMillis() + 600);
+
+ Assert.assertNotNull(cache.get("key"));
+ Assert.assertNotNull(cache.get("key2"));
+ Assert.assertNotNull(cache.get("key3"));
+ Assert.assertNotNull(cache.get("key4"));
+
+ //prolong key4
+ cache.put("key4", "new value", System.currentTimeMillis() + 1000);
+
+ Thread.sleep(800);
+
+ Assert.assertNotNull(cache.get("key"));
+ Assert.assertNotNull(cache.get("key2"));
+ Assert.assertNull(cache.get("key3"));
+ Assert.assertNotNull(cache.get("key4"));
+
+ Thread.sleep(400);
+
+ Assert.assertNull(cache.get("key"));
+ Assert.assertNotNull(cache.get("key2"));
+ Assert.assertNull(cache.get("key3"));
+ Assert.assertNull(cache.get("key4"));
+
+ Thread.sleep(400);
+
+ Assert.assertNull(cache.get("key"));
+ Assert.assertNull(cache.get("key2"));
+ Assert.assertNull(cache.get("key3"));
+
+ cache.stop();
+ }
+
+ @Test
+ public void testThreads() throws Exception {
+ final AtomicBoolean failure = new AtomicBoolean();
+
+ final LRUMapCache cache = new LRUMapCache();
+ cache.start();
+
+ Thread[] writerThreads = new Thread[10];
+
+ for (int i = 0; i < writerThreads.length; i++) {
+ writerThreads[i] = new Thread() {
+ public void run() {
+ final String key = UUID.randomUUID().toString();
+ final String value = UUID.randomUUID().toString();
+
+ cache.put(key, value, 0);
+
+ Thread[] threads = new Thread[25];
+ for (int j = 0; j < threads.length; j++) {
+ threads[j] = new Thread() {
+ @Override
+ public void run() {
+ int retries = 1000;
+
+ for (int k = 0; k < retries; k++) {
+ if (!value.equals(cache.get(key))) {
+ failure.set(true);
+ return ;
+ }
+ }
+ }
+ };
+ }
+
+ for (Thread thread : threads) {
+ thread.start();
+ }
+ int retries = 1000;
+
+ for (int k = 0; k < retries; k++) {
+ if (!value.equals(cache.get(key))) {
+ failure.set(true);
+ }
+ }
+
+ for (Thread thread : threads) {
+ try {
+ thread.join();
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ failure.set(true);
+ e.printStackTrace();
+ }
+ }
+ };
+ };
+ }
+
+ for (Thread thread : writerThreads) {
+ thread.start();
+ }
+
+ for (Thread thread : writerThreads) {
+ thread.join();
+ }
+
+ Assert.assertFalse(failure.get());
+
+ cache.stop();
+ }
+}
15 years, 2 months
JBoss Rich Faces SVN: r14904 - framework/trunk.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2009-07-12 18:54:35 -0400 (Sun, 12 Jul 2009)
New Revision: 14904
Modified:
framework/trunk/pom.xml
Log:
Framework unit tests updated
Modified: framework/trunk/pom.xml
===================================================================
--- framework/trunk/pom.xml 2009-07-12 22:54:01 UTC (rev 14903)
+++ framework/trunk/pom.xml 2009-07-12 22:54:35 UTC (rev 14904)
@@ -69,6 +69,11 @@
<artifactId>jsf-api</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-impl</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<modules>
15 years, 2 months
JBoss Rich Faces SVN: r14903 - in framework/trunk/legacy-tests/src/test: java/org/ajax4jsf/codec and 11 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2009-07-12 18:54:01 -0400 (Sun, 12 Jul 2009)
New Revision: 14903
Removed:
framework/trunk/legacy-tests/src/test/java/DnDScriptTest.java
framework/trunk/legacy-tests/src/test/java/org/ajax4jsf/codec/CodecTest.java
framework/trunk/legacy-tests/src/test/java/org/ajax4jsf/codec/CodecTestSuite.java
framework/trunk/legacy-tests/src/test/java/org/ajax4jsf/webapp/AllTests.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/component/UIRangedNumberInputTest.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/component/nsutils/NSUtilsTest.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/component/util/
framework/trunk/legacy-tests/src/test/java/org/richfaces/json/
framework/trunk/legacy-tests/src/test/java/org/richfaces/model/FilterFieldTest.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/model/ListSequenceDataModelTest.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/model/ModifiableModelTest.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/model/SortField2Test.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/model/StackingTreeDataModelTest.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Directory.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/File.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Named.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Project.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/ObjectWrapperFactoryTest.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/SimplePropertyExpressionTest.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/ValueBindingExpressionTest.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/WrappedBeanFilterTest.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/CompositeRendererTest.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/InputRendererBaseTest.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/TemplateEncoderRendererBaseTest.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/TemplateUtilTest.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/Bean.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/SkinTestCase.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/SkinTests.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/SkinThreadsTestCase.java
framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/TestApplicationFactory.java
framework/trunk/legacy-tests/src/test/resources/META-INF/skins/
framework/trunk/legacy-tests/src/test/resources/org/richfaces/renderkit/
Log:
Framework unit tests updated
Deleted: framework/trunk/legacy-tests/src/test/java/DnDScriptTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/DnDScriptTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/DnDScriptTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,74 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-import java.io.IOException;
-
-import org.ajax4jsf.javascript.DnDScript;
-import org.ajax4jsf.resource.FacesResourceContext;
-import org.ajax4jsf.resource.ResourceContext;
-import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
-
-/**
- *
- */
-
-/**
- * @author shura
- *
- */
-public class DnDScriptTest extends AbstractAjax4JsfTestCase {
-
- /**
- * @param name
- */
- public DnDScriptTest(String name) {
- super(name);
- }
-
- /* (non-Javadoc)
- * @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#setUp()
- */
- public void setUp() throws Exception {
- super.setUp();
- }
-
- /* (non-Javadoc)
- * @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#tearDown()
- */
- public void tearDown() throws Exception {
- super.tearDown();
- }
-
- /**
- * Test method for {@link org.ajax4jsf.resource.InternetResourceBase#send(org.ajax4jsf.resource.ResourceContext)}.
- */
- public void testSend() {
- DnDScript resource = new DnDScript();
- ResourceContext context = new FacesResourceContext(facesContext);
- try {
- resource.send(context);
- } catch (IOException e) {
- e.printStackTrace();
- assertTrue("error send style",false);
- }
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/ajax4jsf/codec/CodecTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/ajax4jsf/codec/CodecTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/ajax4jsf/codec/CodecTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,88 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.ajax4jsf.codec;
-
-import javax.faces.context.FacesContext;
-
-import org.ajax4jsf.tests.AbstractThreadedAjax4JsfTestCase;
-import org.ajax4jsf.util.base64.Codec;
-
-public class CodecTest extends AbstractThreadedAjax4JsfTestCase {
- Codec c;
-
- public CodecTest(String s) {
- super(s);
- }
-
- public void setUp() throws Exception {
- super.setUp();
- String message = "";
- try {
- c = new Codec("anbshsquycwuudyft");
- } catch (Exception e) {
- message = "Cannot create Codec instance " + e.getMessage();
- }
- assertNotNull(message, c);
- }
-
- public void tearDown() throws Exception {
- super.tearDown();
- }
-
- public void testCodec() {
- CodecTestRunnable[] runnables = new CodecTestRunnable[100];
- for (int i = 0; i < runnables.length; i++) {
- runnables[i] = new CodecTestRunnable(c, generateRandomString(), i);
- }
- runTestCaseRunnables(runnables);
- }
-
- private String generateRandomString() {
- StringBuffer ss = new StringBuffer();
- for (int i = 0; i < 50000; i++) {
- char c = (char)(96 + Math.random() * 26);
- ss.append(c);
- }
- return ss.toString();
- }
-
- class CodecTestRunnable extends TestCaseRunnable {
- Codec c;
- String s;
- int id;
-
- public CodecTestRunnable(Codec c, String s, int id) {
- this.c = c;
- this.s = s;
- this.id = id;
- }
-
-
- public void runTestCase(FacesContext context) throws Throwable {
- String s1 = c.encode(s);
- String s2 = c.decode(s1);
- assertEquals("Failure in thread " + id, s2, s);
- }
-
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/ajax4jsf/codec/CodecTestSuite.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/ajax4jsf/codec/CodecTestSuite.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/ajax4jsf/codec/CodecTestSuite.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,36 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.ajax4jsf.codec;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class CodecTestSuite {
-
- public static Test suite() {
- TestSuite suite = new TestSuite(
- "Test for org.ajax4jsf.codec");
- suite.addTestSuite(CodecTest.class);
- return suite;
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/ajax4jsf/webapp/AllTests.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/ajax4jsf/webapp/AllTests.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/ajax4jsf/webapp/AllTests.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,38 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.ajax4jsf.webapp;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTests {
-
- public static Test suite() {
- TestSuite suite = new TestSuite(
- "Test for org.ajax4jsf.webapp");
- //$JUnit-BEGIN$
- suite.addTestSuite(WebXmlTest.class);
- //$JUnit-END$
- return suite;
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/component/UIRangedNumberInputTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/component/UIRangedNumberInputTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/component/UIRangedNumberInputTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,127 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.component;
-
-import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
-
-public class UIRangedNumberInputTest extends AbstractAjax4JsfTestCase {
-
- private UIRangedNumberInput input;
-
- public UIRangedNumberInputTest(String name) {
- super(name);
- }
-
- public void setUp() throws Exception {
- super.setUp();
-
- input = new UIRangedNumberInput() {
- private String minValue;
- private String maxValue;
- private boolean disabled;
-
- public String getMinValue() {
- return minValue;
- }
- public void setMinValue(String minValue) {
- this.minValue = minValue;
- }
- public String getMaxValue() {
- return maxValue;
- }
- public void setMaxValue(String maxValue) {
- this.maxValue = maxValue;
- }
- public boolean isDisabled() {
- return disabled;
- }
- public void setDisabled(boolean disabled) {
- this.disabled = disabled;
- }
- };
-
- input.setMaxValue("100");
- input.setMinValue("0");
- input.setValid(true);
- }
-
- public void tearDown() throws Exception {
- super.tearDown();
-
- this.input = null;
- }
-
- private void checkValid() {
- assertTrue(input.isValid());
- assertFalse(facesContext.getMessages().hasNext());
- }
-
- private void checkInvalid() {
- assertFalse(input.isValid());
- assertTrue(facesContext.getMessages().hasNext());
- }
-
- public void testValidateValueFacesContextObject() {
- checkValid();
- input.validateValue(facesContext, new Double(23.45));
- checkValid();
- }
-
- public void testValidateNullValue() throws Exception {
- checkValid();
- input.validateValue(facesContext, null);
- checkValid();
- }
-
- public void testValidateMinValue() throws Exception {
- checkValid();
- input.validateValue(facesContext, new Double(-23.45));
- checkInvalid();
- }
-
- public void testValidateMaxValue() throws Exception {
- checkValid();
- input.validateValue(facesContext, new Double(223.45));
- checkInvalid();
- }
-
-
- public void testValidateMinNullMinValue() throws Exception {
- input.setMinValue(null);
- checkValid();
- input.validateValue(facesContext, new Double(-23.45));
- checkInvalid();
- }
-
- public void testValidateMaxNullMaxValue() throws Exception {
- input.setMaxValue(null);
- checkValid();
- input.validateValue(facesContext, new Double(223.45));
- checkInvalid();
- }
-
- public void testValidateIllegalValue() throws Exception {
- checkValid();
- input.validateValue(facesContext, "string");
- checkInvalid();
- }
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/component/nsutils/NSUtilsTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/component/nsutils/NSUtilsTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/component/nsutils/NSUtilsTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,64 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces - Ajax4jsf Component Library
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.component.nsutils;
-
-import java.io.StringWriter;
-
-import javax.faces.component.UIInput;
-import javax.faces.context.ResponseWriter;
-
-import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
-import org.apache.shale.test.mock.MockResponseWriter;
-
-public class NSUtilsTest extends AbstractAjax4JsfTestCase {
-
- public NSUtilsTest(String name) {
- super(name);
- }
-
- public void setUp() throws Exception {
- super.setUp();
- }
-
- public void tearDown() throws Exception {
- super.tearDown();
- }
-
- public void testWriteNameSpace() throws Exception {
- StringWriter stringWriter = new StringWriter();
- facesContext.setResponseWriter(new MockResponseWriter(stringWriter, "text/html", "UTF8"));
- ResponseWriter writer = facesContext.getResponseWriter();
-
- UIInput input = new UIInput();
-
- writer.startDocument();
- writer.startElement("span", input);
-
- NSUtils.writeNameSpace(facesContext, input);
-
- writer.endElement("span");
- writer.endDocument();
-
- String result = stringWriter.getBuffer().toString();
- assertTrue(result.contains("span xmlns:rich=\"http://richfaces.ajax4jsf.org/rich\""));
- }
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/model/FilterFieldTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/model/FilterFieldTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/model/FilterFieldTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,87 +0,0 @@
-/**
- *
- */
-package org.richfaces.model;
-
-import javax.el.ValueExpression;
-
-import org.ajax4jsf.tests.MockValueExpression;
-
-import junit.framework.TestCase;
-
-/**
- * @author Konstantin Mishin
- *
- */
-public class FilterFieldTest extends TestCase {
-
- private Field field;
- private ValueExpression expression;
-
- /**
- * @param name
- */
- public FilterFieldTest(String name) {
- super(name);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
- protected void setUp() throws Exception {
- super.setUp();
- expression = new MockValueExpression(null);
- field = new FilterField(expression);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#tearDown()
- */
- protected void tearDown() throws Exception {
- field = null;
- expression = null;
- super.tearDown();
- }
-
- /**
- * Test method for {@link org.richfaces.model.FilterField#FilterField(javax.el.ValueExpression)}.
- */
- public final void testFilterField() {
- Field filterField = new FilterField(expression);
- assertEquals(filterField, field);
- }
-
- /**
- * Test method for {@link org.richfaces.model.Field#hashCode()}.
- */
- public final void testHashCode() {
- Field filterField = new FilterField(expression);
- assertEquals(filterField.hashCode(), field.hashCode());
- }
-
- /**
- * Test method for {@link org.richfaces.model.Field#equals(java.lang.Object)}.
- */
- public final void testEqualsObject() {
- Field filterField = new FilterField(null);
- assertFalse(filterField.equals(field));
- filterField.setExpression(expression);
- assertTrue(filterField.equals(field));
- }
-
- /**
- * Test method for {@link org.richfaces.model.Field#getExpression()}.
- */
- public final void testGetExpression() {
- assertSame(field.getExpression(), expression);
- }
-
- /**
- * Test method for {@link org.richfaces.model.Field#setExpression(javax.el.ValueExpression)}.
- */
- public final void testSetExpression() {
- field.setExpression(null);
- assertNull(field.getExpression());
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/model/ListSequenceDataModelTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/model/ListSequenceDataModelTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/model/ListSequenceDataModelTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,133 +0,0 @@
-/**
- *
- */
-package org.richfaces.model;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.faces.context.FacesContext;
-
-import org.ajax4jsf.model.DataVisitor;
-import org.ajax4jsf.model.SequenceRange;
-
-import junit.framework.TestCase;
-
-/**
- * @author Konstantin Mishin
- *
- */
-public class ListSequenceDataModelTest extends TestCase {
-
- private List<Integer> list;
- private ListSequenceDataModel model;
- private ListSequenceDataModel nullModel;
-
- /**
- * @param name
- */
- public ListSequenceDataModelTest(String name) {
- super(name);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
- protected void setUp() throws Exception {
- super.setUp();
- list = new ArrayList<Integer>();
- for (int i = 0; i < 10; i++) {
- list.add(new Integer(i));
- }
- model = new ListSequenceDataModel(list);
- nullModel = new ListSequenceDataModel(null);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#tearDown()
- */
- protected void tearDown() throws Exception {
- super.tearDown();
- nullModel = null;
- model = null;
- list = null;
- }
-
- /**
- * Test method for {@link org.richfaces.model.ListSequenceDataModel#isRowAvailable()}.
- */
- public final void testIsRowAvailable() {
- assertFalse(nullModel.isRowAvailable());
- assertTrue(model.isRowAvailable());
- model.setRowIndex(-1);
- assertFalse(model.isRowAvailable());
- }
-
- /**
- * Test method for {@link org.richfaces.model.ListSequenceDataModel#getRowCount()}.
- */
- public final void testGetRowCount() {
- assertEquals(model.getRowCount(), list.size());
- assertEquals(nullModel.getRowCount(), -1);
- }
-
- /**
- * Test method for {@link org.richfaces.model.ListSequenceDataModel#setRowIndex()}
- * and {@link org.richfaces.model.ListSequenceDataModel#getRowIndex()}.
- */
- public final void testRowIndex() {
- int i = 3;
- model.setRowIndex(i);
- assertEquals(model.getRowIndex(), i);
- }
-
- /**
- * Test method for {@link org.richfaces.model.ListSequenceDataModel#setRowKey(java.lang.Object)}
- * and {@link org.richfaces.model.ListSequenceDataModel#getRowKey(java.lang.Object)}.
- */
- public final void testRowKey() {
- Integer i = 3;
- model.setRowKey(i);
- assertEquals(model.getRowKey(), i);
- model.setRowKey(null);
- assertNull(model.getRowKey());
- }
-
- /**
- * Test method for {@link org.richfaces.model.ListSequenceDataModel#walk(javax.faces.context.FacesContext, org.ajax4jsf.model.DataVisitor, org.ajax4jsf.model.Range, java.lang.Object)}
- * and {@link org.richfaces.model.ListSequenceDataModel#getRowData()}.
- */
- public final void testWalk() {
- DataVisitor visitor = new DataVisitor(){
- public void process(FacesContext context, Object rowKey,
- Object argument) throws IOException {
- Object key = model.getRowKey();
- model.setRowKey(rowKey);
- assertEquals(model.getRowData(), list.get(((Integer)rowKey).intValue()));
- model.setRowKey(key);
- }
- };
- try {
- SequenceRange range = new SequenceRange(0, -1);
- model.walk(null, visitor, range, null);
- range = new SequenceRange(0, 5);
- model.walk(null, visitor, range, null);
- } catch (IOException e) {
- fail(e.getMessage());
- }
- }
-
- /**
- * Test method for {@link org.richfaces.model.ListSequenceDataModel#ListSequenceDataModel(java.util.List)},
- * {@link org.richfaces.model.ListSequenceDataModel#setWrappedData(java.lang.Object)}
- * and {@link org.richfaces.model.ListSequenceDataModel#getWrappedData()} .
- */
- public final void testListSequenceDataModel() {
- assertNull(nullModel.getWrappedData());
- ListSequenceDataModel dataModel = new ListSequenceDataModel(list);
- assertSame(dataModel.getWrappedData(), model.getWrappedData());
-
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/model/ModifiableModelTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/model/ModifiableModelTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/model/ModifiableModelTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,201 +0,0 @@
-/**
- *
- */
-package org.richfaces.model;
-
-import java.io.IOException;
-import java.util.LinkedList;
-import java.util.List;
-
-import javax.el.ValueExpression;
-import javax.faces.context.FacesContext;
-
-import org.ajax4jsf.model.DataVisitor;
-import org.ajax4jsf.model.ExtendedDataModel;
-import org.ajax4jsf.model.SequenceRange;
-import org.ajax4jsf.tests.MockDataModel;
-import org.ajax4jsf.tests.MockDataModelListener;
-import org.ajax4jsf.tests.MockValueExpression;
-import org.apache.shale.test.base.AbstractJsfTestCase;
-
-/**
- * @author Konstantin Mishin
- *
- */
-public class ModifiableModelTest extends AbstractJsfTestCase {
-
- private ModifiableModel model;
- private ExtendedDataModel originalModel;
- private String var;
- private List<FilterField> filterFields;
- private List<SortField2> sortFields;
-
- /**
- * @param name
- */
- public ModifiableModelTest(String name) {
- super(name);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
- public void setUp() throws Exception {
- super.setUp();
- var = "var";
- originalModel = new MockDataModel();
- filterFields = new LinkedList<FilterField>();
- sortFields = new LinkedList<SortField2>();
- model = new ModifiableModel(originalModel, var);
- model.modify(filterFields, sortFields);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#tearDown()
- */
- public void tearDown() throws Exception {
- model = null;
- var = null;
- filterFields = null;
- sortFields = null;
- originalModel = null;
- super.tearDown();
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#isRowAvailable()}.
- */
- public final void testIsRowAvailable() {
- assertEquals(model.isRowAvailable(), originalModel.isRowAvailable());
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#getRowCount()}.
- */
- public final void testGetRowCount() {
- assertEquals(model.getRowCount(), originalModel.getRowCount());
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#getRowIndex()}.
- */
- public final void testGetRowIndex() {
- assertEquals(model.getRowIndex(), originalModel.getRowIndex());
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#setRowIndex(int)}.
- */
- public final void testSetRowIndex() {
- model.setRowIndex(5);
- assertEquals(model.getRowIndex(), originalModel.getRowIndex());
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#setRowKey(java.lang.Object)}.
- */
- public final void testSetRowKey() {
- model.setRowKey(new Integer(5));
- assertEquals(model.getRowKey(), originalModel.getRowKey());
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#getRowKey()}.
- */
- public final void testGetRowKey() {
- assertEquals(model.getRowKey(), originalModel.getRowKey());
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#getSerializableModel(org.ajax4jsf.model.Range)}.
- */
- public final void testGetSerializableModel() {
- assertEquals(model.getSerializableModel(null), originalModel.getSerializableModel(null));
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#walk(javax.faces.context.FacesContext, org.ajax4jsf.model.DataVisitor, org.ajax4jsf.model.Range, java.lang.Object)}.
- */
- public final void testWalk() {
- SequenceRange range = new SequenceRange(0, -1);
- DataVisitor visitor = new DataVisitor(){
- public void process(FacesContext context, Object rowKey,
- Object argument) throws IOException {
- Object key = model.getRowKey();
- model.setRowKey(rowKey);
- Object key2 = originalModel.getRowKey();
- originalModel.setRowKey(rowKey);
- assertEquals(model.getRowData(), originalModel.getRowData());
- model.setRowKey(key);
- originalModel.setRowKey(key2);
- }
- };
- try {
- model.walk(null, visitor, range, null);
- ValueExpression expression = new MockValueExpression(Boolean.TRUE);
- filterFields.add(new FilterField(expression));
- sortFields.add(new SortField2(expression, Ordering.ASCENDING));
- model.walk(null, visitor, range, null);
- } catch (IOException e) {
- fail(e.getMessage());
- }
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#ModifiableModel(org.ajax4jsf.model.ExtendedDataModel, java.lang.String, java.util.List, java.util.List)}.
- */
- public final void testModifiableModel() {
- ModifiableModel modifiableModel = new ModifiableModel(originalModel, var);;
- assertNotNull(modifiableModel);
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#addDataModelListener(javax.faces.model.DataModelListener)}.
- */
- public final void testAddDataModelListenerDataModelListener() {
- MockDataModelListener listener = new MockDataModelListener();
- model.addDataModelListener(listener);
- assertEquals(model.getDataModelListeners()[0], listener);
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#getDataModelListeners()}.
- */
- public final void testGetDataModelListeners() {
- assertEquals(model.getDataModelListeners().length, 0);
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#getRowData()}.
- */
- public final void testGetRowData() {
- assertEquals(model.getRowData(), originalModel.getRowData());
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#getWrappedData()}.
- */
- public final void testGetWrappedData() {
- assertEquals(model.getWrappedData(), originalModel.getWrappedData());
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#removeDataModelListener(javax.faces.model.DataModelListener)}.
- */
- public final void testRemoveDataModelListenerDataModelListener() {
- MockDataModelListener listener = new MockDataModelListener();
- model.addDataModelListener(listener);
- assertEquals(model.getDataModelListeners()[0], listener);
- model.removeDataModelListener(listener);
- assertEquals(model.getDataModelListeners().length, 0);
- }
-
- /**
- * Test method for {@link org.richfaces.model.ModifiableModel#setWrappedData(java.lang.Object)}.
- */
- public final void testSetWrappedDataObject() {
- model.setWrappedData(var);
- assertEquals(originalModel.getWrappedData(), var);
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/model/SortField2Test.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/model/SortField2Test.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/model/SortField2Test.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,99 +0,0 @@
-/**
- *
- */
-package org.richfaces.model;
-
-import javax.el.ValueExpression;
-
-import org.ajax4jsf.tests.MockValueExpression;
-
-import junit.framework.TestCase;
-
-/**
- * @author Konstantin Mishin
- *
- */
-public class SortField2Test extends TestCase {
-
- private SortField2 field;
- private ValueExpression expression;
- private Ordering ordering;
- /**
- * @param name
- */
- public SortField2Test(String name) {
- super(name);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
- protected void setUp() throws Exception {
- super.setUp();
- expression = new MockValueExpression(null);
- ordering = Ordering.ASCENDING;
- field = new SortField2(expression, ordering);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#tearDown()
- */
- protected void tearDown() throws Exception {
- field = null;
- ordering = null;
- expression = null;
- super.tearDown();
- }
-
- /**
- * Test method for {@link org.richfaces.model.SortField2#hashCode()}.
- */
- public final void testHashCode() {
- Field sortField = new SortField2(expression, ordering);
- assertEquals(sortField.hashCode(), field.hashCode());
- }
-
- /**
- * Test method for {@link org.richfaces.model.SortField2#equals(java.lang.Object)}.
- */
- public final void testEqualsObject() {
- SortField2 sortField = new SortField2(null);
- assertFalse(sortField.equals(field));
- sortField.setExpression(expression);
- sortField.setOrdering(ordering);
- assertTrue(sortField.equals(field));
- }
-
- /**
- * Test method for {@link org.richfaces.model.SortField2#SortField2(javax.el.ValueExpression)}.
- */
- public final void testSortField2ValueExpression() {
- SortField2 sortField2 = new SortField2(expression);
- field.setOrdering(null);
- assertEquals(sortField2, field);
- }
-
- /**
- * Test method for {@link org.richfaces.model.SortField2#SortField2(javax.el.ValueExpression, org.richfaces.model.Ordering)}.
- */
- public final void testSortField2ValueExpressionOrdering() {
- SortField2 sortField2 = new SortField2(expression, ordering);
- assertEquals(sortField2, field);
- }
-
- /**
- * Test method for {@link org.richfaces.model.SortField2#getOrdering()}.
- */
- public final void testGetOrdering() {
- assertEquals(field.getOrdering(), ordering);
- }
-
- /**
- * Test method for {@link org.richfaces.model.SortField2#setOrdering(org.richfaces.model.Ordering)}.
- */
- public final void testSetOrdering() {
- field.setOrdering(null);
- assertNull(field.getOrdering());
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/model/StackingTreeDataModelTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/model/StackingTreeDataModelTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/model/StackingTreeDataModelTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,454 +0,0 @@
-/**
- *
- */
-package org.richfaces.model;
-
-import java.io.IOException;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import javax.faces.context.FacesContext;
-import javax.faces.el.ValueBinding;
-
-import org.ajax4jsf.model.DataVisitor;
-import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
-import org.richfaces.model.StackingTreeModel.Key;
-import org.richfaces.model.entity.Directory;
-import org.richfaces.model.entity.File;
-import org.richfaces.model.entity.Named;
-import org.richfaces.model.entity.Project;
-
-
-/**
- * @author Nick Belaevski
- * mailto:nbelaevski@exadel.com
- * created 30.07.2007
- *
- */
-public class StackingTreeDataModelTest extends AbstractAjax4JsfTestCase {
-
- public StackingTreeDataModelTest(String name) {
- super(name);
- }
-
- private StackingTreeModel stackingTreeModel;
- private StackingTreeModel projectsModel;
- private StackingTreeModel directoriesModel;
- private StackingTreeModel filesModel;
-
- private Object projectRequestObject;
- private Object directoryRequestObject;
- private Object fileRequestObject;
-
- /* (non-Javadoc)
- * @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#setUp()
- */
- public void setUp() throws Exception {
- super.setUp();
- this.stackingTreeModel = new StackingTreeModel();
- projectsModel = new StackingTreeModel("project", "project", new StackingTreeModelDataProvider() {
-
- private Map data = null;
-
- public Object getData() {
- if (data == null) {
- data = new LinkedHashMap();
- Project projectA = new Project("projectA", 10);
-
- Directory adir1 = new Directory("ADir1", 50);
-
- adir1.addFile(new File("AFile1", 60));
- adir1.addFile(new File("AFile2", 61));
-
- Directory adir2 = new Directory("ADir2", 101);
-
- projectA.addDirectory(adir1);
- projectA.addDirectory(adir2);
-
- data.put(projectA.getName(), projectA);
-
- Project projectB = new Project("projectB", 501);
-
- Directory bdir1 = new Directory("BDir1", 600);
- Directory bdir2 = new Directory("BDir2", 700);
- Directory bdir3 = new Directory("BDir3", 801);
-
- projectB.addDirectory(bdir1);
- projectB.addDirectory(bdir2);
- projectB.addDirectory(bdir3);
-
- data.put(projectB.getName(), projectB);
- }
- return data;
- }
- });
- final ValueBinding dirVB = application.createValueBinding("#{project.directories}");
- directoriesModel = new StackingTreeModel("directory", "directory", new StackingTreeModelDataProvider() {
- public Object getData() {
- return dirVB.getValue(facesContext);
- }
- });
- final ValueBinding fileVB = application.createValueBinding("#{directory.files}");
- filesModel = new StackingTreeModel("file", "file", new StackingTreeModelDataProvider() {
- public Object getData() {
- return fileVB.getValue(facesContext);
- }
- });
- directoriesModel.addStackingModel(filesModel);
- projectsModel.addStackingModel(directoriesModel);
- this.stackingTreeModel.addStackingModel(projectsModel);
-
- projectRequestObject = new Object();
- directoryRequestObject = new Object();
- fileRequestObject = new Object();
-
- Map requestParameterMap = facesContext.getExternalContext().getRequestParameterMap();
- requestParameterMap.put("project", projectRequestObject);
- requestParameterMap.put("directory", directoryRequestObject);
- requestParameterMap.put("file", fileRequestObject);
- }
-
- /* (non-Javadoc)
- * @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#tearDown()
- */
- public void tearDown() throws Exception {
- super.tearDown();
- this.stackingTreeModel = null;
- this.projectsModel = null;
- this.directoriesModel = null;
- this.filesModel = null;
-
- this.projectRequestObject = null;
- this.directoryRequestObject = null;
- this.fileRequestObject = null;
- }
-
- public void testWalk() throws Exception {
- StackingTreeDataModelTestVisitor1 visitor1 = new StackingTreeDataModelTestVisitor1();
- this.stackingTreeModel.walk(facesContext, visitor1, null, null);
- assertEquals(9, visitor1.getCounter());
- this.stackingTreeModel.setRowKey(null);
- assertFalse(this.stackingTreeModel.isRowAvailable());
-
- Map requestParameterMap = facesContext.getExternalContext().getRequestParameterMap();
- assertSame(this.projectRequestObject, requestParameterMap.get("project"));
- assertSame(this.directoryRequestObject, requestParameterMap.get("directory"));
- assertSame(this.fileRequestObject, requestParameterMap.get("file"));
- }
-
- public void testBadKey() throws Exception {
- StackingTreeDataModelTestVisitor1 visitor1 = new StackingTreeDataModelTestVisitor1();
- this.stackingTreeModel.walk(facesContext, visitor1, null, null);
- this.stackingTreeModel.setRowKey(new ListRowKey(new StackingTreeModel.Key("project", "projectA")));
- assertTrue(this.stackingTreeModel.isRowAvailable());
- assertNotNull(this.stackingTreeModel.getRowData());
-
- assertNull(this.stackingTreeModel.getTreeNode());
- assertFalse(this.stackingTreeModel.isLeaf());
-
- this.stackingTreeModel.setRowKey(new ListRowKey(new StackingTreeModel.Key("project", "projectAAAAA")));
- assertFalse(this.stackingTreeModel.isRowAvailable());
- try {
- Object rowData = this.stackingTreeModel.getRowData();
- assertNull(rowData);
- //FIXME: Maksim - bad keys happen for a reason
- //fail();
- } catch (Exception e) {
-
- }
-
- try {
- boolean leaf = this.stackingTreeModel.isLeaf();
- assertTrue(leaf);
- //FIXME: Maksim - bad keys happen for a reason
- //fail();
- } catch (Exception e) {
-
- }
-
- try {
- TreeNode node = this.stackingTreeModel.getTreeNode();
- assertNull(node);
- //FIXME: Maksim - bad keys happen for a reason
- //fail();
- } catch (Exception e) {
-
- }
- }
-
- public void testActiveData() throws Exception {
- final ValueBinding fileVB = application.createValueBinding("#{directory.files}");
- StackingTreeModel localFilesModel = new StackingTreeModel("file", "file", new StackingTreeModelDataProvider() {
- public Object getData() {
- return fileVB.getValue(facesContext);
- }
-
- }) {
- protected boolean isActiveData() {
- Map requestMap = externalContext.getRequestMap();
- Object object = requestMap.get("file");
- assertNotNull(object);
- File file = (File) object;
- if (file.getTag() == 61) {
- return false;
- }
-
- return super.isActiveData();
- }
- };
- directoriesModel.removeStackingModel(filesModel);
- directoriesModel.addStackingModel(localFilesModel);
-
- stackingTreeModel.walk(facesContext, new StackingTreeDataModelTestVisitor3(), null, null);
- }
-
- public void testKey() throws Exception {
- Key key = new Key("aaa", new Integer(10));
- Key key2 = new Key("aaa", new Integer(11));
- Key key3 = new Key("aaa", new Integer(10));
- Key key4 = new Key("bbb", new Integer(10));
-
- assertFalse(key.equals(new Key("aaa", new Integer(0)) {} ));
-
- assertTrue(key.equals(key3));
- assertTrue(key3.equals(key));
- assertTrue(key2.equals(key2));
- assertTrue(key4.equals(key4));
-
- assertTrue(key.hashCode() == key3.hashCode());
- assertTrue(key3.hashCode() == key.hashCode());
- assertTrue(key2.hashCode() == key2.hashCode());
- assertTrue(key4.hashCode() == key4.hashCode());
-
- assertFalse(key.equals(key2));
- assertFalse(key3.equals(key2));
- assertFalse(key2.equals(key));
- assertFalse(key2.equals(key3));
-
- assertFalse(key.hashCode() == key2.hashCode());
- assertFalse(key3.hashCode() == key2.hashCode());
- assertFalse(key2.hashCode() == key.hashCode());
- assertFalse(key2.hashCode() == key3.hashCode());
-
- assertFalse(key4.equals(key));
- assertFalse(key4.equals(key2));
- assertFalse(key4.equals(key3));
-
- assertFalse(key4.hashCode() == key.hashCode());
- assertFalse(key4.hashCode() == key2.hashCode());
- assertFalse(key4.hashCode() == key3.hashCode());
-
- assertFalse(key.equals(key4));
- assertFalse(key2.equals(key4));
- assertFalse(key3.equals(key4));
-
- assertFalse(new Key("aaa", new Integer(10)).equals(null));
- assertFalse(new Key("aaa", null).equals(null));
- assertFalse(new Key(null, new Integer(10)).equals(null));
- assertFalse(new Key(null, null).equals(null));
-
- assertFalse(key.hashCode() == key4.hashCode());
- assertFalse(key2.hashCode() == key4.hashCode());
- assertFalse(key3.hashCode() == key4.hashCode());
-
- assertFalse(key.hashCode() == 0);
- assertFalse(key2.hashCode() == 0);
- assertFalse(key3.hashCode() == 0);
- assertFalse(key4.hashCode() == 0);
-
- assertTrue(new Key(null, new Integer(11)).equals(new Key(null, new Integer(11))));
- assertFalse(new Key(null, new Integer(10)).equals(new Key(null, new Integer(11))));
- assertFalse(new Key(null, new Integer(10)).equals(new Key("aaa", new Integer(10))));
-
- assertTrue(new Key(null, new Integer(11)).hashCode() == new Key(null, new Integer(11)).hashCode());
- assertFalse(new Key(null, new Integer(10)).hashCode() == new Key(null, new Integer(11)).hashCode());
- assertFalse(new Key(null, new Integer(10)).hashCode() == new Key("aaa", new Integer(10)).hashCode());
-
- assertTrue(new Key("aaa", null).equals(new Key("aaa", null)));
- assertFalse(new Key("aaa", null).equals(new Key("bbb", null)));
- assertFalse(new Key("aaa", null).equals(new Key("aaa", new Integer(10))));
-
- assertTrue(new Key("aaa", null).hashCode() == new Key("aaa", null).hashCode());
- assertFalse(new Key("aaa", null).hashCode() == new Key("bbb", null).hashCode());
- assertFalse(new Key("aaa", null).hashCode() == new Key("aaa", new Integer(10)).hashCode());
- }
-
- class StackingTreeDataModelTestVisitor1 implements DataVisitor, LastElementAware {
-
- private boolean last;
- private int tag = 0;
- private int counter = 0;
-
- public void process(FacesContext context, Object rowKey, Object argument)
- throws IOException {
-
- StackingTreeDataModelTestVisitor2 visitor2 = new StackingTreeDataModelTestVisitor2();
-
- stackingTreeModel.walk(context, visitor2, null, new ListRowKey(new StackingTreeModel.Key("project", "projectA")),
- argument, false);
-
- assertEquals(5, visitor2.getCounter());
-
- StackingTreeDataModelTestVisitor2 visitor20 = new StackingTreeDataModelTestVisitor2();
-
- stackingTreeModel.walk(context, visitor20, new TreeRange() {
-
- public boolean processChildren(TreeRowKey rowKey) {
- return false;
- }
-
- public boolean processNode(TreeRowKey rowKey) {
- return false;
- }
-
- }, new ListRowKey(new StackingTreeModel.Key("project", "projectA")),
- argument, false);
-
- assertEquals(0, visitor20.getCounter());
-
- StackingTreeDataModelTestVisitor2 visitor21 = new StackingTreeDataModelTestVisitor2();
-
- stackingTreeModel.walk(context, visitor21, new TreeRange() {
-
- public boolean processChildren(TreeRowKey rowKey) {
- return false;
- }
-
- public boolean processNode(TreeRowKey rowKey) {
- return true;
- }
-
- }, new ListRowKey(new StackingTreeModel.Key("project", "projectA")),
- argument, false);
-
- assertEquals(1, visitor21.getCounter());
-
- StackingTreeDataModelTestVisitor2 visitor22 = new StackingTreeDataModelTestVisitor2();
-
- stackingTreeModel.walk(context, visitor22, null, new ListRowKey(new StackingTreeModel.Key("project", "projectB")),
- argument, false);
-
- assertEquals(4, visitor22.getCounter());
-
- StackingTreeDataModelTestVisitor2 visitor23 = new StackingTreeDataModelTestVisitor2();
-
- stackingTreeModel.walk(context, visitor23, new TreeRange() {
-
- private boolean rootProcessed = false;
-
- public boolean processChildren(TreeRowKey rowKey) {
- boolean result = rootProcessed;
- rootProcessed = true;
- return !result;
- }
-
- public boolean processNode(TreeRowKey rowKey) {
- return true;
- }
-
- }, new ListRowKey(new StackingTreeModel.Key("project", "projectB")),
- argument, false);
-
- assertEquals(4, visitor23.getCounter());
-
- stackingTreeModel.setRowKey(rowKey);
-
- assertSame(rowKey, stackingTreeModel.getRowKey());
-
- assertNull(stackingTreeModel.getTreeNode());
- Object rowData = stackingTreeModel.getRowData();
- assertNotNull(rowData);
- assertTrue(rowData instanceof Named);
-
- Named named = (Named) rowData;
-
- int currentTag = named.getTag();
- assertTrue(currentTag > tag);
- this.tag = currentTag;
-
- if (this.tag % 10 == 1) {
- assertTrue(last);
- } else {
- assertFalse(last);
- }
-
- if (named instanceof Directory) {
- if ("ADir1".equals(named.getName())) {
- assertFalse(stackingTreeModel.isLeaf());
- } else {
- assertTrue(stackingTreeModel.isLeaf());
- }
- } else if (named instanceof Project) {
- assertFalse(stackingTreeModel.isLeaf());
- } else if (named instanceof File) {
- assertTrue(stackingTreeModel.isLeaf());
- } else {
- fail();
- }
-
- counter++;
- }
-
- public void resetLastElement() {
- this.last = false;
- }
-
- public void setLastElement() {
- this.last = true;
- }
-
- public int getCounter() {
- return counter;
- }
- }
-
- class StackingTreeDataModelTestVisitor2 implements DataVisitor {
- private int counter = 0;
- private int tag = 0;
-
- public void process(FacesContext context, Object rowKey, Object argument)
- throws IOException {
-
- stackingTreeModel.setRowKey(rowKey);
- Object rowData = stackingTreeModel.getRowData();
- assertNotNull(rowData);
- Named named = (Named) rowData;
-
- int currentTag = named.getTag();
- assertTrue(currentTag > tag);
- tag = currentTag;
- counter++;
- }
-
- public int getCounter() {
- return counter;
- }
- }
-
- class StackingTreeDataModelTestVisitor3 implements DataVisitor, LastElementAware {
-
- private boolean last;
-
- public void process(FacesContext context, Object rowKey, Object argument)
- throws IOException {
-
- stackingTreeModel.setRowKey(rowKey);
- Named named = (Named) stackingTreeModel.getRowData();
- int tag = named.getTag();
-
- if (tag == 60) {
- assertTrue(last);
- }
- assertFalse(tag == 61);
- }
-
- public void resetLastElement() {
- this.last = false;
- }
-
- public void setLastElement() {
- this.last = true;
- }
- }
-}
-
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Directory.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Directory.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Directory.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,30 +0,0 @@
-/**
- *
- */
-package org.richfaces.model.entity;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author Nick Belaevski
- * mailto:nbelaevski@exadel.com
- * created 30.07.2007
- *
- */
-public class Directory extends Named {
-
- public Directory(String name, int tag) {
- super(name, tag);
- }
-
- private List files = new ArrayList();
-
- public List getFiles() {
- return files;
- }
-
- public void addFile(File file) {
- this.files.add(file);
- }
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/File.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/File.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/File.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,18 +0,0 @@
-/**
- *
- */
-package org.richfaces.model.entity;
-
-/**
- * @author Nick Belaevski
- * mailto:nbelaevski@exadel.com
- * created 30.07.2007
- *
- */
-public class File extends Named {
-
- public File(String name, int tag) {
- super(name, tag);
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Named.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Named.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Named.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,27 +0,0 @@
-/**
- *
- */
-package org.richfaces.model.entity;
-
-/**
- * @author Nick Belaevski
- * mailto:nbelaevski@exadel.com
- * created 30.07.2007
- *
- */
-public class Named {
- private String name;
- private int tag;
- public String getName() {
- return name;
- }
- public int getTag() {
- return tag;
- }
- public Named(String name, int tag) {
- super();
- this.name = name;
- this.tag = tag;
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Project.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Project.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Project.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,29 +0,0 @@
-/**
- *
- */
-package org.richfaces.model.entity;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author Nick Belaevski
- * mailto:nbelaevski@exadel.com
- * created 30.07.2007
- *
- */
-public class Project extends Named {
- public Project(String name, int tag) {
- super(name, tag);
- }
-
- private List directories = new ArrayList();
-
- public List getDirectories() {
- return directories;
- }
-
- public void addDirectory(Directory directory) {
- directories.add(directory);
- }
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/ObjectWrapperFactoryTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/ObjectWrapperFactoryTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/ObjectWrapperFactoryTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,200 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces 3.0 - Ajax4jsf Component Library
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.model.impl.expressive;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Random;
-
-import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
-import org.richfaces.model.SortField;
-import org.richfaces.model.SortOrder;
-import org.richfaces.model.impl.expressive.JavaBeanWrapper;
-import org.richfaces.model.impl.expressive.ObjectWrapperFactory;
-
-/**
- * @author Maksim Kaszynski
- *
- */
-public class ObjectWrapperFactoryTest extends AbstractAjax4JsfTestCase {
-
-
- /**
- *
- */
- SortField [] sortFields;
- SortOrder sortOrder;
- private ObjectWrapperFactory factory;
- private String var = "abc";
-
- public ObjectWrapperFactoryTest(String name) {
- super(name);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
- public void setUp() throws Exception {
- super.setUp();
- sortFields = new SortField[3];
- sortFields[0] = new SortField("_id1", Boolean.TRUE);
- sortFields[1] = new SortField("name", Boolean.FALSE);
- sortFields[2] = new SortField("#{" +var + ".name}", Boolean.TRUE);
- sortOrder = new SortOrder(sortFields);
-
- factory = new ObjectWrapperFactory(facesContext, var, sortOrder);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#tearDown()
- */
- public void tearDown() throws Exception {
- super.tearDown();
-
- sortFields = null;
- sortOrder = null;
- factory = null;
- }
-
- /**
- * Test method for {@link org.richfaces.model.impl.expressive.ObjectWrapperFactory#convertList(java.util.List, org.richfaces.model.impl.expressive.ObjectWrapperFactory.ObjectConvertor)}.
- */
- public final void testConvertList() {
-
-
- List objects = new ArrayList();
- objects.add(Boolean.TRUE);
- int size = objects.size();
- factory.convertList(objects, new ObjectWrapperFactory.ObjectConvertor() {
- public Object convert(Object o ) {
-
- return new Boolean(!((Boolean) o).booleanValue());
- }
- });
-
- assertEquals(size, objects.size());
- assertEquals(Boolean.FALSE, objects.get(0));
- }
-
- /**
- * Test method for {@link org.richfaces.model.impl.expressive.ObjectWrapperFactory#unwrapList(java.util.List)}.
- */
- public final void testUnwrapList() {
- List objects = new ArrayList(10);
- int [] ints = new int[10];
- Random random = new Random();
- for(int i = 0; i < 10; i++) {
- ints[i] = random.nextInt();
- objects.add(new TestObj(String.valueOf(ints[i])));
- }
-
- List l1 = factory.wrapList(objects);
- List l2 = factory.unwrapList(l1);
-
- assertSame(objects, l1);
- assertSame(objects, l2);
- assertEquals(10, l2.size());
-
- for(int i = 0; i < 10; i++) {
- TestObj t = (TestObj) l2.get(i);
- assertEquals(String.valueOf(ints[i]), t.getName());
- }
-
- }
-
- /**
- * Test method for {@link org.richfaces.model.impl.expressive.ObjectWrapperFactory#unwrapObject(java.lang.Object)}.
- */
- public final void testUnwrapObject() {
-
- TestObj t = new TestObj("20");
-
- JavaBeanWrapper wrapper = new JavaBeanWrapper(t, new HashMap());
-
- Object wrapped = factory.unwrapObject(wrapper);
-
- assertSame(t, wrapped);
-
- }
-
- /**
- * Test method for {@link org.richfaces.model.impl.expressive.ObjectWrapperFactory#wrapList(java.util.List)}.
- */
- public final void testWrapList() {
- List objects = new ArrayList(10);
- int [] ints = new int[10];
- Random random = new Random();
- for(int i = 0; i < 10; i++) {
- ints[i] = random.nextInt();
- objects.add(new TestObj(String.valueOf(ints[i])));
- }
-
- List l1 = factory.wrapList(objects);
-
- assertSame(objects, l1);
- assertEquals(10, l1.size());
-
- for(int i = 0; i < 10; i++) {
- JavaBeanWrapper wrapper = (JavaBeanWrapper) l1.get(i);
- TestObj t = (TestObj) wrapper.getWrappedObject();
-
- String string = String.valueOf(ints[i]);
-
- assertEquals(string, t.getName());
-
- Object prop1 = wrapper.getProperty("name");
- //Object prop2 = wrapper.getProperty("#{abc.name}");
-
- assertNotNull(prop1);
- //assertNotNull(prop2);
- assertEquals(string, prop1);
- //assertEquals(string, prop2);
- }
- }
-
- /**
- * Test method for {@link org.richfaces.model.impl.expressive.ObjectWrapperFactory#wrapObject(java.lang.Object)}.
- */
- public final void testWrapObject() {
- TestObj t = new TestObj("20");
-
-
-
- JavaBeanWrapper wrapper = factory.wrapObject(t);
-
- Object wrapped = wrapper.getWrappedObject();
-
- assertSame(t, wrapped);
-
- Object prop1 = wrapper.getProperty("name");
- //Object prop2 = wrapper.getProperty("#{abc.name}");
-
- assertNotNull(prop1);
- //assertNotNull(prop2);
- assertEquals("20", prop1);
- //assertEquals("20", prop2);
-
-
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/SimplePropertyExpressionTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/SimplePropertyExpressionTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/SimplePropertyExpressionTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,76 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces 3.0 - Ajax4jsf Component Library
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.model.impl.expressive;
-
-import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
-import org.richfaces.model.impl.expressive.SimplePropertyExpression;
-
-/**
- * @author Maksim Kaszynski
- *
- */
-public class SimplePropertyExpressionTest extends AbstractAjax4JsfTestCase {
-
- final static String property = "name";
- private SimplePropertyExpression expression;
-
- /**
- * @param name
- */
- public SimplePropertyExpressionTest(String name) {
- super(name);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
- public void setUp() throws Exception {
- super.setUp();
- expression = new SimplePropertyExpression("name", facesContext.getELContext(), application.getELResolver());
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#tearDown()
- */
- public void tearDown() throws Exception {
- super.tearDown();
- expression = null;
- }
-
- /**
- * Test method for {@link org.richfaces.model.impl.expressive.SimplePropertyExpression#evaluate(java.lang.Object)}.
- */
- public final void testEvaluate() {
- TestObj testObj = new TestObj("aaaa");
- Object prop = expression.evaluate(testObj);
- assertNotNull(prop);
- assertEquals("aaaa", prop);
- }
-
- /**
- * Test method for {@link org.richfaces.model.impl.expressive.Expression#getExpressionString()}.
- */
- public final void testGetExpressionString() {
- assertEquals(property, expression.getExpressionString());
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/ValueBindingExpressionTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/ValueBindingExpressionTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/ValueBindingExpressionTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,74 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces 3.0 - Ajax4jsf Component Library
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.model.impl.expressive;
-
-import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
-import org.richfaces.model.impl.expressive.ValueBindingExpression;
-
-/**
- * @author Maksim Kaszynski
- *
- */
-public class ValueBindingExpressionTest extends AbstractAjax4JsfTestCase {
-
- private ValueBindingExpression expression;
- static final String var = "obj";
- static final String el = "#{" + var + ".name}";
-
- public ValueBindingExpressionTest(String name) {
- super(name);
- }
-
- /* (non-Javadoc)
- * @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#setUp()
- */
- public void setUp() throws Exception {
- super.setUp();
- expression = new ValueBindingExpression(facesContext, el, var);
- }
-
- /* (non-Javadoc)
- * @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#tearDown()
- */
- public void tearDown() throws Exception {
- super.tearDown();
- expression = null;
- }
-
- /**
- * Test method for {@link org.richfaces.model.impl.expressive.ValueBindingExpression#evaluate(java.lang.Object)}.
- */
- public final void testEvaluate() {
- TestObj testObj = new TestObj("aaaa");
- Object prop = expression.evaluate(testObj);
- //assertNotNull(prop);
- //assertEquals("aaaa", prop);
- }
-
- /**
- * Test method for {@link org.richfaces.model.impl.expressive.Expression#getExpressionString()}.
- */
- public final void testGetExpressionString() {
- assertEquals(el, expression.getExpressionString());
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/WrappedBeanFilterTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/WrappedBeanFilterTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/model/impl/expressive/WrappedBeanFilterTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,72 +0,0 @@
-/**
- *
- */
-package org.richfaces.model.impl.expressive;
-
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import org.ajax4jsf.tests.MockValueExpression;
-import org.richfaces.model.FilterField;
-
-import junit.framework.TestCase;
-
-/**
- * @author Konstantin Mishin
- *
- */
-public class WrappedBeanFilterTest extends TestCase {
-
- private List<FilterField> filterFields;
- private WrappedBeanFilter filter;
- /**
- * @param name
- */
- public WrappedBeanFilterTest(String name) {
- super(name);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
- protected void setUp() throws Exception {
- super.setUp();
- filterFields = new LinkedList<FilterField>();
- filterFields.add(new FilterField(new MockValueExpression("keyTrue")));
- filter = new WrappedBeanFilter(filterFields);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#tearDown()
- */
- protected void tearDown() throws Exception {
- super.tearDown();
- filter = null;
- filterFields = null;
- }
-
- /**
- * Test method for {@link org.richfaces.model.impl.expressive.WrappedBeanFilter#WrappedBeanFilter(java.util.List)}.
- */
- public final void testWrappedBeanFilter() {
- WrappedBeanFilter beanFilter = new WrappedBeanFilter(filterFields);
- assertNotNull(beanFilter);
- }
-
- /**
- * Test method for {@link org.richfaces.model.impl.expressive.WrappedBeanFilter#accept(org.richfaces.model.impl.expressive.JavaBeanWrapper)}.
- */
- public final void testAccept() {
- TestObj obj = new TestObj("TestObj");
- Map<String, Object> props = new HashMap<String, Object>();
- props.put("keyTrue", Boolean.TRUE);
- props.put("keyFalse", Boolean.FALSE);
- JavaBeanWrapper wrapper = new JavaBeanWrapper(obj, props);
- assertTrue(filter.accept(wrapper));
- filterFields.add(new FilterField(new MockValueExpression("keyFalse")));
- assertFalse(filter.accept(wrapper));
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/CompositeRendererTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/CompositeRendererTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/CompositeRendererTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,486 +0,0 @@
-package org.richfaces.renderkit;
-
-import java.io.IOException;
-import java.io.StringWriter;
-import java.util.Arrays;
-import java.util.Map;
-
-import javax.faces.component.NamingContainer;
-import javax.faces.component.UIComponent;
-import javax.faces.component.UIForm;
-import javax.faces.component.UIInput;
-import javax.faces.context.FacesContext;
-
-import org.ajax4jsf.resource.InternetResource;
-import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
-import org.apache.shale.test.mock.MockResponseWriter;
-
-public class CompositeRendererTest extends AbstractAjax4JsfTestCase {
-
- public CompositeRendererTest(String name) {
- super(name);
- }
-
- private CompositeRenderer compositeRenderer;
-
- public void setUp() throws Exception {
- super.setUp();
-
- this.compositeRenderer = new CompositeRenderer() {
-
- protected Class getComponentClass() {
- return UIComponent.class;
- }
- };
- }
-
- public void tearDown() throws Exception {
- super.tearDown();
-
- this.compositeRenderer = null;
- }
-
- public final void testDoDecodeFacesContextUIComponent() {
- MockDecodeContributor[] contributors = new MockDecodeContributor[5];
- for (int i = 0; i < contributors.length; i++) {
- contributors[i] = new MockDecodeContributor();
- compositeRenderer.addContributor(contributors[i]);
- }
-
- UIInput component = new UIInput();
- compositeRenderer.doDecode(facesContext, component);
-
- for (int i = 0; i < contributors.length; i++) {
- assertSame(compositeRenderer, contributors[i].getRenderer());
- assertSame(facesContext, contributors[i].getContext());
- assertSame(component, contributors[i].getComponent());
- }
- }
-
- public final void testMergeScriptOptionsScriptOptionsFacesContextUIComponent() {
- UIInput input = new UIInput();
-
- ScriptOptions inputOptions = new ScriptOptions(input);
- inputOptions.addOption("input", "1");
-
- ScriptOptions formOptions = new ScriptOptions(input);
- formOptions.addOption("form", "2");
-
- ScriptOptions options = new ScriptOptions(input);
- options.addOption("generic", "3");
-
- MockDecodeContributor inputContributor;
- MockDecodeContributor formContributor;
- MockDecodeContributor contributor;
- MockDecodeContributor nullContributor;
-
- inputContributor = new MockDecodeContributor(UIComponent.class, inputOptions);
- formContributor = new MockDecodeContributor(UIComponent.class, formOptions);
- contributor = new MockDecodeContributor(UIComponent.class, options);
- nullContributor = new MockDecodeContributor(UIComponent.class, (ScriptOptions) null);
-
- compositeRenderer.addContributor(contributor);
- compositeRenderer.addContributor(formContributor);
- compositeRenderer.addContributor(inputContributor);
- compositeRenderer.addContributor(nullContributor);
-
- ScriptOptions scriptOptions = new ScriptOptions(input);
- compositeRenderer.mergeScriptOptions(scriptOptions, facesContext, input);
- Map map = scriptOptions.getMap();
-
- assertEquals(3, map.size());
- assertEquals("1", map.get("input"));
- assertEquals("2", map.get("form"));
- assertEquals("3", map.get("generic"));
- }
-
- public final void testMergeScriptOptionsScriptOptionsFacesContextUIComponentClass() {
- UIInput input = new UIInput();
-
- ScriptOptions inputOptions = new ScriptOptions(input);
- inputOptions.addOption("input", "1");
-
- ScriptOptions formOptions = new ScriptOptions(input);
- formOptions.addOption("form", "2");
-
- ScriptOptions options = new ScriptOptions(input);
- options.addOption("generic", "3");
-
- MockDecodeContributor inputContributor;
- MockDecodeContributor formContributor;
- MockDecodeContributor contributor;
- MockDecodeContributor nullContributor;
-
- inputContributor = new MockDecodeContributor(UIInput.class, inputOptions);
- formContributor = new MockDecodeContributor(NamingContainer.class, formOptions);
- contributor = new MockDecodeContributor(UIComponent.class, options);
- nullContributor = new MockDecodeContributor(UIForm.class, (ScriptOptions) null);
-
- compositeRenderer.addContributor(contributor);
- compositeRenderer.addContributor(formContributor);
- compositeRenderer.addContributor(inputContributor);
- compositeRenderer.addContributor(nullContributor);
-
- ScriptOptions scriptOptions = new ScriptOptions(input);
- compositeRenderer.mergeScriptOptions(scriptOptions, facesContext, input, UIForm.class);
- Map map = scriptOptions.getMap();
-
- assertEquals(2, map.size());
- assertEquals("2", map.get("form"));
- assertEquals("3", map.get("generic"));
- }
-
- public final void testGetScripts() {
- MockDecodeContributor inputContributor;
- MockDecodeContributor formContributor;
- MockDecodeContributor contributor;
-
- inputContributor = new MockDecodeContributor(UIComponent.class, new String[] { "input_script" }, null);
- formContributor = new MockDecodeContributor(UIComponent.class, new String[] { "form_script" }, null);
- contributor = new MockDecodeContributor(UIComponent.class, null, null);
-
- compositeRenderer.addContributor(contributor);
- compositeRenderer.addContributor(formContributor);
- compositeRenderer.addContributor(inputContributor);
-
- InternetResource[] scripts = compositeRenderer.getScripts();
-
- assertEquals(2, scripts.length);
-
- assertTrue(scripts[0].getKey().contains("org/richfaces/renderkit/form_script"));
- assertTrue(scripts[1].getKey().contains("org/richfaces/renderkit/input_script"));
- }
-
- public final void testGetStyles() {
- MockDecodeContributor inputContributor;
- MockDecodeContributor formContributor;
- MockDecodeContributor contributor;
-
- inputContributor = new MockDecodeContributor(UIComponent.class, null, new String[] { "input_style" });
- formContributor = new MockDecodeContributor(UIComponent.class, null, new String[] { "form_style" });
- contributor = new MockDecodeContributor(UIComponent.class, null, null);
-
- compositeRenderer.addContributor(contributor);
- compositeRenderer.addContributor(inputContributor);
- compositeRenderer.addContributor(formContributor);
-
- InternetResource[] scripts = compositeRenderer.getStyles();
-
- assertEquals(2, scripts.length);
-
- assertTrue(scripts[0].getKey().contains("org/richfaces/renderkit/input_style"));
- assertTrue(scripts[1].getKey().contains("org/richfaces/renderkit/form_style"));
- }
-
- public final void testGetScriptsClass() {
- MockDecodeContributor inputContributor;
- MockDecodeContributor formContributor;
- MockDecodeContributor contributor;
-
- inputContributor = new MockDecodeContributor(UIInput.class, new String[] { "input_script" }, null);
- formContributor = new MockDecodeContributor(NamingContainer.class, new String[] { "form_script" }, null);
- contributor = new MockDecodeContributor(UIComponent.class, null, null);
-
- compositeRenderer.addContributor(contributor);
- compositeRenderer.addContributor(formContributor);
- compositeRenderer.addContributor(inputContributor);
-
- InternetResource[] scripts = compositeRenderer.getScripts(UIInput.class);
-
- assertEquals(1, scripts.length);
-
- assertTrue(scripts[0].getKey().contains("org/richfaces/renderkit/input_script"));
-
- scripts = compositeRenderer.getScripts(NamingContainer.class);
-
- assertEquals(1, scripts.length);
-
- assertTrue(scripts[0].getKey().contains("org/richfaces/renderkit/form_script"));
-
- scripts = compositeRenderer.getStyles(String.class);
- assertNull(scripts);
- }
-
- public final void testGetStylesClass() {
- MockDecodeContributor inputContributor;
- MockDecodeContributor formContributor;
- MockDecodeContributor contributor;
-
- inputContributor = new MockDecodeContributor(UIInput.class, null, new String[] { "input_style" });
- formContributor = new MockDecodeContributor(NamingContainer.class, null, new String[] { "form_style" });
- contributor = new MockDecodeContributor(UIComponent.class, null, null);
-
- compositeRenderer.addContributor(contributor);
- compositeRenderer.addContributor(formContributor);
- compositeRenderer.addContributor(inputContributor);
-
- InternetResource[] styles = compositeRenderer.getStyles(UIInput.class);
-
- assertEquals(1, styles.length);
-
- assertTrue(styles[0].getKey().contains("org/richfaces/renderkit/input_style"));
-
- styles = compositeRenderer.getStyles(NamingContainer.class);
-
- assertEquals(1, styles.length);
- assertTrue(styles[0].getKey().contains("org/richfaces/renderkit/form_style"));
-
- styles = compositeRenderer.getStyles(String.class);
- assertNull(styles);
- }
-
- public final void testGetScriptContributionsStringFacesContextUIComponent() {
- MockDecodeContributor inputContributor;
- MockDecodeContributor formContributor;
- MockDecodeContributor contributor;
- MockDecodeContributor nullContributor;
-
- inputContributor = new MockDecodeContributor(UIComponent.class, ".1;");
- formContributor = new MockDecodeContributor(UIComponent.class, ".2;");
- contributor = new MockDecodeContributor(UIComponent.class, ".3;");
- nullContributor = new MockDecodeContributor(UIForm.class, (String) null);
-
- compositeRenderer.addContributor(contributor);
- compositeRenderer.addContributor(formContributor);
- compositeRenderer.addContributor(inputContributor);
- compositeRenderer.addContributor(nullContributor);
-
- UIInput input = new UIInput();
- input.getAttributes().put("test", ".testValue");
-
- String contributions = compositeRenderer.getScriptContributions("theVar", facesContext, input);
-
- assertEquals("theVar.testValue.3;theVar.testValue.2;theVar.testValue.1;", contributions);
- }
-
- public final void testGetScriptContributionsStringFacesContextUIComponentClass() {
- MockDecodeContributor inputContributor;
- MockDecodeContributor formContributor;
- MockDecodeContributor contributor;
- MockDecodeContributor nullContributor;
-
- inputContributor = new MockDecodeContributor(UIInput.class, ".input;");
- formContributor = new MockDecodeContributor(NamingContainer.class, ".namingContainer;");
- contributor = new MockDecodeContributor(UIComponent.class, ".generic;");
- nullContributor = new MockDecodeContributor(UIForm.class, (String) null);
-
- compositeRenderer.addContributor(contributor);
- compositeRenderer.addContributor(formContributor);
- compositeRenderer.addContributor(inputContributor);
- compositeRenderer.addContributor(nullContributor);
-
- UIInput input = new UIInput();
- input.getAttributes().put("test", ".testValue");
-
- String contributions = compositeRenderer.getScriptContributions("theVar", facesContext, input,
- UIForm.class);
-
- assertEquals("theVar.testValue.generic;theVar.testValue.namingContainer;", contributions);
- }
-
- public final void testAddContributor() {
- MockDecodeContributor[] contributors = new MockDecodeContributor[5];
- for (int i = 0; i < contributors.length; i++) {
- contributors[i] = new MockDecodeContributor();
- compositeRenderer.addContributor(contributors[i]);
- }
-
- assertTrue(Arrays.deepEquals(contributors, compositeRenderer.getContributors()));
- }
-
- public final void testContributorDecodeCallback() {
- MockDecodeContributor inputContributor;
- MockDecodeContributor formContributor;
-
- formContributor = new MockDecodeContributor(NamingContainer.class);
- inputContributor = new MockDecodeContributor(UIInput.class);
-
- compositeRenderer.addContributor(inputContributor);
- compositeRenderer.addContributor(formContributor);
-
- UIComponent component = new UIInput();
- compositeRenderer.doDecode(facesContext, component);
-
- assertSame(compositeRenderer, inputContributor.getRenderer());
- assertSame(facesContext, inputContributor.getContext());
- assertSame(component, inputContributor.getComponent());
-
- assertNull(formContributor.getRenderer());
- assertNull(formContributor.getContext());
- assertNull(formContributor.getComponent());
-
- inputContributor.reset();
- formContributor.reset();
-
- assertNull(inputContributor.getRenderer());
- assertNull(inputContributor.getContext());
- assertNull(inputContributor.getComponent());
-
- assertNull(formContributor.getRenderer());
- assertNull(formContributor.getContext());
- assertNull(formContributor.getComponent());
-
- component = new UIForm();
- compositeRenderer.doDecode(facesContext, component);
-
- assertSame(compositeRenderer, formContributor.getRenderer());
- assertSame(facesContext, formContributor.getContext());
- assertSame(component, formContributor.getComponent());
-
- assertNull(inputContributor.getRenderer());
- assertNull(inputContributor.getContext());
- assertNull(inputContributor.getComponent());
- }
-
- public final void testAddParameterEncoder() {
- MockAttributeParameterEncoder[] encoders = new MockAttributeParameterEncoder[5];
- for (int i = 0; i < encoders.length; i++) {
- encoders[i] = new MockAttributeParameterEncoder("aaa");
- compositeRenderer.addParameterEncoder(encoders[i]);
- }
-
- assertTrue(Arrays.deepEquals(encoders, compositeRenderer.getParameterEncoders()));
- }
-
- public final void testEncodeAttributeParameters() throws IOException {
-
- MockAttributeParameterEncoder encoder1 = new MockAttributeParameterEncoder("Attribute");
- MockAttributeParameterEncoder encoder2 = new MockAttributeParameterEncoder("MoreAttribute");
-
- compositeRenderer.addParameterEncoder(encoder1);
- compositeRenderer.addParameterEncoder(encoder2);
-
- UIInput input = new UIInput();
- input.getAttributes().put("Attribute", "testValue1");
- input.getAttributes().put("MoreAttribute", "testValue2");
-
- //ResponseWriter responseWriter = facesContext.getResponseWriter();
- StringWriter stringWriter = new StringWriter();
- MockResponseWriter responseWriter = new MockResponseWriter(stringWriter, "text/html", "UTF8");
- facesContext.setResponseWriter(responseWriter);
-
- responseWriter.startDocument();
- responseWriter.startElement("span", input);
- compositeRenderer.encodeAttributeParameters(facesContext, input);
- responseWriter.endElement("span");
- responseWriter.endDocument();
-
- responseWriter.flush();
-
- String result = stringWriter.getBuffer().toString();
- assertTrue(result.contains("testAttribute=\"testValue1\""));
- assertTrue(result.contains("testMoreAttribute=\"testValue2\""));
- }
-}
-
-class MockDecodeContributor implements RendererContributor {
-
- private String[] scriptDependencies;
- private String[] styleDependencies;
-
- private String scriptContribution;
-
- private Class componentClass;
- private FacesContext context;
- private UIComponent component;
- private CompositeRenderer renderer;
- private ScriptOptions options;
-
- public MockDecodeContributor(Class componentClass, ScriptOptions options) {
- super();
-
- this.componentClass = componentClass;
- this.options = options;
- }
-
- public MockDecodeContributor() {
- this(UIComponent.class);
- }
-
- public MockDecodeContributor(Class componentClass) {
- super();
- this.componentClass = componentClass;
- }
-
- public MockDecodeContributor(Class componentClass, String scriptContribution) {
- super();
-
- this.componentClass = componentClass;
- this.scriptContribution = scriptContribution;
- }
-
- public MockDecodeContributor(Class componentClass, String[] scriptDependencies,
- String[] styleDependencies) {
- super();
-
- this.componentClass = componentClass;
- this.scriptDependencies = scriptDependencies;
- this.styleDependencies = styleDependencies;
- }
-
- public void decode(FacesContext context, UIComponent component,
- CompositeRenderer compositeRenderer) {
-
- this.component = component;
- this.context = context;
- this.renderer = compositeRenderer;
- }
-
- public Class getAcceptableClass() {
- return componentClass;
- }
-
- public String getScriptContribution(FacesContext context,
- UIComponent component) {
- return scriptContribution != null ? component.getAttributes().get("test") + scriptContribution :
- null;
- }
-
- public String[] getScriptDependencies() {
- return scriptDependencies;
- }
-
- public String[] getStyleDependencies() {
- return styleDependencies;
- }
-
- public ScriptOptions buildOptions(FacesContext context,
- UIComponent component) {
- return options;
- }
-
- public UIComponent getComponent() {
- return component;
- }
-
- public FacesContext getContext() {
- return context;
- }
-
- public CompositeRenderer getRenderer() {
- return renderer;
- }
-
- public void reset() {
- this.component = null;
- this.context = null;
- this.renderer = null;
- }
-}
-
-class MockAttributeParameterEncoder implements AttributeParametersEncoder {
-
- private String attributeName;
-
- public MockAttributeParameterEncoder(String attributeName) {
- super();
- this.attributeName = attributeName;
- }
-
- public void doEncode(FacesContext context, UIComponent component)
- throws IOException {
-
- context.getResponseWriter().writeAttribute("test" + attributeName, component.getAttributes().get(attributeName)
- , null);
- }
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/InputRendererBaseTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/InputRendererBaseTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/InputRendererBaseTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,190 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces - Ajax4jsf Component Library
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.renderkit;
-
-import java.util.List;
-
-import javax.faces.component.UIComponent;
-import javax.faces.component.UIForm;
-import javax.faces.component.UIInput;
-import javax.faces.context.FacesContext;
-import javax.faces.convert.Converter;
-
-import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
-
-/**
- * @author Nick - mailto:nbelaevski@exadel.com
- * created 12.04.2007
- *
- */
-public class InputRendererBaseTest extends AbstractAjax4JsfTestCase {
-
- private static final String TYPE = "test.Type";
-
- private UIInput input;
-
- public InputRendererBaseTest(String name) {
- super(name);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
- public void setUp() throws Exception {
- super.setUp();
-
- List children = facesContext.getViewRoot().getChildren();
- UIComponent form = application.createComponent(UIForm.COMPONENT_TYPE);
- children.add(form);
- input = (UIInput) createComponent(TYPE, UIInput.class.getName(), "test.Renderer",
- InputRendererBase.class, null);
- form.getChildren().add(input);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#tearDown()
- */
- public void tearDown() throws Exception {
- super.tearDown();
-
- this.input = null;
- }
-
- public void testDoDecode() throws Exception {
- externalContext.addRequestParameterMap(
- input.getClientId(facesContext),
- "12;true");
-
- assertNull(input.getSubmittedValue());
- input.decode(facesContext);
- assertEquals("12;true", input.getSubmittedValue());
- assertTrue(input.isValid());
- }
-
- public void testDoSkipDecode() throws Exception {
- externalContext.addRequestParameterMap(
- input.getClientId(facesContext) + ":aaa",
- "12;true");
-
- assertNull(input.getSubmittedValue());
- input.decode(facesContext);
- assertNull(input.getSubmittedValue());
- assertTrue(input.isValid());
- }
-
- public void testGetConvertedValue() throws Exception {
- input.setConverter(new InputRendererBaseMockConverter());
- input.setSubmittedValue("12;true");
-
- assertTrue(input.isValid());
- input.validate(facesContext);
-
- InputRendererBaseMockConverterBean value =
- (InputRendererBaseMockConverterBean) input.getValue();
-
- assertEquals(12, value.getFirst());
- assertEquals(true, value.getSecond());
- }
-
- public void testGetInputValue() throws Exception {
- InputRendererBaseMockConverterBean value =
- new InputRendererBaseMockConverterBean();
-
- value.setFirst(44);
- value.setSecond(true);
-
- input.setValue(value);
- input.setConverter(new InputRendererBaseMockConverter());
-
- String strValue = new InputRendererBase().getInputValue(facesContext, input);
- assertEquals("44;true", strValue);
-
- input.setValue(null);
- strValue = new InputRendererBase().getInputValue(facesContext, input);
- assertEquals("", strValue);
-
- input.setValue(value);
- input.setSubmittedValue("444");
- strValue = new InputRendererBase().getInputValue(facesContext, input);
- assertEquals("444", strValue);
-
- input.setSubmittedValue(null);
- input.setValue(value);
- input.setConverter(null);
- strValue = new InputRendererBase().getInputValue(facesContext, input);
- assertEquals("true:44", strValue);
-
- input.setValue(null);
- input.setConverter(null);
- strValue = new InputRendererBase().getInputValue(facesContext, input);
- assertEquals("", strValue);
- }
-}
-
-class InputRendererBaseMockConverterBean {
-
- int first;
- boolean second;
- public int getFirst() {
- return first;
- }
- public void setFirst(int first) {
- this.first = first;
- }
- public boolean getSecond() {
- return second;
- }
- public void setSecond(boolean second) {
- this.second = second;
- }
-
- public String toString() {
- return second + ":" + first;
- }
-}
-
-class InputRendererBaseMockConverter implements Converter {
-
- /* (non-Javadoc)
- * @see javax.faces.convert.Converter#getAsObject(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String)
- */
- public Object getAsObject(FacesContext context, UIComponent comp, String str) {
- InputRendererBaseMockConverterBean bean = new InputRendererBaseMockConverterBean();
- String[] values = str.split(";");
- bean.setFirst(Integer.parseInt(values[0]));
- bean.setSecond(Boolean.valueOf(values[1]).booleanValue());
- return bean;
- }
-
- /* (non-Javadoc)
- * @see javax.faces.convert.Converter#getAsString(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
- */
- public String getAsString(FacesContext context, UIComponent comp, Object value) {
- if (value == null) {
- return null;
- }
-
- InputRendererBaseMockConverterBean bean = (InputRendererBaseMockConverterBean) value;
- return String.valueOf(bean.getFirst())+";"+String.valueOf(bean.getSecond());
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/TemplateEncoderRendererBaseTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/TemplateEncoderRendererBaseTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/TemplateEncoderRendererBaseTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,64 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces - Ajax4jsf Component Library
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.renderkit;
-
-import javax.faces.component.UIComponent;
-import javax.faces.component.UIOutput;
-
-import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
-
-/**
- * Created 26.10.2007
- * @author Nick Belaevski - mailto:nbelaevski@exadel.com
- * @since 3.2
- */
-
-public class TemplateEncoderRendererBaseTest extends AbstractAjax4JsfTestCase {
-
- public TemplateEncoderRendererBaseTest(String name) {
- super(name);
- }
-
- public void testEncodeNonRendered() throws Exception {
- setupResponseWriter();
-
- TemplateEncoderRendererBase rendererBase = new TemplateEncoderRendererBase() {
-
- @Override
- protected Class<? extends UIComponent> getComponentClass() {
- return UIOutput.class;
- }
- };
-
- UIOutput output = new UIOutput();
-
- UIOutput c = new UIOutput();
- c.setRendered(false);
- c.setValue("");
- output.getChildren().add(c);
-
- //that should not fail
- rendererBase.writeScriptBody(facesContext, c, true);
-
- processResponseWriter();
- }
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/TemplateUtilTest.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/TemplateUtilTest.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/TemplateUtilTest.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,45 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces - Ajax4jsf Component Library
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.renderkit;
-
-import java.io.StringReader;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.richfaces.javacc.RichMacroDefinition;
-
-/**
- * @author Nick Belaevski - mailto:nbelaevski@exadel.com
- * created 17.06.2007
- *
- */
-public class TemplateUtilTest extends TestCase {
-
-
- public void testAntlr() throws Exception {
- List result = new RichMacroDefinition(new StringReader("{aa{b\\}}a}\\\\ a\\}b\\{c")).expression();
- Expression holder = (Expression) result.get(0);
- assertEquals("aa{b}}a", holder.getExpression());
- assertEquals("\\ a}b{c", result.get(1));
- }
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/Bean.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/Bean.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/Bean.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,27 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.skin;
-
-public class Bean {
- public String getName(){return "bindedtest";}
- public String getBean(){return "binded.string";}
-}
\ No newline at end of file
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/SkinTestCase.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/SkinTestCase.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/SkinTestCase.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,240 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.skin;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-import javax.faces.FacesException;
-
-import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
-
-/**
- * Test for Skin/skin factory methods.
- * @author asmirnov(a)exadel.com (latest modification by $Author: alexsmirnov $)
- * @version $Revision: 1.1.2.1 $ $Date: 2007/01/10 14:28:13 $
- *
- */
-public class SkinTestCase extends AbstractAjax4JsfTestCase {
-
- public SkinTestCase(String name) {
- super(name);
- }
-
- public void setUp() throws Exception {
- super.setUp();
- }
-
- public void tearDown() throws Exception {
- SkinFactory.reset();
- super.tearDown();
- }
-
- /*
- * Test method for 'org.richfaces.skin.SkinFactory.getInstance()'
- */
- public void testGetInstance() {
- SkinFactory factory = SkinFactory.getInstance();
- SkinFactory factory1 = SkinFactory.getInstance();
- assertSame(factory,factory1);
- }
-
- private void addParameters(Object[][] strings) {
- Map<Object,Object> baseMap = new HashMap<Object, Object>();
- for (Object[] objects : strings) {
- baseMap.put(objects[0], objects[1]);
- }
-
- externalContext.getRequestMap().put("test", baseMap);
- }
-
- /*
- * Test method for 'org.richfaces.skin.SkinFactory.getSkin(FacesContext)'
- */
- public void testGetSkin() {
- servletContext.addInitParameter(SkinFactory.SKIN_PARAMETER, "test");
-
- addParameters(new Object[][]{new Object[] {"bean", "test.value"}});
-
- SkinFactory factory = SkinFactory.getInstance();
- // test call
- Skin skin = factory.getSkin(facesContext);
- assertNotNull("Null skin!",skin);
- // test properties
- assertEquals("string",skin.getParameter(facesContext, "string.property"));
- assertEquals("base.string",skin.getParameter(facesContext, "base.property"));
- assertEquals("test.value",skin.getParameter(facesContext, "bind.property"));
- // assertEquals("HTML_BASIC",skin.getRenderKitId(mockContext));
- }
-
- /*
- * Test method for 'org.richfaces.skin.SkinFactory.getSkin(FacesContext)'
- */
- public void testSkinReferences() {
- SkinFactory factory = SkinFactory.getInstance();
- servletContext.addInitParameter(SkinFactory.SKIN_PARAMETER, "test");
-
- // test call
- Skin skin = factory.getSkin(facesContext);
- assertNotNull("Null skin!",skin);
- assertEquals("default",skin.getParameter(facesContext, "c"));
- assertEquals("yyy",skin.getParameter(facesContext, "y"));
- }
-
- /*
- * Test method for 'org.richfaces.skin.SkinFactory.getSkin(FacesContext)'
- */
- public void testSkinReferences1() {
- SkinFactory factory = SkinFactory.getInstance();
- servletContext.addInitParameter(SkinFactory.SKIN_PARAMETER, "style");
- servletContext.addInitParameter(SkinFactory.BASE_SKIN_PARAMETER, "style_base");
-
- // test call
- Skin skin = factory.getSkin(facesContext);
- assertNotNull("Null skin!",skin);
- assertEquals("#F5F0E7",skin.getParameter(facesContext, "intermediateTextColor"));
- assertEquals("10px",skin.getParameter(facesContext, "intermediateTextSize"));
- assertEquals("#F5F0E7",skin.getParameter(facesContext, "generalTextColor"));
-
- assertEquals("white.textcolor",skin.getParameter(facesContext, "additionalTextColor"));
- }
-
- public void testBaseSkin() {
- SkinFactory factory = SkinFactory.getInstance();
- servletContext.addInitParameter(SkinFactory.SKIN_PARAMETER, "dynatest");
- servletContext.addInitParameter(SkinFactory.BASE_SKIN_PARAMETER, "dynatest_base");
- addParameters(new Object[][]{new Object[] {"bean", "dynabase1"}});
-
- Skin skin = factory.getSkin(facesContext);
- assertEquals("default", skin.getParameter(facesContext, "default"));
- assertEquals("itself", skin.getParameter(facesContext, "selfValue"));
- assertEquals("#AAA", skin.getParameter(facesContext, "customFormColor"));
-
- Map map = (Map) externalContext.getRequestMap().get("test");
- map.put("bean", "dynabase2");
-
- assertEquals("xxx", skin.getParameter(facesContext, "default"));
- assertEquals("itself", skin.getParameter(facesContext, "selfValue"));
- assertEquals("#AAA", skin.getParameter(facesContext, "customFormColor"));
- }
-
- /*
- * Test method for 'org.richfaces.skin.SkinFactory.getSkin(FacesContext)'
- */
- public void testCyclicSkinReferences() {
- SkinFactory factory = SkinFactory.getInstance();
- servletContext.addInitParameter(SkinFactory.SKIN_PARAMETER, "cyclic");
-
- try {
- Skin skin = factory.getSkin(facesContext);
- skin.getParameter(facesContext, "x");
- fail();
- } catch(FacesException e){
- //it's ok
- }
- }
-
- /*
- * Test method for 'org.richfaces.skin.SkinFactory.getSkin(FacesContext)'
- */
- public void testBadSkinReferences() {
- SkinFactory factory = SkinFactory.getInstance();
- servletContext.addInitParameter(SkinFactory.SKIN_PARAMETER, "noref");
-
- // test call
- try {
- Skin skin = factory.getSkin(facesContext);
- skin.getParameter(facesContext, "x");
- fail();
- } catch(FacesException e){
- //it's ok
- }
- }
- /*
- * Test method for 'org.richfaces.skin.SkinFactory.getSkin(FacesContext)'
- */
- public void testGetBindedSkin() {
- SkinFactory factory = SkinFactory.getInstance();
- servletContext.addInitParameter(SkinFactory.SKIN_PARAMETER, "#{test.skin}");
-
- addParameters(new Object[][] {
- new Object[] {"skin", "bindedtest"},
- new Object[] {"bean", "binded.test.value"}
- });
-
- // test call
- Skin skin = factory.getSkin(facesContext);
- assertNotNull("Null skin!",skin);
- // test properties
- assertEquals("bindedstring",skin.getParameter(facesContext, "string.property"));
- // assertEquals("base.string",skin.getParameter(mockContext,"base.property"));
- assertEquals("binded.test.value",skin.getParameter(facesContext, "bind.property"));
- assertEquals("TEST",skin.getRenderKitId(facesContext));
- }
-
- public void testSkinHash() {
- SkinFactory factory = SkinFactory.getInstance();
- servletContext.addInitParameter(SkinFactory.SKIN_PARAMETER, "#{test.skin}");
-
- addParameters(new Object[][] {
- new Object[] {"skin", "bindedtest"},
- new Object[] {"bean", "binded.test.value"}
- });
-
- Skin skin = factory.getSkin(facesContext);
- Map<String, Object> requestMap = facesContext.getExternalContext().getRequestMap();
-
- // test properties
- int hash = skin.hashCode(facesContext);
- assertTrue(requestMap.containsKey(BasicSkinImpl.REQUEST_HASH_CODES_MAP_PARAMETER));
- assertEquals(hash,skin.hashCode(facesContext));
- requestMap.remove(BasicSkinImpl.REQUEST_HASH_CODES_MAP_PARAMETER);
- assertEquals(hash,skin.hashCode(facesContext));
- // setup Value binding mock for different value - hash must differ.
- requestMap.remove(BasicSkinImpl.REQUEST_HASH_CODES_MAP_PARAMETER);
-
- Map map = (Map) requestMap.get("test");
- map.put("bean", "other.test.value");
-
- assertFalse( hash==skin.hashCode(facesContext) );
-
- }
- /*
- * Test method for 'org.richfaces.skin.SkinFactory.getDefaultProperties()'
- */
- public void testGetDefaultProperties() {
- SkinFactoryImpl factory = (SkinFactoryImpl) SkinFactory.getInstance();
- Properties defaultProps = factory.getDefaultSkinProperties();
- // assertEquals("HTML_BASIC",defaultProps.getProperty("render.kit"));
- // Second default config
- assertEquals("default",defaultProps.getProperty("a"));
- }
-
- /*
- * Test method for 'org.richfaces.skin.SkinFactory.getSkinName(FacesContext)'
- */
- public void testGetSkinName() {
-
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/SkinTests.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/SkinTests.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/SkinTests.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,39 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.skin;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class SkinTests {
-
- public static Test suite() {
- TestSuite suite = new TestSuite(
- "Test for org.richfaces.skin");
- //$JUnit-BEGIN$
- suite.addTestSuite(SkinThreadsTestCase.class);
- suite.addTestSuite(SkinTestCase.class);
- //$JUnit-END$
- return suite;
- }
-
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/SkinThreadsTestCase.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/SkinThreadsTestCase.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/SkinThreadsTestCase.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,112 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.skin;
-
-import javax.faces.context.FacesContext;
-
-import org.ajax4jsf.tests.AbstractThreadedAjax4JsfTestCase;
-import org.richfaces.skin.Skin;
-import org.richfaces.skin.SkinFactory;
-
-/**
- * @author asmirnov(a)exadel.com (latest modification by $Author: ishabalov $)
- * @version $Revision: 1.1.2.2 $ $Date: 2007/02/20 20:58:11 $
- *
- */
-public class SkinThreadsTestCase extends AbstractThreadedAjax4JsfTestCase {
-
- /**
- * @param s
- */
- public SkinThreadsTestCase(String s) {
- super(s);
- // TODO Auto-generated constructor stub
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.exadel.vcp.tests.VcpJsfTestCase#setUp()
- */
-public void setUp() throws Exception {
- // TODO Auto-generated method stub
- super.setUp();
- servletContext.setAttribute("skin", new Bean());
- }
- /*
- * (non-Javadoc)
- *
- * @see com.exadel.vcp.tests.VcpJsfTestCase#tearDown()
- */
- public void tearDown() throws Exception {
- // TODO Auto-generated method stub
- super.tearDown();
- }
-
-
- public class SkinTestRunnable extends TestCaseRunnable {
-
-
- /**
- *
- */
- public SkinTestRunnable() {
- // TODO Auto-generated constructor stub
- }
-
- /* (non-Javadoc)
- * @see com.exadel.vcp.tests.ThreadedVcpJsfTestCase.TestCaseRunnable#runTestCase(javax.faces.context.FacesContext)
- */
- public void runTestCase(FacesContext context) throws Throwable {
- context.getExternalContext().getRequestMap().put("test", new Bean());
- Skin skin = SkinFactory.getInstance().getSkin(context);
- assertNotNull(skin);
- assertEquals("TEST", skin.getRenderKitId(context));
- assertEquals("binded.string", skin.getParameter(context, "bind.property"));
- assertEquals("bindedstring", skin.getParameter(context, "string.property"));
- assertEquals("10", skin.getParameter(context, "int.property"));
- assertNull(skin.getParameter(context, "notexist"));
- }
-
- }
-
- /**
- * Test skin factory for thread-safe.
- */
- public void testThreadsafe() {
- TestCaseRunnable[] runnables = new TestCaseRunnable[20];
- for (int i = 0; i < runnables.length; i++) {
- runnables[i] = new SkinTestRunnable();
-
- }
- this.runTestCaseRunnables(runnables);
- }
- /*
- * (non-Javadoc)
- *
- * @see com.exadel.vcp.tests.VcpJsfTestCase#getSkinName()
- */
- protected String getSkinName() {
- // TODO Auto-generated method stub
- return "#{skin.name}";
- }
-}
Deleted: framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/TestApplicationFactory.java
===================================================================
--- framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/TestApplicationFactory.java 2009-07-12 22:53:07 UTC (rev 14902)
+++ framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/TestApplicationFactory.java 2009-07-12 22:54:01 UTC (rev 14903)
@@ -1,115 +0,0 @@
-/**
- * License Agreement.
- *
- * Rich Faces - Natural Ajax for Java Server Faces (JSF)
- *
- * Copyright (C) 2007 Exadel, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-package org.richfaces.skin;
-
-
-
-import javax.faces.application.Application;
-
-import javax.faces.application.ApplicationFactory;
-
-
-
-import org.easymock.MockControl;
-
-import org.easymock.classextension.MockClassControl;
-
-
-
-/**
-
- * @author asmirnov(a)exadel.com (latest modification by $Author: ishabalov $)
-
- * @version $Revision: 1.1.2.2 $ $Date: 2007/02/20 20:58:11 $
-
- *
-
- */
-
-public class TestApplicationFactory extends ApplicationFactory {
-
-
-
- private MockControl applicationControl;
-
- private Application mockApplication;
-
-
-
- public TestApplicationFactory(){
-
- applicationControl = MockClassControl.createControl(Application.class);
-
- mockApplication = (Application) applicationControl.getMock();
-
- }
-
-
-
- /* (non-Javadoc)
-
- * @see javax.faces.application.ApplicationFactory#getApplication()
-
- */
-
- public Application getApplication() {
-
- // TODO Auto-generated method stub
-
- return mockApplication;
-
- }
-
-
-
- /* (non-Javadoc)
-
- * @see javax.faces.application.ApplicationFactory#setApplication(javax.faces.application.Application)
-
- */
-
- public void setApplication(Application arg0) {
-
- // TODO Auto-generated method stub
-
-
-
- }
-
-
-
- /**
-
- * @return Returns the applicationControl.
-
- */
-
- public MockControl getApplicationControl() {
-
- return applicationControl;
-
- }
-
-
-
-}
-
15 years, 2 months
JBoss Rich Faces SVN: r14902 - in framework/trunk/impl: src/main/resources/META-INF and 17 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2009-07-12 18:53:07 -0400 (Sun, 12 Jul 2009)
New Revision: 14902
Added:
framework/trunk/impl/src/test/java/org/ajax4jsf/codec/
framework/trunk/impl/src/test/java/org/ajax4jsf/codec/CodecTest.java
framework/trunk/impl/src/test/java/org/richfaces/component/UIRangedNumberInputTest.java
framework/trunk/impl/src/test/java/org/richfaces/component/nsutils/
framework/trunk/impl/src/test/java/org/richfaces/component/nsutils/NSUtilsTest.java
framework/trunk/impl/src/test/java/org/richfaces/component/util/FormUtilTest.java
framework/trunk/impl/src/test/java/org/richfaces/component/util/HtmlUtilTest.java
framework/trunk/impl/src/test/java/org/richfaces/json/JsonTest.java
framework/trunk/impl/src/test/java/org/richfaces/model/
framework/trunk/impl/src/test/java/org/richfaces/model/FilterFieldTest.java
framework/trunk/impl/src/test/java/org/richfaces/model/ListSequenceDataModelTest.java
framework/trunk/impl/src/test/java/org/richfaces/model/MockDataModel.java
framework/trunk/impl/src/test/java/org/richfaces/model/MockRange.java
framework/trunk/impl/src/test/java/org/richfaces/model/ModifiableModelTest.java
framework/trunk/impl/src/test/java/org/richfaces/model/SortField2Test.java
framework/trunk/impl/src/test/java/org/richfaces/model/StackingTreeDataModelTest.java
framework/trunk/impl/src/test/java/org/richfaces/model/entity/
framework/trunk/impl/src/test/java/org/richfaces/model/entity/Directory.java
framework/trunk/impl/src/test/java/org/richfaces/model/entity/File.java
framework/trunk/impl/src/test/java/org/richfaces/model/entity/Named.java
framework/trunk/impl/src/test/java/org/richfaces/model/entity/Project.java
framework/trunk/impl/src/test/java/org/richfaces/model/impl/
framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/
framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/JavaBeanWrapperTest.java
framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/MethodBindingExpressionTest.java
framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/NamedObject.java
framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/NullExpressionTest.java
framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/ObjectWrapperFactoryTest.java
framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/SimplePropertyExpressionTest.java
framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/ValueBindingExpressionTest.java
framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/WrappedBeanComparatorTest.java
framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/WrappedBeanFilterTest.java
framework/trunk/impl/src/test/java/org/richfaces/renderkit/CompositeRendererTest.java
framework/trunk/impl/src/test/java/org/richfaces/renderkit/TemplateEncoderRendererBaseTest.java
framework/trunk/impl/src/test/java/org/richfaces/renderkit/TemplateUtilTest.java
framework/trunk/impl/src/test/java/org/richfaces/skin/
framework/trunk/impl/src/test/java/org/richfaces/skin/Bean.java
framework/trunk/impl/src/test/java/org/richfaces/skin/SkinTestCase.java
framework/trunk/impl/src/test/java/org/richfaces/skin/SkinThreadsTestCase.java
framework/trunk/impl/src/test/resources/bindedtest.skin.properties
framework/trunk/impl/src/test/resources/org/
framework/trunk/impl/src/test/resources/org/richfaces/
framework/trunk/impl/src/test/resources/org/richfaces/renderkit/
framework/trunk/impl/src/test/resources/org/richfaces/renderkit/form_script
framework/trunk/impl/src/test/resources/org/richfaces/renderkit/form_style
framework/trunk/impl/src/test/resources/org/richfaces/renderkit/input_script
framework/trunk/impl/src/test/resources/org/richfaces/renderkit/input_style
Modified:
framework/trunk/impl/
framework/trunk/impl/pom.xml
framework/trunk/impl/src/main/resources/META-INF/faces-config.xml
Log:
Framework unit tests updated
Property changes on: framework/trunk/impl
___________________________________________________________________
Name: svn:ignore
- .project
.checkstyle
target
.metadata
.settings
.classpath
+ .project
.checkstyle
target
.metadata
.settings
.classpath
.clover
Modified: framework/trunk/impl/pom.xml
===================================================================
--- framework/trunk/impl/pom.xml 2009-07-12 22:49:21 UTC (rev 14901)
+++ framework/trunk/impl/pom.xml 2009-07-12 22:53:07 UTC (rev 14902)
@@ -128,6 +128,10 @@
<artifactId>richfaces-api</artifactId>
</dependency>
<dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>richfaces-test-base</artifactId>
+ </dependency>
+ <dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
@@ -155,6 +159,16 @@
<artifactId>ehcache</artifactId>
<optional>true</optional>
</dependency>
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymock</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymockclassextension</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
Modified: framework/trunk/impl/src/main/resources/META-INF/faces-config.xml
===================================================================
--- framework/trunk/impl/src/main/resources/META-INF/faces-config.xml 2009-07-12 22:49:21 UTC (rev 14901)
+++ framework/trunk/impl/src/main/resources/META-INF/faces-config.xml 2009-07-12 22:53:07 UTC (rev 14902)
@@ -41,16 +41,16 @@
<managed-bean-class>org.ajax4jsf.context.AjaxContextImpl</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
- <component>
+ <!-- component>
- <!-- component-type>javax.faces.ViewRoot</component-type>
+ <component-type>javax.faces.ViewRoot</component-type>
<component-class>org.ajax4jsf.component.AjaxViewRoot</component-class>
<component-extension>
<component-family>javax.faces.ViewRoot</component-family>
- </component-extension -->
+ </component-extension>
- </component>
+ </component -->
<!-- render-kit>
Copied: framework/trunk/impl/src/test/java/org/ajax4jsf/codec/CodecTest.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/ajax4jsf/codec/CodecTest.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/ajax4jsf/codec/CodecTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/ajax4jsf/codec/CodecTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,81 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.ajax4jsf.codec;
+
+import org.ajax4jsf.util.base64.Codec;
+import org.richfaces.test.AbstractThreadedTest;
+
+public class CodecTest extends AbstractThreadedTest {
+ Codec c;
+
+ public void setUp() throws Exception {
+ super.setUp();
+ String message = "";
+ try {
+ c = new Codec("anbshsquycwuudyft");
+ } catch (Exception e) {
+ message = "Cannot create Codec instance " + e.getMessage();
+ }
+ assertNotNull(message, c);
+ }
+
+ public void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void testCodec() {
+ CodecTestRunnable[] runnables = new CodecTestRunnable[100];
+ for (int i = 0; i < runnables.length; i++) {
+ runnables[i] = new CodecTestRunnable(c, generateRandomString(), i);
+ }
+ runTestCaseRunnables(runnables);
+ }
+
+ private String generateRandomString() {
+ StringBuffer ss = new StringBuffer();
+ for (int i = 0; i < 50000; i++) {
+ char c = (char)(96 + Math.random() * 26);
+ ss.append(c);
+ }
+ return ss.toString();
+ }
+
+ class CodecTestRunnable extends TestCaseRunnable {
+ Codec c;
+ String s;
+ int id;
+
+ public CodecTestRunnable(Codec c, String s, int id) {
+ this.c = c;
+ this.s = s;
+ this.id = id;
+ }
+
+ public void runTestCase() throws Throwable {
+ String s1 = c.encode(s);
+ String s2 = c.decode(s1);
+ assertEquals("Failure in thread " + id, s2, s);
+ }
+
+ }
+
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/component/UIRangedNumberInputTest.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/component/UIRangedNumberInputTest.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/component/UIRangedNumberInputTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/component/UIRangedNumberInputTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,125 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.component;
+
+import org.richfaces.test.AbstractFacesTest;
+
+
+public class UIRangedNumberInputTest extends AbstractFacesTest {
+
+ private UIRangedNumberInput input;
+
+ public void setUp() throws Exception {
+ super.setUp();
+ setupFacesRequest();
+
+ input = new UIRangedNumberInput() {
+ private String minValue;
+ private String maxValue;
+ private boolean disabled;
+
+ public String getMinValue() {
+ return minValue;
+ }
+ public void setMinValue(String minValue) {
+ this.minValue = minValue;
+ }
+ public String getMaxValue() {
+ return maxValue;
+ }
+ public void setMaxValue(String maxValue) {
+ this.maxValue = maxValue;
+ }
+ public boolean isDisabled() {
+ return disabled;
+ }
+ public void setDisabled(boolean disabled) {
+ this.disabled = disabled;
+ }
+ };
+
+ input.setMaxValue("100");
+ input.setMinValue("0");
+ input.setValid(true);
+ }
+
+ public void tearDown() throws Exception {
+ super.tearDown();
+
+ this.input = null;
+ }
+
+ private void checkValid() {
+ assertTrue(input.isValid());
+ assertFalse(facesContext.getMessages().hasNext());
+ }
+
+ private void checkInvalid() {
+ assertFalse(input.isValid());
+ assertTrue(facesContext.getMessages().hasNext());
+ }
+
+ public void testValidateValueFacesContextObject() {
+ checkValid();
+ input.validateValue(facesContext, new Double(23.45));
+ checkValid();
+ }
+
+ public void testValidateNullValue() throws Exception {
+ checkValid();
+ input.validateValue(facesContext, null);
+ checkValid();
+ }
+
+ public void testValidateMinValue() throws Exception {
+ checkValid();
+ input.validateValue(facesContext, new Double(-23.45));
+ checkInvalid();
+ }
+
+ public void testValidateMaxValue() throws Exception {
+ checkValid();
+ input.validateValue(facesContext, new Double(223.45));
+ checkInvalid();
+ }
+
+
+ public void testValidateMinNullMinValue() throws Exception {
+ input.setMinValue(null);
+ checkValid();
+ input.validateValue(facesContext, new Double(-23.45));
+ checkInvalid();
+ }
+
+ public void testValidateMaxNullMaxValue() throws Exception {
+ input.setMaxValue(null);
+ checkValid();
+ input.validateValue(facesContext, new Double(223.45));
+ checkInvalid();
+ }
+
+ public void testValidateIllegalValue() throws Exception {
+ checkValid();
+ input.validateValue(facesContext, "string");
+ checkInvalid();
+ }
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/component/nsutils/NSUtilsTest.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/component/nsutils/NSUtilsTest.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/component/nsutils/NSUtilsTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/component/nsutils/NSUtilsTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,60 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.component.nsutils;
+
+import java.io.StringWriter;
+
+import javax.faces.component.UIInput;
+import javax.faces.context.ResponseWriter;
+
+import org.richfaces.test.AbstractFacesTest;
+
+public class NSUtilsTest extends AbstractFacesTest {
+
+ public void setUp() throws Exception {
+ super.setUp();
+ setupFacesRequest();
+ }
+
+ public void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void testWriteNameSpace() throws Exception {
+ final StringWriter stringWriter = new StringWriter();
+ ResponseWriter writer = facesContext.getRenderKit().createResponseWriter(stringWriter, "text/html", "UTF-8");
+ facesContext.setResponseWriter(writer);
+
+ UIInput input = new UIInput();
+
+ writer.startDocument();
+ writer.startElement("span", input);
+
+ NSUtils.writeNameSpace(facesContext, input);
+
+ writer.endElement("span");
+ writer.endDocument();
+
+ String result = stringWriter.getBuffer().toString();
+ assertTrue(result.contains("span xmlns:rich=\"http://richfaces.ajax4jsf.org/rich\""));
+ }
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/component/util/FormUtilTest.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/component/util/FormUtilTest.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/component/util/FormUtilTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/component/util/FormUtilTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,85 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.component.util;
+
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIForm;
+import javax.faces.component.UIOutput;
+import javax.faces.component.UIViewRoot;
+
+import org.richfaces.component.EnclosingFormRequiredException;
+import org.richfaces.test.AbstractFacesTest;
+
+/**
+ * @author Nick Belaevski - nbelaevski(a)exadel.com
+ * created 11.04.2007
+ *
+ */
+public class FormUtilTest extends AbstractFacesTest {
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ setupFacesRequest();
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void testThrowEnclFormReqExceptionIfNeed() throws Exception {
+ UIViewRoot viewRoot = facesContext.getViewRoot();
+ UIComponent form = application.createComponent(UIForm.COMPONENT_TYPE);
+ viewRoot.getChildren().add(form);
+
+ UIComponent testComponent = application.createComponent(UIOutput.COMPONENT_TYPE);
+ form.getChildren().add(testComponent);
+
+ FormUtil.throwEnclFormReqExceptionIfNeed(facesContext, testComponent);
+ }
+
+ public void testThrowEnclFormReqExceptionIfNeedNoForm() throws Exception {
+ UIViewRoot viewRoot = facesContext.getViewRoot();
+
+ UIComponent testComponent = application.createComponent(UIOutput.COMPONENT_TYPE);
+ viewRoot.getChildren().add(testComponent);
+
+ try {
+ FormUtil.throwEnclFormReqExceptionIfNeed(facesContext, testComponent);
+
+ fail();
+ } catch (EnclosingFormRequiredException e) {
+
+ }
+ }
+
+ public void testThrowEnclFormReqExceptionIfNeedClient() throws Exception {
+ UIViewRoot viewRoot = facesContext.getViewRoot();
+
+ UIComponent testComponent = application.createComponent(UIOutput.COMPONENT_TYPE);
+ testComponent.getAttributes().put("switchType", "CLIENT");
+ viewRoot.getChildren().add(testComponent);
+
+ FormUtil.throwEnclFormReqExceptionIfNeed(facesContext, testComponent);
+ }
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/component/util/HtmlUtilTest.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/component/util/HtmlUtilTest.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/component/util/HtmlUtilTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/component/util/HtmlUtilTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,112 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.component.util;
+
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIComponentBase;
+import javax.faces.context.FacesContext;
+
+import junit.framework.TestCase;
+
+/**
+ * @author Nick Belaevski - nbelaevski(a)exadel.com
+ * created 11.04.2007
+ *
+ */
+public class HtmlUtilTest extends TestCase {
+
+ public HtmlUtilTest(String name) {
+ super(name);
+ }
+
+ public void setUp() throws Exception {
+ super.setUp();
+ }
+
+ public void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void testQualifySize() throws Exception {
+ assertEquals("", HtmlUtil.qualifySize(""));
+
+ assertEquals("100px", HtmlUtil.qualifySize("100px"));
+ assertEquals("100px", HtmlUtil.qualifySize("100"));
+ assertEquals("100pt", HtmlUtil.qualifySize("100pt"));
+
+ assertEquals("100in", HtmlUtil.qualifySize("100in"));
+ assertEquals("100cm", HtmlUtil.qualifySize("100cm"));
+ assertEquals("100em", HtmlUtil.qualifySize("100em"));
+ assertEquals("100%", HtmlUtil.qualifySize("100%"));
+ }
+
+ public void testAddToSize() throws Exception {
+ assertEquals("120px", HtmlUtil.addToSize("100", "20px"));
+ assertEquals("120px", HtmlUtil.addToSize("100px", "20"));
+ assertEquals("120px", HtmlUtil.addToSize("100", "20"));
+ assertEquals("120px", HtmlUtil.addToSize("100px", "20px"));
+ }
+
+ public void testExpandIdSelector() {
+ String selector = ".class_form+#-Test .class2 #_aaaa";
+
+ UIComponent component = new UIComponentBase() {
+ public String getFamily() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ public UIComponent findComponent(String expr) {
+ if ("-Test".equals(expr)) {
+ return new UIComponentBase() {
+ public String getClientId(FacesContext context) {
+ return "component1";
+ }
+ public String getFamily() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ };
+ } else if ("_aaaa".equals(expr)) {
+ return new UIComponentBase() {
+ public String getClientId(FacesContext context) {
+ return "component2";
+ }
+ public String getFamily() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ };
+ }
+
+ return null;
+ }
+ };
+
+ String string =
+ HtmlUtil.expandIdSelector(selector, component, null);
+
+ assertEquals(".class_form+#component1 .class2 #component2", string);
+
+ String s = ".class_form+.component1 .class2 #1component2";
+ assertEquals(s, HtmlUtil.expandIdSelector(s, component, null));
+ }
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/json/JsonTest.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/json/JsonTest.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/json/JsonTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/json/JsonTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,166 @@
+/**
+ *
+ */
+package org.richfaces.json;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+/**
+ * @author Nick Belaevski - nbelaevski(a)exadel.com
+ * created 12.04.2007
+ *
+ */
+public class JsonTest extends TestCase {
+
+ /**
+ * @param name
+ */
+ public JsonTest(String name) {
+ super(name);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void testMap() throws Exception {
+ JSONMap map = new JSONMap("{text: 12, moreData: { key: value, key1: 23.04 }}");
+ assertEquals(12, ((Integer) map.get("text")).intValue());
+ assertEquals(2, map.size());
+
+ Map innerMap = (Map) map.get("moreData");
+ assertEquals("value", innerMap.get("key"));
+ assertEquals(23.04, ((Double) innerMap.get("key1")).doubleValue(), 0);
+ assertEquals(2, innerMap.size());
+ }
+
+ public void testCollection() throws Exception {
+ JSONCollection collection = new JSONCollection("[text, { key: value, key1: 23.04 }, [1, a, 3]]");
+ assertEquals(3, collection.size());
+
+ Iterator iterator = collection.iterator();
+ assertTrue(iterator.hasNext());
+
+ assertEquals("text", iterator.next());
+ assertTrue(iterator.hasNext());
+
+ Map innerMap = (Map) iterator.next();
+ assertTrue(iterator.hasNext());
+
+ assertEquals("value", innerMap.get("key"));
+ assertEquals(23.04, ((Double) innerMap.get("key1")).doubleValue(), 0);
+ assertEquals(2, innerMap.size());
+
+ Collection innerCollection = (Collection) iterator.next();
+ assertEquals(3, innerCollection.size());
+ Iterator innerIterator = innerCollection.iterator();
+
+ assertTrue(innerIterator.hasNext());
+ assertEquals(1, ((Integer) innerIterator.next()).intValue());
+ assertTrue(innerIterator.hasNext());
+ assertEquals("a", innerIterator.next());
+ assertTrue(innerIterator.hasNext());
+ assertEquals(3, ((Integer) innerIterator.next()).intValue());
+ assertFalse(innerIterator.hasNext());
+
+ assertFalse(iterator.hasNext());
+ }
+
+ public void testNewCollection() throws Exception {
+ JSONCollection collection = new JSONCollection();
+ assertTrue(collection.isEmpty());
+ }
+
+ public void testNewMap() throws Exception {
+ JSONMap map = new JSONMap();
+ assertTrue(map.isEmpty());
+ }
+
+ public void testMapAddiition() throws Exception {
+ JSONMap map = new JSONMap();
+ Set set = map.entrySet();
+ set.add(new JsonTestMockMapEntry("boolean", new Boolean(true)));
+ set.add(new JsonTestMockMapEntry("double", new Double(23.45)));
+ set.add(new JsonTestMockMapEntry("integer", new Integer(56)));
+ set.add(new JsonTestMockMapEntry("long", new Long(89)));
+ set.add(new JsonTestMockMapEntry("string", "testString"));
+
+ HashSet hashSet = new HashSet();
+
+ hashSet.add("15");
+ hashSet.add(new Double(45.01));
+
+ HashSet etalonSet = (HashSet) hashSet.clone();
+
+
+ HashMap hashMap = new HashMap();
+
+ hashMap.put("16", new Boolean(false));
+ hashMap.put("key", new Double(145.01));
+
+ HashMap etalonMap = (HashMap) hashMap.clone();
+
+ set.add(new JsonTestMockMapEntry("collection", hashSet));
+ set.add(new JsonTestMockMapEntry("map", hashMap));
+
+ assertEquals(Boolean.TRUE, map.get("boolean"));
+ assertEquals(new Double(23.45), map.get("double"));
+ assertEquals(new Integer(56), map.get("integer"));
+ assertEquals(new Long(89), map.get("long"));
+ assertEquals("testString", map.get("string"));
+
+ Collection collection = (Collection) map.get("collection");
+ assertTrue(etalonSet.containsAll(collection));
+ etalonSet.removeAll(collection);
+ assertTrue(etalonSet.isEmpty());
+
+ assertEquals(etalonMap, map.get("map"));
+ }
+
+}
+
+class JsonTestMockMapEntry implements Map.Entry {
+
+ private Object key;
+ private Object value;
+
+
+
+ public JsonTestMockMapEntry(Object key, Object value) {
+ super();
+ this.key = key;
+ this.value = value;
+ }
+
+ public Object getKey() {
+ return key;
+ }
+
+ public Object getValue() {
+ return value;
+ }
+
+ public Object setValue(Object newValue) {
+ Object oldValue = value;
+ value = newValue;
+ return oldValue;
+ }
+
+}
\ No newline at end of file
Copied: framework/trunk/impl/src/test/java/org/richfaces/model/FilterFieldTest.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/model/FilterFieldTest.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/FilterFieldTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/FilterFieldTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,87 @@
+/**
+ *
+ */
+package org.richfaces.model;
+
+import javax.el.ValueExpression;
+
+import junit.framework.TestCase;
+
+import org.easymock.classextension.EasyMock;
+
+/**
+ * @author Konstantin Mishin
+ *
+ */
+public class FilterFieldTest extends TestCase {
+
+ private Field field;
+ private ValueExpression expression;
+
+ /**
+ * @param name
+ */
+ public FilterFieldTest(String name) {
+ super(name);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ expression = EasyMock.createNiceMock(ValueExpression.class);
+ field = new FilterField(expression);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ field = null;
+ expression = null;
+ super.tearDown();
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.FilterField#FilterField(javax.el.ValueExpression)}.
+ */
+ public final void testFilterField() {
+ Field filterField = new FilterField(expression);
+ assertEquals(filterField, field);
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.Field#hashCode()}.
+ */
+ public final void testHashCode() {
+ Field filterField = new FilterField(expression);
+ assertEquals(filterField.hashCode(), field.hashCode());
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.Field#equals(java.lang.Object)}.
+ */
+ public final void testEqualsObject() {
+ Field filterField = new FilterField(null);
+ assertFalse(filterField.equals(field));
+ filterField.setExpression(expression);
+ assertTrue(filterField.equals(field));
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.Field#getExpression()}.
+ */
+ public final void testGetExpression() {
+ assertSame(field.getExpression(), expression);
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.Field#setExpression(javax.el.ValueExpression)}.
+ */
+ public final void testSetExpression() {
+ field.setExpression(null);
+ assertNull(field.getExpression());
+ }
+
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/model/ListSequenceDataModelTest.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/model/ListSequenceDataModelTest.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/ListSequenceDataModelTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/ListSequenceDataModelTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,133 @@
+/**
+ *
+ */
+package org.richfaces.model;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.model.DataVisitor;
+import org.ajax4jsf.model.SequenceRange;
+
+import junit.framework.TestCase;
+
+/**
+ * @author Konstantin Mishin
+ *
+ */
+public class ListSequenceDataModelTest extends TestCase {
+
+ private List<Integer> list;
+ private ListSequenceDataModel model;
+ private ListSequenceDataModel nullModel;
+
+ /**
+ * @param name
+ */
+ public ListSequenceDataModelTest(String name) {
+ super(name);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ list = new ArrayList<Integer>();
+ for (int i = 0; i < 10; i++) {
+ list.add(new Integer(i));
+ }
+ model = new ListSequenceDataModel(list);
+ nullModel = new ListSequenceDataModel(null);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ nullModel = null;
+ model = null;
+ list = null;
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.ListSequenceDataModel#isRowAvailable()}.
+ */
+ public final void testIsRowAvailable() {
+ assertFalse(nullModel.isRowAvailable());
+ assertTrue(model.isRowAvailable());
+ model.setRowIndex(-1);
+ assertFalse(model.isRowAvailable());
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.ListSequenceDataModel#getRowCount()}.
+ */
+ public final void testGetRowCount() {
+ assertEquals(model.getRowCount(), list.size());
+ assertEquals(nullModel.getRowCount(), -1);
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.ListSequenceDataModel#setRowIndex()}
+ * and {@link org.richfaces.model.ListSequenceDataModel#getRowIndex()}.
+ */
+ public final void testRowIndex() {
+ int i = 3;
+ model.setRowIndex(i);
+ assertEquals(model.getRowIndex(), i);
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.ListSequenceDataModel#setRowKey(java.lang.Object)}
+ * and {@link org.richfaces.model.ListSequenceDataModel#getRowKey(java.lang.Object)}.
+ */
+ public final void testRowKey() {
+ Integer i = 3;
+ model.setRowKey(i);
+ assertEquals(model.getRowKey(), i);
+ model.setRowKey(null);
+ assertNull(model.getRowKey());
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.ListSequenceDataModel#walk(javax.faces.context.FacesContext, org.ajax4jsf.model.DataVisitor, org.ajax4jsf.model.Range, java.lang.Object)}
+ * and {@link org.richfaces.model.ListSequenceDataModel#getRowData()}.
+ */
+ public final void testWalk() {
+ DataVisitor visitor = new DataVisitor(){
+ public void process(FacesContext context, Object rowKey,
+ Object argument) throws IOException {
+ Object key = model.getRowKey();
+ model.setRowKey(rowKey);
+ assertEquals(model.getRowData(), list.get(((Integer)rowKey).intValue()));
+ model.setRowKey(key);
+ }
+ };
+ try {
+ SequenceRange range = new SequenceRange(0, -1);
+ model.walk(null, visitor, range, null);
+ range = new SequenceRange(0, 5);
+ model.walk(null, visitor, range, null);
+ } catch (IOException e) {
+ fail(e.getMessage());
+ }
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.ListSequenceDataModel#ListSequenceDataModel(java.util.List)},
+ * {@link org.richfaces.model.ListSequenceDataModel#setWrappedData(java.lang.Object)}
+ * and {@link org.richfaces.model.ListSequenceDataModel#getWrappedData()} .
+ */
+ public final void testListSequenceDataModel() {
+ assertNull(nullModel.getWrappedData());
+ ListSequenceDataModel dataModel = new ListSequenceDataModel(list);
+ assertSame(dataModel.getWrappedData(), model.getWrappedData());
+
+ }
+
+}
Added: framework/trunk/impl/src/test/java/org/richfaces/model/MockDataModel.java
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/MockDataModel.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/MockDataModel.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,170 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.model;
+
+import java.io.IOException;
+
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.model.DataVisitor;
+import org.ajax4jsf.model.ExtendedDataModel;
+import org.ajax4jsf.model.Range;
+import org.ajax4jsf.model.SequenceRange;
+
+/**
+ * @author shura
+ *
+ */
+public class MockDataModel extends ExtendedDataModel {
+
+ public static final int ROWS = 10;
+
+ private int rowIndex = 0;
+
+ private int minRow = 0;
+
+ private int maxRow = ROWS;
+
+ private Object wrappedData;
+ /**
+ * @return the maxRow
+ */
+ public int getMaxRow() {
+ return maxRow;
+ }
+
+ /**
+ * @param maxRow the maxRow to set
+ */
+ public void setMaxRow(int maxRow) {
+ this.maxRow = maxRow;
+ }
+
+ /**
+ * @return the minRow
+ */
+ public int getMinRow() {
+ return minRow;
+ }
+
+ /**
+ * @param minRow the minRow to set
+ */
+ public void setMinRow(int minRow) {
+ this.minRow = minRow;
+ }
+
+
+ public void walk(FacesContext context, DataVisitor visitor, Range range, Object argument) throws IOException {
+ int first=0;
+ int count=ROWS;
+ if (range instanceof MockRange) {
+ MockRange mockRange = (MockRange) range;
+ count = mockRange.getCount();
+ } else if (range instanceof SequenceRange) {
+ SequenceRange seqRange = (SequenceRange) range;
+ first = seqRange.getFirstRow();
+ int rows = seqRange.getRows();
+ if(rows>0){
+ count = rows+first;
+ }
+ }
+ for(int row = first; row < count && row < ROWS;row++){
+ visitor.process(context, new Integer(row), argument);
+ }
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.ajax4jsf.ajax.repeat.ExtendedDataModel#getRowKey()
+ */
+ public Object getRowKey() {
+ // TODO Auto-generated method stub
+ return rowIndex<0?null:new Integer(rowIndex);
+ }
+
+ /* (non-Javadoc)
+ * @see org.ajax4jsf.ajax.repeat.ExtendedDataModel#setRowKey(java.lang.Object)
+ */
+ public void setRowKey(Object key) {
+ if(null == key){
+ rowIndex = -1;
+ } else {
+ rowIndex = ((Integer) key).intValue();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see javax.faces.model.DataModel#getRowCount()
+ */
+ public int getRowCount() {
+ // TODO Auto-generated method stub
+ return getMaxRow();
+ }
+
+ /* (non-Javadoc)
+ * @see javax.faces.model.DataModel#getRowData()
+ */
+ public Object getRowData() {
+ // TODO Auto-generated method stub
+ return isRowAvailable()?String.valueOf(rowIndex):null;
+ }
+
+ /* (non-Javadoc)
+ * @see javax.faces.model.DataModel#getRowIndex()
+ */
+ public int getRowIndex() {
+ // TODO Auto-generated method stub
+ return rowIndex;
+ }
+
+ /* (non-Javadoc)
+ * @see javax.faces.model.DataModel#getWrappedData()
+ */
+ public Object getWrappedData() {
+ // TODO Auto-generated method stub
+ return wrappedData;
+ }
+
+ /* (non-Javadoc)
+ * @see javax.faces.model.DataModel#isRowAvailable()
+ */
+ public boolean isRowAvailable() {
+ // TODO Auto-generated method stub
+ return rowIndex>=getMinRow() && rowIndex<getMaxRow();
+ }
+
+ /* (non-Javadoc)
+ * @see javax.faces.model.DataModel#setRowIndex(int)
+ */
+ public void setRowIndex(int rowIndex) {
+ this.rowIndex = rowIndex;
+ }
+
+ /* (non-Javadoc)
+ * @see javax.faces.model.DataModel#setWrappedData(java.lang.Object)
+ */
+ public void setWrappedData(Object data) {
+ wrappedData = data;
+ }
+
+}
Added: framework/trunk/impl/src/test/java/org/richfaces/model/MockRange.java
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/MockRange.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/MockRange.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,41 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.model;
+
+import org.ajax4jsf.model.Range;
+
+/**
+ * @author shura
+ *
+ */
+public class MockRange implements Range {
+
+ private int count;
+
+ public MockRange(int count) {
+ this.count = count;
+ }
+
+ public int getCount(){
+ return count;
+ }
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/model/ModifiableModelTest.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/model/ModifiableModelTest.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/ModifiableModelTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/ModifiableModelTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,107 @@
+/**
+ *
+ */
+package org.richfaces.model;
+
+import java.io.IOException;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.el.ValueExpression;
+import javax.faces.context.FacesContext;
+import javax.faces.model.DataModelListener;
+
+import org.ajax4jsf.model.DataVisitor;
+import org.ajax4jsf.model.ExtendedDataModel;
+import org.ajax4jsf.model.SequenceRange;
+import org.easymock.classextension.EasyMock;
+import org.richfaces.test.AbstractFacesTest;
+
+/**
+ * @author Konstantin Mishin
+ *
+ */
+public class ModifiableModelTest extends AbstractFacesTest {
+
+ private ModifiableModel model;
+ private ExtendedDataModel originalModel;
+ private String var;
+ private List<FilterField> filterFields;
+ private List<SortField2> sortFields;
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ public void setUp() throws Exception {
+ super.setUp();
+ setupFacesRequest();
+ var = "var";
+ originalModel = new MockDataModel();
+ filterFields = new LinkedList<FilterField>();
+ sortFields = new LinkedList<SortField2>();
+ model = new ModifiableModel(originalModel, var);
+ model.modify(filterFields, sortFields);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#tearDown()
+ */
+ public void tearDown() throws Exception {
+ model = null;
+ var = null;
+ filterFields = null;
+ sortFields = null;
+ originalModel = null;
+ super.tearDown();
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.ModifiableModel#walk(javax.faces.context.FacesContext, org.ajax4jsf.model.DataVisitor, org.ajax4jsf.model.Range, java.lang.Object)}.
+ */
+ public final void testWalk() {
+ SequenceRange range = new SequenceRange(0, -1);
+ DataVisitor visitor = new DataVisitor(){
+ public void process(FacesContext context, Object rowKey,
+ Object argument) throws IOException {
+ Object key = model.getRowKey();
+ model.setRowKey(rowKey);
+ Object key2 = originalModel.getRowKey();
+ originalModel.setRowKey(rowKey);
+ assertEquals(model.getRowData(), originalModel.getRowData());
+ model.setRowKey(key);
+ originalModel.setRowKey(key2);
+ }
+ };
+ try {
+ model.walk(null, visitor, range, null);
+ ValueExpression expression =
+ facesContext.getApplication().getExpressionFactory().createValueExpression(Boolean.TRUE, Boolean.class);
+ filterFields.add(new FilterField(expression));
+ sortFields.add(new SortField2(expression, Ordering.ASCENDING));
+ model.walk(null, visitor, range, null);
+ } catch (IOException e) {
+ fail(e.getMessage());
+ }
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.ModifiableModel#addDataModelListener(javax.faces.model.DataModelListener)}.
+ */
+ public final void testAddDataModelListenerDataModelListener() {
+ DataModelListener mockedListener = EasyMock.createNiceMock(DataModelListener.class);
+ model.addDataModelListener(mockedListener);
+ assertEquals(model.getDataModelListeners()[0], mockedListener);
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.ModifiableModel#removeDataModelListener(javax.faces.model.DataModelListener)}.
+ */
+ public final void testRemoveDataModelListenerDataModelListener() {
+ DataModelListener mockedListener = EasyMock.createNiceMock(DataModelListener.class);
+ model.addDataModelListener(mockedListener);
+ assertSame(model.getDataModelListeners()[0], mockedListener);
+ model.removeDataModelListener(mockedListener);
+ assertEquals(model.getDataModelListeners().length, 0);
+ }
+
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/model/SortField2Test.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/model/SortField2Test.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/SortField2Test.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/SortField2Test.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,99 @@
+/**
+ *
+ */
+package org.richfaces.model;
+
+import javax.el.ValueExpression;
+
+import junit.framework.TestCase;
+
+import org.easymock.classextension.EasyMock;
+
+/**
+ * @author Konstantin Mishin
+ *
+ */
+public class SortField2Test extends TestCase {
+
+ private SortField2 field;
+ private ValueExpression expression;
+ private Ordering ordering;
+ /**
+ * @param name
+ */
+ public SortField2Test(String name) {
+ super(name);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ expression = EasyMock.createNiceMock(ValueExpression.class);
+ ordering = Ordering.ASCENDING;
+ field = new SortField2(expression, ordering);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ field = null;
+ ordering = null;
+ expression = null;
+ super.tearDown();
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.SortField2#hashCode()}.
+ */
+ public final void testHashCode() {
+ Field sortField = new SortField2(expression, ordering);
+ assertEquals(sortField.hashCode(), field.hashCode());
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.SortField2#equals(java.lang.Object)}.
+ */
+ public final void testEqualsObject() {
+ SortField2 sortField = new SortField2(null);
+ assertFalse(sortField.equals(field));
+ sortField.setExpression(expression);
+ sortField.setOrdering(ordering);
+ assertTrue(sortField.equals(field));
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.SortField2#SortField2(javax.el.ValueExpression)}.
+ */
+ public final void testSortField2ValueExpression() {
+ SortField2 sortField2 = new SortField2(expression);
+ field.setOrdering(null);
+ assertEquals(sortField2, field);
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.SortField2#SortField2(javax.el.ValueExpression, org.richfaces.model.Ordering)}.
+ */
+ public final void testSortField2ValueExpressionOrdering() {
+ SortField2 sortField2 = new SortField2(expression, ordering);
+ assertEquals(sortField2, field);
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.SortField2#getOrdering()}.
+ */
+ public final void testGetOrdering() {
+ assertEquals(field.getOrdering(), ordering);
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.SortField2#setOrdering(org.richfaces.model.Ordering)}.
+ */
+ public final void testSetOrdering() {
+ field.setOrdering(null);
+ assertNull(field.getOrdering());
+ }
+
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/model/StackingTreeDataModelTest.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/model/StackingTreeDataModelTest.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/StackingTreeDataModelTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/StackingTreeDataModelTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,450 @@
+/**
+ *
+ */
+package org.richfaces.model;
+
+import java.io.IOException;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
+
+import org.ajax4jsf.model.DataVisitor;
+import org.richfaces.model.entity.Directory;
+import org.richfaces.model.entity.File;
+import org.richfaces.model.entity.Named;
+import org.richfaces.model.entity.Project;
+import org.richfaces.test.AbstractFacesTest;
+
+
+/**
+ * @author Nick Belaevski
+ * mailto:nbelaevski@exadel.com
+ * created 30.07.2007
+ *
+ */
+public class StackingTreeDataModelTest extends AbstractFacesTest {
+
+ private StackingTreeModel stackingTreeModel;
+ private StackingTreeModel projectsModel;
+ private StackingTreeModel directoriesModel;
+ private StackingTreeModel filesModel;
+
+ private Object projectRequestObject;
+ private Object directoryRequestObject;
+ private Object fileRequestObject;
+
+ /* (non-Javadoc)
+ * @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#setUp()
+ */
+ public void setUp() throws Exception {
+ super.setUp();
+ setupFacesRequest();
+ this.stackingTreeModel = new StackingTreeModel();
+ projectsModel = new StackingTreeModel("project", "project", new StackingTreeModelDataProvider() {
+
+ private Map<String, Project> data = null;
+
+ public Object getData() {
+ if (data == null) {
+ data = new LinkedHashMap<String, Project>();
+ Project projectA = new Project("projectA", 10);
+
+ Directory adir1 = new Directory("ADir1", 50);
+
+ adir1.addFile(new File("AFile1", 60));
+ adir1.addFile(new File("AFile2", 61));
+
+ Directory adir2 = new Directory("ADir2", 101);
+
+ projectA.addDirectory(adir1);
+ projectA.addDirectory(adir2);
+
+ data.put(projectA.getName(), projectA);
+
+ Project projectB = new Project("projectB", 501);
+
+ Directory bdir1 = new Directory("BDir1", 600);
+ Directory bdir2 = new Directory("BDir2", 700);
+ Directory bdir3 = new Directory("BDir3", 801);
+
+ projectB.addDirectory(bdir1);
+ projectB.addDirectory(bdir2);
+ projectB.addDirectory(bdir3);
+
+ data.put(projectB.getName(), projectB);
+ }
+ return data;
+ }
+ });
+ final ValueBinding dirVB = application.createValueBinding("#{project.directories}");
+ directoriesModel = new StackingTreeModel("directory", "directory", new StackingTreeModelDataProvider() {
+ public Object getData() {
+ return dirVB.getValue(facesContext);
+ }
+ });
+ final ValueBinding fileVB = application.createValueBinding("#{directory.files}");
+ filesModel = new StackingTreeModel("file", "file", new StackingTreeModelDataProvider() {
+ public Object getData() {
+ return fileVB.getValue(facesContext);
+ }
+ });
+ directoriesModel.addStackingModel(filesModel);
+ projectsModel.addStackingModel(directoriesModel);
+ this.stackingTreeModel.addStackingModel(projectsModel);
+
+ projectRequestObject = new Object();
+ directoryRequestObject = new Object();
+ fileRequestObject = new Object();
+
+ Map<String, Object> requestMap = facesContext.getExternalContext().getRequestMap();
+ requestMap.put("project", projectRequestObject);
+ requestMap.put("directory", directoryRequestObject);
+ requestMap.put("file", fileRequestObject);
+ }
+
+ /* (non-Javadoc)
+ * @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#tearDown()
+ */
+ public void tearDown() throws Exception {
+ super.tearDown();
+ this.stackingTreeModel = null;
+ this.projectsModel = null;
+ this.directoriesModel = null;
+ this.filesModel = null;
+
+ this.projectRequestObject = null;
+ this.directoryRequestObject = null;
+ this.fileRequestObject = null;
+ }
+
+ public void testWalk() throws Exception {
+ StackingTreeDataModelTestVisitor1 visitor1 = new StackingTreeDataModelTestVisitor1();
+ this.stackingTreeModel.walk(facesContext, visitor1, null, null);
+ assertEquals(9, visitor1.getCounter());
+ this.stackingTreeModel.setRowKey(null);
+ assertFalse(this.stackingTreeModel.isRowAvailable());
+
+ Map<String, Object> requestMap = facesContext.getExternalContext().getRequestMap();
+ assertSame(this.projectRequestObject, requestMap.get("project"));
+ assertSame(this.directoryRequestObject, requestMap.get("directory"));
+ assertSame(this.fileRequestObject, requestMap.get("file"));
+ }
+
+ public void testBadKey() throws Exception {
+ StackingTreeDataModelTestVisitor1 visitor1 = new StackingTreeDataModelTestVisitor1();
+ this.stackingTreeModel.walk(facesContext, visitor1, null, null);
+ this.stackingTreeModel.setRowKey(new ListRowKey(new StackingTreeModelKey("project", "projectA")));
+ assertTrue(this.stackingTreeModel.isRowAvailable());
+ assertNotNull(this.stackingTreeModel.getRowData());
+
+ assertNull(this.stackingTreeModel.getTreeNode());
+ assertFalse(this.stackingTreeModel.isLeaf());
+
+ this.stackingTreeModel.setRowKey(new ListRowKey(new StackingTreeModelKey("project", "projectAAAAA")));
+ assertFalse(this.stackingTreeModel.isRowAvailable());
+ try {
+ Object rowData = this.stackingTreeModel.getRowData();
+ assertNull(rowData);
+ //FIXME: Maksim - bad keys happen for a reason
+ //fail();
+ } catch (Exception e) {
+
+ }
+
+ try {
+ boolean leaf = this.stackingTreeModel.isLeaf();
+ assertTrue(leaf);
+ //FIXME: Maksim - bad keys happen for a reason
+ //fail();
+ } catch (Exception e) {
+
+ }
+
+ try {
+ TreeNode node = this.stackingTreeModel.getTreeNode();
+ assertNull(node);
+ //FIXME: Maksim - bad keys happen for a reason
+ //fail();
+ } catch (Exception e) {
+
+ }
+ }
+
+ public void testActiveData() throws Exception {
+ final ValueBinding fileVB = application.createValueBinding("#{directory.files}");
+ StackingTreeModel localFilesModel = new StackingTreeModel("file", "file", new StackingTreeModelDataProvider() {
+ public Object getData() {
+ return fileVB.getValue(facesContext);
+ }
+
+ }) {
+ protected boolean isActiveData() {
+ Map requestMap = facesContext.getExternalContext().getRequestMap();
+ Object object = requestMap.get("file");
+ assertNotNull(object);
+ File file = (File) object;
+ if (file.getTag() == 61) {
+ return false;
+ }
+
+ return super.isActiveData();
+ }
+ };
+ directoriesModel.removeStackingModel(filesModel);
+ directoriesModel.addStackingModel(localFilesModel);
+
+ stackingTreeModel.walk(facesContext, new StackingTreeDataModelTestVisitor3(), null, null);
+ }
+
+ public void testKey() throws Exception {
+ StackingTreeModelKey key = new StackingTreeModelKey("aaa", new Integer(10));
+ StackingTreeModelKey key2 = new StackingTreeModelKey("aaa", new Integer(11));
+ StackingTreeModelKey key3 = new StackingTreeModelKey("aaa", new Integer(10));
+ StackingTreeModelKey key4 = new StackingTreeModelKey("bbb", new Integer(10));
+
+ assertFalse(key.equals(new StackingTreeModelKey("aaa", new Integer(0)) {} ));
+
+ assertTrue(key.equals(key3));
+ assertTrue(key3.equals(key));
+ assertTrue(key2.equals(key2));
+ assertTrue(key4.equals(key4));
+
+ assertTrue(key.hashCode() == key3.hashCode());
+ assertTrue(key3.hashCode() == key.hashCode());
+ assertTrue(key2.hashCode() == key2.hashCode());
+ assertTrue(key4.hashCode() == key4.hashCode());
+
+ assertFalse(key.equals(key2));
+ assertFalse(key3.equals(key2));
+ assertFalse(key2.equals(key));
+ assertFalse(key2.equals(key3));
+
+ assertFalse(key.hashCode() == key2.hashCode());
+ assertFalse(key3.hashCode() == key2.hashCode());
+ assertFalse(key2.hashCode() == key.hashCode());
+ assertFalse(key2.hashCode() == key3.hashCode());
+
+ assertFalse(key4.equals(key));
+ assertFalse(key4.equals(key2));
+ assertFalse(key4.equals(key3));
+
+ assertFalse(key4.hashCode() == key.hashCode());
+ assertFalse(key4.hashCode() == key2.hashCode());
+ assertFalse(key4.hashCode() == key3.hashCode());
+
+ assertFalse(key.equals(key4));
+ assertFalse(key2.equals(key4));
+ assertFalse(key3.equals(key4));
+
+ assertFalse(new StackingTreeModelKey("aaa", new Integer(10)).equals(null));
+ assertFalse(new StackingTreeModelKey("aaa", null).equals(null));
+ assertFalse(new StackingTreeModelKey(null, new Integer(10)).equals(null));
+ assertFalse(new StackingTreeModelKey(null, null).equals(null));
+
+ assertFalse(key.hashCode() == key4.hashCode());
+ assertFalse(key2.hashCode() == key4.hashCode());
+ assertFalse(key3.hashCode() == key4.hashCode());
+
+ assertFalse(key.hashCode() == 0);
+ assertFalse(key2.hashCode() == 0);
+ assertFalse(key3.hashCode() == 0);
+ assertFalse(key4.hashCode() == 0);
+
+ assertTrue(new StackingTreeModelKey(null, new Integer(11)).equals(new StackingTreeModelKey(null, new Integer(11))));
+ assertFalse(new StackingTreeModelKey(null, new Integer(10)).equals(new StackingTreeModelKey(null, new Integer(11))));
+ assertFalse(new StackingTreeModelKey(null, new Integer(10)).equals(new StackingTreeModelKey("aaa", new Integer(10))));
+
+ assertTrue(new StackingTreeModelKey(null, new Integer(11)).hashCode() == new StackingTreeModelKey(null, new Integer(11)).hashCode());
+ assertFalse(new StackingTreeModelKey(null, new Integer(10)).hashCode() == new StackingTreeModelKey(null, new Integer(11)).hashCode());
+ assertFalse(new StackingTreeModelKey(null, new Integer(10)).hashCode() == new StackingTreeModelKey("aaa", new Integer(10)).hashCode());
+
+ assertTrue(new StackingTreeModelKey("aaa", null).equals(new StackingTreeModelKey("aaa", null)));
+ assertFalse(new StackingTreeModelKey("aaa", null).equals(new StackingTreeModelKey("bbb", null)));
+ assertFalse(new StackingTreeModelKey("aaa", null).equals(new StackingTreeModelKey("aaa", new Integer(10))));
+
+ assertTrue(new StackingTreeModelKey("aaa", null).hashCode() == new StackingTreeModelKey("aaa", null).hashCode());
+ assertFalse(new StackingTreeModelKey("aaa", null).hashCode() == new StackingTreeModelKey("bbb", null).hashCode());
+ assertFalse(new StackingTreeModelKey("aaa", null).hashCode() == new StackingTreeModelKey("aaa", new Integer(10)).hashCode());
+ }
+
+ class StackingTreeDataModelTestVisitor1 implements DataVisitor, LastElementAware {
+
+ private boolean last;
+ private int tag = 0;
+ private int counter = 0;
+
+ public void process(FacesContext context, Object rowKey, Object argument)
+ throws IOException {
+
+ StackingTreeDataModelTestVisitor2 visitor2 = new StackingTreeDataModelTestVisitor2();
+
+ stackingTreeModel.walk(context, visitor2, null, new ListRowKey(new StackingTreeModelKey("project", "projectA")),
+ argument, false);
+
+ assertEquals(5, visitor2.getCounter());
+
+ StackingTreeDataModelTestVisitor2 visitor20 = new StackingTreeDataModelTestVisitor2();
+
+ stackingTreeModel.walk(context, visitor20, new TreeRange() {
+
+ public boolean processChildren(TreeRowKey rowKey) {
+ return false;
+ }
+
+ public boolean processNode(TreeRowKey rowKey) {
+ return false;
+ }
+
+ }, new ListRowKey(new StackingTreeModelKey("project", "projectA")),
+ argument, false);
+
+ assertEquals(0, visitor20.getCounter());
+
+ StackingTreeDataModelTestVisitor2 visitor21 = new StackingTreeDataModelTestVisitor2();
+
+ stackingTreeModel.walk(context, visitor21, new TreeRange() {
+
+ public boolean processChildren(TreeRowKey rowKey) {
+ return false;
+ }
+
+ public boolean processNode(TreeRowKey rowKey) {
+ return true;
+ }
+
+ }, new ListRowKey(new StackingTreeModelKey("project", "projectA")),
+ argument, false);
+
+ assertEquals(1, visitor21.getCounter());
+
+ StackingTreeDataModelTestVisitor2 visitor22 = new StackingTreeDataModelTestVisitor2();
+
+ stackingTreeModel.walk(context, visitor22, null, new ListRowKey(new StackingTreeModelKey("project", "projectB")),
+ argument, false);
+
+ assertEquals(4, visitor22.getCounter());
+
+ StackingTreeDataModelTestVisitor2 visitor23 = new StackingTreeDataModelTestVisitor2();
+
+ stackingTreeModel.walk(context, visitor23, new TreeRange() {
+
+ private boolean rootProcessed = false;
+
+ public boolean processChildren(TreeRowKey rowKey) {
+ boolean result = rootProcessed;
+ rootProcessed = true;
+ return !result;
+ }
+
+ public boolean processNode(TreeRowKey rowKey) {
+ return true;
+ }
+
+ }, new ListRowKey(new StackingTreeModelKey("project", "projectB")),
+ argument, false);
+
+ assertEquals(4, visitor23.getCounter());
+
+ stackingTreeModel.setRowKey(rowKey);
+
+ assertSame(rowKey, stackingTreeModel.getRowKey());
+
+ assertNull(stackingTreeModel.getTreeNode());
+ Object rowData = stackingTreeModel.getRowData();
+ assertNotNull(rowData);
+ assertTrue(rowData instanceof Named);
+
+ Named named = (Named) rowData;
+
+ int currentTag = named.getTag();
+ assertTrue(currentTag > tag);
+ this.tag = currentTag;
+
+ if (this.tag % 10 == 1) {
+ assertTrue(last);
+ } else {
+ assertFalse(last);
+ }
+
+ if (named instanceof Directory) {
+ if ("ADir1".equals(named.getName())) {
+ assertFalse(stackingTreeModel.isLeaf());
+ } else {
+ assertTrue(stackingTreeModel.isLeaf());
+ }
+ } else if (named instanceof Project) {
+ assertFalse(stackingTreeModel.isLeaf());
+ } else if (named instanceof File) {
+ assertTrue(stackingTreeModel.isLeaf());
+ } else {
+ fail();
+ }
+
+ counter++;
+ }
+
+ public void resetLastElement() {
+ this.last = false;
+ }
+
+ public void setLastElement() {
+ this.last = true;
+ }
+
+ public int getCounter() {
+ return counter;
+ }
+ }
+
+ class StackingTreeDataModelTestVisitor2 implements DataVisitor {
+ private int counter = 0;
+ private int tag = 0;
+
+ public void process(FacesContext context, Object rowKey, Object argument)
+ throws IOException {
+
+ stackingTreeModel.setRowKey(rowKey);
+ Object rowData = stackingTreeModel.getRowData();
+ assertNotNull(rowData);
+ Named named = (Named) rowData;
+
+ int currentTag = named.getTag();
+ assertTrue(currentTag > tag);
+ tag = currentTag;
+ counter++;
+ }
+
+ public int getCounter() {
+ return counter;
+ }
+ }
+
+ class StackingTreeDataModelTestVisitor3 implements DataVisitor, LastElementAware {
+
+ private boolean last;
+
+ public void process(FacesContext context, Object rowKey, Object argument)
+ throws IOException {
+
+ stackingTreeModel.setRowKey(rowKey);
+ Named named = (Named) stackingTreeModel.getRowData();
+ int tag = named.getTag();
+
+ if (tag == 60) {
+ assertTrue(last);
+ }
+ assertFalse(tag == 61);
+ }
+
+ public void resetLastElement() {
+ this.last = false;
+ }
+
+ public void setLastElement() {
+ this.last = true;
+ }
+ }
+}
+
Copied: framework/trunk/impl/src/test/java/org/richfaces/model/entity/Directory.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Directory.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/entity/Directory.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/entity/Directory.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,30 @@
+/**
+ *
+ */
+package org.richfaces.model.entity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Nick Belaevski
+ * mailto:nbelaevski@exadel.com
+ * created 30.07.2007
+ *
+ */
+public class Directory extends Named {
+
+ public Directory(String name, int tag) {
+ super(name, tag);
+ }
+
+ private List files = new ArrayList();
+
+ public List getFiles() {
+ return files;
+ }
+
+ public void addFile(File file) {
+ this.files.add(file);
+ }
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/model/entity/File.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/File.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/entity/File.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/entity/File.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,18 @@
+/**
+ *
+ */
+package org.richfaces.model.entity;
+
+/**
+ * @author Nick Belaevski
+ * mailto:nbelaevski@exadel.com
+ * created 30.07.2007
+ *
+ */
+public class File extends Named {
+
+ public File(String name, int tag) {
+ super(name, tag);
+ }
+
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/model/entity/Named.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Named.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/entity/Named.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/entity/Named.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,27 @@
+/**
+ *
+ */
+package org.richfaces.model.entity;
+
+/**
+ * @author Nick Belaevski
+ * mailto:nbelaevski@exadel.com
+ * created 30.07.2007
+ *
+ */
+public class Named {
+ private String name;
+ private int tag;
+ public String getName() {
+ return name;
+ }
+ public int getTag() {
+ return tag;
+ }
+ public Named(String name, int tag) {
+ super();
+ this.name = name;
+ this.tag = tag;
+ }
+
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/model/entity/Project.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/model/entity/Project.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/entity/Project.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/entity/Project.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,29 @@
+/**
+ *
+ */
+package org.richfaces.model.entity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Nick Belaevski
+ * mailto:nbelaevski@exadel.com
+ * created 30.07.2007
+ *
+ */
+public class Project extends Named {
+ public Project(String name, int tag) {
+ super(name, tag);
+ }
+
+ private List directories = new ArrayList();
+
+ public List getDirectories() {
+ return directories;
+ }
+
+ public void addDirectory(Directory directory) {
+ directories.add(directory);
+ }
+}
Added: framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/JavaBeanWrapperTest.java
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/JavaBeanWrapperTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/JavaBeanWrapperTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,78 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces 3.0 - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.model.impl.expressive;
+
+import java.util.Collections;
+import java.util.Map;
+
+import org.richfaces.model.impl.expressive.JavaBeanWrapper;
+
+import junit.framework.TestCase;
+
+/**
+ * @author Maksim Kaszynski
+ *
+ */
+public class JavaBeanWrapperTest extends TestCase {
+
+
+ private JavaBeanWrapper wrapper;
+ final Boolean test = Boolean.TRUE;
+ final Map props = Collections.singletonMap("true", test);
+ /**
+ * @param name
+ */
+ public JavaBeanWrapperTest(String name) {
+ super(name);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ wrapper = new JavaBeanWrapper(test, props);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ wrapper = null;
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.JavaBeanWrapper#getProperty(java.lang.String)}.
+ */
+ public void testGetProperty() {
+ assertEquals(test, wrapper.getProperty("true"));
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.JavaBeanWrapper#getWrappedObject()}.
+ */
+ public void testGetWrappedObject() {
+ assertEquals(test, wrapper.getWrappedObject());
+ }
+
+}
Added: framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/MethodBindingExpressionTest.java
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/MethodBindingExpressionTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/MethodBindingExpressionTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,49 @@
+/**
+ *
+ */
+package org.richfaces.model.impl.expressive;
+
+import javax.el.ELContext;
+import javax.el.MethodExpression;
+import javax.faces.context.FacesContext;
+
+import junit.framework.TestCase;
+
+import org.easymock.classextension.EasyMock;
+
+/**
+ * @author Konstantin Mishin
+ *
+ */
+public class MethodBindingExpressionTest extends TestCase {
+
+ /**
+ * @param name
+ */
+ public MethodBindingExpressionTest(String name) {
+ super(name);
+ }
+
+ private MethodExpression createMockMethodExpression(String returnValue) {
+ MethodExpression expression = EasyMock.createNiceMock(MethodExpression.class);
+ EasyMock.expect(expression.invoke((ELContext) EasyMock.anyObject(),
+ (Object[]) EasyMock.anyObject())).andReturn(returnValue);
+
+ EasyMock.replay(expression);
+ return expression;
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.MethodBindingExpression#MethodBindingExpression(javax.faces.context.FacesContext, javax.el.MethodExpression)}
+ * and {@link org.richfaces.model.impl.expressive.MethodBindingExpression#evaluate(java.lang.Object)}.
+ */
+ public final void testMethodBindingExpression() {
+ String expression = "expression";
+ MethodBindingExpression methodBindingExpression = new MethodBindingExpression(
+ EasyMock.createNiceMock(FacesContext.class),
+ createMockMethodExpression(expression));
+
+ assertEquals(methodBindingExpression.evaluate(null), expression);
+ }
+
+}
Added: framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/NamedObject.java
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/NamedObject.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/NamedObject.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,45 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces 3.0 - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.model.impl.expressive;
+
+public class NamedObject {
+ private String name;
+
+ /**
+ *
+ */
+ public NamedObject() {
+ }
+
+ public NamedObject(String name) {
+ this.name = name;
+ }
+
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
\ No newline at end of file
Added: framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/NullExpressionTest.java
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/NullExpressionTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/NullExpressionTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,66 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces 3.0 - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.model.impl.expressive;
+
+import org.richfaces.model.impl.expressive.Expression;
+import org.richfaces.model.impl.expressive.NullExpression;
+
+import junit.framework.TestCase;
+
+/**
+ * @author Maksim Kaszynski
+ *
+ */
+public class NullExpressionTest extends TestCase {
+
+
+ private Expression expression;
+
+ /**
+ * @param name
+ */
+ public NullExpressionTest(String name) {
+ super(name);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ expression = new NullExpression("_id2");
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ expression = null;
+ }
+
+ public void testEvaluate() {
+ Object o = new Object();
+ assertNull(expression.evaluate(o));
+ }
+
+}
Added: framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/ObjectWrapperFactoryTest.java
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/ObjectWrapperFactoryTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/ObjectWrapperFactoryTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,195 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces 3.0 - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.model.impl.expressive;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Random;
+
+import org.richfaces.model.SortField;
+import org.richfaces.model.SortOrder;
+import org.richfaces.test.AbstractFacesTest;
+
+/**
+ * @author Maksim Kaszynski
+ *
+ */
+public class ObjectWrapperFactoryTest extends AbstractFacesTest {
+
+
+ /**
+ *
+ */
+ SortField [] sortFields;
+ SortOrder sortOrder;
+ private ObjectWrapperFactory factory;
+ private String var = "abc";
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ public void setUp() throws Exception {
+ super.setUp();
+ setupFacesRequest();
+ sortFields = new SortField[3];
+ sortFields[0] = new SortField("_id1", Boolean.TRUE);
+ sortFields[1] = new SortField("name", Boolean.FALSE);
+ sortFields[2] = new SortField("#{" +var + ".name}", Boolean.TRUE);
+ sortOrder = new SortOrder(sortFields);
+
+ factory = new ObjectWrapperFactory(facesContext, var, sortOrder);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#tearDown()
+ */
+ public void tearDown() throws Exception {
+ super.tearDown();
+
+ sortFields = null;
+ sortOrder = null;
+ factory = null;
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.ObjectWrapperFactory#convertList(java.util.List, org.richfaces.model.impl.expressive.ObjectWrapperFactory.ObjectConvertor)}.
+ */
+ public final void testConvertList() {
+
+
+ List objects = new ArrayList();
+ objects.add(Boolean.TRUE);
+ int size = objects.size();
+ factory.convertList(objects, new ObjectWrapperFactory.ObjectConvertor() {
+ public Object convert(Object o ) {
+
+ return new Boolean(!((Boolean) o).booleanValue());
+ }
+ });
+
+ assertEquals(size, objects.size());
+ assertEquals(Boolean.FALSE, objects.get(0));
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.ObjectWrapperFactory#unwrapList(java.util.List)}.
+ */
+ public final void testUnwrapList() {
+ List objects = new ArrayList(10);
+ int [] ints = new int[10];
+ Random random = new Random();
+ for(int i = 0; i < 10; i++) {
+ ints[i] = random.nextInt();
+ objects.add(new NamedObject(String.valueOf(ints[i])));
+ }
+
+ List l1 = factory.wrapList(objects);
+ List l2 = factory.unwrapList(l1);
+
+ assertSame(objects, l1);
+ assertSame(objects, l2);
+ assertEquals(10, l2.size());
+
+ for(int i = 0; i < 10; i++) {
+ NamedObject t = (NamedObject) l2.get(i);
+ assertEquals(String.valueOf(ints[i]), t.getName());
+ }
+
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.ObjectWrapperFactory#unwrapObject(java.lang.Object)}.
+ */
+ public final void testUnwrapObject() {
+
+ NamedObject t = new NamedObject("20");
+
+ JavaBeanWrapper wrapper = new JavaBeanWrapper(t, new HashMap());
+
+ Object wrapped = factory.unwrapObject(wrapper);
+
+ assertSame(t, wrapped);
+
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.ObjectWrapperFactory#wrapList(java.util.List)}.
+ */
+ public final void testWrapList() {
+ List objects = new ArrayList(10);
+ int [] ints = new int[10];
+ Random random = new Random();
+ for(int i = 0; i < 10; i++) {
+ ints[i] = random.nextInt();
+ objects.add(new NamedObject(String.valueOf(ints[i])));
+ }
+
+ List l1 = factory.wrapList(objects);
+
+ assertSame(objects, l1);
+ assertEquals(10, l1.size());
+
+ for(int i = 0; i < 10; i++) {
+ JavaBeanWrapper wrapper = (JavaBeanWrapper) l1.get(i);
+ NamedObject t = (NamedObject) wrapper.getWrappedObject();
+
+ String string = String.valueOf(ints[i]);
+
+ assertEquals(string, t.getName());
+
+ Object prop1 = wrapper.getProperty("name");
+ //Object prop2 = wrapper.getProperty("#{abc.name}");
+
+ assertNotNull(prop1);
+ //assertNotNull(prop2);
+ assertEquals(string, prop1);
+ //assertEquals(string, prop2);
+ }
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.ObjectWrapperFactory#wrapObject(java.lang.Object)}.
+ */
+ public final void testWrapObject() {
+ NamedObject t = new NamedObject("20");
+
+
+
+ JavaBeanWrapper wrapper = factory.wrapObject(t);
+
+ Object wrapped = wrapper.getWrappedObject();
+
+ assertSame(t, wrapped);
+
+ Object prop1 = wrapper.getProperty("name");
+ //Object prop2 = wrapper.getProperty("#{abc.name}");
+
+ assertNotNull(prop1);
+ //assertNotNull(prop2);
+ assertEquals("20", prop1);
+ //assertEquals("20", prop2);
+
+
+ }
+
+}
Added: framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/SimplePropertyExpressionTest.java
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/SimplePropertyExpressionTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/SimplePropertyExpressionTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,69 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces 3.0 - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.model.impl.expressive;
+
+import org.richfaces.test.AbstractFacesTest;
+
+/**
+ * @author Maksim Kaszynski
+ *
+ */
+public class SimplePropertyExpressionTest extends AbstractFacesTest {
+
+ final static String property = "name";
+ private SimplePropertyExpression expression;
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ public void setUp() throws Exception {
+ super.setUp();
+ setupFacesRequest();
+ expression = new SimplePropertyExpression("name", facesContext.getELContext(), application.getELResolver());
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#tearDown()
+ */
+ public void tearDown() throws Exception {
+ super.tearDown();
+ expression = null;
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.SimplePropertyExpression#evaluate(java.lang.Object)}.
+ */
+ public final void testEvaluate() {
+ NamedObject testObj = new NamedObject("aaaa");
+ Object prop = expression.evaluate(testObj);
+ assertNotNull(prop);
+ assertEquals("aaaa", prop);
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.Expression#getExpressionString()}.
+ */
+ public final void testGetExpressionString() {
+ assertEquals(property, expression.getExpressionString());
+ }
+
+}
Added: framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/ValueBindingExpressionTest.java
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/ValueBindingExpressionTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/ValueBindingExpressionTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,70 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces 3.0 - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.model.impl.expressive;
+
+import org.richfaces.test.AbstractFacesTest;
+
+/**
+ * @author Maksim Kaszynski
+ *
+ */
+public class ValueBindingExpressionTest extends AbstractFacesTest {
+
+ private ValueBindingExpression expression;
+ static final String var = "obj";
+ static final String el = "#{" + var + ".name}";
+
+ /* (non-Javadoc)
+ * @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#setUp()
+ */
+ public void setUp() throws Exception {
+ super.setUp();
+ setupFacesRequest();
+ expression = new ValueBindingExpression(facesContext, el, var);
+ }
+
+ /* (non-Javadoc)
+ * @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#tearDown()
+ */
+ public void tearDown() throws Exception {
+ super.tearDown();
+ expression = null;
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.ValueBindingExpression#evaluate(java.lang.Object)}.
+ */
+ public final void testEvaluate() {
+ NamedObject testObj = new NamedObject("aaaa");
+ Object prop = expression.evaluate(testObj);
+ //assertNotNull(prop);
+ //assertEquals("aaaa", prop);
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.Expression#getExpressionString()}.
+ */
+ public final void testGetExpressionString() {
+ assertEquals(el, expression.getExpressionString());
+ }
+
+}
Added: framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/WrappedBeanComparatorTest.java
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/WrappedBeanComparatorTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/WrappedBeanComparatorTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,102 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces 3.0 - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.model.impl.expressive;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.richfaces.model.SortField;
+import org.richfaces.model.impl.expressive.JavaBeanWrapper;
+import org.richfaces.model.impl.expressive.WrappedBeanComparator;
+
+/**
+ * @author Maksim Kaszynski
+ *
+ */
+public class WrappedBeanComparatorTest extends TestCase {
+
+ private SortField[] sortFields;
+ private WrappedBeanComparator comparator;
+
+ private static final int [][] testData = {{0,0}, {0,1}, {1, 0}, {1, 1} };
+
+ private JavaBeanWrapper [] testWrapers;
+
+ public WrappedBeanComparatorTest(String name) {
+ super(name);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ sortFields = new SortField[2];
+ sortFields[0] = new SortField("a", Boolean.FALSE);
+ sortFields[1] = new SortField("b", Boolean.TRUE);
+
+
+ comparator = new WrappedBeanComparator(sortFields);
+
+ testWrapers = new JavaBeanWrapper[testData.length];
+ for(int i = 0; i < testData.length; i++) {
+ testWrapers[i] = w(testData[i]);
+ }
+
+ }
+
+ private JavaBeanWrapper w(int [] ints) {
+ Map m = new HashMap();
+ m.put("a", new Integer(ints[0]));
+ m.put("b", new Integer(ints[1]));
+
+ return new JavaBeanWrapper(m, m);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ sortFields = null;
+ comparator = null;
+ testWrapers = null;
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.WrappedBeanComparator#compare(java.lang.Object, java.lang.Object)}.
+ */
+ public final void testCompare() {
+
+ assertTrue(comparator.compare(w(new int[] {1, 0}), w(new int [] {1, 1})) < 0);
+ assertTrue(comparator.compare(w(new int[] {1, 1}), w(new int [] {0, 0})) < 0);
+ assertTrue(comparator.compare(w(new int[] {0, 0}), w(new int [] {0, 1})) < 0);
+ assertTrue(comparator.compare(w(new int[] {1, 0}), w(new int [] {1, 0})) == 0);
+ //assertTrue(comparator.compare(w(new int[] {1, 0}), w(new int [] {1, 1})) < 0);
+ //assertTrue(comparator.compare(w(new int[] {1, 0}), w(new int [] {1, 1})) < 0);
+
+ }
+
+}
Added: framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/WrappedBeanFilterTest.java
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/WrappedBeanFilterTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/model/impl/expressive/WrappedBeanFilterTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,88 @@
+/**
+ *
+ */
+package org.richfaces.model.impl.expressive;
+
+import java.util.IdentityHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import javax.el.ELContext;
+import javax.el.ValueExpression;
+
+import junit.framework.TestCase;
+
+import org.easymock.classextension.EasyMock;
+import org.richfaces.model.FilterField;
+
+/**
+ * @author Konstantin Mishin
+ *
+ */
+public class WrappedBeanFilterTest extends TestCase {
+
+ private List<FilterField> filterFields;
+ private WrappedBeanFilter filter;
+
+ private ValueExpression keyTrue = createMockExpression("keyTrue");
+ private ValueExpression keyFalse = createMockExpression("keyFalse");
+
+ private ValueExpression createMockExpression(String value) {
+ ValueExpression expression = EasyMock.createNiceMock(ValueExpression.class);
+ EasyMock.expect(expression.getValue((ELContext) EasyMock.anyObject())).andReturn(value);
+ EasyMock.replay(expression);
+ return expression;
+ }
+
+ /**
+ * @param name
+ */
+ public WrappedBeanFilterTest(String name) {
+ super(name);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ filterFields = new LinkedList<FilterField>();
+ filterFields.add(new FilterField(keyTrue));
+ filter = new WrappedBeanFilter(filterFields);
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ filter = null;
+ filterFields = null;
+ keyTrue = null;
+ keyFalse = null;
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.WrappedBeanFilter#WrappedBeanFilter(java.util.List)}.
+ */
+ public final void testWrappedBeanFilter() {
+ WrappedBeanFilter beanFilter = new WrappedBeanFilter(filterFields);
+ assertNotNull(beanFilter);
+ }
+
+ /**
+ * Test method for {@link org.richfaces.model.impl.expressive.WrappedBeanFilter#accept(org.richfaces.model.impl.expressive.JavaBeanWrapper)}.
+ */
+ public final void testAccept() {
+ NamedObject obj = new NamedObject("TestObj");
+ Map<Object, Object> props = new IdentityHashMap<Object, Object>();
+ props.put(keyTrue, Boolean.TRUE);
+ props.put(keyFalse, Boolean.FALSE);
+ JavaBeanWrapper wrapper = new JavaBeanWrapper(obj, props);
+ assertTrue(filter.accept(wrapper));
+ filterFields.add(new FilterField(keyFalse));
+ assertFalse(filter.accept(wrapper));
+ }
+
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/renderkit/CompositeRendererTest.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/CompositeRendererTest.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/renderkit/CompositeRendererTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/renderkit/CompositeRendererTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,483 @@
+package org.richfaces.renderkit;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.Arrays;
+import java.util.Map;
+
+import javax.faces.component.NamingContainer;
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIForm;
+import javax.faces.component.UIInput;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+
+import org.ajax4jsf.resource.InternetResource;
+import org.richfaces.test.AbstractFacesTest;
+
+public class CompositeRendererTest extends AbstractFacesTest {
+
+ private CompositeRenderer compositeRenderer;
+
+ public void setUp() throws Exception {
+ super.setUp();
+ setupFacesRequest();
+
+ this.compositeRenderer = new CompositeRenderer() {
+
+ protected Class getComponentClass() {
+ return UIComponent.class;
+ }
+ };
+ }
+
+ public void tearDown() throws Exception {
+ super.tearDown();
+
+ this.compositeRenderer = null;
+ }
+
+ public final void testDoDecodeFacesContextUIComponent() {
+ MockDecodeContributor[] contributors = new MockDecodeContributor[5];
+ for (int i = 0; i < contributors.length; i++) {
+ contributors[i] = new MockDecodeContributor();
+ compositeRenderer.addContributor(contributors[i]);
+ }
+
+ UIInput component = new UIInput();
+ compositeRenderer.doDecode(facesContext, component);
+
+ for (int i = 0; i < contributors.length; i++) {
+ assertSame(compositeRenderer, contributors[i].getRenderer());
+ assertSame(facesContext, contributors[i].getContext());
+ assertSame(component, contributors[i].getComponent());
+ }
+ }
+
+ public final void testMergeScriptOptionsScriptOptionsFacesContextUIComponent() {
+ UIInput input = new UIInput();
+
+ ScriptOptions inputOptions = new ScriptOptions(input);
+ inputOptions.addOption("input", "1");
+
+ ScriptOptions formOptions = new ScriptOptions(input);
+ formOptions.addOption("form", "2");
+
+ ScriptOptions options = new ScriptOptions(input);
+ options.addOption("generic", "3");
+
+ MockDecodeContributor inputContributor;
+ MockDecodeContributor formContributor;
+ MockDecodeContributor contributor;
+ MockDecodeContributor nullContributor;
+
+ inputContributor = new MockDecodeContributor(UIComponent.class, inputOptions);
+ formContributor = new MockDecodeContributor(UIComponent.class, formOptions);
+ contributor = new MockDecodeContributor(UIComponent.class, options);
+ nullContributor = new MockDecodeContributor(UIComponent.class, (ScriptOptions) null);
+
+ compositeRenderer.addContributor(contributor);
+ compositeRenderer.addContributor(formContributor);
+ compositeRenderer.addContributor(inputContributor);
+ compositeRenderer.addContributor(nullContributor);
+
+ ScriptOptions scriptOptions = new ScriptOptions(input);
+ compositeRenderer.mergeScriptOptions(scriptOptions, facesContext, input);
+ Map map = scriptOptions.getMap();
+
+ assertEquals(3, map.size());
+ assertEquals("1", map.get("input"));
+ assertEquals("2", map.get("form"));
+ assertEquals("3", map.get("generic"));
+ }
+
+ public final void testMergeScriptOptionsScriptOptionsFacesContextUIComponentClass() {
+ UIInput input = new UIInput();
+
+ ScriptOptions inputOptions = new ScriptOptions(input);
+ inputOptions.addOption("input", "1");
+
+ ScriptOptions formOptions = new ScriptOptions(input);
+ formOptions.addOption("form", "2");
+
+ ScriptOptions options = new ScriptOptions(input);
+ options.addOption("generic", "3");
+
+ MockDecodeContributor inputContributor;
+ MockDecodeContributor formContributor;
+ MockDecodeContributor contributor;
+ MockDecodeContributor nullContributor;
+
+ inputContributor = new MockDecodeContributor(UIInput.class, inputOptions);
+ formContributor = new MockDecodeContributor(NamingContainer.class, formOptions);
+ contributor = new MockDecodeContributor(UIComponent.class, options);
+ nullContributor = new MockDecodeContributor(UIForm.class, (ScriptOptions) null);
+
+ compositeRenderer.addContributor(contributor);
+ compositeRenderer.addContributor(formContributor);
+ compositeRenderer.addContributor(inputContributor);
+ compositeRenderer.addContributor(nullContributor);
+
+ ScriptOptions scriptOptions = new ScriptOptions(input);
+ compositeRenderer.mergeScriptOptions(scriptOptions, facesContext, input, UIForm.class);
+ Map map = scriptOptions.getMap();
+
+ assertEquals(2, map.size());
+ assertEquals("2", map.get("form"));
+ assertEquals("3", map.get("generic"));
+ }
+
+ public final void testGetScripts() {
+ MockDecodeContributor inputContributor;
+ MockDecodeContributor formContributor;
+ MockDecodeContributor contributor;
+
+ inputContributor = new MockDecodeContributor(UIComponent.class, new String[] { "input_script" }, null);
+ formContributor = new MockDecodeContributor(UIComponent.class, new String[] { "form_script" }, null);
+ contributor = new MockDecodeContributor(UIComponent.class, null, null);
+
+ compositeRenderer.addContributor(contributor);
+ compositeRenderer.addContributor(formContributor);
+ compositeRenderer.addContributor(inputContributor);
+
+ InternetResource[] scripts = compositeRenderer.getScripts();
+
+ assertEquals(2, scripts.length);
+
+ assertTrue(scripts[0].getKey().contains("org/richfaces/renderkit/form_script"));
+ assertTrue(scripts[1].getKey().contains("org/richfaces/renderkit/input_script"));
+ }
+
+ public final void testGetStyles() {
+ MockDecodeContributor inputContributor;
+ MockDecodeContributor formContributor;
+ MockDecodeContributor contributor;
+
+ inputContributor = new MockDecodeContributor(UIComponent.class, null, new String[] { "input_style" });
+ formContributor = new MockDecodeContributor(UIComponent.class, null, new String[] { "form_style" });
+ contributor = new MockDecodeContributor(UIComponent.class, null, null);
+
+ compositeRenderer.addContributor(contributor);
+ compositeRenderer.addContributor(inputContributor);
+ compositeRenderer.addContributor(formContributor);
+
+ InternetResource[] scripts = compositeRenderer.getStyles();
+
+ assertEquals(2, scripts.length);
+
+ assertTrue(scripts[0].getKey().contains("org/richfaces/renderkit/input_style"));
+ assertTrue(scripts[1].getKey().contains("org/richfaces/renderkit/form_style"));
+ }
+
+ public final void testGetScriptsClass() {
+ MockDecodeContributor inputContributor;
+ MockDecodeContributor formContributor;
+ MockDecodeContributor contributor;
+
+ inputContributor = new MockDecodeContributor(UIInput.class, new String[] { "input_script" }, null);
+ formContributor = new MockDecodeContributor(NamingContainer.class, new String[] { "form_script" }, null);
+ contributor = new MockDecodeContributor(UIComponent.class, null, null);
+
+ compositeRenderer.addContributor(contributor);
+ compositeRenderer.addContributor(formContributor);
+ compositeRenderer.addContributor(inputContributor);
+
+ InternetResource[] scripts = compositeRenderer.getScripts(UIInput.class);
+
+ assertEquals(1, scripts.length);
+
+ assertTrue(scripts[0].getKey().contains("org/richfaces/renderkit/input_script"));
+
+ scripts = compositeRenderer.getScripts(NamingContainer.class);
+
+ assertEquals(1, scripts.length);
+
+ assertTrue(scripts[0].getKey().contains("org/richfaces/renderkit/form_script"));
+
+ scripts = compositeRenderer.getStyles(String.class);
+ assertNull(scripts);
+ }
+
+ public final void testGetStylesClass() {
+ MockDecodeContributor inputContributor;
+ MockDecodeContributor formContributor;
+ MockDecodeContributor contributor;
+
+ inputContributor = new MockDecodeContributor(UIInput.class, null, new String[] { "input_style" });
+ formContributor = new MockDecodeContributor(NamingContainer.class, null, new String[] { "form_style" });
+ contributor = new MockDecodeContributor(UIComponent.class, null, null);
+
+ compositeRenderer.addContributor(contributor);
+ compositeRenderer.addContributor(formContributor);
+ compositeRenderer.addContributor(inputContributor);
+
+ InternetResource[] styles = compositeRenderer.getStyles(UIInput.class);
+
+ assertEquals(1, styles.length);
+
+ assertTrue(styles[0].getKey().contains("org/richfaces/renderkit/input_style"));
+
+ styles = compositeRenderer.getStyles(NamingContainer.class);
+
+ assertEquals(1, styles.length);
+ assertTrue(styles[0].getKey().contains("org/richfaces/renderkit/form_style"));
+
+ styles = compositeRenderer.getStyles(String.class);
+ assertNull(styles);
+ }
+
+ public final void testGetScriptContributionsStringFacesContextUIComponent() {
+ MockDecodeContributor inputContributor;
+ MockDecodeContributor formContributor;
+ MockDecodeContributor contributor;
+ MockDecodeContributor nullContributor;
+
+ inputContributor = new MockDecodeContributor(UIComponent.class, ".1;");
+ formContributor = new MockDecodeContributor(UIComponent.class, ".2;");
+ contributor = new MockDecodeContributor(UIComponent.class, ".3;");
+ nullContributor = new MockDecodeContributor(UIForm.class, (String) null);
+
+ compositeRenderer.addContributor(contributor);
+ compositeRenderer.addContributor(formContributor);
+ compositeRenderer.addContributor(inputContributor);
+ compositeRenderer.addContributor(nullContributor);
+
+ UIInput input = new UIInput();
+ input.getAttributes().put("test", ".testValue");
+
+ String contributions = compositeRenderer.getScriptContributions("theVar", facesContext, input);
+
+ assertEquals("theVar.testValue.3;theVar.testValue.2;theVar.testValue.1;", contributions);
+ }
+
+ public final void testGetScriptContributionsStringFacesContextUIComponentClass() {
+ MockDecodeContributor inputContributor;
+ MockDecodeContributor formContributor;
+ MockDecodeContributor contributor;
+ MockDecodeContributor nullContributor;
+
+ inputContributor = new MockDecodeContributor(UIInput.class, ".input;");
+ formContributor = new MockDecodeContributor(NamingContainer.class, ".namingContainer;");
+ contributor = new MockDecodeContributor(UIComponent.class, ".generic;");
+ nullContributor = new MockDecodeContributor(UIForm.class, (String) null);
+
+ compositeRenderer.addContributor(contributor);
+ compositeRenderer.addContributor(formContributor);
+ compositeRenderer.addContributor(inputContributor);
+ compositeRenderer.addContributor(nullContributor);
+
+ UIInput input = new UIInput();
+ input.getAttributes().put("test", ".testValue");
+
+ String contributions = compositeRenderer.getScriptContributions("theVar", facesContext, input,
+ UIForm.class);
+
+ assertEquals("theVar.testValue.generic;theVar.testValue.namingContainer;", contributions);
+ }
+
+ public final void testAddContributor() {
+ MockDecodeContributor[] contributors = new MockDecodeContributor[5];
+ for (int i = 0; i < contributors.length; i++) {
+ contributors[i] = new MockDecodeContributor();
+ compositeRenderer.addContributor(contributors[i]);
+ }
+
+ assertTrue(Arrays.deepEquals(contributors, compositeRenderer.getContributors()));
+ }
+
+ public final void testContributorDecodeCallback() {
+ MockDecodeContributor inputContributor;
+ MockDecodeContributor formContributor;
+
+ formContributor = new MockDecodeContributor(NamingContainer.class);
+ inputContributor = new MockDecodeContributor(UIInput.class);
+
+ compositeRenderer.addContributor(inputContributor);
+ compositeRenderer.addContributor(formContributor);
+
+ UIComponent component = new UIInput();
+ compositeRenderer.doDecode(facesContext, component);
+
+ assertSame(compositeRenderer, inputContributor.getRenderer());
+ assertSame(facesContext, inputContributor.getContext());
+ assertSame(component, inputContributor.getComponent());
+
+ assertNull(formContributor.getRenderer());
+ assertNull(formContributor.getContext());
+ assertNull(formContributor.getComponent());
+
+ inputContributor.reset();
+ formContributor.reset();
+
+ assertNull(inputContributor.getRenderer());
+ assertNull(inputContributor.getContext());
+ assertNull(inputContributor.getComponent());
+
+ assertNull(formContributor.getRenderer());
+ assertNull(formContributor.getContext());
+ assertNull(formContributor.getComponent());
+
+ component = new UIForm();
+ compositeRenderer.doDecode(facesContext, component);
+
+ assertSame(compositeRenderer, formContributor.getRenderer());
+ assertSame(facesContext, formContributor.getContext());
+ assertSame(component, formContributor.getComponent());
+
+ assertNull(inputContributor.getRenderer());
+ assertNull(inputContributor.getContext());
+ assertNull(inputContributor.getComponent());
+ }
+
+ public final void testAddParameterEncoder() {
+ MockAttributeParameterEncoder[] encoders = new MockAttributeParameterEncoder[5];
+ for (int i = 0; i < encoders.length; i++) {
+ encoders[i] = new MockAttributeParameterEncoder("aaa");
+ compositeRenderer.addParameterEncoder(encoders[i]);
+ }
+
+ assertTrue(Arrays.deepEquals(encoders, compositeRenderer.getParameterEncoders()));
+ }
+
+ public final void testEncodeAttributeParameters() throws IOException {
+
+ MockAttributeParameterEncoder encoder1 = new MockAttributeParameterEncoder("Attribute");
+ MockAttributeParameterEncoder encoder2 = new MockAttributeParameterEncoder("MoreAttribute");
+
+ compositeRenderer.addParameterEncoder(encoder1);
+ compositeRenderer.addParameterEncoder(encoder2);
+
+ UIInput input = new UIInput();
+ input.getAttributes().put("Attribute", "testValue1");
+ input.getAttributes().put("MoreAttribute", "testValue2");
+
+ //ResponseWriter responseWriter = facesContext.getResponseWriter();
+ StringWriter stringWriter = new StringWriter();
+ ResponseWriter responseWriter = facesContext.getRenderKit().createResponseWriter(stringWriter, "text/html", "UTF8");
+ facesContext.setResponseWriter(responseWriter);
+
+ responseWriter.startDocument();
+ responseWriter.startElement("span", input);
+ compositeRenderer.encodeAttributeParameters(facesContext, input);
+ responseWriter.endElement("span");
+ responseWriter.endDocument();
+
+ responseWriter.flush();
+
+ String result = stringWriter.getBuffer().toString();
+ assertTrue(result.contains("testAttribute=\"testValue1\""));
+ assertTrue(result.contains("testMoreAttribute=\"testValue2\""));
+ }
+}
+
+class MockDecodeContributor implements RendererContributor {
+
+ private String[] scriptDependencies;
+ private String[] styleDependencies;
+
+ private String scriptContribution;
+
+ private Class componentClass;
+ private FacesContext context;
+ private UIComponent component;
+ private CompositeRenderer renderer;
+ private ScriptOptions options;
+
+ public MockDecodeContributor(Class componentClass, ScriptOptions options) {
+ super();
+
+ this.componentClass = componentClass;
+ this.options = options;
+ }
+
+ public MockDecodeContributor() {
+ this(UIComponent.class);
+ }
+
+ public MockDecodeContributor(Class componentClass) {
+ super();
+ this.componentClass = componentClass;
+ }
+
+ public MockDecodeContributor(Class componentClass, String scriptContribution) {
+ super();
+
+ this.componentClass = componentClass;
+ this.scriptContribution = scriptContribution;
+ }
+
+ public MockDecodeContributor(Class componentClass, String[] scriptDependencies,
+ String[] styleDependencies) {
+ super();
+
+ this.componentClass = componentClass;
+ this.scriptDependencies = scriptDependencies;
+ this.styleDependencies = styleDependencies;
+ }
+
+ public void decode(FacesContext context, UIComponent component,
+ CompositeRenderer compositeRenderer) {
+
+ this.component = component;
+ this.context = context;
+ this.renderer = compositeRenderer;
+ }
+
+ public Class getAcceptableClass() {
+ return componentClass;
+ }
+
+ public String getScriptContribution(FacesContext context,
+ UIComponent component) {
+ return scriptContribution != null ? component.getAttributes().get("test") + scriptContribution :
+ null;
+ }
+
+ public String[] getScriptDependencies() {
+ return scriptDependencies;
+ }
+
+ public String[] getStyleDependencies() {
+ return styleDependencies;
+ }
+
+ public ScriptOptions buildOptions(FacesContext context,
+ UIComponent component) {
+ return options;
+ }
+
+ public UIComponent getComponent() {
+ return component;
+ }
+
+ public FacesContext getContext() {
+ return context;
+ }
+
+ public CompositeRenderer getRenderer() {
+ return renderer;
+ }
+
+ public void reset() {
+ this.component = null;
+ this.context = null;
+ this.renderer = null;
+ }
+}
+
+class MockAttributeParameterEncoder implements AttributeParametersEncoder {
+
+ private String attributeName;
+
+ public MockAttributeParameterEncoder(String attributeName) {
+ super();
+ this.attributeName = attributeName;
+ }
+
+ public void doEncode(FacesContext context, UIComponent component)
+ throws IOException {
+
+ context.getResponseWriter().writeAttribute("test" + attributeName, component.getAttributes().get(attributeName)
+ , null);
+ }
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/renderkit/TemplateEncoderRendererBaseTest.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/TemplateEncoderRendererBaseTest.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/renderkit/TemplateEncoderRendererBaseTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/renderkit/TemplateEncoderRendererBaseTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,73 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.renderkit;
+
+import java.io.StringWriter;
+
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIOutput;
+import javax.faces.context.ResponseWriter;
+
+import org.richfaces.test.AbstractFacesTest;
+
+/**
+ * Created 26.10.2007
+ * @author Nick Belaevski - mailto:nbelaevski@exadel.com
+ * @since 3.2
+ */
+
+public class TemplateEncoderRendererBaseTest extends AbstractFacesTest {
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ setupFacesRequest();
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void testEncodeNonRendered() throws Exception {
+ ResponseWriter responseWriter = facesContext.getRenderKit().createResponseWriter(new StringWriter(), "text/html", "UTF-8");
+ facesContext.setResponseWriter(responseWriter);
+
+ TemplateEncoderRendererBase rendererBase = new TemplateEncoderRendererBase() {
+
+ @Override
+ protected Class<? extends UIComponent> getComponentClass() {
+ return UIOutput.class;
+ }
+ };
+
+ UIOutput output = new UIOutput();
+
+ UIOutput c = new UIOutput();
+ c.setRendered(false);
+ c.setValue("");
+ output.getChildren().add(c);
+
+ //that should not fail
+ rendererBase.writeScriptBody(facesContext, c, true);
+ }
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/renderkit/TemplateUtilTest.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/renderkit/TemplateUtilTest.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/renderkit/TemplateUtilTest.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/renderkit/TemplateUtilTest.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,45 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.renderkit;
+
+import java.io.StringReader;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.richfaces.javacc.RichMacroDefinition;
+
+/**
+ * @author Nick Belaevski - mailto:nbelaevski@exadel.com
+ * created 17.06.2007
+ *
+ */
+public class TemplateUtilTest extends TestCase {
+
+
+ public void testAntlr() throws Exception {
+ List result = new RichMacroDefinition(new StringReader("{aa{b\\}}a}\\\\ a\\}b\\{c")).expression();
+ Expression holder = (Expression) result.get(0);
+ assertEquals("aa{b}}a", holder.getExpression());
+ assertEquals("\\ a}b{c", result.get(1));
+ }
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/skin/Bean.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/Bean.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/skin/Bean.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/skin/Bean.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,27 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.skin;
+
+public class Bean {
+ public String getName(){return "bindedtest";}
+ public String getBean(){return "binded.string";}
+}
\ No newline at end of file
Copied: framework/trunk/impl/src/test/java/org/richfaces/skin/SkinTestCase.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/SkinTestCase.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/skin/SkinTestCase.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/skin/SkinTestCase.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,270 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.skin;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.faces.FacesException;
+
+import org.richfaces.test.AbstractFacesTest;
+
+/**
+ * Test for Skin/skin factory methods.
+ * @author asmirnov(a)exadel.com (latest modification by $Author: alexsmirnov $)
+ * @version $Revision: 1.1.2.1 $ $Date: 2007/01/10 14:28:13 $
+ *
+ */
+public class SkinTestCase extends AbstractFacesTest {
+
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target(ElementType.METHOD)
+ private @interface SkinParameters {
+ String skinName() default "";
+ String baseSkinName() default "";
+ };
+
+ public void setUp() throws Exception {
+ super.setUp();
+ setupFacesRequest();
+ }
+
+ public void tearDown() throws Exception {
+ SkinFactory.reset();
+ super.tearDown();
+ }
+
+ @Override
+ protected void setupJsfInitParameters() {
+ super.setupJsfInitParameters();
+
+ setupSkinParameters();
+ }
+
+ private void setupSkinParameters() {
+ try {
+ Method method = getClass().getMethod(getName());
+ SkinParameters skinParameters = method.getAnnotation(SkinParameters.class);
+ if (skinParameters != null) {
+ String skinName = skinParameters.skinName();
+ if (skinName != null && skinName.length() != 0) {
+ facesServer.addInitParameter(SkinFactory.SKIN_PARAMETER, skinName);
+ }
+
+ String baseSkinName = skinParameters.baseSkinName();
+ if (baseSkinName != null && baseSkinName.length() != 0) {
+ facesServer.addInitParameter(SkinFactory.BASE_SKIN_PARAMETER, baseSkinName);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /*
+ * Test method for 'org.richfaces.skin.SkinFactory.getInstance()'
+ */
+ public void testGetInstance() {
+ SkinFactory factory = SkinFactory.getInstance();
+ SkinFactory factory1 = SkinFactory.getInstance();
+ assertSame(factory,factory1);
+ }
+
+ private void addParameters(Object[][] strings) {
+ Map<Object,Object> baseMap = new HashMap<Object, Object>();
+ for (Object[] objects : strings) {
+ baseMap.put(objects[0], objects[1]);
+ }
+
+ facesContext.getExternalContext().getRequestMap().put("test", baseMap);
+ }
+
+ /*
+ * Test method for 'org.richfaces.skin.SkinFactory.getSkin(FacesContext)'
+ */
+ @SkinParameters(skinName = "test")
+ public void testGetSkin() {
+ addParameters(new Object[][]{new Object[] {"bean", "test.value"}});
+
+ SkinFactory factory = SkinFactory.getInstance();
+ // test call
+ Skin skin = factory.getSkin(facesContext);
+ assertNotNull("Null skin!",skin);
+ // test properties
+ assertEquals("string",skin.getParameter(facesContext, "string.property"));
+ assertEquals("base.string",skin.getParameter(facesContext, "base.property"));
+ assertEquals("test.value",skin.getParameter(facesContext, "bind.property"));
+ // assertEquals("HTML_BASIC",skin.getRenderKitId(mockContext));
+ }
+
+ /*
+ * Test method for 'org.richfaces.skin.SkinFactory.getSkin(FacesContext)'
+ */
+ @SkinParameters(skinName = "test")
+ public void testSkinReferences() {
+ SkinFactory factory = SkinFactory.getInstance();
+
+ // test call
+ Skin skin = factory.getSkin(facesContext);
+ assertNotNull("Null skin!",skin);
+ assertEquals("default",skin.getParameter(facesContext, "c"));
+ assertEquals("yyy",skin.getParameter(facesContext, "y"));
+ }
+
+ /*
+ * Test method for 'org.richfaces.skin.SkinFactory.getSkin(FacesContext)'
+ */
+ @SkinParameters(skinName = "style", baseSkinName = "style_base")
+ public void testSkinReferences1() {
+ SkinFactory factory = SkinFactory.getInstance();
+ // test call
+ Skin skin = factory.getSkin(facesContext);
+ assertNotNull("Null skin!",skin);
+ assertEquals("#F5F0E7",skin.getParameter(facesContext, "intermediateTextColor"));
+ assertEquals("10px",skin.getParameter(facesContext, "intermediateTextSize"));
+ assertEquals("#F5F0E7",skin.getParameter(facesContext, "generalTextColor"));
+
+ assertEquals("white.textcolor",skin.getParameter(facesContext, "additionalTextColor"));
+ }
+
+ @SkinParameters(skinName = "dynatest", baseSkinName = "dynatest_base")
+ public void testBaseSkin() {
+ SkinFactory factory = SkinFactory.getInstance();
+ addParameters(new Object[][]{new Object[] {"bean", "dynabase1"}});
+
+ Skin skin = factory.getSkin(facesContext);
+ assertEquals("default", skin.getParameter(facesContext, "default"));
+ assertEquals("itself", skin.getParameter(facesContext, "selfValue"));
+ assertEquals("#AAA", skin.getParameter(facesContext, "customFormColor"));
+
+ Map<String, String> map = (Map<String, String>) facesContext.getExternalContext().getRequestMap().get("test");
+ map.put("bean", "dynabase2");
+
+ assertEquals("xxx", skin.getParameter(facesContext, "default"));
+ assertEquals("itself", skin.getParameter(facesContext, "selfValue"));
+ assertEquals("#AAA", skin.getParameter(facesContext, "customFormColor"));
+ }
+
+ /*
+ * Test method for 'org.richfaces.skin.SkinFactory.getSkin(FacesContext)'
+ */
+ @SkinParameters(skinName = "cyclic")
+ public void testCyclicSkinReferences() {
+ SkinFactory factory = SkinFactory.getInstance();
+
+ try {
+ Skin skin = factory.getSkin(facesContext);
+ skin.getParameter(facesContext, "x");
+ fail();
+ } catch(FacesException e){
+ //it's ok
+ }
+ }
+
+ /*
+ * Test method for 'org.richfaces.skin.SkinFactory.getSkin(FacesContext)'
+ */
+ @SkinParameters(skinName = "noref")
+ public void testBadSkinReferences() {
+ SkinFactory factory = SkinFactory.getInstance();
+
+ // test call
+ try {
+ Skin skin = factory.getSkin(facesContext);
+ skin.getParameter(facesContext, "x");
+ fail();
+ } catch(FacesException e){
+ //it's ok
+ }
+ }
+ /*
+ * Test method for 'org.richfaces.skin.SkinFactory.getSkin(FacesContext)'
+ */
+ @SkinParameters(skinName = "#{test.skin}")
+ public void testGetBindedSkin() {
+ SkinFactory factory = SkinFactory.getInstance();
+
+ addParameters(new Object[][] {
+ new Object[] {"skin", "bindedtest"},
+ new Object[] {"bean", "binded.test.value"}
+ });
+
+ // test call
+ Skin skin = factory.getSkin(facesContext);
+ assertNotNull("Null skin!",skin);
+ // test properties
+ assertEquals("bindedstring",skin.getParameter(facesContext, "string.property"));
+ // assertEquals("base.string",skin.getParameter(mockContext,"base.property"));
+ assertEquals("binded.test.value",skin.getParameter(facesContext, "bind.property"));
+ assertEquals("TEST",skin.getRenderKitId(facesContext));
+ }
+
+ @SkinParameters(skinName = "#{test.skin}")
+ public void testSkinHash() {
+ SkinFactory factory = SkinFactory.getInstance();
+
+ addParameters(new Object[][] {
+ new Object[] {"skin", "bindedtest"},
+ new Object[] {"bean", "binded.test.value"}
+ });
+
+ Skin skin = factory.getSkin(facesContext);
+ Map<String, Object> requestMap = facesContext.getExternalContext().getRequestMap();
+
+ // test properties
+ int hash = skin.hashCode(facesContext);
+ assertTrue(requestMap.containsKey(BasicSkinImpl.REQUEST_HASH_CODES_MAP_PARAMETER));
+ assertEquals(hash,skin.hashCode(facesContext));
+ requestMap.remove(BasicSkinImpl.REQUEST_HASH_CODES_MAP_PARAMETER);
+ assertEquals(hash,skin.hashCode(facesContext));
+ // setup Value binding mock for different value - hash must differ.
+ requestMap.remove(BasicSkinImpl.REQUEST_HASH_CODES_MAP_PARAMETER);
+
+ Map map = (Map) requestMap.get("test");
+ map.put("bean", "other.test.value");
+
+ assertFalse( hash==skin.hashCode(facesContext) );
+
+ }
+ /*
+ * Test method for 'org.richfaces.skin.SkinFactory.getDefaultProperties()'
+ */
+ public void testGetDefaultProperties() {
+ SkinFactory factory = (SkinFactory) SkinFactory.getInstance();
+ // assertEquals("HTML_BASIC",defaultProps.getProperty("render.kit"));
+ // Second default config
+ assertEquals("default",factory.getDefaultSkin(facesContext).getParameter(facesContext, "a"));
+ }
+
+ /*
+ * Test method for 'org.richfaces.skin.SkinFactory.getSkinName(FacesContext)'
+ */
+ public void testGetSkinName() {
+
+ }
+
+}
Copied: framework/trunk/impl/src/test/java/org/richfaces/skin/SkinThreadsTestCase.java (from rev 14869, framework/trunk/legacy-tests/src/test/java/org/richfaces/skin/SkinThreadsTestCase.java)
===================================================================
--- framework/trunk/impl/src/test/java/org/richfaces/skin/SkinThreadsTestCase.java (rev 0)
+++ framework/trunk/impl/src/test/java/org/richfaces/skin/SkinThreadsTestCase.java 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,112 @@
+///**
+// * License Agreement.
+// *
+// * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+// *
+// * Copyright (C) 2007 Exadel, Inc.
+// *
+// * This library is free software; you can redistribute it and/or
+// * modify it under the terms of the GNU Lesser General Public
+// * License version 2.1 as published by the Free Software Foundation.
+// *
+// * This library is distributed in the hope that it will be useful,
+// * but WITHOUT ANY WARRANTY; without even the implied warranty of
+// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// * Lesser General Public License for more details.
+// *
+// * You should have received a copy of the GNU Lesser General Public
+// * License along with this library; if not, write to the Free Software
+// * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+// */
+//
+//package org.richfaces.skin;
+//
+//import javax.faces.context.FacesContext;
+//
+//import org.ajax4jsf.tests.AbstractThreadedAjax4JsfTestCase;
+//import org.richfaces.skin.Skin;
+//import org.richfaces.skin.SkinFactory;
+//
+///**
+// * @author asmirnov(a)exadel.com (latest modification by $Author: ishabalov $)
+// * @version $Revision: 1.1.2.2 $ $Date: 2007/02/20 20:58:11 $
+// *
+// */
+//public class SkinThreadsTestCase extends AbstractThreadedAjax4JsfTestCase {
+//
+// /**
+// * @param s
+// */
+// public SkinThreadsTestCase(String s) {
+// super(s);
+// // TODO Auto-generated constructor stub
+// }
+//
+// /*
+// * (non-Javadoc)
+// *
+// * @see com.exadel.vcp.tests.VcpJsfTestCase#setUp()
+// */
+//public void setUp() throws Exception {
+// // TODO Auto-generated method stub
+// super.setUp();
+// servletContext.setAttribute("skin", new Bean());
+// }
+// /*
+// * (non-Javadoc)
+// *
+// * @see com.exadel.vcp.tests.VcpJsfTestCase#tearDown()
+// */
+// public void tearDown() throws Exception {
+// // TODO Auto-generated method stub
+// super.tearDown();
+// }
+//
+//
+// public class SkinTestRunnable extends TestCaseRunnable {
+//
+//
+// /**
+// *
+// */
+// public SkinTestRunnable() {
+// // TODO Auto-generated constructor stub
+// }
+//
+// /* (non-Javadoc)
+// * @see com.exadel.vcp.tests.ThreadedVcpJsfTestCase.TestCaseRunnable#runTestCase(javax.faces.context.FacesContext)
+// */
+// public void runTestCase(FacesContext context) throws Throwable {
+// context.getExternalContext().getRequestMap().put("test", new Bean());
+// Skin skin = SkinFactory.getInstance().getSkin(context);
+// assertNotNull(skin);
+// assertEquals("TEST", skin.getRenderKitId(context));
+// assertEquals("binded.string", skin.getParameter(context, "bind.property"));
+// assertEquals("bindedstring", skin.getParameter(context, "string.property"));
+// assertEquals("10", skin.getParameter(context, "int.property"));
+// assertNull(skin.getParameter(context, "notexist"));
+// }
+//
+// }
+//
+// /**
+// * Test skin factory for thread-safe.
+// */
+// public void testThreadsafe() {
+// TestCaseRunnable[] runnables = new TestCaseRunnable[20];
+// for (int i = 0; i < runnables.length; i++) {
+// runnables[i] = new SkinTestRunnable();
+//
+// }
+// this.runTestCaseRunnables(runnables);
+// }
+// /*
+// * (non-Javadoc)
+// *
+// * @see com.exadel.vcp.tests.VcpJsfTestCase#getSkinName()
+// */
+// protected String getSkinName() {
+// // TODO Auto-generated method stub
+// return "#{skin.name}";
+// }
+//}
Added: framework/trunk/impl/src/test/resources/bindedtest.skin.properties
===================================================================
--- framework/trunk/impl/src/test/resources/bindedtest.skin.properties (rev 0)
+++ framework/trunk/impl/src/test/resources/bindedtest.skin.properties 2009-07-12 22:53:07 UTC (rev 14902)
@@ -0,0 +1,4 @@
+render.kit=TEST
+string.property=bindedstring
+int.property=10
+bind.property=\#{test.bean}
Added: framework/trunk/impl/src/test/resources/org/richfaces/renderkit/form_script
===================================================================
Added: framework/trunk/impl/src/test/resources/org/richfaces/renderkit/form_style
===================================================================
Added: framework/trunk/impl/src/test/resources/org/richfaces/renderkit/input_script
===================================================================
Added: framework/trunk/impl/src/test/resources/org/richfaces/renderkit/input_style
===================================================================
15 years, 2 months
JBoss Rich Faces SVN: r14901 - in framework/trunk/test-base/src: test/java/org/richfaces/test and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2009-07-12 18:49:21 -0400 (Sun, 12 Jul 2009)
New Revision: 14901
Added:
framework/trunk/test-base/src/main/java/org/richfaces/test/AbstractThreadedTest.java
Modified:
framework/trunk/test-base/src/main/java/org/richfaces/test/AbstractFacesTest.java
framework/trunk/test-base/src/test/java/org/richfaces/test/FacesServerTest.java
Log:
Framework unit tests updated
Modified: framework/trunk/test-base/src/main/java/org/richfaces/test/AbstractFacesTest.java
===================================================================
--- framework/trunk/test-base/src/main/java/org/richfaces/test/AbstractFacesTest.java 2009-07-12 22:33:31 UTC (rev 14900)
+++ framework/trunk/test-base/src/main/java/org/richfaces/test/AbstractFacesTest.java 2009-07-12 22:49:21 UTC (rev 14901)
@@ -17,6 +17,7 @@
import javax.faces.FactoryFinder;
import javax.faces.application.Application;
import javax.faces.application.ApplicationFactory;
+import javax.faces.application.ProjectStage;
import javax.faces.application.StateManager;
import javax.faces.application.ViewHandler;
import javax.faces.component.UIViewRoot;
@@ -189,7 +190,8 @@
/**
* This template method called from {@link #setUp()} to append appropriate init parameters to the test server.
- * The default implementation sets state saving method to the "server" and default jsf page suffix to the ".xhtml"
+ * The default implementation sets state saving method to the "server", default jsf page suffix to the ".xhtml"
+ * and project stage to UnitTest
*/
protected void setupJsfInitParameters() {
facesServer.addInitParameter(
@@ -197,6 +199,9 @@
StateManager.STATE_SAVING_METHOD_SERVER);
facesServer.addInitParameter(ViewHandler.DEFAULT_SUFFIX_PARAM_NAME,
".xhtml");
+
+ facesServer.addInitParameter(ProjectStage.PROJECT_STAGE_PARAM_NAME,
+ ProjectStage.UnitTest.name());
}
/**
Added: framework/trunk/test-base/src/main/java/org/richfaces/test/AbstractThreadedTest.java
===================================================================
--- framework/trunk/test-base/src/main/java/org/richfaces/test/AbstractThreadedTest.java (rev 0)
+++ framework/trunk/test-base/src/main/java/org/richfaces/test/AbstractThreadedTest.java 2009-07-12 22:49:21 UTC (rev 14901)
@@ -0,0 +1,128 @@
+/**
+ *
+ */
+package org.richfaces.test;
+
+import junit.framework.AssertionFailedError;
+import junit.framework.TestCase;
+import junit.framework.TestResult;
+
+/**
+ * @author asmirnov
+ * @author Nick Belaevski
+ */
+public abstract class AbstractThreadedTest extends TestCase {
+
+ /**
+ * The threads that are executing.
+ */
+ private Thread threads[] = null;
+ /**
+ * The tests TestResult.*/
+ private TestResult testResult = null;
+
+ public void interruptThreads() {
+ if(threads != null) {
+ for(int i = 0;i < threads.length;i++) {
+ threads[i].interrupt();
+ }
+ }
+ }
+
+ /**
+ * Override run so we can squirrel away the test result.
+ *
+ */
+ @Override
+ public void run(final TestResult result) {
+ testResult = result;
+ super.run(result);
+ testResult = null;
+ }
+
+ /**
+ * Create instances of classes and run threads with it.
+ * @param clazz - class of test thread implementation.
+ * @param numThreads - number of threads to run.
+ * @throws InstantiationException
+ * @throws IllegalAccessException
+ */
+ protected void runTestCaseThreads(Class<?> clazz, int numThreads) {
+ TestCaseRunnable[] runnables = new TestCaseRunnable[numThreads];
+ for (int i = 0; i < runnables.length; i++) {
+ try {
+ runnables[i]= (TestCaseRunnable) clazz.newInstance();
+ } catch (Exception e) {
+ testResult.addError(this, e);
+ return;
+ }
+ }
+ runTestCaseRunnables(runnables);
+ }
+ /**
+ * Run the test case threads.
+ * @param runnables - array with instances of {@link TestCaseRunnable} with concrete tests
+ */
+ protected void runTestCaseRunnables (final TestCaseRunnable[] runnables) {
+ if(runnables == null) {
+ throw new IllegalArgumentException("runnables is null");
+ }
+ threads = new Thread[runnables.length];
+ for(int i = 0;i < threads.length;i++) {
+ threads[i] = new Thread(runnables[i]);
+ }
+ for(int i = 0;i < threads.length;i++) {
+ threads[i].start();
+ }
+ try {
+ for(int i = 0;i < threads.length;i++) {
+ threads[i].join();
+ }
+ }
+ catch(InterruptedException ignore) {
+ System.out.println("Thread join interrupted.");
+ }
+ threads = null;
+ }
+
+ /**
+ * Handle an exception. Since multiple threads won't have their
+ * exceptions caught the threads must manually catch them and call
+ * <code>handleException ()</code>.
+ * @param t Exception to handle.*/
+ private void handleException(final Throwable t) {
+ synchronized(testResult) {
+ if(t instanceof AssertionFailedError) {
+ testResult.addFailure(this, (AssertionFailedError)t);
+ }
+ else {
+ testResult.addError(this, t);
+ }
+ }
+ }
+
+ /**
+ * A test case thread. Override runTestCase () and define
+ * behaviour of test in there.*/
+ public abstract class TestCaseRunnable implements Runnable {
+ /**
+ * Override this to define the test*/
+
+ public abstract void runTestCase()
+ throws Throwable;
+ /**
+ * Run the test in an environment where
+ * we can handle the exceptions generated by the test method.*/
+
+ public void run() {
+ try {
+ runTestCase();
+ }
+ catch(Throwable t) /* Any other exception we handle and then we interrupt the other threads.*/ {
+ handleException(t);
+ interruptThreads();
+ }
+ }
+ }
+
+}
Modified: framework/trunk/test-base/src/test/java/org/richfaces/test/FacesServerTest.java
===================================================================
--- framework/trunk/test-base/src/test/java/org/richfaces/test/FacesServerTest.java 2009-07-12 22:33:31 UTC (rev 14900)
+++ framework/trunk/test-base/src/test/java/org/richfaces/test/FacesServerTest.java 2009-07-12 22:49:21 UTC (rev 14901)
@@ -3,37 +3,21 @@
*/
package org.richfaces.test;
-import static org.junit.Assert.*;
-
import java.io.IOException;
-import java.io.InputStream;
import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.logging.Level;
-import java.util.logging.LogManager;
-import java.util.logging.Logger;
-import javax.faces.application.StateManager;
-import javax.faces.application.ViewHandler;
-import javax.faces.webapp.FacesServlet;
import javax.servlet.http.HttpSession;
import org.junit.After;
-import org.junit.AfterClass;
import org.junit.Before;
-import org.junit.BeforeClass;
import org.junit.Test;
import org.w3c.dom.Element;
-import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
-import com.gargoylesoftware.htmlunit.Page;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlInput;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.SubmittableElement;
-import com.sun.faces.config.ConfigureListener;
-import com.sun.faces.util.FacesLogger;
/**
* @author asmirnov
15 years, 2 months
JBoss Rich Faces SVN: r14900 - framework/trunk/api/src/main/java/org/ajax4jsf/javascript.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2009-07-12 18:33:31 -0400 (Sun, 12 Jul 2009)
New Revision: 14900
Modified:
framework/trunk/api/src/main/java/org/ajax4jsf/javascript/JSLiteral.java
Log:
framework/api: added EMPTY_HASH and EMPTY_LIST constants to JSLiteral
Modified: framework/trunk/api/src/main/java/org/ajax4jsf/javascript/JSLiteral.java
===================================================================
--- framework/trunk/api/src/main/java/org/ajax4jsf/javascript/JSLiteral.java 2009-07-10 18:15:12 UTC (rev 14899)
+++ framework/trunk/api/src/main/java/org/ajax4jsf/javascript/JSLiteral.java 2009-07-12 22:33:31 UTC (rev 14900)
@@ -30,8 +30,23 @@
/** Javascript literal text */
private String literal;
+
+ private static final class ImmutableJSLiteral extends JSLiteral {
+
+ public ImmutableJSLiteral(String literal) {
+ super(literal);
+ }
+
+ @Override
+ public void setLiteral(String literal) {
+ throw new UnsupportedOperationException();
+ }
+ };
+ public static final JSLiteral EMPTY_HASH = new ImmutableJSLiteral("{}");
+ public static final JSLiteral EMPTY_LIST = new ImmutableJSLiteral("[]");
+
/**
* Default constructor
*/
15 years, 2 months
JBoss Rich Faces SVN: r14899 - branches/community/3.3.X/docs/photo_album_app_guide/en/src/main/docbook/modules.
by richfaces-svn-commits@lists.jboss.org
Author: msorokin
Date: 2009-07-10 14:15:12 -0400 (Fri, 10 Jul 2009)
New Revision: 14899
Modified:
branches/community/3.3.X/docs/photo_album_app_guide/en/src/main/docbook/modules/overview.xml
Log:
https://jira.jboss.org/jira/browse/RF-5768
page flow section is updated
Modified: branches/community/3.3.X/docs/photo_album_app_guide/en/src/main/docbook/modules/overview.xml
===================================================================
--- branches/community/3.3.X/docs/photo_album_app_guide/en/src/main/docbook/modules/overview.xml 2009-07-10 18:14:34 UTC (rev 14898)
+++ branches/community/3.3.X/docs/photo_album_app_guide/en/src/main/docbook/modules/overview.xml 2009-07-10 18:15:12 UTC (rev 14899)
@@ -11,8 +11,17 @@
<section id="pageFlows">
<title>Page flows</title>
<para>
- Work in progress...
+
+ The page flow of the application is illustrated on the diagram.
</para>
+ <figure>
+ <title>Page Flow diagram</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/diagram.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
<section>
<title>Page flows: implementation details</title>
@@ -40,7 +49,52 @@
<para>When all fields are filled out with correct values the <code>register(user)</code> is triggered and a new user is set. </para>
</section>
- </section>
+ <section>
+ <title>Navigation Between Pages</title>
+ <para>
+ Technically, user do not browse between pages of the application: every content page is included into the content area of <code>index.xhtml</code> file.
+ </para>
+ <programlisting role="XML"><![CDATA[...
+<h:panelGroup styleClass="content_box" layout="block">
+ <ui:include src="#{model.mainArea.template}" />
+</h:panelGroup>
+...]]></programlisting>
+ <para>
+
+ The <code>NavigationEnum</code> class encapsulated all possible states, that can be applied to content area ("mainArea") on the page.
+
+ </para>
+
+ <programlisting role="XML"><![CDATA[...
+ public enum NavigationEnum {
+ ANONYM("includes/publicShelves.xhtml"),
+ FILE_UPLOAD("includes/fileUpload.xhtml"),
+ USER_PREFS("includes/userPrefs.xhtml"),
+ REGISTER("includes/register.xhtml"),
+ SEARCH("includes/search.xhtml"),
+ ALBUM_PREVIEW("includes/album.xhtml"),
+ ALBUM_IMAGE_PREVIEW("/includes/image.xhtml"),
+ SHELF_PREVIEW("/includes/shelf.xhtml"),
+ ALL_SHELFS("/includes/userShelves.xhtml"),
+ TAGS("includes/tag.xhtml"),
+ ALL_ALBUMS("/includes/userAlbums.xhtml"),
+ ALL_IMAGES("/includes/userImages.xhtml"),
+ ALBUM_IMAGE_EDIT("/includes/imageEdit.xhtml"),
+ ALBUM_EDIT("/includes/albumEdit.xhtml"),
+ SHELF_EDIT("/includes/shelfEdit.xhtml"),
+ SHELF_UNVISITED("/includes/shelfUnvisited.xhtml"),
+ USER_SHARED_ALBUMS("/includes/userSharedAlbums.xhtml"),
+ USER_SHARED_IMAGES("/includes/userSharedImages.xhtml"),
+ ALBUM_UNVISITED("/includes/albumUnvisited.xhtml");
+...
+}
+]]></programlisting>
+ <para>
+
+ This class specifies which file is included depending on some user action.
+ The template to be loaded is identified according to some condition in a Controller (<code>Controllor.java</code>) method and is saved to the Model (<code>Model.java</code>). During <code>index.xhtml</code> page rendering the value is taken from the Model to define what should be rendered to the page.
+ </para>
+ </section>
</section>
<section id="dataModel">
@@ -58,11 +112,12 @@
</mediaobject>
</figure>
</section>
- <section id="setUp">
+ </section>
+ <!--section id="setUp">
<title>Project Set Up</title>
<para>
Work in progress...
</para>
- </section>
+ </section-->
</chapter>
15 years, 2 months
JBoss Rich Faces SVN: r14897 - branches/community/3.3.X/ui/combobox/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2009-07-10 12:46:03 -0400 (Fri, 10 Jul 2009)
New Revision: 14897
Modified:
branches/community/3.3.X/ui/combobox/src/main/resources/org/richfaces/renderkit/html/scripts/combobox.js
Log:
ComboBox: a gap between the input box and the arrow button in case DOCTYPE does not present on the page.
https://jira.jboss.org/jira/browse/RF-7430
Modified: branches/community/3.3.X/ui/combobox/src/main/resources/org/richfaces/renderkit/html/scripts/combobox.js
===================================================================
--- branches/community/3.3.X/ui/combobox/src/main/resources/org/richfaces/renderkit/html/scripts/combobox.js 2009-07-10 15:52:18 UTC (rev 14896)
+++ branches/community/3.3.X/ui/combobox/src/main/resources/org/richfaces/renderkit/html/scripts/combobox.js 2009-07-10 16:46:03 UTC (rev 14897)
@@ -110,7 +110,7 @@
},
setInputWidth : function() {
- var width = (parseInt(this.field.parentNode.style.width) - this.BUTTON_WIDTH) - Richfaces.getBorderWidth(this.field, "lr") - Richfaces.getBorderWidth(this.button, "lr") - Richfaces.getPaddingWidth(this.field,"lr");
+ var width = parseInt(this.field.parentNode.style.width) - this.BUTTON_WIDTH;
this.field.style.width = width + "px";
},
15 years, 2 months
JBoss Rich Faces SVN: r14896 - in branches/community/3.3.X/docs/common-resources/en/src/main: script and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: artdaw
Date: 2009-07-10 11:52:18 -0400 (Fri, 10 Jul 2009)
New Revision: 14896
Added:
branches/community/3.3.X/docs/common-resources/en/src/main/script/jquery.cookie.js
Modified:
branches/community/3.3.X/docs/common-resources/en/src/main/css/html-common.css
branches/community/3.3.X/docs/common-resources/en/src/main/script/toggle.js
branches/community/3.3.X/docs/common-resources/en/src/main/xslt/collapsing-navigation.xsl
Log:
https://jira.jboss.org/jira/browse/RF-6058 - persistent menu is created
Modified: branches/community/3.3.X/docs/common-resources/en/src/main/css/html-common.css
===================================================================
--- branches/community/3.3.X/docs/common-resources/en/src/main/css/html-common.css 2009-07-10 15:49:56 UTC (rev 14895)
+++ branches/community/3.3.X/docs/common-resources/en/src/main/css/html-common.css 2009-07-10 15:52:18 UTC (rev 14896)
@@ -118,7 +118,7 @@
border: 1px solid #AAAAAA;
}
#title, ul.docnav{
- margin:0 auto;
+ /*margin:0 auto;*/
width:1000px;
margin-left:0px;
}
Added: branches/community/3.3.X/docs/common-resources/en/src/main/script/jquery.cookie.js
===================================================================
--- branches/community/3.3.X/docs/common-resources/en/src/main/script/jquery.cookie.js (rev 0)
+++ branches/community/3.3.X/docs/common-resources/en/src/main/script/jquery.cookie.js 2009-07-10 15:52:18 UTC (rev 14896)
@@ -0,0 +1,97 @@
+/**
+ * Cookie plugin
+ *
+ * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ */
+
+/**
+ * Create a cookie with the given name and value and other optional parameters.
+ *
+ * @example $.cookie('the_cookie', 'the_value');
+ * @desc Set the value of a cookie.
+ * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
+ * @desc Create a cookie with all available options.
+ * @example $.cookie('the_cookie', 'the_value');
+ * @desc Create a session cookie.
+ * @example $.cookie('the_cookie', null);
+ * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
+ * used when the cookie was set.
+ *
+ * @param String name The name of the cookie.
+ * @param String value The value of the cookie.
+ * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
+ * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
+ * If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
+ * If set to null or omitted, the cookie will be a session cookie and will not be retained
+ * when the the browser exits.
+ * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
+ * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
+ * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
+ * require a secure protocol (like HTTPS).
+ * @type undefined
+ *
+ * @name $.cookie
+ * @cat Plugins/Cookie
+ * @author Klaus Hartl/klaus.hartl(a)stilbuero.de
+ */
+
+/**
+ * Get the value of a cookie with the given name.
+ *
+ * @example $.cookie('the_cookie');
+ * @desc Get the value of a cookie.
+ *
+ * @param String name The name of the cookie.
+ * @return The value of the cookie.
+ * @type String
+ *
+ * @name $.cookie
+ * @cat Plugins/Cookie
+ * @author Klaus Hartl/klaus.hartl(a)stilbuero.de
+ */
+jQuery.cookie = function(name, value, options) {
+ if (typeof value != 'undefined') { // name and value given, set cookie
+ options = options || {};
+ if (value === null) {
+ value = '';
+ options = $.extend({}, options); // clone object since it's unexpected behavior if the expired property were changed
+ options.expires = -1;
+ }
+ var expires = '';
+ if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
+ var date;
+ if (typeof options.expires == 'number') {
+ date = new Date();
+ date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
+ } else {
+ date = options.expires;
+ }
+ expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
+ }
+ // NOTE Needed to parenthesize options.path and options.domain
+ // in the following expressions, otherwise they evaluate to undefined
+ // in the packed version for some reason...
+ var path = options.path ? '; path=' + (options.path) : '';
+ var domain = options.domain ? '; domain=' + (options.domain) : '';
+ var secure = options.secure ? '; secure' : '';
+ document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
+ } else { // only name given, get cookie
+ var cookieValue = null;
+ if (document.cookie && document.cookie != '') {
+ var cookies = document.cookie.split(';');
+ for (var i = 0; i < cookies.length; i++) {
+ var cookie = jQuery.trim(cookies[i]);
+ // Does this cookie string begin with the name we want?
+ if (cookie.substring(0, name.length + 1) == (name + '=')) {
+ cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
+ break;
+ }
+ }
+ }
+ return cookieValue;
+ }
+};
\ No newline at end of file
Modified: branches/community/3.3.X/docs/common-resources/en/src/main/script/toggle.js
===================================================================
--- branches/community/3.3.X/docs/common-resources/en/src/main/script/toggle.js 2009-07-10 15:49:56 UTC (rev 14895)
+++ branches/community/3.3.X/docs/common-resources/en/src/main/script/toggle.js 2009-07-10 15:52:18 UTC (rev 14896)
@@ -1,12 +1,18 @@
var inputCorrect = false;
var textCorrect = false;
+//variables for menu
+var closedItems=new Array(), //define var for items to be stored in cookie
+ //name of the cookie for closed elements
+ cookieClosedItems=document.title.replace(/\s*|\s*/g,'')+"_closedItems";
+ cookieButtons=document.title.replace(/\s*|\s*/g,'')+"_Buttons";
+ StateOfButtons=new Array();
+
-
function showPopup(_popupId) {
document.getElementById(_popupId).style.display = "block";
document.getElementById('timeOutDiv').style.display = "block";
document.getElementById("feedback-maincontainer").style.display = "block";
- document.getElementById("guide_words").style.display = "block";
+ document.getElementById("guide_words").style.display = "block";
}
@@ -114,13 +120,19 @@
});
$(this).html('collapse all');
$(this).css('background', 'url(images/arrowsExpand.png) no-repeat scroll 0 4px');
+ StateOfButtons[1]="expand";
+ jQuery.cookie(cookieButtons, StateOfButtons, { expires: 365 });
},
function () {
$("span.expand_collapse_toc:contains('-')").each(function (i, node) {
toc.collapse($(node)[0]);
- });
- $(this).html('expand all');
- $(this).css('background', 'transparent url(images/arrowsCollapse.png) no-repeat scroll 0 4px');
+ });
+ StateOfButtons[1]="collapse";
+
+
+ $(this).html('expand all');
+ $(this).css('background', 'transparent url(images/arrowsCollapse.png) no-repeat scroll 0 4px');
+ jQuery.cookie(cookieButtons, StateOfButtons, { expires: 365 });
});
}else{
$("#expand_collapse").css('display', 'none');
@@ -136,7 +148,82 @@
var table = $(this).parents().get(4);
$(table).children('tbody').show();
$(this).children('img').attr('src', 'images/minus.gif');
- });
+ });
+
+ var target=new Object();
+ var itext=" ";
+ if (jQuery.cookie) {
+
+ /*if no cookie called "closedItems" exists, then create one with
+ elements you want hidden by default.
+ '1' is given as first value to prevent cookie from being
+ deleted if it contains no ids*/
+ //read cookie for closed elements
+ if (!jQuery.cookie(cookieClosedItems)) {
+ jQuery.cookie(cookieClosedItems, 'start_cookie_file, collapse', { expires: 365 });
+ }
+ //if cookie called "closedItems" exists
+ if (jQuery.cookie(cookieClosedItems)) {
+
+
+ //split cookie into array
+ closedItems = jQuery.cookie(cookieClosedItems).split(',');
+
+ //iterate through array and expand each element within it
+ for (var i = 0; i < closedItems.length; ++i) {
+
+ target=jQuery("a[href='"+closedItems[i]+"']")[0];
+ if(target){
+ target=target.parentNode.previousSibling.previousSibling;
+ toc.show(toc.findDD(target))
+ toc.hide(target);
+ toc.show(target.nextSibling);
+ }
+ }
+ }
+ //read cookie for buttons
+ if (!jQuery.cookie(cookieButtons)) {
+ jQuery.cookie(cookieButtons, 'start_cookie_file', { expires: 365 });
+ }
+ if (jQuery.cookie(cookieButtons)) {
+
+
+ //split cookie into array
+ StateOfButtons = jQuery.cookie(cookieButtons).split(',');
+ idButtons="#expand_collapse"
+
+
+ //iterate through array and expand each element within it
+ if(StateOfButtons[1])
+ {
+ if(StateOfButtons[1]=="expand"){
+ $(idButtons).html('collapse all')
+ .css('background', 'url(images/arrowsExpand.png) no-repeat scroll 0 4px')
+ .one("click", function(){
+ $("span.expand_collapse_toc:contains('-')").each(function (i, node) {
+ toc.collapse($(node)[0]);
+ });
+ StateOfButtons[1]="collapse";
+ jQuery.cookie(cookieButtons, StateOfButtons, { expires: 365 });
+ $(this).html('expand all');
+ $(this).css('background', 'transparent url(images/arrowsCollapse.png) no-repeat scroll 0 4px');
+
+ });
+
+
+
+ }
+ if(StateOfButtons[1]=="collapse")
+ {
+ $(idButtons).html('expand all')
+ .css('background', 'transparent url(images/arrowsCollapse.png) no-repeat scroll 0 4px');
+ }
+ }
+ }
+
+
+ }
+
});
/*
@@ -151,6 +238,7 @@
});
});
+
function searchElements(){
var patt=new RegExp($("#search").val().toString(),"i", "g");
$("div.toc a").each(function (i, el) {
@@ -171,7 +259,8 @@
$("div.time_out_div").css('display','none');
$("div.time_out_div").text('');
}
-*/
+*/
+
function dbToggle(node, expandText, collapseText) {
var dt = node.parentNode;
if (dt.nodeName.toLowerCase() == 'dt') {
@@ -191,27 +280,62 @@
}
-}
-
+}
+
+
var toc = {
expand: function(node) {
toc.show(toc.findDD(node))
toc.hide(node);
- toc.show(node.nextSibling);
+ toc.show(node.nextSibling);
+ toc.updateArray(node.nextSibling.nextSibling.getElementsByTagName('*'), "expand");
},
collapse : function(node) {
toc.hide(toc.findDD(node))
toc.hide(node);
- toc.show(node.previousSibling);
- },
+ toc.show(node.previousSibling);
+ toc.updateArray(node.nextSibling.getElementsByTagName('*'), "collapse");
+ },
+
findDD : function(node) {
- return node.parentNode.nextSibling;
+ return node.parentNode.nextSibling;
+ //return node.parent().next();
},
- hide: function(node) {
- node.style.display = "none";
+ hide : function(node) {
+ node.style.display = "none";
+ //node.attr("style","display: none ;");
+
},
- show: function(node) {
+ show : function(node) {
node.style.display = "";
- }
+ //node.attr("style","display: ;");
+ },
+ updateArray : function(node, collapse_expand) {
+
+ //get id of element clicked for adding to closed items array
+ var eId = jQuery(node).attr("href");
+
+ //look for element in cookie array
+ var arrPos = jQuery.inArray(eId, closedItems);
+ //arrPos=-1;
+
+ if (arrPos == -1 ) {
+
+ //element is not in array, so add it
+ if(collapse_expand!="collapse") closedItems.push(eId);
+
+ } else {
+
+ //element is in array, so remove it
+ if(collapse_expand!="expand") closedItems.splice(arrPos, 1);
+
+ }
+
+ //update cookie
+ jQuery.cookie(cookieClosedItems, closedItems, { expires: 365 });
+ }
+
};
+
+
Modified: branches/community/3.3.X/docs/common-resources/en/src/main/xslt/collapsing-navigation.xsl
===================================================================
--- branches/community/3.3.X/docs/common-resources/en/src/main/xslt/collapsing-navigation.xsl 2009-07-10 15:49:56 UTC (rev 14895)
+++ branches/community/3.3.X/docs/common-resources/en/src/main/xslt/collapsing-navigation.xsl 2009-07-10 15:52:18 UTC (rev 14896)
@@ -166,6 +166,7 @@
<xsl:template name="user.head.content">
<xsl:param name="node" select="." />
<script type="text/javascript" src="script/jquery.js"><xsl:comment>If you see this message, your web browser doesn't support JavaScript or JavaScript is disabled.</xsl:comment></script>
+ <script type="text/javascript" src="script/jquery.cookie.js"><xsl:comment>If you see this message, your web browser doesn't support JavaScript or JavaScript is disabled.</xsl:comment></script>
<script type="text/javascript" src="script/toggle.js"><xsl:comment>If you see this message, your web browser doesn't support JavaScript or JavaScript is disabled.</xsl:comment></script>
</xsl:template>
15 years, 2 months