package net.sourceforge.cruisecontrol.dashboard.seleniumtests; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Locale; import net.sourceforge.cruisecontrol.dashboard.testhelpers.DataUtils; import net.sourceforge.cruisecontrol.dashboard.utils.CCDateFormatter; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.joda.time.DateTime; public class TimeConvertedTest extends SeleniumTestCase { private static final String _4_DAYS_AGO = "4 days ago"; private File file; public void doSetUp() throws Exception { if (file != null && file.exists()) { file.delete(); } File projectCCLive = new File(DataUtils.getLogRootOfWebapp(), "cclive"); DateTime fourDaysAgo = new DateTime().minusDays(4); String fourDaysAgoText = CCDateFormatter.yyyyMMddHHmmss(fourDaysAgo); file = new File(projectCCLive, "log" + fourDaysAgoText + "Lbuild.510.xml"); file.createNewFile(); initContentForSampleFile(fourDaysAgo, fourDaysAgoText); } private void initContentForSampleFile(DateTime fourDaysAgo, String fourDaysAgoText) throws Exception, IOException { File project1 = new File(DataUtils.getLogRootOfWebapp(), "project1"); String content = FileUtils.readFileToString(new File(project1, "log20051209122103Lbuild.489.xml"), "UTF-8"); String replacedContent = StringUtils.replace(content, "project1", "cclive"); replacedContent = StringUtils.replace(replacedContent, "20051209122103", fourDaysAgoText); replacedContent = StringUtils.replace(replacedContent, "12/09/2005 12:21:03", new SimpleDateFormat( "d/MM/yyyy HH:mm:ss", Locale.ENGLISH).format(fourDaysAgo.toDate())); FileUtils.writeStringToFile(file, replacedContent); } public void doTearDown() { if (file != null && file.exists()) { file.delete(); } } public void testShouldDisplayProperConvertedTime() throws Exception { openDashboardPage(); shouldGiveProperTimeInDashboardToolTip(); shouldGiveProperTimeInBuilds(); shouldGiveProperTimeInBuildDetail(); shouldGiveProperTimeInHistoryBuildsInBuildDetail(); shouldGiveProperTimeInAllBuilds(); shouldGiveProperTimeInAllSuccessfulBuilds(); } private void shouldGiveProperTimeInDashboardToolTip() throws Exception { assertEquals(_4_DAYS_AGO, user.getText("tooltip_cclive_date")); } private void shouldGiveProperTimeInBuilds() { openBuildsPage(); assertEquals(_4_DAYS_AGO, user.getText("cclive_build_date")); } private void shouldGiveProperTimeInBuildDetail() throws Exception { openBuildDetailPageDirectly("cclive"); assertTrue(user.isTextPresent("cclive passed (" + _4_DAYS_AGO + ")")); } private void shouldGiveProperTimeInHistoryBuildsInBuildDetail() { assertTrue(user.isTextPresent(_4_DAYS_AGO + " build.510")); } private void shouldGiveProperTimeInAllBuilds() { openAllBuilsPage("cclive"); assertTrue(user.isTextPresent(_4_DAYS_AGO)); } private void shouldGiveProperTimeInAllSuccessfulBuilds() { openAllBuilsPage("cclive"); assertTrue(user.isTextPresent(_4_DAYS_AGO)); } }