You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ta...@apache.org on 2020/10/06 11:38:20 UTC
[myfaces] branch master updated: MYFACES-4225 tests
This is an automated email from the ASF dual-hosted git repository.
tandraschko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces.git
The following commit(s) were added to refs/heads/master by this push:
new 8bb2ddf MYFACES-4225 tests
8bb2ddf is described below
commit 8bb2ddf9f0dce365f4082a03d3d3272710854e11
Author: Thomas Andraschko <ta...@apache.org>
AuthorDate: Tue Oct 6 13:38:10 2020 +0200
MYFACES-4225 tests
---
.../myfaces/application/ResourceHandlerImpl.java | 56 +++++++++++-----------
.../resource/ClassLoaderResourceLoader.java | 4 ++
.../myfaces/resource/ResourceHandlerCache.java | 2 +-
.../application/ResourceHandlerImplTest.java | 33 +++++++++++++
4 files changed, 66 insertions(+), 29 deletions(-)
diff --git a/impl/src/main/java/org/apache/myfaces/application/ResourceHandlerImpl.java b/impl/src/main/java/org/apache/myfaces/application/ResourceHandlerImpl.java
index 5a7be96..63e0470 100644
--- a/impl/src/main/java/org/apache/myfaces/application/ResourceHandlerImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/application/ResourceHandlerImpl.java
@@ -164,7 +164,7 @@ public class ResourceHandlerImpl extends ResourceHandler
// contract name.
if (contractPreferred != null)
{
- resourceValue = getResourceLoaderCache().getResource(
+ resourceValue = getResourceHandlerCache().getResource(
resourceName, libraryName, contentType, localePrefix, contractPreferred);
}
if (resourceValue == null && !contracts.isEmpty())
@@ -172,7 +172,7 @@ public class ResourceHandlerImpl extends ResourceHandler
// Try to get resource but try with a contract name
for (String contract : contracts)
{
- resourceValue = getResourceLoaderCache().getResource(
+ resourceValue = getResourceHandlerCache().getResource(
resourceName, libraryName, contentType, localePrefix, contract);
if (resourceValue != null)
{
@@ -184,7 +184,7 @@ public class ResourceHandlerImpl extends ResourceHandler
if (resourceValue == null)
{
// Try to get resource without contract name
- resourceValue = getResourceLoaderCache().getResource(resourceName, libraryName, contentType, localePrefix);
+ resourceValue = getResourceHandlerCache().getResource(resourceName, libraryName, contentType, localePrefix);
}
if(resourceValue != null)
@@ -210,7 +210,7 @@ public class ResourceHandlerImpl extends ResourceHandler
getResourceHandlerSupport(), contentType);
// cache it
- getResourceLoaderCache().putResource(resourceName, libraryName, contentType,
+ getResourceHandlerCache().putResource(resourceName, libraryName, contentType,
localePrefix, contractPreferred, resourceMeta, loader,
new ResourceCachedInfo(resource.getURL(), resource.getRequestPath()));
resolved = true;
@@ -234,7 +234,7 @@ public class ResourceHandlerImpl extends ResourceHandler
getResourceHandlerSupport(), contentType);
// cache it
- getResourceLoaderCache().putResource(
+ getResourceHandlerCache().putResource(
resourceName, libraryName, contentType,
localePrefix, contract, resourceMeta, loader,
new ResourceCachedInfo(resource.getURL(), resource.getRequestPath()));
@@ -257,7 +257,7 @@ public class ResourceHandlerImpl extends ResourceHandler
resourceMeta, loader, getResourceHandlerSupport(), contentType);
// cache it
- getResourceLoaderCache().putResource(resourceName, libraryName, contentType,
+ getResourceHandlerCache().putResource(resourceName, libraryName, contentType,
localePrefix, null, resourceMeta, loader,
new ResourceCachedInfo(resource.getURL(), resource.getRequestPath()));
break;
@@ -810,13 +810,13 @@ public class ResourceHandlerImpl extends ResourceHandler
//Check with locale
pathToLib = localePrefix + '/' + libraryName;
- libraryFound = getResourceLoaderCache().libraryExists(pathToLib);
+ libraryFound = getResourceHandlerCache().libraryExists(pathToLib);
if (libraryFound != null)
{
return libraryFound;
}
}
- libraryFound = getResourceLoaderCache().libraryExists(libraryName);
+ libraryFound = getResourceHandlerCache().libraryExists(libraryName);
if (libraryFound != null)
{
return libraryFound;
@@ -832,7 +832,7 @@ public class ResourceHandlerImpl extends ResourceHandler
{
if (loader.libraryExists(pathToLib, contract))
{
- getResourceLoaderCache().confirmLibraryExists(pathToLib);
+ getResourceHandlerCache().confirmLibraryExists(pathToLib);
return true;
}
}
@@ -843,7 +843,7 @@ public class ResourceHandlerImpl extends ResourceHandler
{
if (loader.libraryExists(pathToLib))
{
- getResourceLoaderCache().confirmLibraryExists(pathToLib);
+ getResourceHandlerCache().confirmLibraryExists(pathToLib);
return true;
}
}
@@ -858,7 +858,7 @@ public class ResourceHandlerImpl extends ResourceHandler
{
if (loader.libraryExists(libraryName, contract))
{
- getResourceLoaderCache().confirmLibraryExists(libraryName);
+ getResourceHandlerCache().confirmLibraryExists(libraryName);
return true;
}
}
@@ -869,7 +869,7 @@ public class ResourceHandlerImpl extends ResourceHandler
{
if (loader.libraryExists(libraryName))
{
- getResourceLoaderCache().confirmLibraryExists(libraryName);
+ getResourceHandlerCache().confirmLibraryExists(libraryName);
return true;
}
}
@@ -877,11 +877,11 @@ public class ResourceHandlerImpl extends ResourceHandler
if (localePrefix != null)
{
//Check with locale
- getResourceLoaderCache().confirmLibraryNotExists(pathToLib);
+ getResourceHandlerCache().confirmLibraryNotExists(pathToLib);
}
else
{
- getResourceLoaderCache().confirmLibraryNotExists(libraryName);
+ getResourceHandlerCache().confirmLibraryNotExists(libraryName);
}
return false;
}
@@ -900,7 +900,7 @@ public class ResourceHandlerImpl extends ResourceHandler
return _resourceHandlerSupport;
}
- private ResourceHandlerCache getResourceLoaderCache()
+ protected ResourceHandlerCache getResourceHandlerCache()
{
if (_resourceHandlerCache == null)
{
@@ -909,7 +909,7 @@ public class ResourceHandlerImpl extends ResourceHandler
return _resourceHandlerCache;
}
- private String _getContentType(Resource resource, ExternalContext externalContext)
+ protected String _getContentType(Resource resource, ExternalContext externalContext)
{
String contentType = resource.getContentType();
@@ -996,14 +996,14 @@ public class ResourceHandlerImpl extends ResourceHandler
// a contract.
if (contractPreferred != null)
{
- resourceValue = getResourceLoaderCache().getResource(resourceId, contractPreferred);
+ resourceValue = getResourceHandlerCache().getResource(resourceId, contractPreferred);
}
if (resourceValue == null && !contracts.isEmpty())
{
// Try to get resource but try with a contract name
for (String contract : contracts)
{
- resourceValue = getResourceLoaderCache().getResource(resourceId, contract);
+ resourceValue = getResourceHandlerCache().getResource(resourceId, contract);
if (resourceValue != null)
{
break;
@@ -1013,7 +1013,7 @@ public class ResourceHandlerImpl extends ResourceHandler
if (resourceValue == null)
{
// Try to get resource without contract name
- resourceValue = getResourceLoaderCache().getResource(resourceId);
+ resourceValue = getResourceHandlerCache().getResource(resourceId);
}
if (resourceValue != null)
@@ -1045,7 +1045,7 @@ public class ResourceHandlerImpl extends ResourceHandler
getResourceHandlerSupport(), contentType);
// cache it
- getResourceLoaderCache().putResource(resourceId, resourceMeta, loader,
+ getResourceHandlerCache().putResource(resourceId, resourceMeta, loader,
new ResourceCachedInfo(resource.getURL(), resource.getRequestPath()));
resolved = true;
@@ -1071,7 +1071,7 @@ public class ResourceHandlerImpl extends ResourceHandler
getResourceHandlerSupport(), contentType);
// cache it
- getResourceLoaderCache().putResource(resourceId, resourceMeta, loader,
+ getResourceHandlerCache().putResource(resourceId, resourceMeta, loader,
new ResourceCachedInfo(resource.getURL(), resource.getRequestPath()));
resolved = true;
@@ -1094,7 +1094,7 @@ public class ResourceHandlerImpl extends ResourceHandler
resource = new ResourceImpl(resourceMeta, loader, getResourceHandlerSupport(), contentType);
// cache it
- getResourceLoaderCache().putResource(resourceId, resourceMeta, loader,
+ getResourceHandlerCache().putResource(resourceId, resourceMeta, loader,
new ResourceCachedInfo(resource.getURL(), resource.getRequestPath()));
break;
}
@@ -1577,7 +1577,7 @@ public class ResourceHandlerImpl extends ResourceHandler
// a contract.
if (contractPreferred != null)
{
- resourceValue = getResourceLoaderCache().getViewResource(
+ resourceValue = getResourceHandlerCache().getViewResource(
resourceName, contentType, localePrefix, contractPreferred);
}
if (resourceValue == null && !contracts.isEmpty())
@@ -1585,7 +1585,7 @@ public class ResourceHandlerImpl extends ResourceHandler
// Try to get resource but try with a contract name
for (String contract : contracts)
{
- resourceValue = getResourceLoaderCache().getViewResource(
+ resourceValue = getResourceHandlerCache().getViewResource(
resourceName, contentType, localePrefix, contract);
if (resourceValue != null)
{
@@ -1596,7 +1596,7 @@ public class ResourceHandlerImpl extends ResourceHandler
if (resourceValue == null)
{
// Try to get resource without contract name
- resourceValue = getResourceLoaderCache().getViewResource(resourceName, contentType, localePrefix);
+ resourceValue = getResourceHandlerCache().getViewResource(resourceName, contentType, localePrefix);
}
if(resourceValue != null)
@@ -1619,7 +1619,7 @@ public class ResourceHandlerImpl extends ResourceHandler
resource = new ResourceImpl(resourceMeta, loader, getResourceHandlerSupport(), contentType);
// cache it
- getResourceLoaderCache().putViewResource(
+ getResourceHandlerCache().putViewResource(
resourceName, contentType, localePrefix, contractPreferred, resourceMeta, loader,
new ResourceCachedInfo(resource.getURL(), null));
@@ -1643,7 +1643,7 @@ public class ResourceHandlerImpl extends ResourceHandler
getResourceHandlerSupport(), contentType);
// cache it
- getResourceLoaderCache().putViewResource(
+ getResourceHandlerCache().putViewResource(
resourceName, contentType, localePrefix, contract, resourceMeta, loader,
new ResourceCachedInfo(resource.getURL(), null));
@@ -1669,7 +1669,7 @@ public class ResourceHandlerImpl extends ResourceHandler
resource = new ResourceImpl(resourceMeta, loader, getResourceHandlerSupport(), contentType);
// cache it
- getResourceLoaderCache().putViewResource(
+ getResourceHandlerCache().putViewResource(
resourceName, contentType, localePrefix, resourceMeta, loader,
new ResourceCachedInfo(resource.getURL(), null));
break;
diff --git a/impl/src/main/java/org/apache/myfaces/resource/ClassLoaderResourceLoader.java b/impl/src/main/java/org/apache/myfaces/resource/ClassLoaderResourceLoader.java
index c95f3b8..caf9ecd 100644
--- a/impl/src/main/java/org/apache/myfaces/resource/ClassLoaderResourceLoader.java
+++ b/impl/src/main/java/org/apache/myfaces/resource/ClassLoaderResourceLoader.java
@@ -100,6 +100,10 @@ public class ClassLoaderResourceLoader extends ResourceLoader
@Override
public URL getResourceURL(ResourceMeta resourceMeta)
{
+ if (resourceMeta == null)
+ {
+ return null;
+ }
return getResourceURL(resourceMeta.getResourceIdentifier());
}
diff --git a/impl/src/main/java/org/apache/myfaces/resource/ResourceHandlerCache.java b/impl/src/main/java/org/apache/myfaces/resource/ResourceHandlerCache.java
index cfd89fa..367aed2 100644
--- a/impl/src/main/java/org/apache/myfaces/resource/ResourceHandlerCache.java
+++ b/impl/src/main/java/org/apache/myfaces/resource/ResourceHandlerCache.java
@@ -149,7 +149,7 @@ public class ResourceHandlerCache
log.log(Level.FINE, "Attemping to get resource from cache for " + resourceId);
}
- return _resourceCacheMap.get(contractName+':'+resourceId);
+ return _resourceCacheMap.get(contractName + ':' + resourceId);
}
public boolean containsResource(String resourceId, String contractName)
diff --git a/impl/src/test/java/org/apache/myfaces/application/ResourceHandlerImplTest.java b/impl/src/test/java/org/apache/myfaces/application/ResourceHandlerImplTest.java
index 607fa66..7452e1b 100644
--- a/impl/src/test/java/org/apache/myfaces/application/ResourceHandlerImplTest.java
+++ b/impl/src/test/java/org/apache/myfaces/application/ResourceHandlerImplTest.java
@@ -29,9 +29,13 @@ import java.net.URL;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
+import org.apache.myfaces.resource.ClassLoaderResourceLoader;
+import org.apache.myfaces.resource.ResourceHandlerCache;
+import org.apache.myfaces.resource.ResourceHandlerSupport;
import org.apache.myfaces.resource.ResourceLoader;
import org.apache.myfaces.resource.ResourceMeta;
import org.apache.myfaces.resource.ResourceMetaImpl;
+import org.mockito.Mockito;
/**
* Test cases for org.apache.myfaces.application.ResourceHandlerImpl.
@@ -227,4 +231,33 @@ public class ResourceHandlerImplTest extends AbstractJsfTestCase
Assert.assertTrue(didNPEOccur);
}
+
+ @Test
+ public void testCache()
+ {
+ ResourceLoader loader = Mockito.spy(new ClassLoaderResourceLoader(null));
+ Mockito.when(loader.resourceExists(Mockito.any())).thenReturn(true);
+
+ ResourceHandlerCache cache = Mockito.spy(new ResourceHandlerCache());
+
+ ResourceHandlerSupport support = Mockito.spy(new DefaultResourceHandlerSupport());
+ Mockito.when(support.getResourceLoaders()).thenReturn(new ResourceLoader[] { loader });
+
+ resourceHandler = Mockito.spy(resourceHandler);
+ Mockito.when(resourceHandler.getResourceHandlerCache()).thenReturn(cache);
+ Mockito.when(resourceHandler.getResourceHandlerSupport()).thenReturn(support);
+
+ resourceHandler.createResource("test.png", "test", "test");
+ resourceHandler.createResource("test.png", "test", "test");
+ resourceHandler.createResource("test.png", "test", "test");
+ resourceHandler.createResource("test.png", "test", "test");
+
+ Mockito.verify(cache, Mockito.times(4)).getResource(
+ Mockito.eq("test.png"), Mockito.eq("test"), Mockito.eq("test"), Mockito.any());
+ Mockito.verify(cache, Mockito.times(1)).putResource(
+ Mockito.eq("test.png"), Mockito.eq("test"), Mockito.eq("test"), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any());
+ Mockito.verify(loader, Mockito.times(1)).createResourceMeta(
+ Mockito.any(), Mockito.eq("test"), Mockito.any(), Mockito.eq("test.png"), Mockito.any());
+
+ }
}