/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package io.milton.http; import io.milton.http.DateUtils.DateParseException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; import junit.framework.TestCase; public class TestDateUtils extends TestCase { public TestDateUtils() { } public void test() throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy hh:mm"); Date dt = sdf.parse("1-1-2007 19:03"); System.out.println("parsed: " + dt); String s = DateUtils.formatDate(dt); System.out.println("formatted to: " + s); } public void test_FirefoxOSCaldavDate() throws ParseException, DateParseException { Date date = DateUtils.parseIcalDateTime("20140104T050000Z"); System.out.println("formatted to: " + date); } public void test_iOSCaldavDate() throws ParseException, DateParseException { Date date = DateUtils.parseIcalDateTime("20131222T000000Z"); System.out.println("formatted to: " + date); } public void test_parseIcalDateTime_old() throws ParseException, DateParseException { Date date; String dateToParse; dateToParse = "20140104T050000Z"; date = DateUtils.parseIcalDateTime_old( dateToParse ); assertFalse( this.checkDate( dateToParse, date ) ); dateToParse = "20131222T000000Z"; date = DateUtils.parseIcalDateTime_old( dateToParse ); assertFalse( this.checkDate( dateToParse, date ) ); dateToParse = "20140822T070136Z"; date = DateUtils.parseIcalDateTime_old( dateToParse ); assertFalse( this.checkDate( dateToParse, date ) ); dateToParse = "20380119T031407Z"; date = DateUtils.parseIcalDateTime_old( dateToParse ); assertFalse( this.checkDate( dateToParse, date ) ); } public void test_parseIcalDateTime() throws ParseException, DateParseException { Date date ; String dateToParse; dateToParse = "20140104T050000Z"; date = DateUtils.parseIcalDateTime( dateToParse ); assertTrue( this.checkDate( dateToParse, date ) ); dateToParse = "20131222T000000Z"; date = DateUtils.parseIcalDateTime( dateToParse ); assertTrue( this.checkDate( dateToParse, date ) ); dateToParse = "20140822T070136Z"; date = DateUtils.parseIcalDateTime( dateToParse ); assertTrue( this.checkDate(dateToParse, date)); dateToParse = "20380119T031407Z"; date = DateUtils.parseIcalDateTime( dateToParse ); assertTrue( this.checkDate(dateToParse, date)); } private boolean checkDate( String dateToParse, Date desiredDate ) throws DateParseException { Calendar cal = Calendar.getInstance(); cal.setTime( desiredDate ); SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMdd'T'HHmmss'Z'" ); sdf.setTimeZone( TimeZone.getTimeZone( "UTC" ) ); String checkedDate = sdf.format( cal.getTime() ); System.out.println( "Checking dates : " + dateToParse + " =? " + checkedDate ); return checkedDate.equalsIgnoreCase( dateToParse ); } public void testParseNormal() throws DateParseException { Date dt = DateUtils.parseDate( "Sun, 28 Mar 2010 01:00:00 GMT"); System.out.println( dt.getTime() ); assertEquals( 1269738000000l, dt.getTime()); } /** * See http://www.ettrema.com:8080/browse/MIL-60 * * @throws com.bradmcevoy.http.DateUtils.DateParseException */ public void testParseWithoutSeconds() throws DateParseException { Date dt = DateUtils.parseDate( "Sun, 28 Mar 2010 01:00 GMT"); System.out.println( dt.getTime() ); assertEquals( 1269738000000l, dt.getTime()); } public void testParseHeaderFormat() throws DateParseException { Date dt = DateUtils.parseDate("2010-04-11 12:00:00"); System.out.println("dt: " + dt); } public void testParseWebdavDate_LongFormat() throws DateParseException { Date dt = DateUtils.parseWebDavDate("Wed, 27 Jun 2012 02:08:54 GMT"); System.out.println("testParseWebdavDate_LongFormat: " + dt); } public void testParseWebdavDate_ExpectedFormat() throws DateParseException { Date dt = DateUtils.parseWebDavDate("2010-09-03T09:29:43Z"); System.out.println("testParseWebdavDate_ExpectedFormat: " + dt); } }