/*******************************************************************************
* 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.webimagekit;
import junit.framework.TestCase;
import org.eclipse.rwt.internal.browser.Default;
import org.eclipse.rwt.internal.browser.Ie5up;
import org.eclipse.rwt.internal.lifecycle.HtmlResponseWriter;
import org.eclipse.rwt.internal.service.ContextProvider;
import com.w4t.W4TFixture;
import com.w4t.WebImage;
import com.w4t.ajax.AjaxStatus;
/**
* <p>
* Unit tests for WebImageRenderer.
* </p>
*/
public class WebImageRenderer_Test extends TestCase {
public void testAjaxRenderer() throws Exception {
WebImage image = new WebImage();
image.setValue( "my-image.jpg" );
W4TFixture.setWebComponentUniqueId( image, "page1" );
AjaxStatus ajaxStatus = ( AjaxStatus )image.getAdapter( AjaxStatus.class );
ajaxStatus.updateStatus( true );
HtmlResponseWriter writer = new HtmlResponseWriter();
W4TFixture.fakeBrowser( new Ie5up( true, true ) );
setResponseWriter( writer );
W4TFixture.renderComponent( image );
String markup;
markup = getBodyMarkup( writer );
String expected;
expected = "<img id=\"page1\" "
+ "src=\"my-image.jpg\" alt=\"\" border=\"0\" />";
assertEquals( expected, markup );
// add more attributes
writer = new HtmlResponseWriter();
setResponseWriter (writer);
image.setWidth( "100" );
image.setHeight( "100" );
image.setAlt( "alt_text" );
image.setBorder( "5" );
W4TFixture.renderComponent( image );
markup = getBodyMarkup( writer );
expected = "<img id=\"page1\" "
+ "src=\"my-image.jpg\" alt=\"alt_text\" "
+ "border=\"5\" width=\"100\" height=\"100\" />";
assertEquals( expected, markup );
// make disabled
image.setEnabled( false );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( image );
markup = getBodyMarkup( writer );
expected = "<img id=\"page1\" src=\"disabledmy-image.jpg\" "
+ "alt=\"alt_text\" "
+ "border=\"5\" width=\"100\" height=\"100\" />";
assertEquals( expected, markup );
// TODO: [fappel] move this to a special WebImageRenderer in wdbc project
// showTextField
// image.setShowTextField( true );
// writer = new HtmlResponseWriter();
// setResponseWriter( writer );
// W4TFixture.renderComponent( image );
// markup = getBodyMarkup( writer );
// expected = "<img id=\"page1_label1_img\" src=\"my-image.jpg\" alt=\"\"
// border=\"0\" />"
// + "<input type=\"text\" id=\"page1_label1_txt\" name=\"page1_label1\" "
// + "value=\"my-image.jpg\" "
// + "size=\"10\" />";
// assertEquals( expected, markup );
// // data-bound
// image.setWebDataSource( new WebDataBaseTable() );
// image.setDataField( new WebDataField( "field1" ) );
// writer = new HtmlResponseWriter();
// setResponseWriter( writer );
// W4TFixture.renderComponent( image );
// markup = getBodyMarkup( writer );
// expected = "<img id=\"page1_label1_img\" src=\"my-image.jpg\" alt=\"\"
// border=\"0\" />"
// + "<a id=\"page1_label1_a\" "
// + "href=\"javascript:eventHandler."
// + "changeImagePath('page1_label1_a')\">"
// + "<img id=\"page1_label1_img\" src=\"my-image.jpg\" alt=\"\"
// border=\"0\" /></a>";
// assertEquals( expected, markup );
}
public void testScriptRenderer() throws Exception {
WebImage image = new WebImage();
image.setValue( "my-image.jpg" );
W4TFixture.setWebComponentUniqueId( image, "page1" );
HtmlResponseWriter writer = new HtmlResponseWriter();
W4TFixture.fakeBrowser( new Ie5up( true, false ) );
setResponseWriter( writer );
W4TFixture.renderComponent( image );
String markup = getBodyMarkup( writer );
String expected;
expected = "<img id=\"page1\" "
+ "src=\"my-image.jpg\" alt=\"\" border=\"0\" />";
assertEquals( expected, markup );
// add more attributes
writer = new HtmlResponseWriter();
setResponseWriter (writer);
image.setWidth( "100" );
image.setHeight( "100" );
image.setAlt( "alt_text" );
image.setBorder( "5" );
W4TFixture.renderComponent( image );
markup = getBodyMarkup( writer );
expected = "<img id=\"page1\" "
+ "src=\"my-image.jpg\" alt=\"alt_text\" "
+ "border=\"5\" height=\"100\" width=\"100\" />";
assertEquals( expected, markup );
// make disabled
image.setEnabled( false );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( image );
markup = getBodyMarkup ( writer );
expected = "<img id=\"page1\" "
+ "src=\"disabledmy-image.jpg\" alt=\"alt_text\" "
+ "border=\"5\" height=\"100\" width=\"100\" />";
assertEquals( expected, markup );
// TODO: [fappel] move this to a special WebImageRenderer in wdbc project
// showTextField
// image.setShowTextField( true );
// writer = new HtmlResponseWriter();
// setResponseWriter( writer );
// W4TFixture.renderComponent( image );
// markup = getBodyMarkup( writer );
// expected = "<img src=\"my-image.jpg\" alt=\"\" border=\"0\" />"
// + "<input type=\"text\" name=\"page1_label1\" "
// + "value=\"my-image.jpg\" "
// + "size=\"10\" />";
// assertEquals( expected, markup );
}
public void testNoScriptRenderer() throws Exception {
WebImage image = new WebImage();
image.setValue( "my-image.jpg" );
HtmlResponseWriter writer = new HtmlResponseWriter();
W4TFixture.fakeBrowser( new Default( false, false ) );
setResponseWriter( writer );
W4TFixture.renderComponent( image );
String markup = getBodyMarkup( writer );
String expected;
expected = "<img src=\"my-image.jpg\" alt=\"\" border=\"0\">";
assertEquals( expected, markup );
// add more attributes
image.setHeight( "20" );
image.setWidth( "30" );
image.setAlt( "alt_text" );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( image );
markup = getBodyMarkup( writer );
expected = "<img src=\"my-image.jpg\" alt=\"alt_text\" border=\"0\" "
+ "height=\"20\" width=\"30\">";
assertEquals( expected, markup );
// make disabled
image.setEnabled( false );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( image );
markup = getBodyMarkup( writer );
expected = "<img src=\"disabledmy-image.jpg\" alt=\"alt_text\" "
+ "border=\"0\" height=\"20\" width=\"30\">";
assertEquals( expected, markup );
}
protected void setUp() throws Exception {
W4TFixture.setUp();
W4TFixture.createContext();
}
protected void tearDown() throws Exception {
W4TFixture.tearDown();
W4TFixture.removeContext();
}
private void setResponseWriter( final HtmlResponseWriter writer ) {
ContextProvider.getStateInfo().setResponseWriter( writer );
}
private String getBodyMarkup( final HtmlResponseWriter writer ) {
StringBuffer buffer = new StringBuffer();
for( int i = 0; i < writer.getBodySize(); i++ ) {
buffer.append( writer.getBodyToken( i ) );
}
return buffer.toString();
}
}