package com.redheap.selenium.components;
import com.redheap.selenium.component.AdfInputDate;
import com.redheap.selenium.pages.InputDateDemoPage;
import java.text.SimpleDateFormat;
import java.util.Date;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import org.junit.Test;
public class InputDateTest extends PageTestBase<InputDateDemoPage> {
private String today(String format) {
return new SimpleDateFormat(format).format(new Date());
}
@Test
public void testPlainDate() {
AdfInputDate id = pages.goHome().findPlainInputDate();
// getvalue() returns Date (which is converted to string due to JSON communication)
assertThat(id.getValue().toString(), startsWith(today("yyyy-MM-dd")));
// getSubmittedValue() returns value as shown in the <input> element
assertEquals(today("M/d/yyyy"), id.getSubmittedValue());
assertNull(id.getTimezoneId());
assertNull(id.getTimezoneName());
}
@Test
public void testDateOnly() {
AdfInputDate id = pages.goHome().findDateOnly();
assertThat(id.getValue().toString(), startsWith(today("yyyy-MM-dd")));
assertEquals(today("M/d/yyyy"), id.getSubmittedValue());
assertNull(id.getTimezoneId());
assertNull(id.getTimezoneName());
}
@Test
public void testDateAndTime() {
AdfInputDate id = pages.goHome().findDateAndTime();
assertThat(id.getValue().toString(), startsWith(today("yyyy-MM-dd")));
assertEquals(today("EEEE, MMMM d, yyyy h:mm aa"), id.getSubmittedValue());
assertNull(id.getTimezoneId());
assertNull(id.getTimezoneName());
}
@Test
public void testTimezone() {
AdfInputDate id = pages.goHome().findDateWithTimezone();
assertThat(id.getValue().toString(), startsWith(today("yyyy-MM-dd")));
assertThat(id.getSubmittedValue(), containsString(today("yyyy/MM/dd hh:mm")));
assertEquals("Europe/Amsterdam", id.getTimezoneId());
assertThat(id.getTimezoneName(), containsString("(CET)"));
}
public static void main(String[] args) {
String[] args2 = { InputDateTest.class.getName() };
org.junit.runner.JUnitCore.main(args2);
}
@Override
protected Class<InputDateDemoPage> getPageClass() {
return InputDateDemoPage.class;
}
@Override
protected String getJspxName() {
return "inputDate.jspx";
}
}