/*
* (C) Copyright 2006-2007 Nuxeo SAS <http://nuxeo.com> and others
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Jean-Marc Orliaguet, Chalmers
*
* $Id$
*/
package org.nuxeo.theme.test.jsf.filters;
import java.net.URL;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import org.nuxeo.runtime.api.Framework;
import org.nuxeo.runtime.test.NXRuntimeTestCase;
import org.nuxeo.theme.Manager;
import org.nuxeo.theme.elements.PageElement;
import org.nuxeo.theme.engines.EngineType;
import org.nuxeo.theme.jsf.filters.standalone.FragmentTag;
import org.nuxeo.theme.rendering.Filter;
import org.nuxeo.theme.services.ThemeService;
import org.nuxeo.theme.types.TypeRegistry;
public class TestFragmentTagFilter extends NXRuntimeTestCase {
private ThemeService themeService;
private TypeRegistry typeRegistry;
DummyRenderingInfo info;
Filter filter;
PageElement page;
EngineType engine;
@Before
public void setUp() throws Exception {
super.setUp();
Manager.initializeProtocols();
deployContrib("org.nuxeo.theme.core", "OSGI-INF/nxthemes-core-service.xml");
deployContrib("org.nuxeo.theme.core", "OSGI-INF/nxthemes-core-contrib.xml");
// create the elements to render
page = new PageElement();
page.setUid(1);
// register test engine
engine = new EngineType();
engine.setName("engine");
themeService = (ThemeService) Framework.getRuntime().getComponent(
ThemeService.ID);
typeRegistry = (TypeRegistry) themeService.getRegistry("types");
typeRegistry.register(engine);
info = new DummyRenderingInfo(page, new URL(
"nxtheme://element/engine/mode/1234"));
filter = new FragmentTag();
}
@Test
public void testFilter1() {
info.setMarkup("<div>orginal markup</div>");
info.setDirty(true);
filter.process(info, true);
assertEquals(
"<nxthemes:fragment xmlns:nxthemes=\"http://nuxeo.org/nxthemes\" "
+ "uid=\"1\" engine=\"engine\" mode=\"mode\" />",
info.getMarkup());
}
@Test
public void testFilter2() {
info.setMarkup("<div>orginal markup</div>");
info.setDirty(false);
filter.process(info, true);
assertEquals("<div>orginal markup</div>", info.getMarkup());
}
}