You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by ap...@apache.org on 2010/05/10 21:58:08 UTC
svn commit: r942880 - in /tiles/sandbox/trunk/tiles3:
tiles-compat/src/main/java/org/apache/tiles/compat/definition/digester/
tiles-core/ tiles-core/src/main/java/org/apache/tiles/context/enhanced/
tiles-core/src/main/java/org/apache/tiles/definition/ ...
Author: apetrelli
Date: Mon May 10 19:58:07 2010
New Revision: 942880
URL: http://svn.apache.org/viewvc?rev=942880&view=rev
Log:
TILESSB-11
More code coverage to tiles-core.
Moved some code to tiles-compat.
TILESSB-10
Removed some old code.
Added:
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/DefinitionsFactoryExceptionTest.java (with props)
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/FactoryNotFoundExceptitonTest.java (with props)
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/NoSuchDefinitionExceptionTest.java (with props)
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAOTest.java (with props)
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderExceptionTest.java (with props)
Removed:
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/context/enhanced/
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/Refreshable.java
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/context/enhanced/
Modified:
tiles/sandbox/trunk/tiles3/tiles-compat/src/main/java/org/apache/tiles/compat/definition/digester/CompatibilityDigesterDefinitionsReader.java
tiles/sandbox/trunk/tiles3/tiles-core/pom.xml
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactoryException.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/FactoryNotFoundException.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/NoSuchDefinitionException.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAO.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/URLReader.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderException.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PrefixedPatternDefinitionResolver.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/LocaleDefinitionsFactoryTest.java
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAOTest.java
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java
Modified: tiles/sandbox/trunk/tiles3/tiles-compat/src/main/java/org/apache/tiles/compat/definition/digester/CompatibilityDigesterDefinitionsReader.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-compat/src/main/java/org/apache/tiles/compat/definition/digester/CompatibilityDigesterDefinitionsReader.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-compat/src/main/java/org/apache/tiles/compat/definition/digester/CompatibilityDigesterDefinitionsReader.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-compat/src/main/java/org/apache/tiles/compat/definition/digester/CompatibilityDigesterDefinitionsReader.java Mon May 10 19:58:07 2010
@@ -22,8 +22,11 @@
package org.apache.tiles.compat.definition.digester;
import org.apache.commons.digester.Digester;
+import org.apache.commons.digester.Rule;
+import org.apache.tiles.Attribute;
import org.apache.tiles.beans.SimpleMenuItem;
import org.apache.tiles.definition.digester.DigesterDefinitionsReader;
+import org.xml.sax.Attributes;
/**
* Digester reader that can read Tiles 1.1, 1.2, 1.3, 1.4 and 2.0 files.
@@ -242,4 +245,20 @@ public class CompatibilityDigesterDefini
}
return registrations;
}
+
+ /**
+ * Digester rule to manage assignment of an object as an attribute value.
+ *
+ * @since 3.0.0
+ */
+ public static class SetValueToAttributeRule extends Rule {
+
+ /** {@inheritDoc} */
+ @Override
+ public void begin(String namespace, String name, Attributes attributes) {
+ Object obj = digester.pop();
+ Attribute attribute = new Attribute(obj);
+ digester.push(attribute);
+ }
+ }
}
Modified: tiles/sandbox/trunk/tiles3/tiles-core/pom.xml
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/pom.xml?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/pom.xml (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/pom.xml Mon May 10 19:58:07 2010
@@ -126,14 +126,14 @@
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
- <version>2.5.1</version>
+ <version>2.5.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymockclassextension</artifactId>
- <version>2.4</version>
+ <version>2.5.2</version>
<scope>test</scope>
</dependency>
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactoryException.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactoryException.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactoryException.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/DefinitionsFactoryException.java Mon May 10 19:58:07 2010
@@ -57,7 +57,7 @@ public class DefinitionsFactoryException
*
* @param e The exception to be wrapped.
*/
- public DefinitionsFactoryException(Exception e) {
+ public DefinitionsFactoryException(Throwable e) {
super(e);
}
@@ -71,7 +71,7 @@ public class DefinitionsFactoryException
* @param message The detail message.
* @param e The exception to be wrapped.
*/
- public DefinitionsFactoryException(String message, Exception e) {
+ public DefinitionsFactoryException(String message, Throwable e) {
super(message, e);
}
}
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/FactoryNotFoundException.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/FactoryNotFoundException.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/FactoryNotFoundException.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/FactoryNotFoundException.java Mon May 10 19:58:07 2010
@@ -43,4 +43,12 @@ public class FactoryNotFoundException ex
public FactoryNotFoundException(String msg) {
super(msg);
}
+
+ public FactoryNotFoundException(String message, Throwable e) {
+ super(message, e);
+ }
+
+ public FactoryNotFoundException(Throwable e) {
+ super(e);
+ }
}
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/NoSuchDefinitionException.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/NoSuchDefinitionException.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/NoSuchDefinitionException.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/NoSuchDefinitionException.java Mon May 10 19:58:07 2010
@@ -43,4 +43,12 @@ public class NoSuchDefinitionException e
public NoSuchDefinitionException(String msg) {
super(msg);
}
+
+ public NoSuchDefinitionException(String message, Throwable e) {
+ super(message, e);
+ }
+
+ public NoSuchDefinitionException(Throwable e) {
+ super(e);
+ }
}
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java Mon May 10 19:58:07 2010
@@ -25,7 +25,6 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
@@ -80,7 +79,6 @@ public abstract class BaseLocaleUrlDefin
* Constructor.
*/
public BaseLocaleUrlDefinitionDAO() {
- sourceURLs = new ArrayList<URL>();
lastModifiedDates = new HashMap<String, Long>();
}
@@ -94,14 +92,6 @@ public abstract class BaseLocaleUrlDefin
this.reader = reader;
}
- /** {@inheritDoc}*/
- public void addSourceURL(URL sourceURL) {
- if (sourceURLs == null) {
- sourceURLs = new ArrayList<URL>();
- }
- sourceURLs.add(sourceURL);
- }
-
/** {@inheritDoc} */
public boolean refreshRequired() {
boolean status = false;
@@ -120,7 +110,7 @@ public abstract class BaseLocaleUrlDefin
break;
}
}
- } catch (Exception e) {
+ } catch (IOException e) {
log.warn("Exception while monitoring update times.", e);
return true;
}
@@ -146,9 +136,7 @@ public abstract class BaseLocaleUrlDefin
defsMap = reader.read(connection.getInputStream());
} catch (FileNotFoundException e) {
// File not found. continue.
- if (log.isDebugEnabled()) {
- log.debug("File " + null + " not found, continue");
- }
+ log.debug("File {} not found, continue", url);
} catch (IOException e) {
throw new DefinitionsFactoryException(
"I/O error processing configuration.", e);
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAO.java Mon May 10 19:58:07 2010
@@ -30,8 +30,6 @@ import java.util.Map;
import org.apache.tiles.Definition;
import org.apache.tiles.definition.DefinitionsFactoryException;
-import org.apache.tiles.definition.NoSuchDefinitionException;
-import org.apache.tiles.definition.Refreshable;
import org.apache.tiles.definition.pattern.PatternDefinitionResolver;
import org.apache.tiles.definition.pattern.PatternDefinitionResolverAware;
import org.apache.tiles.util.LocaleUtil;
@@ -50,7 +48,7 @@ import org.apache.tiles.util.LocaleUtil;
* @since 2.1.0
*/
public class CachingLocaleUrlDefinitionDAO extends BaseLocaleUrlDefinitionDAO
- implements Refreshable, PatternDefinitionResolverAware<Locale> {
+ implements PatternDefinitionResolverAware<Locale> {
/**
* Initialization parameter to set whether we want to refresh URLs when they
@@ -112,13 +110,8 @@ public class CachingLocaleUrlDefinitionD
retValue = getDefinitionFromResolver(name, customizationKey);
if (retValue != null) {
- try {
- synchronized (definitions) {
- definitions.put(name, retValue);
- }
- } catch (NoSuchDefinitionException ex) {
- throw new IllegalStateException(
- "Unable to resolve wildcard mapping", ex);
+ synchronized (definitions) {
+ definitions.put(name, retValue);
}
}
}
@@ -140,13 +133,6 @@ public class CachingLocaleUrlDefinitionD
return retValue;
}
- /** {@inheritDoc} */
- public synchronized void refresh() {
- if (refreshRequired()) {
- locale2definitionMap.clear();
- }
- }
-
/**
* Sets the flag to check URL refresh. If not called, the default is
* <code>false</code>.
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAO.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAO.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAO.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAO.java Mon May 10 19:58:07 2010
@@ -55,7 +55,7 @@ public class LocaleUrlDefinitionDAO exte
*/
public Definition getDefinition(String name, Locale customizationKey) {
Map<String, Definition> defsMap = getDefinitions(customizationKey);
- return defsMap != null ? defsMap.get(name) : null;
+ return defsMap.get(name);
}
/** {@inheritDoc} */
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAO.java Mon May 10 19:58:07 2010
@@ -123,13 +123,10 @@ public class ResolvingLocaleUrlDefinitio
return;
}
- if (log.isDebugEnabled()) {
- log.debug("Resolve definition for child name='"
- + definition.getName()
- + "' extends='" + definition.getExtends() + "'.");
- }
+ log.debug("Resolve definition for child name='{}' extends='{}.",
+ definition.getName(), definition.getExtends());
- // Set as visited to avoid endless recurisvity.
+ // Set as visited to avoid endless recursivity.
alreadyResolvedDefinitions.add(definition.getName());
// Resolve parent before itself.
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/URLReader.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/URLReader.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/URLReader.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/dao/URLReader.java Mon May 10 19:58:07 2010
@@ -49,12 +49,4 @@ public interface URLReader {
* @since 2.1.0
*/
void setReader(DefinitionsReader reader);
-
- /**
- * Adds a single URL to use.
- *
- * @param sourceURL The source URL to add.
- * @since 2.1.0
- */
- void addSourceURL(URL sourceURL);
}
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java Mon May 10 19:58:07 2010
@@ -227,22 +227,6 @@ public class DigesterDefinitionsReader i
}
/**
- * Digester rule to manage assignment of an object as an attribute value.
- *
- * @since 3.0.0
- */
- public static class SetValueToAttributeRule extends Rule {
-
- /** {@inheritDoc} */
- @Override
- public void begin(String namespace, String name, Attributes attributes) {
- Object obj = digester.pop();
- Attribute attribute = new Attribute(obj);
- digester.push(attribute);
- }
- }
-
- /**
* <code>Digester</code> object used to read Definition data
* from the source.
*/
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderException.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderException.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderException.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderException.java Mon May 10 19:58:07 2010
@@ -55,7 +55,7 @@ public class DigesterDefinitionsReaderEx
* @param e The exception to be wrapped.
* @since 2.1.0
*/
- public DigesterDefinitionsReaderException(Exception e) {
+ public DigesterDefinitionsReaderException(Throwable e) {
super(e);
}
@@ -66,7 +66,7 @@ public class DigesterDefinitionsReaderEx
* @param e The exception to be wrapped.
* @since 2.1.0
*/
- public DigesterDefinitionsReaderException(String message, Exception e) {
+ public DigesterDefinitionsReaderException(String message, Throwable e) {
super(message, e);
}
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PrefixedPatternDefinitionResolver.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PrefixedPatternDefinitionResolver.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PrefixedPatternDefinitionResolver.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/definition/pattern/PrefixedPatternDefinitionResolver.java Mon May 10 19:58:07 2010
@@ -99,8 +99,8 @@ public class PrefixedPatternDefinitionRe
.getValue()));
matchers.add(matcher);
} else {
- logger.warn("Cannot find a DefinitionPatternMatcherFactory for expression '"
- + key + "'");
+ logger.warn("Cannot find a DefinitionPatternMatcherFactory for expression '{}'",
+ key);
}
} else {
excludedKeys.add(key);
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java Mon May 10 19:58:07 2010
@@ -29,7 +29,6 @@ import java.util.Locale;
import org.apache.tiles.TilesContainer;
import org.apache.tiles.definition.DefinitionsFactory;
import org.apache.tiles.definition.DefinitionsReader;
-import org.apache.tiles.definition.Refreshable;
import org.apache.tiles.definition.UnresolvingLocaleDefinitionsFactory;
import org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO;
import org.apache.tiles.definition.dao.DefinitionDAO;
@@ -126,9 +125,6 @@ public class BasicTilesContainerFactory
factory.setLocaleResolver(resolver);
factory.setDefinitionDAO(createLocaleDefinitionDao(applicationContext,
resolver));
- if (factory instanceof Refreshable) {
- ((Refreshable) factory).refresh();
- }
return factory;
}
Added: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/DefinitionsFactoryExceptionTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/DefinitionsFactoryExceptionTest.java?rev=942880&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/DefinitionsFactoryExceptionTest.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/DefinitionsFactoryExceptionTest.java Mon May 10 19:58:07 2010
@@ -0,0 +1,77 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.definition;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Tests {@link DefinitionsFactoryException}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class DefinitionsFactoryExceptionTest {
+
+ /**
+ * Test method for {@link DefinitionsFactoryException#DefinitionsFactoryException()}.
+ */
+ @Test
+ public void testDefinitionsFactoryException() {
+ DefinitionsFactoryException exception = new DefinitionsFactoryException();
+ assertNull(exception.getMessage());
+ assertNull(exception.getCause());
+ }
+
+ /**
+ * Test method for {@link DefinitionsFactoryException#DefinitionsFactoryException(java.lang.String)}.
+ */
+ @Test
+ public void testDefinitionsFactoryExceptionString() {
+ DefinitionsFactoryException exception = new DefinitionsFactoryException("my message");
+ assertEquals("my message", exception.getMessage());
+ assertNull(exception.getCause());
+ }
+
+ /**
+ * Test method for {@link DefinitionsFactoryException#DefinitionsFactoryException(java.lang.Throwable)}.
+ */
+ @Test
+ public void testDefinitionsFactoryExceptionThrowable() {
+ Throwable cause = new Throwable();
+ DefinitionsFactoryException exception = new DefinitionsFactoryException(cause);
+ assertEquals(cause.toString(), exception.getMessage());
+ assertEquals(cause, exception.getCause());
+ }
+
+ /**
+ * Test method for {@link DefinitionsFactoryException#DefinitionsFactoryException(java.lang.String, java.lang.Throwable)}.
+ */
+ @Test
+ public void testDefinitionsFactoryExceptionStringThrowable() {
+ Throwable cause = new Throwable();
+ DefinitionsFactoryException exception = new DefinitionsFactoryException("my message", cause);
+ assertEquals("my message", exception.getMessage());
+ assertEquals(cause, exception.getCause());
+ }
+
+}
Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/DefinitionsFactoryExceptionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/DefinitionsFactoryExceptionTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Added: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/FactoryNotFoundExceptitonTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/FactoryNotFoundExceptitonTest.java?rev=942880&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/FactoryNotFoundExceptitonTest.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/FactoryNotFoundExceptitonTest.java Mon May 10 19:58:07 2010
@@ -0,0 +1,77 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.definition;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Tests {@link FactoryNotFoundException}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class FactoryNotFoundExceptitonTest {
+
+ /**
+ * Test method for {@link FactoryNotFoundException#FactoryNotFoundException()}.
+ */
+ @Test
+ public void testFactoryNotFoundException() {
+ FactoryNotFoundException exception = new FactoryNotFoundException();
+ assertNull(exception.getMessage());
+ assertNull(exception.getCause());
+ }
+
+ /**
+ * Test method for {@link FactoryNotFoundException#FactoryNotFoundException(java.lang.String)}.
+ */
+ @Test
+ public void testFactoryNotFoundExceptionString() {
+ FactoryNotFoundException exception = new FactoryNotFoundException("my message");
+ assertEquals("my message", exception.getMessage());
+ assertNull(exception.getCause());
+ }
+
+ /**
+ * Test method for {@link FactoryNotFoundException#FactoryNotFoundException(java.lang.Throwable)}.
+ */
+ @Test
+ public void testFactoryNotFoundExceptionThrowable() {
+ Throwable cause = new Throwable();
+ FactoryNotFoundException exception = new FactoryNotFoundException(cause);
+ assertEquals(cause.toString(), exception.getMessage());
+ assertEquals(cause, exception.getCause());
+ }
+
+ /**
+ * Test method for {@link FactoryNotFoundException#FactoryNotFoundException(java.lang.String, java.lang.Throwable)}.
+ */
+ @Test
+ public void testFactoryNotFoundExceptionStringThrowable() {
+ Throwable cause = new Throwable();
+ FactoryNotFoundException exception = new FactoryNotFoundException("my message", cause);
+ assertEquals("my message", exception.getMessage());
+ assertEquals(cause, exception.getCause());
+ }
+
+}
Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/FactoryNotFoundExceptitonTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/FactoryNotFoundExceptitonTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/LocaleDefinitionsFactoryTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/LocaleDefinitionsFactoryTest.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/LocaleDefinitionsFactoryTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/LocaleDefinitionsFactoryTest.java Mon May 10 19:58:07 2010
@@ -74,4 +74,35 @@ public class LocaleDefinitionsFactoryTes
assertEquals(realDefinition, factory.getDefinition("myDefinition", request));
verify(dao, localeResolver, request);
}
+
+ /**
+ * Test method for {@link LocaleDefinitionsFactory#getDefinition(String, Request)}.
+ */
+ @SuppressWarnings("unchecked")
+ @Test(expected=NoSuchDefinitionException.class)
+ public void testGetDefinitionNoParent() {
+ DefinitionDAO<Locale> dao = createMock(DefinitionDAO.class);
+ LocaleResolver localeResolver = createMock(LocaleResolver.class);
+ Request request = createMock(Request.class);
+ Definition definition = new Definition("myDefinition", null, null);
+ definition.setExtends("anotherDefinition");
+ Map<String, Attribute> attributes = new HashMap<String, Attribute>();
+ attributes.put("first", new Attribute("myValue"));
+ Locale locale = Locale.ITALY;
+
+ expect(localeResolver.resolveLocale(request)).andReturn(locale);
+ expect(dao.getDefinition("myDefinition", locale)).andReturn(definition);
+ expect(dao.getDefinition("anotherDefinition", locale)).andReturn(null);
+
+ LocaleDefinitionsFactory factory = new LocaleDefinitionsFactory();
+
+ replay(dao, localeResolver, request);
+ try {
+ factory.setDefinitionDAO(dao);
+ factory.setLocaleResolver(localeResolver);
+ factory.getDefinition("myDefinition", request);
+ } finally {
+ verify(dao, localeResolver, request);
+ }
+ }
}
Added: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/NoSuchDefinitionExceptionTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/NoSuchDefinitionExceptionTest.java?rev=942880&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/NoSuchDefinitionExceptionTest.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/NoSuchDefinitionExceptionTest.java Mon May 10 19:58:07 2010
@@ -0,0 +1,77 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.definition;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Tests {@link NoSuchDefinitionException}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class NoSuchDefinitionExceptionTest {
+
+ /**
+ * Test method for {@link NoSuchDefinitionException#NoSuchDefinitionException()}.
+ */
+ @Test
+ public void testNoSuchDefinitionException() {
+ NoSuchDefinitionException exception = new NoSuchDefinitionException();
+ assertNull(exception.getMessage());
+ assertNull(exception.getCause());
+ }
+
+ /**
+ * Test method for {@link NoSuchDefinitionException#NoSuchDefinitionException(java.lang.String)}.
+ */
+ @Test
+ public void testNoSuchDefinitionExceptionString() {
+ NoSuchDefinitionException exception = new NoSuchDefinitionException("my message");
+ assertEquals("my message", exception.getMessage());
+ assertNull(exception.getCause());
+ }
+
+ /**
+ * Test method for {@link NoSuchDefinitionException#NoSuchDefinitionException(java.lang.Throwable)}.
+ */
+ @Test
+ public void testNoSuchDefinitionExceptionThrowable() {
+ Throwable cause = new Throwable();
+ NoSuchDefinitionException exception = new NoSuchDefinitionException(cause);
+ assertEquals(cause.toString(), exception.getMessage());
+ assertEquals(cause, exception.getCause());
+ }
+
+ /**
+ * Test method for {@link NoSuchDefinitionException#NoSuchDefinitionException(java.lang.String, java.lang.Throwable)}.
+ */
+ @Test
+ public void testNoSuchDefinitionExceptionStringThrowable() {
+ Throwable cause = new Throwable();
+ NoSuchDefinitionException exception = new NoSuchDefinitionException("my message", cause);
+ assertEquals("my message", exception.getMessage());
+ assertEquals(cause, exception.getCause());
+ }
+
+}
Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/NoSuchDefinitionExceptionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/NoSuchDefinitionExceptionTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Added: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAOTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAOTest.java?rev=942880&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAOTest.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAOTest.java Mon May 10 19:58:07 2010
@@ -0,0 +1,186 @@
+/**
+ *
+ */
+package org.apache.tiles.definition.dao;
+
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tiles.Attribute;
+import org.apache.tiles.Definition;
+import org.apache.tiles.definition.DefinitionsFactory;
+import org.apache.tiles.definition.DefinitionsReader;
+import org.apache.tiles.definition.RefreshMonitor;
+import org.apache.tiles.definition.digester.DigesterDefinitionsReader;
+import org.apache.tiles.request.Request;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests {@link BaseLocaleUrlDefinitionDAO}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class BaseLocaleUrlDefinitionDAOTest {
+
+ /**
+ * The time (in milliseconds) to wait to be sure that the system updates the
+ * modify date of a file.
+ */
+ private static final int SLEEP_MILLIS = 2000;
+
+ private BaseLocaleUrlDefinitionDAO dao;
+
+ /**
+ * Sets up the test.
+ */
+ @Before
+ public void setUp() {
+ dao = createMockBuilder(BaseLocaleUrlDefinitionDAO.class).withConstructor().createMock();
+ }
+
+ /**
+ * Test method for {@link org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO#refreshRequired()}.
+ * @throws URISyntaxException If something goes wrong.
+ * @throws IOException If something goes wrong.
+ * @throws InterruptedException If something goes wrong.
+ */
+ @Test
+ public void testRefreshRequired() throws URISyntaxException, IOException, InterruptedException {
+ // Set up multiple data sources.
+ Map<String, Attribute> attribs = new HashMap<String, Attribute>();
+ attribs.put("testparm", new Attribute("testval"));
+ Definition rewriteTest = new Definition("rewrite.test", Attribute.createTemplateAttribute("/test.jsp"), attribs);
+ expect(dao.getDefinition("rewrite.test", null)).andReturn(rewriteTest);
+
+ replay(dao);
+ URL url = this.getClass().getClassLoader().getResource(
+ "org/apache/tiles/config/temp-defs.xml");
+
+ URI uri = null;
+ String urlPath = null;
+
+ // The following madness is necessary b/c of the way Windows hanndles
+ // URLs.
+ // We must add a slash to the protocol if Windows does not. But we
+ // cannot
+ // add a slash to Unix paths b/c they already have one.
+ if (url.getPath().startsWith("/")) {
+ urlPath = "file:" + url.getPath();
+ } else {
+ urlPath = "file:/" + url.getPath();
+ }
+
+ // The following second madness is necessary b/c sometimes spaces
+ // are encoded as '%20', sometimes they are not. For example in
+ // Windows 2000 under Eclipse they are encoded, under the prompt of
+ // Windows 2000 they are not.
+ // It seems to be in the different behaviour of
+ // sun.misc.Launcher$AppClassLoader (called under Eclipse) and
+ // java.net.URLClassLoader (under maven).
+ // And an URL accepts spaces while URIs need '%20'.
+ try {
+ uri = new URI(urlPath);
+ } catch (URISyntaxException e) {
+ uri = new URI(urlPath.replaceAll(" ", "%20"));
+ }
+
+ List<URL> sourceURLs = new ArrayList<URL>();
+ sourceURLs.add(uri.toURL());
+ dao.setSourceURLs(sourceURLs);
+ DefinitionsReader reader = new DigesterDefinitionsReader();
+ dao.setReader(reader);
+
+ String xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
+ + "<!DOCTYPE tiles-definitions PUBLIC "
+ + "\"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN\" "
+ + "\"http://tiles.apache.org/dtds/tiles-config_3_0.dtd\">\n\n"
+ + "<tiles-definitions>"
+ + "<definition name=\"rewrite.test\" template=\"/test.jsp\">"
+ + "<put-attribute name=\"testparm\" value=\"testval\"/>"
+ + "</definition>" + "</tiles-definitions>";
+
+ File file = new File(uri);
+ FileOutputStream fileOut = new FileOutputStream(file);
+ BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
+ fileOut));
+ writer.write(xml);
+ writer.close();
+
+ Map<String, String> params = new HashMap<String, String>();
+ params.put(DefinitionsFactory.DEFINITIONS_CONFIG, urlPath);
+ Request context = createMock(Request.class);
+ expect(context.getContext("session")).andReturn(
+ new HashMap<String, Object>()).anyTimes();
+ expect(context.getRequestLocale()).andReturn(null).anyTimes();
+ replay(context);
+
+ Definition definition = dao.getDefinition("rewrite.test",
+ null);
+ assertNotNull("rewrite.test definition not found.", definition);
+ assertEquals("Incorrect initial template value", "/test.jsp",
+ definition.getTemplateAttribute().getValue());
+
+ RefreshMonitor reloadable = dao;
+ dao.loadDefinitionsFromURL(url);
+ assertEquals("Factory should be fresh.", false, reloadable
+ .refreshRequired());
+
+ // Make sure the system actually updates the timestamp.
+ Thread.sleep(SLEEP_MILLIS);
+
+ // Set up multiple data sources.
+ xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
+ + "<!DOCTYPE tiles-definitions PUBLIC "
+ + "\"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN\" "
+ + "\"http://tiles.apache.org/dtds/tiles-config_3_0.dtd\">\n\n"
+ + "<tiles-definitions>"
+ + "<definition name=\"rewrite.test\" template=\"/newtest.jsp\">"
+ + "<put-attribute name=\"testparm\" value=\"testval\"/>"
+ + "</definition>" + "</tiles-definitions>";
+
+ file = new File(uri);
+ fileOut = new FileOutputStream(file);
+ writer = new BufferedWriter(new OutputStreamWriter(fileOut));
+ writer.write(xml);
+ writer.close();
+ file = new File(uri);
+
+ assertEquals("Factory should be stale.", true, reloadable
+ .refreshRequired());
+
+ verify(context, dao);
+ }
+
+ /**
+ * Test method for {@link org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO#loadDefinitionsFromURL(java.net.URL)}.
+ * @throws MalformedURLException If something goes wrong.
+ */
+ @Test
+ public void testLoadDefinitionsFromURLFileNotFound() throws MalformedURLException {
+ URL url = new URL("file:///hello/there.txt");
+ replay(dao);
+ DefinitionsReader reader = createMock(DefinitionsReader.class);
+ replay(reader);
+
+ dao.setReader(reader);
+ assertNull(dao.loadDefinitionsFromURL(url));
+ verify(dao, reader);
+ }
+
+}
Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAOTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAOTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/CachingLocaleUrlDefinitionDAOTest.java Mon May 10 19:58:07 2010
@@ -23,16 +23,9 @@ package org.apache.tiles.definition.dao;
import static org.easymock.EasyMock.*;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.net.URI;
-import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
@@ -44,16 +37,13 @@ import junit.framework.TestCase;
import org.apache.tiles.Attribute;
import org.apache.tiles.Definition;
import org.apache.tiles.ListAttribute;
-import org.apache.tiles.definition.DefinitionsFactory;
import org.apache.tiles.definition.DefinitionsReader;
import org.apache.tiles.definition.MockDefinitionsReader;
-import org.apache.tiles.definition.RefreshMonitor;
import org.apache.tiles.definition.digester.DigesterDefinitionsReader;
import org.apache.tiles.definition.pattern.BasicPatternDefinitionResolver;
import org.apache.tiles.definition.pattern.PatternDefinitionResolver;
import org.apache.tiles.definition.pattern.wildcard.WildcardDefinitionPatternMatcherFactory;
import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.Request;
/**
* Tests {@link CachingLocaleUrlDefinitionDAO}.
@@ -63,12 +53,6 @@ import org.apache.tiles.request.Request;
public class CachingLocaleUrlDefinitionDAOTest extends TestCase {
/**
- * The time (in milliseconds) to wait to be sure that the system updates the
- * modify date of a file.
- */
- private static final int SLEEP_MILLIS = 2000;
-
- /**
* The object to test.
*/
private CachingLocaleUrlDefinitionDAO definitionDao;
@@ -287,35 +271,6 @@ public class CachingLocaleUrlDefinitionD
}
/**
- * Tests {@link LocaleUrlDefinitionDAO#addSourceURL(URL)}.
- */
- public void testAddSourceURL() {
- // Set up multiple data sources.
- URL url1 = this.getClass().getClassLoader().getResource(
- "org/apache/tiles/config/defs1.xml");
- assertNotNull("Could not load defs1 file.", url1);
- URL url2 = this.getClass().getClassLoader().getResource(
- "org/apache/tiles/config/defs2.xml");
- assertTrue("The source URLs is not empty", definitionDao.sourceURLs
- .isEmpty());
- definitionDao.addSourceURL(url1);
- assertEquals("The size of the source URLs is not correct", 1,
- definitionDao.sourceURLs.size());
- assertEquals("The URL is not correct", url1, definitionDao.sourceURLs
- .get(0));
- List<URL> sourceURLs = new ArrayList<URL>();
- sourceURLs.add(url2);
- definitionDao.setSourceURLs(sourceURLs);
- definitionDao.addSourceURL(url1);
- assertEquals("The size of the source URLs is not correct", 2,
- definitionDao.sourceURLs.size());
- assertEquals("The URL is not correct", url2, definitionDao.sourceURLs
- .get(0));
- assertEquals("The URL is not correct", url1, definitionDao.sourceURLs
- .get(1));
- }
-
- /**
* Tests execution.
*
* @throws IOException If something goes wrong.
@@ -358,119 +313,14 @@ public class CachingLocaleUrlDefinitionD
}
/**
- * Tests {@link LocaleUrlDefinitionDAO#refreshRequired()}.
- *
- * @throws IOException If something goes wrong during I/O.
- * @throws InterruptedException If the "sleep" instruction fails.
- * @throws URISyntaxException If the URIs are not correct.
- */
- public void testRefreshRequired() throws IOException, InterruptedException,
- URISyntaxException {
- // Set up multiple data sources.
- URL url = this.getClass().getClassLoader().getResource(
- "org/apache/tiles/config/temp-defs.xml");
-
- URI uri = null;
- String urlPath = null;
-
- // The following madness is necessary b/c of the way Windows hanndles
- // URLs.
- // We must add a slash to the protocol if Windows does not. But we
- // cannot
- // add a slash to Unix paths b/c they already have one.
- if (url.getPath().startsWith("/")) {
- urlPath = "file:" + url.getPath();
- } else {
- urlPath = "file:/" + url.getPath();
- }
-
- // The following second madness is necessary b/c sometimes spaces
- // are encoded as '%20', sometimes they are not. For example in
- // Windows 2000 under Eclipse they are encoded, under the prompt of
- // Windows 2000 they are not.
- // It seems to be in the different behaviour of
- // sun.misc.Launcher$AppClassLoader (called under Eclipse) and
- // java.net.URLClassLoader (under maven).
- // And an URL accepts spaces while URIs need '%20'.
- try {
- uri = new URI(urlPath);
- } catch (URISyntaxException e) {
- uri = new URI(urlPath.replaceAll(" ", "%20"));
- }
-
- List<URL> sourceURLs = new ArrayList<URL>();
- sourceURLs.add(uri.toURL());
- definitionDao.setSourceURLs(sourceURLs);
- DefinitionsReader reader = new DigesterDefinitionsReader();
- definitionDao.setReader(reader);
-
- String xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
- + "<!DOCTYPE tiles-definitions PUBLIC "
- + "\"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN\" "
- + "\"http://tiles.apache.org/dtds/tiles-config_2_0.dtd\">\n\n"
- + "<tiles-definitions>"
- + "<definition name=\"rewrite.test\" template=\"/test.jsp\">"
- + "<put-attribute name=\"testparm\" value=\"testval\"/>"
- + "</definition>" + "</tiles-definitions>";
-
- File file = new File(uri);
- FileOutputStream fileOut = new FileOutputStream(file);
- BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
- fileOut));
- writer.write(xml);
- writer.close();
-
- Map<String, String> params = new HashMap<String, String>();
- params.put(DefinitionsFactory.DEFINITIONS_CONFIG, urlPath);
- Request context = createMock(Request.class);
- expect(context.getContext("session")).andReturn(
- new HashMap<String, Object>()).anyTimes();
- expect(context.getRequestLocale()).andReturn(null).anyTimes();
- replay(context);
-
- Definition definition = definitionDao.getDefinition("rewrite.test",
- null);
- assertNotNull("rewrite.test definition not found.", definition);
- assertEquals("Incorrect initial template value", "/test.jsp",
- definition.getTemplateAttribute().getValue());
-
- RefreshMonitor reloadable = definitionDao;
- assertEquals("Factory should be fresh.", false, reloadable
- .refreshRequired());
-
- // Make sure the system actually updates the timestamp.
- Thread.sleep(SLEEP_MILLIS);
-
- // Set up multiple data sources.
- xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
- + "<!DOCTYPE tiles-definitions PUBLIC "
- + "\"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN\" "
- + "\"http://tiles.apache.org/dtds/tiles-config_2_0.dtd\">\n\n"
- + "<tiles-definitions>"
- + "<definition name=\"rewrite.test\" template=\"/newtest.jsp\">"
- + "<put-attribute name=\"testparm\" value=\"testval\"/>"
- + "</definition>" + "</tiles-definitions>";
-
- file = new File(uri);
- fileOut = new FileOutputStream(file);
- writer = new BufferedWriter(new OutputStreamWriter(fileOut));
- writer.write(xml);
- writer.close();
- file = new File(uri);
-
- assertEquals("Factory should be stale.", true, reloadable
- .refreshRequired());
-
- verify(context);
- }
-
- /**
* Tests wildcard mappings.
*/
public void testWildcardMapping() {
URL url = this.getClass().getClassLoader().getResource(
"org/apache/tiles/config/defs-wildcard.xml");
- definitionDao.addSourceURL(url);
+ List<URL> urls = new ArrayList<URL>();
+ urls.add(url);
+ definitionDao.setSourceURLs(urls);
definitionDao.setReader(new DigesterDefinitionsReader());
Definition definition = definitionDao.getDefinition("test.defName.subLayered", Locale.ITALY);
@@ -514,7 +364,9 @@ public class CachingLocaleUrlDefinitionD
public void testListAttributeLocaleInheritance() {
URL url = this.getClass().getClassLoader().getResource(
"org/apache/tiles/config/tiles-defs-2.1.xml");
- definitionDao.addSourceURL(url);
+ List<URL> urls = new ArrayList<URL>();
+ urls.add(url);
+ definitionDao.setSourceURLs(urls);
ApplicationContext applicationContext = createMock(ApplicationContext.class);
definitionDao.setReader(new DigesterDefinitionsReader());
replay(applicationContext);
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAOTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAOTest.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAOTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/LocaleUrlDefinitionDAOTest.java Mon May 10 19:58:07 2010
@@ -23,16 +23,9 @@ package org.apache.tiles.definition.dao;
import static org.easymock.EasyMock.*;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.net.URI;
-import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
@@ -42,13 +35,10 @@ import java.util.Set;
import junit.framework.TestCase;
import org.apache.tiles.Definition;
-import org.apache.tiles.definition.DefinitionsFactory;
import org.apache.tiles.definition.DefinitionsReader;
import org.apache.tiles.definition.MockDefinitionsReader;
-import org.apache.tiles.definition.RefreshMonitor;
import org.apache.tiles.definition.digester.DigesterDefinitionsReader;
import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.Request;
/**
* Tests {@link LocaleUrlDefinitionDAO}.
@@ -58,12 +48,6 @@ import org.apache.tiles.request.Request;
public class LocaleUrlDefinitionDAOTest extends TestCase {
/**
- * The time (in milliseconds) to wait to be sure that the system updates the
- * modify date of a file.
- */
- private static final int SLEEP_MILLIS = 2000;
-
- /**
* The object to test.
*/
private LocaleUrlDefinitionDAO definitionDao;
@@ -278,35 +262,6 @@ public class LocaleUrlDefinitionDAOTest
}
/**
- * Tests {@link LocaleUrlDefinitionDAO#addSourceURL(URL)}.
- */
- public void testAddSourceURL() {
- // Set up multiple data sources.
- URL url1 = this.getClass().getClassLoader().getResource(
- "org/apache/tiles/config/defs1.xml");
- assertNotNull("Could not load defs1 file.", url1);
- URL url2 = this.getClass().getClassLoader().getResource(
- "org/apache/tiles/config/defs2.xml");
- assertTrue("The source URLs is not empty", definitionDao.sourceURLs
- .isEmpty());
- definitionDao.addSourceURL(url1);
- assertEquals("The size of the source URLs is not correct", 1,
- definitionDao.sourceURLs.size());
- assertEquals("The URL is not correct", url1, definitionDao.sourceURLs
- .get(0));
- List<URL> sourceURLs = new ArrayList<URL>();
- sourceURLs.add(url2);
- definitionDao.setSourceURLs(sourceURLs);
- definitionDao.addSourceURL(url1);
- assertEquals("The size of the source URLs is not correct", 2,
- definitionDao.sourceURLs.size());
- assertEquals("The URL is not correct", url2, definitionDao.sourceURLs
- .get(0));
- assertEquals("The URL is not correct", url1, definitionDao.sourceURLs
- .get(1));
- }
-
- /**
* Tests execution.
*
* @throws IOException If something goes wrong.
@@ -347,114 +302,4 @@ public class LocaleUrlDefinitionDAOTest
assertEquals("The source URLs are not correct", sourceURLs,
definitionDao.sourceURLs);
}
-
- /**
- * Tests {@link LocaleUrlDefinitionDAO#refreshRequired()}.
- *
- * @throws IOException If something goes wrong during I/O.
- * @throws InterruptedException If the "sleep" instruction fails.
- * @throws URISyntaxException If the URIs are not correct.
- */
- public void testRefreshRequired() throws IOException, InterruptedException,
- URISyntaxException {
- // Set up multiple data sources.
- URL url = this.getClass().getClassLoader().getResource(
- "org/apache/tiles/config/temp-defs.xml");
-
- URI uri = null;
- String urlPath = null;
-
- // The following madness is necessary b/c of the way Windows hanndles
- // URLs.
- // We must add a slash to the protocol if Windows does not. But we
- // cannot
- // add a slash to Unix paths b/c they already have one.
- if (url.getPath().startsWith("/")) {
- urlPath = "file:" + url.getPath();
- } else {
- urlPath = "file:/" + url.getPath();
- }
-
- ApplicationContext applicationContext = createMock(ApplicationContext.class);
- replay(applicationContext);
-
- // The following second madness is necessary b/c sometimes spaces
- // are encoded as '%20', sometimes they are not. For example in
- // Windows 2000 under Eclipse they are encoded, under the prompt of
- // Windows 2000 they are not.
- // It seems to be in the different behaviour of
- // sun.misc.Launcher$AppClassLoader (called under Eclipse) and
- // java.net.URLClassLoader (under maven).
- // And an URL accepts spaces while URIs need '%20'.
- try {
- uri = new URI(urlPath);
- } catch (URISyntaxException e) {
- uri = new URI(urlPath.replaceAll(" ", "%20"));
- }
-
- List<URL> sourceURLs = new ArrayList<URL>();
- sourceURLs.add(uri.toURL());
- definitionDao.setSourceURLs(sourceURLs);
- DefinitionsReader reader = new DigesterDefinitionsReader();
- definitionDao.setReader(reader);
-
- String xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
- + "<!DOCTYPE tiles-definitions PUBLIC "
- + "\"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN\" "
- + "\"http://tiles.apache.org/dtds/tiles-config_2_0.dtd\">\n\n"
- + "<tiles-definitions>"
- + "<definition name=\"rewrite.test\" template=\"/test.jsp\">"
- + "<put-attribute name=\"testparm\" value=\"testval\"/>"
- + "</definition>" + "</tiles-definitions>";
-
- File file = new File(uri);
- FileOutputStream fileOut = new FileOutputStream(file);
- BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
- fileOut));
- writer.write(xml);
- writer.close();
-
- Map<String, String> params = new HashMap<String, String>();
- params.put(DefinitionsFactory.DEFINITIONS_CONFIG, urlPath);
- Request context = createMock(Request.class);
- expect(context.getContext("session")).andReturn(
- new HashMap<String, Object>()).anyTimes();
- expect(context.getRequestLocale()).andReturn(null).anyTimes();
- replay(context);
-
- Definition definition = definitionDao.getDefinition("rewrite.test",
- null);
- assertNotNull("rewrite.test definition not found.", definition);
- assertEquals("Incorrect initial template value", "/test.jsp",
- definition.getTemplateAttribute().getValue());
-
- RefreshMonitor reloadable = definitionDao;
- assertEquals("Factory should be fresh.", false, reloadable
- .refreshRequired());
-
- // Make sure the system actually updates the timestamp.
- Thread.sleep(SLEEP_MILLIS);
-
- // Set up multiple data sources.
- xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
- + "<!DOCTYPE tiles-definitions PUBLIC "
- + "\"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN\" "
- + "\"http://tiles.apache.org/dtds/tiles-config_2_0.dtd\">\n\n"
- + "<tiles-definitions>"
- + "<definition name=\"rewrite.test\" template=\"/newtest.jsp\">"
- + "<put-attribute name=\"testparm\" value=\"testval\"/>"
- + "</definition>" + "</tiles-definitions>";
-
- file = new File(uri);
- fileOut = new FileOutputStream(file);
- writer = new BufferedWriter(new OutputStreamWriter(fileOut));
- writer.write(xml);
- writer.close();
- file = new File(uri);
-
- assertEquals("Factory should be stale.", true, reloadable
- .refreshRequired());
-
- verify(applicationContext, context);
- }
}
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/dao/ResolvingLocaleUrlDefinitionDAOTest.java Mon May 10 19:58:07 2010
@@ -22,14 +22,9 @@
package org.apache.tiles.definition.dao;
import static org.easymock.EasyMock.*;
+import static org.junit.Assert.*;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.net.URI;
-import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
@@ -39,28 +34,27 @@ import java.util.Locale;
import java.util.Map;
import java.util.Set;
-import junit.framework.TestCase;
-
import org.apache.tiles.Attribute;
import org.apache.tiles.Definition;
import org.apache.tiles.ListAttribute;
import org.apache.tiles.definition.DefinitionsFactory;
import org.apache.tiles.definition.DefinitionsReader;
import org.apache.tiles.definition.MockDefinitionsReader;
-import org.apache.tiles.definition.RefreshMonitor;
+import org.apache.tiles.definition.NoSuchDefinitionException;
import org.apache.tiles.definition.digester.DigesterDefinitionsReader;
import org.apache.tiles.definition.pattern.BasicPatternDefinitionResolver;
import org.apache.tiles.definition.pattern.PatternDefinitionResolver;
import org.apache.tiles.definition.pattern.wildcard.WildcardDefinitionPatternMatcherFactory;
import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.Request;
+import org.junit.Before;
+import org.junit.Test;
/**
* Tests {@link ResolvingLocaleUrlDefinitionDAO}.
*
* @version $Rev$ $Date$
*/
-public class ResolvingLocaleUrlDefinitionDAOTest extends TestCase {
+public class ResolvingLocaleUrlDefinitionDAOTest {
/**
* The number of attribute names.
@@ -68,20 +62,13 @@ public class ResolvingLocaleUrlDefinitio
private static final int ATTRIBUTE_NAMES_COUNT = 6;
/**
- * The time (in milliseconds) to wait to be sure that the system updates the
- * modify date of a file.
- */
- private static final int SLEEP_MILLIS = 2000;
-
- /**
* The object to test.
*/
private ResolvingLocaleUrlDefinitionDAO definitionDao;
/** {@inheritDoc} */
- @Override
- protected void setUp() throws Exception {
- super.setUp();
+ @Before
+ public void setUp() {
definitionDao = new ResolvingLocaleUrlDefinitionDAO();
WildcardDefinitionPatternMatcherFactory definitionPatternMatcherFactory =
new WildcardDefinitionPatternMatcherFactory();
@@ -94,6 +81,7 @@ public class ResolvingLocaleUrlDefinitio
/**
* Tests {@link LocaleUrlDefinitionDAO#getDefinition(String, Locale)}.
*/
+ @Test
public void testGetDefinition() {
// Set up multiple data sources.
URL url1 = this.getClass().getClassLoader().getResource(
@@ -180,6 +168,7 @@ public class ResolvingLocaleUrlDefinitio
/**
* Tests {@link LocaleUrlDefinitionDAO#getDefinitions(Locale)}.
*/
+ @Test
public void testGetDefinitions() {
// Set up multiple data sources.
URL url1 = this.getClass().getClassLoader().getResource(
@@ -272,6 +261,7 @@ public class ResolvingLocaleUrlDefinitio
/**
* Tests {@link LocaleUrlDefinitionDAO#setSourceURLs(List)}.
*/
+ @Test
public void testSetSourceURLs() {
// Set up multiple data sources.
URL url1 = this.getClass().getClassLoader().getResource(
@@ -295,6 +285,7 @@ public class ResolvingLocaleUrlDefinitio
/**
* Tests {@link LocaleUrlDefinitionDAO#setReader(DefinitionsReader)}.
*/
+ @Test
public void testSetReader() {
DefinitionsReader reader = createMock(DefinitionsReader.class);
definitionDao.setReader(reader);
@@ -302,33 +293,13 @@ public class ResolvingLocaleUrlDefinitio
definitionDao.reader);
}
- /**
- * Tests {@link LocaleUrlDefinitionDAO#addSourceURL(URL)}.
- */
- public void testAddSourceURL() {
- // Set up multiple data sources.
- URL url1 = this.getClass().getClassLoader().getResource(
- "org/apache/tiles/config/defs1.xml");
- assertNotNull("Could not load defs1 file.", url1);
- URL url2 = this.getClass().getClassLoader().getResource(
- "org/apache/tiles/config/defs2.xml");
- assertTrue("The source URLs is not empty", definitionDao.sourceURLs
- .isEmpty());
- definitionDao.addSourceURL(url1);
- assertEquals("The size of the source URLs is not correct", 1,
- definitionDao.sourceURLs.size());
- assertEquals("The URL is not correct", url1, definitionDao.sourceURLs
- .get(0));
- List<URL> sourceURLs = new ArrayList<URL>();
- sourceURLs.add(url2);
- definitionDao.setSourceURLs(sourceURLs);
- definitionDao.addSourceURL(url1);
- assertEquals("The size of the source URLs is not correct", 2,
- definitionDao.sourceURLs.size());
- assertEquals("The URL is not correct", url2, definitionDao.sourceURLs
- .get(0));
- assertEquals("The URL is not correct", url1, definitionDao.sourceURLs
- .get(1));
+ @Test(expected=NoSuchDefinitionException.class)
+ public void testResolveInheritanceNoParent() {
+ Definition definition = new Definition("mydef", null, null);
+ definition.setExtends("otherDef");
+ definitionDao.resolveInheritance(definition,
+ new HashMap<String, Definition>(), Locale.ITALY,
+ new HashSet<String>());
}
/**
@@ -336,6 +307,7 @@ public class ResolvingLocaleUrlDefinitio
*
* @throws IOException If something goes wrong.
*/
+ @Test
public void testInit() throws IOException {
URL url1 = this.getClass().getClassLoader().getResource(
"org/apache/tiles/config/defs1.xml");
@@ -385,117 +357,15 @@ public class ResolvingLocaleUrlDefinitio
}
/**
- * Tests {@link LocaleUrlDefinitionDAO#refreshRequired()}.
- *
- * @throws IOException If something goes wrong during I/O.
- * @throws InterruptedException If the "sleep" instruction fails.
- * @throws URISyntaxException If the URIs are not correct.
- */
- public void testRefreshRequired() throws IOException, InterruptedException,
- URISyntaxException {
- // Set up multiple data sources.
- URL url = this.getClass().getClassLoader().getResource(
- "org/apache/tiles/config/temp-defs.xml");
-
- URI uri = null;
- String urlPath = null;
-
- // The following madness is necessary b/c of the way Windows hanndles
- // URLs.
- // We must add a slash to the protocol if Windows does not. But we
- // cannot
- // add a slash to Unix paths b/c they already have one.
- if (url.getPath().startsWith("/")) {
- urlPath = "file:" + url.getPath();
- } else {
- urlPath = "file:/" + url.getPath();
- }
-
- // The following second madness is necessary b/c sometimes spaces
- // are encoded as '%20', sometimes they are not. For example in
- // Windows 2000 under Eclipse they are encoded, under the prompt of
- // Windows 2000 they are not.
- // It seems to be in the different behaviour of
- // sun.misc.Launcher$AppClassLoader (called under Eclipse) and
- // java.net.URLClassLoader (under maven).
- // And an URL accepts spaces while URIs need '%20'.
- try {
- uri = new URI(urlPath);
- } catch (URISyntaxException e) {
- uri = new URI(urlPath.replaceAll(" ", "%20"));
- }
-
- List<URL> sourceURLs = new ArrayList<URL>();
- sourceURLs.add(uri.toURL());
- definitionDao.setSourceURLs(sourceURLs);
- DefinitionsReader reader = new DigesterDefinitionsReader();
- definitionDao.setReader(reader);
-
- String xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
- + "<!DOCTYPE tiles-definitions PUBLIC "
- + "\"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN\" "
- + "\"http://tiles.apache.org/dtds/tiles-config_2_0.dtd\">\n\n"
- + "<tiles-definitions>"
- + "<definition name=\"rewrite.test\" template=\"/test.jsp\">"
- + "<put-attribute name=\"testparm\" value=\"testval\"/>"
- + "</definition>" + "</tiles-definitions>";
-
- File file = new File(uri);
- FileOutputStream fileOut = new FileOutputStream(file);
- BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
- fileOut));
- writer.write(xml);
- writer.close();
-
- Map<String, String> params = new HashMap<String, String>();
- params.put(DefinitionsFactory.DEFINITIONS_CONFIG, urlPath);
- Request context = createMock(Request.class);
- expect(context.getContext("session")).andReturn(
- new HashMap<String, Object>()).anyTimes();
- expect(context.getRequestLocale()).andReturn(null).anyTimes();
- replay(context);
-
- Definition definition = definitionDao.getDefinition("rewrite.test",
- null);
- assertNotNull("rewrite.test definition not found.", definition);
- assertEquals("Incorrect initial template value", "/test.jsp",
- definition.getTemplateAttribute().getValue());
-
- RefreshMonitor reloadable = definitionDao;
- assertEquals("Factory should be fresh.", false, reloadable
- .refreshRequired());
-
- // Make sure the system actually updates the timestamp.
- Thread.sleep(SLEEP_MILLIS);
-
- // Set up multiple data sources.
- xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"
- + "<!DOCTYPE tiles-definitions PUBLIC "
- + "\"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN\" "
- + "\"http://tiles.apache.org/dtds/tiles-config_2_0.dtd\">\n\n"
- + "<tiles-definitions>"
- + "<definition name=\"rewrite.test\" template=\"/newtest.jsp\">"
- + "<put-attribute name=\"testparm\" value=\"testval\"/>"
- + "</definition>" + "</tiles-definitions>";
-
- file = new File(uri);
- fileOut = new FileOutputStream(file);
- writer = new BufferedWriter(new OutputStreamWriter(fileOut));
- writer.write(xml);
- writer.close();
- file = new File(uri);
-
- assertEquals("Factory should be stale.", true, reloadable
- .refreshRequired());
- }
-
- /**
* Tests wildcard mappings.
*/
+ @Test
public void testWildcardMapping() {
URL url = this.getClass().getClassLoader().getResource(
"org/apache/tiles/config/defs-wildcard.xml");
- definitionDao.addSourceURL(url);
+ List<URL> urls = new ArrayList<URL>();
+ urls.add(url);
+ definitionDao.setSourceURLs(urls);
definitionDao.setReader(new DigesterDefinitionsReader());
Definition definition = definitionDao.getDefinition("test.defName.subLayered", Locale.ITALY);
@@ -538,10 +408,13 @@ public class ResolvingLocaleUrlDefinitio
* {@link ResolvingLocaleUrlDefinitionDAO#getDefinition(String, Locale)}
* when loading multiple files for a locale.
*/
+ @Test
public void testListAttributeLocaleInheritance() {
URL url = this.getClass().getClassLoader().getResource(
"org/apache/tiles/config/tiles-defs-2.1.xml");
- definitionDao.addSourceURL(url);
+ List<URL> urls = new ArrayList<URL>();
+ urls.add(url);
+ definitionDao.setSourceURLs(urls);
ApplicationContext applicationContext = createMock(ApplicationContext.class);
definitionDao.setReader(new DigesterDefinitionsReader());
replay(applicationContext);
Added: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderExceptionTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderExceptionTest.java?rev=942880&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderExceptionTest.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderExceptionTest.java Mon May 10 19:58:07 2010
@@ -0,0 +1,77 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.definition.digester;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Tests {@link DigesterDefinitionsReaderException}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class DigesterDefinitionsReaderExceptionTest {
+
+ /**
+ * Test method for {@link DigesterDefinitionsReaderException#DigesterDefinitionsReaderException()}.
+ */
+ @Test
+ public void testDigesterDefinitionsReaderException() {
+ DigesterDefinitionsReaderException exception = new DigesterDefinitionsReaderException();
+ assertNull(exception.getMessage());
+ assertNull(exception.getCause());
+ }
+
+ /**
+ * Test method for {@link DigesterDefinitionsReaderException#DigesterDefinitionsReaderException(java.lang.String)}.
+ */
+ @Test
+ public void testDigesterDefinitionsReaderExceptionString() {
+ DigesterDefinitionsReaderException exception = new DigesterDefinitionsReaderException("my message");
+ assertEquals("my message", exception.getMessage());
+ assertNull(exception.getCause());
+ }
+
+ /**
+ * Test method for {@link DigesterDefinitionsReaderException#DigesterDefinitionsReaderException(java.lang.Throwable)}.
+ */
+ @Test
+ public void testDigesterDefinitionsReaderExceptionThrowable() {
+ Throwable cause = new Throwable();
+ DigesterDefinitionsReaderException exception = new DigesterDefinitionsReaderException(cause);
+ assertEquals(cause.toString(), exception.getMessage());
+ assertEquals(cause, exception.getCause());
+ }
+
+ /**
+ * Test method for {@link DigesterDefinitionsReaderException#DigesterDefinitionsReaderException(java.lang.String, java.lang.Throwable)}.
+ */
+ @Test
+ public void testDigesterDefinitionsReaderExceptionStringThrowable() {
+ Throwable cause = new Throwable();
+ DigesterDefinitionsReaderException exception = new DigesterDefinitionsReaderException("my message", cause);
+ assertEquals("my message", exception.getMessage());
+ assertEquals(cause, exception.getCause());
+ }
+
+}
Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderExceptionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/DigesterDefinitionsReaderExceptionTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java Mon May 10 19:58:07 2010
@@ -21,20 +21,20 @@
package org.apache.tiles.definition.digester;
+import static org.junit.Assert.*;
+
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.List;
import java.util.Map;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
import org.apache.tiles.Attribute;
import org.apache.tiles.Definition;
import org.apache.tiles.ListAttribute;
import org.apache.tiles.definition.DefinitionsFactoryException;
+import org.junit.Before;
+import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,7 +43,7 @@ import org.slf4j.LoggerFactory;
*
* @version $Rev$ $Date$
*/
-public class TestDigesterDefinitionsReader extends TestCase {
+public class TestDigesterDefinitionsReader {
/**
* The logging object.
@@ -57,36 +57,12 @@ public class TestDigesterDefinitionsRead
private DigesterDefinitionsReader reader;
/**
- * Creates a new instance of TestDigesterDefinitionsReader.
+ * Sets up the test.
*
- * @param name The name of the test.
- */
- public TestDigesterDefinitionsReader(String name) {
- super(name);
- }
-
- /**
- * Start the tests.
- *
- * @param theArgs the arguments. Not used
- */
- public static void main(String[] theArgs) {
- junit.textui.TestRunner.main(
- new String[] { TestDigesterDefinitionsReader.class.getName()});
- }
-
- /**
- * @return a test suite (<code>TestSuite</code>) that includes all methods
- * starting with "test"
+ * @throws Exception
*/
- public static Test suite() {
- return new TestSuite(TestDigesterDefinitionsReader.class);
- }
-
- /** {@inheritDoc} */
- @Override
- protected void setUp() throws Exception {
- super.setUp();
+ @Before
+ public void setUp() {
reader = new DigesterDefinitionsReader();
}
@@ -95,6 +71,7 @@ public class TestDigesterDefinitionsRead
* @throws IOException If something goes wrong.
*/
@SuppressWarnings("unchecked")
+ @Test
public void testRead() throws IOException {
URL configFile = this.getClass().getClassLoader().getResource(
"org/apache/tiles/config/tiles-defs.xml");
@@ -136,6 +113,7 @@ public class TestDigesterDefinitionsRead
* version of the DTD.
* @throws IOException If something goes wrong.
*/
+ @Test
public void testRead21Version() throws IOException {
URL configFile = this.getClass().getClassLoader().getResource(
"org/apache/tiles/config/tiles-defs-2.1.xml");
@@ -220,6 +198,7 @@ public class TestDigesterDefinitionsRead
/**
* Tests read with bad input source.
*/
+ @Test
public void testBadSource() {
try {
// Read definitions.
@@ -238,6 +217,7 @@ public class TestDigesterDefinitionsRead
/**
* Tests read with bad XML source.
*/
+ @Test
public void testBadXml() {
try {
URL configFile = this.getClass().getClassLoader().getResource(
@@ -263,6 +243,7 @@ public class TestDigesterDefinitionsRead
* This test case enables Digester's validating property then passes in a
* configuration file with invalid XML.
*/
+ @Test
public void testValidatingParameter() {
// Testing with default (validation ON).
try {
@@ -304,6 +285,7 @@ public class TestDigesterDefinitionsRead
*
* @throws IOException If something goes wrong.
*/
+ @Test
public void testRegressionTiles352() throws IOException {
URL configFile = this.getClass().getClassLoader().getResource(
"org/apache/tiles/config/defs_regression_TILES-352.xml");
@@ -319,4 +301,21 @@ public class TestDigesterDefinitionsRead
List<Attribute> list = listAttribute.getValue();
assertEquals((list.get(0)).getValue(), "This is a value");
}
+
+ /**
+ * Tests {@link DigesterDefinitionsReader#read(Object)}.
+ */
+ @Test
+ public void testReadNoSource() {
+ assertNull(reader.read(null));
+ }
+
+ /**
+ * Tests {@link DigesterDefinitionsReader#addDefinition(Definition)}.
+ */
+ @Test(expected=DigesterDefinitionsReaderException.class)
+ public void testAddDefinitionNoName() {
+ Definition def = new Definition();
+ reader.addDefinition(def);
+ }
}
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java?rev=942880&r1=942879&r2=942880&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/definition/pattern/PatternUtilTest.java Mon May 10 19:58:07 2010
@@ -31,6 +31,7 @@ import java.util.Set;
import org.apache.tiles.Attribute;
import org.apache.tiles.Definition;
+import org.apache.tiles.Expression;
import org.apache.tiles.ListAttribute;
import org.junit.Test;
@@ -56,6 +57,8 @@ public class PatternUtilTest {
Map<String, Attribute> attributes = new HashMap<String, Attribute>();
attributes.put("attrib1", new Attribute("value{2}"));
attributes.put("attrib2", new Attribute("value{2}{3}"));
+ attributes.put("attrib3", new Attribute(null, Expression
+ .createExpression("expr{1}", "EL"), null, null));
Definition definition = new Definition("definitionName", new Attribute(
"template{1}"), attributes);
definition.setExtends("{2}ext");
@@ -71,6 +74,8 @@ public class PatternUtilTest {
assertEquals("valuevalue2", attribute.getValue());
attribute = nudef.getAttribute("attrib2");
assertEquals("valuevalue2value3", attribute.getValue());
+ attribute = nudef.getAttribute("attrib3");
+ assertEquals("exprvalue1", attribute.getExpressionObject().getExpression());
}
/**