/*******************************************************************************
* 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.webselectkit;
import junit.framework.TestCase;
import org.eclipse.rwt.internal.browser.*;
import org.eclipse.rwt.internal.lifecycle.HtmlResponseWriter;
import org.eclipse.rwt.internal.service.ContextProvider;
import com.w4t.*;
import com.w4t.ajax.AjaxStatus;
import com.w4t.ajax.AjaxStatusUtil;
import com.w4t.event.*;
import com.w4t.util.RendererCache;
/** <p>Unit tests for WebSelectRenderer.</p> */
public class WebSelectRenderer_Test extends TestCase {
public void testAjaxRendererOpera() throws Exception {
WebSelect select = createSelect();
select.setValue( "Hello World" );
select.setDir( "myDir" );
select.setLang("myLang" );
select.setName( "myName" );
select.setSize( 10 );
select.setTitle( "myTitle" );
AjaxStatus ajaxStatus = ( AjaxStatus )select.getAdapter( AjaxStatus.class );
ajaxStatus.updateStatus( true );
W4TFixture.fakeBrowser( new Opera9( true, true ) );
HtmlResponseWriter writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
String markup = W4TFixture.getBodyMarkup( writer );
String expected;
expected
= "<select id=\"sel1\" name=\"sel1\" "
+ "onfocus=\"eventHandler.setFocusID(this)\" "
+ "size=\"10\" class=\"w4tCsscd1f6403\" "
+ "dir=\"myDir\" "
+ "lang=\"myLang\" "
+ "title=\"myTitle\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
// add WebListener
select = createSelect();
select.setValue( "Hello World" );
select.addWebItemListener( new WebItemListener() {
public void webItemStateChanged( final WebItemEvent e ) {
}
} );
select.addWebFocusGainedListener( new WebFocusGainedListener() {
public void webFocusGained( final WebFocusGainedEvent e ) {
}
} );
ajaxStatus = ( AjaxStatus )select.getAdapter( AjaxStatus.class );
ajaxStatus.updateStatus( true );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select id=\"sel1\" name=\"sel1\" "
+ "onchange=\"eventHandler.webItemStateChanged(this)\" "
+ "onfocus=\"eventHandler.setFocusID(this);"
+ "eventHandler.webFocusGained(this)\" "
+ "onmousedown=\"eventHandler.suspendSubmit()\" "
+ "onmouseup=\"eventHandler.resumeSubmit()\" "
+ "size=\"1\" class=\"w4tCsscd1f6403\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
select.setEnabled( true );
select.setUpdatable( false );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select id=\"sel1\" name=\"sel1\" "
+ "onfocus=\"eventHandler.setFocusID(this);"
+ "eventHandler.webFocusGained(this)\" "
+ "onmousedown=\"eventHandler.suspendSubmit()\" "
+ "onmouseup=\"eventHandler.resumeSubmit()\" "
+ "size=\"1\" class=\"w4tCsscd1f6403\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
select.setEnabled( false );
select.setUpdatable( true );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select id=\"sel1\" name=\"sel1\" "
+ "disabled=\"disabled\" "
+ "size=\"1\" class=\"w4tCsscd1f6403\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
select.setEnabled( false );
select.setUpdatable( false );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select id=\"sel1\" name=\"sel1\" "
+ "disabled=\"disabled\" "
+ "size=\"1\" class=\"w4tCsscd1f6403\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
}
public void testAjaxRendererMozilla1_6() throws Exception {
WebSelect select = createSelect();
select.setValue( "Hello World" );
select.setDir( "myDir" );
select.setLang("myLang" );
select.setName( "myName" );
select.setSize( 10 );
select.setTitle( "myTitle" );
AjaxStatus ajaxStatus = ( AjaxStatus )select.getAdapter( AjaxStatus.class );
ajaxStatus.updateStatus( true );
W4TFixture.fakeBrowser( new Mozilla1_6( true, true ) );
HtmlResponseWriter writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
String markup = W4TFixture.getBodyMarkup( writer );
String expected;
expected
= "<select id=\"sel1\" name=\"sel1\" "
+ "onfocus=\"eventHandler.setFocusID(this)\" "
+ "size=\"10\" class=\"w4tCsscd1f6403\" "
+ "dir=\"myDir\" "
+ "lang=\"myLang\" "
+ "title=\"myTitle\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
// add WebListener
select = createSelect();
select.setValue( "Hello World" );
select.addWebItemListener( new WebItemListener() {
public void webItemStateChanged( final WebItemEvent e ) {
}
} );
select.addWebFocusGainedListener( new WebFocusGainedListener() {
public void webFocusGained( final WebFocusGainedEvent e ) {
}
} );
ajaxStatus = ( AjaxStatus )select.getAdapter( AjaxStatus.class );
ajaxStatus.updateStatus( true );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select id=\"sel1\" name=\"sel1\" "
+ "onchange=\"eventHandler.webItemStateChanged(this)\" "
+ "onfocus=\"eventHandler.setFocusID(this);"
+ "eventHandler.webFocusGained(this)\" "
+ "onmousedown=\"eventHandler.suspendSubmit()\" "
+ "onmouseup=\"eventHandler.resumeSubmit()\" "
+ "size=\"1\" class=\"w4tCsscd1f6403\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
select.setEnabled( true );
select.setUpdatable( false );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select id=\"sel1\" name=\"sel1\" "
+ "onfocus=\"eventHandler.setFocusID(this);"
+ "eventHandler.webFocusGained(this)\" "
+ "onmousedown=\"eventHandler.suspendSubmit()\" "
+ "onmouseup=\"eventHandler.resumeSubmit()\" "
+ "size=\"1\" class=\"w4tCsscd1f6403\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
select.setEnabled( false );
select.setUpdatable( true );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select id=\"sel1\" name=\"sel1\" "
+ "disabled=\"disabled\" "
+ "size=\"1\" class=\"w4tCsscd1f6403\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
select.setEnabled( false );
select.setUpdatable( false );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select id=\"sel1\" name=\"sel1\" "
+ "disabled=\"disabled\" "
+ "size=\"1\" class=\"w4tCsscd1f6403\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
}
public void testAjaxRendererIE5up() throws Exception {
WebSelect select = createSelect();
select.setDir( "myDir" );
select.setLang("myLang" );
select.setName( "myName" );
select.setSize( 10 );
select.setTitle( "myTitle" );
select.addItem( "�" );
select.setValue( "�" );
AjaxStatus ajaxStatus = ( AjaxStatus )select.getAdapter( AjaxStatus.class );
ajaxStatus.updateStatus( true );
W4TFixture.fakeBrowser( new Ie5up( true, true ) );
HtmlResponseWriter writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
String markup = W4TFixture.getBodyMarkup( writer );
String expected;
expected
= "<select id=\"sel1\" name=\"sel1\" "
+ "onfocus=\"eventHandler.setFocusID(this)\" "
+ "size=\"10\" class=\"w4tCsscd1f6403\" "
+ "dir=\"myDir\" "
+ "lang=\"myLang\" "
+ "title=\"myTitle\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "<option value=\"ü\" selected=\"selected\">ü</option>"
+ "</select>";
assertEquals( expected, markup );
// add WebListener
select = createSelect();
select.setValue( "Hello World" );
select.addWebItemListener( new WebItemListener() {
public void webItemStateChanged( final WebItemEvent e ) {
}
} );
select.addWebFocusGainedListener( new WebFocusGainedListener() {
public void webFocusGained( final WebFocusGainedEvent e ) {
}
} );
ajaxStatus = ( AjaxStatus )select.getAdapter( AjaxStatus.class );
ajaxStatus.updateStatus( true );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select id=\"sel1\" name=\"sel1\" "
+ "onchange=\"eventHandler.webItemStateChanged(this)\" "
+ "onfocus=\"eventHandler.setFocusID(this);"
+ "eventHandler.webFocusGained(this)\" "
+ "onmousedown=\"eventHandler.suspendSubmit()\" "
+ "onmouseup=\"eventHandler.resumeSubmit()\" "
+ "size=\"1\" class=\"w4tCsscd1f6403\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
select.setEnabled( true );
select.setUpdatable( false );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select id=\"sel1\" name=\"sel1\" "
// + "onchange=\"eventHandler.webItemStateChanged(this)\" "
+ "onfocus=\"eventHandler.setFocusID(this);"
+ "eventHandler.webFocusGained(this)\" "
+ "onmousedown=\"eventHandler.suspendSubmit()\" "
+ "onmouseup=\"eventHandler.resumeSubmit()\" "
+ "size=\"1\" class=\"w4tCsscd1f6403\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
select.setEnabled( false );
select.setUpdatable( true );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select id=\"sel1\" name=\"sel1\" "
+ "disabled=\"disabled\" "
+ "size=\"1\" class=\"w4tCsscd1f6403\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
select.setEnabled( false );
select.setUpdatable( false );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select id=\"sel1\" name=\"sel1\" "
+ "disabled=\"disabled\" "
+ "size=\"1\" class=\"w4tCsscd1f6403\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
}
public void testScriptRenderer() throws Exception {
WebSelect select = createSelect();
select.setValue( "Hello World" );
select.setDir( "myDir" );
select.setLang("myLang" );
select.setName( "myName" );
select.setSize( 10 );
select.setTitle( "myTitle" );
W4TFixture.fakeBrowser( new Default( true, false ) );
HtmlResponseWriter writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
String markup = W4TFixture.getBodyMarkup( writer );
String expected;
expected = "<select name=\"sel1\" "
+ "onfocus=\"eventHandler.setFocusID(this)\" size=\"10\" "
+ "class=\"w4tCsscd1f6403\" "
+ "dir=\"myDir\" "
+ "lang=\"myLang\" "
+ "title=\"myTitle\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
//
select.setUseEmptyItem( true );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected = "<select name=\"sel1\" "
+ "onfocus=\"eventHandler.setFocusID(this)\" size=\"10\" "
+ "class=\"w4tCsscd1f6403\" "
+ "dir=\"myDir\" "
+ "lang=\"myLang\" "
+ "title=\"myTitle\">"
+ "<option></option>"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
//
select.setUseEmptyItem( false );
select.setValue( "a" );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select name=\"sel1\" "
+ "onfocus=\"eventHandler.setFocusID(this)\" size=\"10\" "
+ "class=\"w4tCsscd1f6403\" "
+ "dir=\"myDir\" "
+ "lang=\"myLang\" "
+ "title=\"myTitle\">"
+ "<option value=\"a\" selected>a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>";
assertEquals( expected, markup );
//
select.setUseEmptyItem( false );
select.addItem( "�" );
select.setValue( "�");
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select name=\"sel1\" "
+ "onfocus=\"eventHandler.setFocusID(this)\" size=\"10\" "
+ "class=\"w4tCsscd1f6403\" "
+ "dir=\"myDir\" "
+ "lang=\"myLang\" "
+ "title=\"myTitle\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "<option value=\"ü\" selected>ü</option>"
+ "</select>";
assertEquals( expected, markup );
select.setEnabled( true );
select.setUpdatable( false );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select name=\"sel1\" "
+ "onfocus=\"eventHandler.setFocusID(this)\" size=\"10\" "
+ "class=\"w4tCsscd1f6403\" "
+ "dir=\"myDir\" "
+ "lang=\"myLang\" "
+ "title=\"myTitle\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "<option value=\"ü\" selected>ü</option>"
+ "</select>";
assertEquals( expected, markup );
select.setEnabled( false );
select.setUpdatable( true );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select name=\"sel1\" "
+ "disabled " + "size=\"10\" "
+ "class=\"w4tCsscd1f6403\" "
+ "dir=\"myDir\" "
+ "lang=\"myLang\" "
+ "title=\"myTitle\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "<option value=\"ü\" selected>ü</option>"
+ "</select>";
assertEquals( expected, markup );
select.setEnabled( false );
select.setUpdatable( false );
writer = new HtmlResponseWriter();
setResponseWriter( writer );
W4TFixture.renderComponent( select );
markup = W4TFixture.getBodyMarkup( writer );
expected
= "<select name=\"sel1\" "
+ "disabled size=\"10\" "
+ "class=\"w4tCsscd1f6403\" "
+ "dir=\"myDir\" "
+ "lang=\"myLang\" "
+ "title=\"myTitle\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "<option value=\"ü\" selected>ü</option>"
+ "</select>";
assertEquals( expected, markup );
}
public void testNoScriptRenderer() throws Exception {
WebSelect select = createSelect();
select.setDir( "myDir" );
select.setLang("myLang" );
select.setName( "myName" );
select.setSize( 10 );
select.setTitle( "myTitle" );
select.addWebItemListener( new WebItemListener() {
public void webItemStateChanged( final WebItemEvent e ) {
}
} );
select.addWebFocusGainedListener( new WebFocusGainedListener() {
public void webFocusGained( final WebFocusGainedEvent e ) {
}
} );
HtmlResponseWriter writer = new HtmlResponseWriter();
W4TFixture.fakeBrowser( new Default( false, false ) );
setResponseWriter( writer );
W4TFixture.renderComponent( select );
String markup = W4TFixture.getBodyMarkup( writer );
String expected
= "<select name=\"sel1\" size=\"10\" class=\"w4tCsscd1f6403\" "
+ "dir=\"myDir\" "
+ "lang=\"myLang\" "
+ "title=\"myTitle\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "</select>"
+ "<input type=\"image\" src=\"resources/images/submitter.gif\" "
+ "name=\"wiesel1\" border=\"0\">";
assertEquals( expected, markup );
}
public void testReadData_Default_Ajax() throws Exception {
W4TFixture.fakeBrowser( new Ie6( true, true ) );
WebText text = new WebText();
W4TFixture.setWebComponentUniqueId( text, "select1" );
W4TFixture.fakeRequestParam( text.getUniqueID(), "selection1" );
RendererCache rendererCache = RendererCache.getInstance();
Renderer renderer = rendererCache.retrieveRenderer( text.getClass() );
renderer.readData( text );
assertEquals( "selection1", text.getValue() );
}
public void testEncoding() throws Exception {
WebSelect select = createSelect();
select.addItem( "L��ter \"&\" M�ller" );
select.setTitle( "L��ter \"&\" M�ller" );
HtmlResponseWriter writer = new HtmlResponseWriter();
W4TFixture.fakeBrowser( new Default( true, false ) );
setResponseWriter( writer );
W4TFixture.renderComponent( select );
String markup = W4TFixture.getBodyMarkup( writer );
String expected
= "<select name=\"sel1\" onfocus=\"eventHandler.setFocusID(this)\" "
+ "size=\"1\" class=\"w4tCsscd1f6403\" "
+ "title=\"Lüßter "&" Möller\">"
+ "<option value=\"a\">a</option>"
+ "<option value=\"b\">b</option>"
+ "<option value=\"c\">c</option>"
+ "<option value=\"Lüßter "&" Möller\">"
+ "Lüßter "&" Möller</option>"
+ "</select>";
assertEquals( expected, markup );
}
public void testAjaxStatusAfterReadData_Ie() {
WebForm form = W4TFixture.getEmptyWebFormInstance();
WebSelect select = new WebSelect();
select.addItem( "1" );
select.addItem( "2" );
form.add( select, WebBorderLayout.CENTER );
select.setValue( "1" );
W4TFixture.fakeRequestParam( select.getUniqueID(), "2" );
W4TFixture.fakeBrowser( new Ie6( true, true ) );
RendererCache rendererCache = RendererCache.getInstance();
AjaxStatusUtil.preRender( form );
AjaxStatusUtil.postRender( form );
Renderer renderer = rendererCache.retrieveRenderer( select.getClass() );
assertEquals( WebSelectRenderer_Default_Ajax.class, renderer.getClass() );
renderer.readData( select );
assertEquals( "2", select.getValue() );
AjaxStatusUtil.preRender( form );
assertEquals( false, W4TFixture.getAjaxStatus( select ).mustRender() );
}
public void testAjaxStatusAfterReadData_Mozilla() {
WebForm form = W4TFixture.getEmptyWebFormInstance();
WebSelect select = new WebSelect();
select.addItem( "1" );
select.addItem( "2" );
form.add( select, WebBorderLayout.CENTER );
select.setValue( "1" );
W4TFixture.fakeRequestParam( select.getUniqueID(), "2" );
W4TFixture.fakeBrowser( new Mozilla1_6( true, true ) );
RendererCache rendererCache = RendererCache.getInstance();
AjaxStatusUtil.preRender( form );
AjaxStatusUtil.postRender( form );
Renderer renderer = rendererCache.retrieveRenderer( select.getClass() );
assertEquals( WebSelectRenderer_Mozilla1_6up_Ajax.class, renderer.getClass() );
renderer.readData( select );
assertEquals( "2", select.getValue() );
AjaxStatusUtil.preRender( form );
assertEquals( false, W4TFixture.getAjaxStatus( select ).mustRender() );
}
private static WebSelect createSelect() throws Exception {
WebSelect select = new WebSelect();
select.addItem( "a" );
select.addItem( "b" );
select.addItem( "c" );
select.setValue( "Hello World" );
W4TFixture.setWebComponentUniqueId( select, "sel1" );
return select;
}
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 );
}
}