/* * * Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved. * * This file is part of jAPS software. * jAPS is a free software; * you can redistribute it and/or modify it * under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; version 2. * * See the file License for the specific language governing permissions * and limitations under the License * * * * Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved. * */ package test.com.agiletec.plugins.jacms.aps.system.services.linkresolver; import test.com.agiletec.aps.BaseTestCase; import com.agiletec.aps.system.RequestContext; import com.agiletec.aps.system.SystemConstants; import com.agiletec.aps.system.services.lang.Lang; import com.agiletec.plugins.jacms.aps.system.JacmsSystemConstants; import com.agiletec.plugins.jacms.aps.system.services.content.model.SymbolicLink; import com.agiletec.plugins.jacms.aps.system.services.linkresolver.ILinkResolverManager; /** * @author W.Ambu - M.Diana */ public class TestLinkResolverManager extends BaseTestCase { public void setUp() throws Exception { try { super.setUp(); _reqCtx = this.getRequestContext(); Lang lang = new Lang(); lang.setCode("it"); lang.setDescr("italiano"); _reqCtx.addExtraParam(SystemConstants.EXTRAPAR_CURRENT_LANG, lang); this.init(); } catch (Throwable t) { throw new Exception(t); } } public void testResolveNoLinks(){ String text = ""; String resolvedText; resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(text, resolvedText); text = "Qui non c'è alcun link"; resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(text, resolvedText); text = text + SymbolicLink.SYMBOLIC_DEST_POSTFIX + text + SymbolicLink.SYMBOLIC_DEST_PREFIX + text; resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(text, resolvedText); } public void testResolvePageLink(){ SymbolicLink link = new SymbolicLink(); link.setDestinationToPage("primapagina"); String text = "Qui c'è un link: '" + link.getSymbolicDestination() + "'; fine"; String expected = "Qui c'è un link: '/japs/it/primapagina.page'; fine"; String resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(expected, resolvedText); } public void testResolveURLLink() { SymbolicLink link = new SymbolicLink(); link.setDestinationToUrl("http://www.google.it"); String text = "Qui c'è un link: '" + link.getSymbolicDestination() + "'; fine"; String expected = "Qui c'è un link: 'http://www.google.it'; fine"; String resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(expected, resolvedText); } public void testResolveContentOnPageLink(){ SymbolicLink link = new SymbolicLink(); link.setDestinationToContentOnPage("ART1", "homepage"); String text = "Qui c'è un link: '" + link.getSymbolicDestination() + "'; fine"; String expected = "Qui c'è un link: '/japs/it/homepage.page?contentId=ART1'; fine"; String resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(expected, resolvedText); } public void testResolveContentLink(){ SymbolicLink link = new SymbolicLink(); link.setDestinationToContent("ART1"); String text = "Qui c'è un link: '" + link.getSymbolicDestination() + "'; fine"; String expected = "Qui c'è un link: '/japs/it/homepage.page'; fine"; String resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(expected, resolvedText); } public void testResolveWithNoise(){ SymbolicLink link = new SymbolicLink(); link.setDestinationToContentOnPage("ART1", "homepage"); String text = "Trabocchetto: " + SymbolicLink.SYMBOLIC_DEST_PREFIX + " - Qui c'è un link: ''" + link.getSymbolicDestination() + "'; " + "altro Trabocchetto: " + SymbolicLink.SYMBOLIC_DEST_POSTFIX + " fine"; String expected = "Trabocchetto: " + SymbolicLink.SYMBOLIC_DEST_PREFIX +" - Qui c'è un link: ''/japs/it/homepage.page?contentId=ART1'; " + "altro Trabocchetto: " + SymbolicLink.SYMBOLIC_DEST_POSTFIX + " fine"; String resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(expected, resolvedText); text = text + text; expected = expected + expected; resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(expected, resolvedText); } public void testResolveMix() { SymbolicLink link = new SymbolicLink(); link.setDestinationToContentOnPage("ART1", "homepage"); String one = link.getSymbolicDestination(); link.setDestinationToPage("primapagina"); String two = link.getSymbolicDestination(); String text = "Trabocchetto: " + SymbolicLink.SYMBOLIC_DEST_PREFIX + " - Qui c'è un link: ''" + one + "'; " + "altro Trabocchetto: " + SymbolicLink.SYMBOLIC_DEST_POSTFIX + " " + two + " fine"; String expected = "Trabocchetto: " + SymbolicLink.SYMBOLIC_DEST_PREFIX +" - Qui c'è un link: ''/japs/it/homepage.page?contentId=ART1'; " + "altro Trabocchetto: " + SymbolicLink.SYMBOLIC_DEST_POSTFIX + " /japs/it/primapagina.page fine"; String resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(expected, resolvedText); text = text + text; expected = expected + expected; resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(expected, resolvedText); } public void testResolveContentOnProtectedPageLink() throws Throwable { SymbolicLink link = new SymbolicLink(); link.setDestinationToContent("ART187"); String text = "Qui c'è un link: '" + link.getSymbolicDestination() + "'; fine"; String expected = "Qui c'è un link: '/japs/it/contentview.page?contentId=ART187'; fine"; String resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(expected, resolvedText); this.setUserOnSession("editorCustomers"); text = "Qui c'è un link: '" + link.getSymbolicDestination() + "'; fine"; expected = "Qui c'è un link: '/japs/it/contentview.page?contentId=ART187'; fine"; resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(expected, resolvedText); this.setUserOnSession("editorCoach"); text = "Qui c'è un link: '" + link.getSymbolicDestination() + "'; fine"; expected = "Qui c'è un link: '/japs/it/coach_page.page'; fine"; resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(expected, resolvedText); this.setUserOnSession("admin"); text = "Qui c'è un link: '" + link.getSymbolicDestination() + "'; fine"; expected = "Qui c'è un link: '/japs/it/coach_page.page'; fine"; resolvedText = _resolver.resolveLinks(text, _reqCtx); assertEquals(expected, resolvedText); } private void init() throws Exception { try { _resolver = (ILinkResolverManager) this.getService(JacmsSystemConstants.LINK_RESOLVER_MANAGER); } catch (Throwable t) { throw new Exception(t); } } private RequestContext _reqCtx; private ILinkResolverManager _resolver; }