001 package org.apache.tapestry.dojo.form; 002 003 import org.apache.tapestry.*; 004 import org.apache.tapestry.form.BaseFormComponentTestCase; 005 import org.apache.tapestry.form.MockDelegate; 006 import org.apache.tapestry.form.TranslatedFieldSupport; 007 import org.apache.tapestry.form.ValidatableFieldSupport; 008 import org.apache.tapestry.form.translator.DateTranslator; 009 import org.apache.tapestry.services.ResponseBuilder; 010 import static org.easymock.EasyMock.*; 011 import org.testng.annotations.Test; 012 013 import java.util.Date; 014 import java.util.Locale; 015 import java.util.Map; 016 017 /** 018 * Tests functionality of {@link GTimePicker} component. 019 */ 020 @Test 021 public class TestGTimePicker extends BaseFormComponentTestCase 022 { 023 024 public void test_Render() 025 { 026 ValidatableFieldSupport vfs = newMock(ValidatableFieldSupport.class); 027 TranslatedFieldSupport tfs = newMock(TranslatedFieldSupport.class); 028 029 DateTranslator translator = new DateTranslator(); 030 translator.setPattern("hh:mm a"); 031 ResponseBuilder resp = newMock(ResponseBuilder.class); 032 033 IRequestCycle cycle = newMock(IRequestCycle.class); 034 IForm form = newMock(IForm.class); 035 checkOrder(form, false); 036 IPage page = newPage(); 037 Locale locale = Locale.getDefault(); 038 039 MockDelegate delegate = new MockDelegate(); 040 041 IScript script = newMock(IScript.class); 042 043 Date dtValue = new Date(); 044 045 GTimePicker component = newInstance(GTimePicker.class, 046 "name", "fred", 047 "script", script, 048 "validatableFieldSupport", vfs, 049 "translatedFieldSupport", tfs, 050 "translator", translator, 051 "value", dtValue, 052 "page", page); 053 054 expect(cycle.renderStackPush(component)).andReturn(component); 055 expect(form.getName()).andReturn("testform").anyTimes(); 056 057 form.setFormFieldUpdating(true); 058 059 IMarkupWriter writer = newBufferWriter(); 060 061 trainGetForm(cycle, form); 062 trainWasPrerendered(form, writer, component, false); 063 064 trainGetDelegate(form, delegate); 065 066 delegate.setFormComponent(component); 067 068 trainGetElementId(form, component, "fred"); 069 trainIsRewinding(form, false); 070 expect(cycle.isRewinding()).andReturn(false).anyTimes(); 071 072 delegate.setFormComponent(component); 073 074 expect(cycle.getResponseBuilder()).andReturn(resp).anyTimes(); 075 expect(resp.isDynamic()).andReturn(false).anyTimes(); 076 077 expect(tfs.format(component, dtValue)).andReturn(dtValue.toString()); 078 079 tfs.renderContributions(component, writer, cycle); 080 vfs.renderContributions(component, writer, cycle); 081 082 expect(page.getLocale()).andReturn(locale).anyTimes(); 083 084 PageRenderSupport prs = newPageRenderSupport(); 085 trainGetPageRenderSupport(cycle, prs); 086 087 script.execute(eq(component), eq(cycle), eq(prs), isA(Map.class)); 088 089 expect(cycle.renderStackPop()).andReturn(component); 090 091 replay(); 092 093 component.render(writer, cycle); 094 095 verify(); 096 097 assertBuffer("<span class=\"prefix\"><input type=\"text\" autocomplete=\"off\" name=\"fred\" " 098 + "value=\"" + dtValue.toString() + "\" id=\"fred\" class=\"validation-delegate\" /></span>"); 099 } 100 }