Return-Path: X-Original-To: apmail-sling-commits-archive@www.apache.org Delivered-To: apmail-sling-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5546C1194E for ; Wed, 2 Jul 2014 09:52:41 +0000 (UTC) Received: (qmail 59068 invoked by uid 500); 2 Jul 2014 09:52:41 -0000 Delivered-To: apmail-sling-commits-archive@sling.apache.org Received: (qmail 59011 invoked by uid 500); 2 Jul 2014 09:52:41 -0000 Mailing-List: contact commits-help@sling.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@sling.apache.org Delivered-To: mailing list commits@sling.apache.org Received: (qmail 59002 invoked by uid 99); 2 Jul 2014 09:52:41 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 02 Jul 2014 09:52:41 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 02 Jul 2014 09:52:39 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id B87172388994; Wed, 2 Jul 2014 09:52:19 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1607304 - /sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java Date: Wed, 02 Jul 2014 09:52:19 -0000 To: commits@sling.apache.org From: asanso@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20140702095219.B87172388994@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: asanso Date: Wed Jul 2 09:52:19 2014 New Revision: 1607304 URL: http://svn.apache.org/r1607304 Log: SLING-3712 - Increase code coverage for MapEntries Modified: sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java Modified: sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java?rev=1607304&r1=1607303&r2=1607304&view=diff ============================================================================== --- sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java (original) +++ sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java Wed Jul 2 09:52:19 2014 @@ -79,6 +79,7 @@ public class MapEntriesTest { configs.add(new VanityPathConfig("/foo/", false)); configs.add(new VanityPathConfig("/baa/", false)); configs.add(new VanityPathConfig("/justVanityPath", false)); + configs.add(new VanityPathConfig("/justVanityPath2", false)); configs.add(new VanityPathConfig("/badVanityPath", false)); configs.add(new VanityPathConfig("/redirectingVanityPath", false)); configs.add(new VanityPathConfig("/redirectingVanityPath301", false)); @@ -542,4 +543,70 @@ public class MapEntriesTest { } + @Test + public void test_doUpdateVanityOrder() throws Exception { + Field field0 = MapEntries.class.getDeclaredField("resolveMapsMap"); + field0.setAccessible(true); + Map> resolveMapsMap = (Map>) field0.get(mapEntries); + assertEquals(1, resolveMapsMap.size()); + + Field field = MapEntries.class.getDeclaredField("vanityTargets"); + field.setAccessible(true); + Map> vanityTargets = (Map>) field.get(mapEntries); + assertEquals(0, vanityTargets.size()); + + Method method = MapEntries.class.getDeclaredMethod("doAddVanity", String.class); + method.setAccessible(true); + + Method method1 = MapEntries.class.getDeclaredMethod("doUpdateVanityOrder", String.class, boolean.class); + method1.setAccessible(true); + + Resource justVanityPath = mock(Resource.class, "justVanityPath"); + when(resourceResolver.getResource("/justVanityPath")).thenReturn(justVanityPath); + when(justVanityPath.getPath()).thenReturn("/justVanityPath"); + when(justVanityPath.getName()).thenReturn("justVanityPath"); + when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath")); + + method.invoke(mapEntries, "/justVanityPath"); + + Resource justVanityPath2 = mock(Resource.class, "justVanityPath2"); + when(resourceResolver.getResource("/justVanityPath2")).thenReturn(justVanityPath2); + when(justVanityPath2.getPath()).thenReturn("/justVanityPath2"); + when(justVanityPath2.getName()).thenReturn("justVanityPath2"); + when(justVanityPath2.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath","sling:vanityOrder", 100)); + + method.invoke(mapEntries, "/justVanityPath2"); + + assertEquals(2, resolveMapsMap.size()); + assertEquals(2, vanityTargets.size()); + assertNotNull(resolveMapsMap.get("/target/justVanityPath")); + + Iterator iterator = resolveMapsMap.get("/target/justVanityPath").iterator(); + assertEquals("/justVanityPath2$1", iterator.next().getRedirect()[0]); + assertEquals("/justVanityPath$1", iterator.next().getRedirect()[0]); + assertEquals("/justVanityPath2.html", iterator.next().getRedirect()[0]); + assertEquals("/justVanityPath.html", iterator.next().getRedirect()[0]); + assertFalse(iterator.hasNext()); + + when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath","sling:vanityOrder", 1000)); + method1.invoke(mapEntries, "/justVanityPath",false); + + iterator = resolveMapsMap.get("/target/justVanityPath").iterator(); + assertEquals("/justVanityPath$1", iterator.next().getRedirect()[0]); + assertEquals("/justVanityPath2$1", iterator.next().getRedirect()[0]); + assertEquals("/justVanityPath.html", iterator.next().getRedirect()[0]); + assertEquals("/justVanityPath2.html", iterator.next().getRedirect()[0]); + assertFalse(iterator.hasNext()); + + when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath")); + method1.invoke(mapEntries, "/justVanityPath",true); + + iterator = resolveMapsMap.get("/target/justVanityPath").iterator(); + assertEquals("/justVanityPath2$1", iterator.next().getRedirect()[0]); + assertEquals("/justVanityPath$1", iterator.next().getRedirect()[0]); + assertEquals("/justVanityPath2.html", iterator.next().getRedirect()[0]); + assertEquals("/justVanityPath.html", iterator.next().getRedirect()[0]); + assertFalse(iterator.hasNext()); + } + }