001 // Copyright Oct 7, 2006 The Apache Software Foundation 002 // 003 // Licensed under the Apache License, Version 2.0 (the "License"); 004 // you may not use this file except in compliance with the License. 005 // You may obtain a copy of the License at 006 // 007 // http://www.apache.org/licenses/LICENSE-2.0 008 // 009 // Unless required by applicable law or agreed to in writing, software 010 // distributed under the License is distributed on an "AS IS" BASIS, 011 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 012 // See the License for the specific language governing permissions and 013 // limitations under the License. 014 package org.apache.tapestry.dojo.form; 015 016 import org.apache.tapestry.*; 017 import org.apache.tapestry.form.BaseFormComponentTestCase; 018 import org.apache.tapestry.form.MockDelegate; 019 import org.apache.tapestry.form.ValidatableFieldSupport; 020 import org.apache.tapestry.form.translator.DateTranslator; 021 import org.apache.tapestry.json.JSONObject; 022 import org.apache.tapestry.services.ResponseBuilder; 023 import static org.easymock.EasyMock.*; 024 import org.testng.annotations.Test; 025 026 import java.util.Date; 027 import java.util.Locale; 028 import java.util.Map; 029 030 031 /** 032 * Tests functionality of {@link DropdownTimePicker} component. 033 * 034 * @author jkuhnert 035 */ 036 @Test 037 public class TestDropdownTimePicker extends BaseFormComponentTestCase 038 { 039 040 public void test_Render() 041 { 042 ValidatableFieldSupport vfs = newMock(ValidatableFieldSupport.class); 043 DateTranslator translator = new DateTranslator(); 044 translator.setPattern("hh:mm a"); 045 ResponseBuilder resp = newMock(ResponseBuilder.class); 046 047 IRequestCycle cycle = newMock(IRequestCycle.class); 048 IForm form = newMock(IForm.class); 049 checkOrder(form, false); 050 IPage page = newPage(); 051 Locale locale = Locale.getDefault(); 052 053 MockDelegate delegate = new MockDelegate(); 054 055 IScript script = newMock(IScript.class); 056 057 Date dtValue = new Date(); 058 059 DropdownTimePicker component = newInstance(DropdownTimePicker.class, 060 "name", "fred", 061 "script", script, 062 "validatableFieldSupport", vfs, 063 "translator", translator, 064 "value", dtValue, 065 "page", page, 066 "templateTagName", "div"); 067 068 expect(cycle.renderStackPush(component)).andReturn(component); 069 expect(form.getName()).andReturn("testform").anyTimes(); 070 071 form.setFormFieldUpdating(true); 072 073 IMarkupWriter writer = newBufferWriter(); 074 075 trainGetForm(cycle, form); 076 trainWasPrerendered(form, writer, component, false); 077 078 trainGetDelegate(form, delegate); 079 080 delegate.setFormComponent(component); 081 082 trainGetElementId(form, component, "fred"); 083 trainIsRewinding(form, false); 084 expect(cycle.isRewinding()).andReturn(false).anyTimes(); 085 086 delegate.setFormComponent(component); 087 088 expect(cycle.getResponseBuilder()).andReturn(resp).anyTimes(); 089 expect(resp.isDynamic()).andReturn(false).anyTimes(); 090 091 vfs.renderContributions(component, writer, cycle); 092 093 expect(page.getLocale()).andReturn(locale).anyTimes(); 094 095 PageRenderSupport prs = newPageRenderSupport(); 096 trainGetPageRenderSupport(cycle, prs); 097 098 script.execute(eq(component), eq(cycle), eq(prs), isA(Map.class)); 099 100 expect(cycle.renderStackPop()).andReturn(component); 101 102 replay(); 103 104 component.render(writer, cycle); 105 106 verify(); 107 108 assertBuffer("<span class=\"prefix\"><div id=\"fred\" class=\"validation-delegate\"> </div></span>"); 109 } 110 111 public void test_Json_Time() 112 { 113 long time = System.currentTimeMillis(); 114 115 JSONObject json = new JSONObject(); 116 json.put("time", time); 117 118 assertEquals(json.toString(), "{\"time\":"+time+"}"); 119 } 120 }