/******************************************************************************* * Copyright (c) 2002, 2009 Innoopract Informationssysteme GmbH. * 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: * Innoopract Informationssysteme GmbH - initial API and implementation ******************************************************************************/ package org.eclipse.rwt.internal.branding; import java.io.IOException; import junit.framework.TestCase; import org.eclipse.rwt.Fixture; import org.eclipse.rwt.branding.AbstractBranding; import org.eclipse.rwt.branding.Header; import org.eclipse.rwt.internal.resources.ResourceManager; import org.eclipse.rwt.internal.service.StartupPageTemplateHolder; public class BrandingUtil_Test extends TestCase { private static class TestBranding extends AbstractBranding { String favIcon; Header[] headers; String exitConfMessage; boolean showExitConf; public String getBody() { return null; } public boolean showExitConfirmation() { return showExitConf; } public String getExitConfirmationText() { return exitConfMessage; } public String getFavIcon() { return favIcon; } public Header[] getHeaders() { return headers; } public String getServletName() { return "W4TDelegate"; } public String getId() { return TestBranding.class.getName(); } public void registerResources() throws IOException { if( favIcon != null && !"".equals( favIcon ) ) { ResourceManager.getInstance().register( favIcon ); } } } public void testReplacePlaceholder() { String templateString = StartupPageTemplateHolder.VAR_ENTRY_POINT.toString(); StartupPageTemplateHolder template = new StartupPageTemplateHolder( templateString ); BrandingUtil.replacePlaceholder( template, StartupPageTemplateHolder.VAR_ENTRY_POINT, "replacement" ); assertEquals( "replacement", getTemplateContent( template ).toString() ); template.reset(); BrandingUtil.replacePlaceholder( template, StartupPageTemplateHolder.VAR_ENTRY_POINT, null ); assertEquals( "", getTemplateContent( template ).toString() ); } private StringBuffer getTemplateContent( final StartupPageTemplateHolder template ) { String[] tokens = template.getTokens(); StringBuffer result = new StringBuffer(); for( int i = 0; i < tokens.length; i++ ) { result.append( tokens[ i ] ); } return result; } public void testHeaderMarkup() { String expected; String markup; TestBranding branding = new TestBranding(); // No fav icon branding.favIcon = null; markup = BrandingUtil.headerMarkup( branding ); assertEquals( "", markup ); branding.favIcon = ""; markup = BrandingUtil.headerMarkup( branding ); assertEquals( "", markup ); // Ordinary fav icon branding.favIcon = "my/fav/icon.ico"; markup = BrandingUtil.headerMarkup( branding ); expected = "<link rel=\"shortcut icon\" " + "type=\"image/x-icon\" " + "href=\"rwt-resources/my/fav/icon.ico\" />\n"; assertEquals( expected, markup ); // Some header without attributes branding.favIcon = null; branding.headers = new Header[] { new Header( "meta", new String[ 0 ], new String[ 0 ] ) }; markup = BrandingUtil.headerMarkup( branding ); assertEquals( "<meta />\n", markup ); // Some header with attributes branding.favIcon = null; branding.headers = new Header[] { new Header( "meta", new String[] { "name" }, new String[] { "value" } ) }; markup = BrandingUtil.headerMarkup( branding ); assertEquals( "<meta name=\"value\" />\n", markup ); // Header with attributes that have a null-name or-value: will be ignored branding.favIcon = null; branding.headers = new Header[] { new Header( "meta", new String[] { null, "name", null }, new String[] { null, null, "value" } ) }; markup = BrandingUtil.headerMarkup( branding ); assertEquals( "<meta />\n", markup ); // fav icon and header branding.favIcon = "my/fav/icon.ico"; branding.headers = new Header[] { new Header( "meta", new String[] { "name" }, new String[] { "value" } ) }; markup = BrandingUtil.headerMarkup( branding ); expected = "<link href=\"my/fav/icon.ico\" " + "type=\"image/x-icon\" " + "rel=\"shortcut icon\" />\n" + "<meta name=\"value\" />\n"; } public void testGetCurrentBrandingId1() { BrandingUtil.findBranding(); String currentBrandingId = BrandingUtil.getCurrentBrandingId(); assertEquals( BrandingManager.DEFAULT_BRANDING_ID, currentBrandingId ); } public void testGetCurrentBrandingId2() { TestBranding branding = new TestBranding(); BrandingManager.register( branding ); try { BrandingUtil.findBranding(); String currentBrandingId = BrandingUtil.getCurrentBrandingId(); assertEquals( branding.getId(), currentBrandingId ); } finally { BrandingManager.deregister( branding ); } } protected void setUp() throws Exception { Fixture.setUp(); } protected void tearDown() throws Exception { Fixture.tearDown(); } }