Author: jdonnerstag Date: Fri Jul 8 18:51:55 2011 New Revision: 1144421 URL: http://svn.apache.org/viewvc?rev=1144421&view=rev Log: additional test case: When base markup file has been removed from the cache, the the derived markup should be removed as well Issue: WICKET-3878
Modified: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/MarkupCacheTest.java Modified: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/MarkupCacheTest.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/MarkupCacheTest.java?rev=1144421&r1=1144420&r2=1144421&view=diff ============================================================================== --- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/MarkupCacheTest.java (original) +++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/MarkupCacheTest.java Fri Jul 8 18:51:55 2011 @@ -16,6 +16,7 @@ */ package org.apache.wicket.markup; +import org.apache.wicket.Application; import org.apache.wicket.MarkupContainer; import org.apache.wicket.WicketTestCase; import org.apache.wicket.markup.html.panel.Panel; @@ -35,6 +36,15 @@ public class MarkupCacheTest extends Wic super.setUp(); cache = new MarkupCache(); + Application.get().getMarkupSettings().setMarkupFactory(new MarkupFactory() + { + @Override + public IMarkupCache getMarkupCache() + { + return cache; + } + }); + component = new MarkupCachingAssumingComponent("panel"); tester.startComponent(component); } @@ -51,6 +61,25 @@ public class MarkupCacheTest extends Wic assertNull(markup); } + /** + * testRemoveMarkupWhereBaseMarkupIsNoLongerInTheCache() + */ + public void testRemoveMarkupWhereBaseMarkupIsNoLongerInTheCache() + { + tester.startPage(MarkupInheritanceExtension_1.class); + tester.assertRenderedPage(MarkupInheritanceExtension_1.class); + MarkupInheritanceExtension_1 page = (MarkupInheritanceExtension_1)tester.getLastRenderedPage(); + + IMarkupFragment markup = cache.getMarkup(page, null, false); + assertNotNull(markup); + + String key = markup.getMarkupResourceStream().getBaseMarkupResourceStream().getCacheKey(); + cache.removeMarkup(key); + + markup = cache.getMarkupFromCache(markup.getMarkupResourceStream().getCacheKey(), page); + assertNull(markup); + } + private static class MarkupCachingAssumingComponent extends Panel implements IMarkupResourceStreamProvider