/******************************************************************************* * Copyright (c) 2002-2006 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 com.w4t.markupembedderkit; import org.eclipse.rwt.internal.browser.*; import org.eclipse.rwt.internal.service.ContextProvider; import org.eclipse.rwt.internal.service.IServiceStateInfo; import junit.framework.TestCase; import com.w4t.*; import com.w4t.ajax.AjaxStatus; import com.w4t.types.WebColor; public class MarkupEmbedderRenderer_Test extends TestCase { protected void setUp() throws Exception { W4TFixture.setUp(); W4TFixture.createContext(); } protected void tearDown() throws Exception { W4TFixture.tearDown(); W4TFixture.removeContext(); } public void testSetContent() { MarkupEmbedder markupEmbedder = new MarkupEmbedder(); markupEmbedder.setContent( null ); assertEquals( "", markupEmbedder.getContent() ); } public void testStyle() { MarkupEmbedder markupEmbedder = new MarkupEmbedder(); // Style property of newly created MarkupEmbedder *must* be empty assertEquals( "", markupEmbedder.getStyle().toString() ); } public void testNoscript() throws Exception { // with default browser(noScript) W4TFixture.fakeBrowser( new Default( false, false ) ); MarkupEmbedder passthrough = new MarkupEmbedder(); W4TFixture.fakeResponseWriter(); W4TFixture.renderComponent( passthrough ); assertEquals( "<div id=\"p1\"></div>", getMarkup() ); passthrough.setContent( "my markup ����" ); W4TFixture.fakeResponseWriter(); W4TFixture.renderComponent( passthrough ); assertEquals( "<div id=\"p1\">my markup ����</div>", getMarkup() ); // with Ie5(noScript) W4TFixture.fakeBrowser( new Ie5( false, false ) ); passthrough = new MarkupEmbedder(); W4TFixture.fakeResponseWriter(); W4TFixture.renderComponent( passthrough ); assertEquals( "<div id=\"p2\"></div>", getMarkup() ); passthrough.setContent( "my markup ����" ); W4TFixture.fakeResponseWriter(); W4TFixture.renderComponent( passthrough ); assertEquals( "<div id=\"p2\">my markup ����</div>", getMarkup() ); } public void testScript() throws Exception { // with default browser(noScript) W4TFixture.fakeBrowser( new Default( true, false ) ); MarkupEmbedder markupEmbedder = new MarkupEmbedder(); W4TFixture.fakeResponseWriter(); W4TFixture.renderComponent( markupEmbedder ); assertEquals( "<div id=\"p1\"></div>", getMarkup() ); markupEmbedder.setContent( "my markup ����" ); W4TFixture.fakeResponseWriter(); W4TFixture.renderComponent( markupEmbedder ); assertEquals( "<div id=\"p1\">my markup ����</div>", getMarkup() ); // with Ie5(noScript) W4TFixture.fakeBrowser( new Ie5( true, false ) ); markupEmbedder = new MarkupEmbedder(); W4TFixture.fakeResponseWriter(); W4TFixture.renderComponent( markupEmbedder ); assertEquals( "<div id=\"p2\"></div>", getMarkup() ); markupEmbedder.setContent( "my markup ����" ); W4TFixture.fakeResponseWriter(); W4TFixture.renderComponent( markupEmbedder ); assertEquals( "<div id=\"p2\">my markup ����</div>", getMarkup() ); } public void testAjax() throws Exception { W4TFixture.fakeBrowser( new Ie6( true, true ) ); MarkupEmbedder markupEmbedder1 = new MarkupEmbedder(); W4TFixture.fakeResponseWriter(); W4TFixture.renderComponent( markupEmbedder1 ); assertEquals( "", getMarkup() ); markupEmbedder1.setContent( "my markup ����" ); W4TFixture.fakeResponseWriter(); W4TFixture.renderComponent( markupEmbedder1 ); assertEquals( "", getMarkup() ); setMustRender( markupEmbedder1 ); markupEmbedder1.setContent( "my markup ����" ); W4TFixture.fakeResponseWriter(); W4TFixture.renderComponent( markupEmbedder1 ); assertEquals( "<div id=\"p1\">my markup ����</div>", getMarkup() ); MarkupEmbedder markupEmbedder2 = new MarkupEmbedder(); W4TFixture.fakeResponseWriter(); W4TFixture.renderComponent( markupEmbedder2 ); assertEquals( "", getMarkup() ); markupEmbedder2.setContent( "my markup ����" ); setMustRender( markupEmbedder2 ); W4TFixture.fakeResponseWriter(); W4TFixture.renderComponent( markupEmbedder2 ); assertEquals( "<div id=\"p2\">my markup ����</div>", getMarkup() ); } public void testWithStyle() throws Exception { W4TFixture.fakeBrowser( new Default( true, false ) ); MarkupEmbedder markupEmbedder = new MarkupEmbedder(); markupEmbedder.getStyle().setBgColor( new WebColor( "red" ) ); markupEmbedder.setContent( "abc" ); W4TFixture.fakeResponseWriter(); W4TFixture.renderComponent( markupEmbedder ); assertEquals( "<div id=\"p1\" class=\"w4tCsse5abb2ae\">abc</div>", getMarkup() ); } private static void setMustRender( final WebComponent component ) { AjaxStatus ajaxStatus; ajaxStatus = ( AjaxStatus )component.getAdapter( AjaxStatus.class ); ajaxStatus.setMustRender( true ); } private static String getMarkup() { IServiceStateInfo stateInfo = ContextProvider.getStateInfo(); return W4TFixture.getAllMarkup( stateInfo.getResponseWriter() ); } }