1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Licensed to the Apache Software Foundation (ASF) under one or more
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  contributor license agreements.  See the NOTICE file distributed with
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  this work for additional information regarding copyright ownership.
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  The ASF licenses this file to You under the Apache License, Version 2.0
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  (the "License"); you may not use this file except in compliance with
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  the License.  You may obtain a copy of the License at
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  See the License for the specific language governing permissions and
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  limitations under the License.
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.util;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
2038a0b85afd4231f46fac59e59ee38729bd5154c4Neil Fullerimport java.text.DateFormat;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Calendar;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Date;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.GregorianCalendar;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Locale;
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.TimeZone;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class DateTest extends junit.framework.TestCase {
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
30229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#Date()
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_Constructor() {
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.Date()
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        GregorianCalendar gc = new GregorianCalendar(1998, Calendar.OCTOBER,
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                13, 19, 9);
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        long oldTime = gc.getTime().getTime();
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        long now = new Date().getTime();
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Created incorrect date: " + oldTime + " now: " + now,
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                oldTime < now);
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
43229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#Date(int, int, int)
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorIII() {
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.Date(int, int, int)
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d1 = new Date(70, 0, 1); // the epoch + local time
48f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // the epoch + local time
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d2 = new Date(0 + d1.getTimezoneOffset() * 60 * 1000);
51f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Created incorrect date", d1.equals(d2));
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date date = new Date(99, 5, 22);
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Calendar cal = new GregorianCalendar(1999, Calendar.JUNE, 22);
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Wrong time zone", date.equals(cal.getTime()));
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
60229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#Date(int, int, int, int, int)
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorIIIII() {
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.Date(int, int, int, int, int)
64f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // the epoch + local time + (1 hour and 1 minute)
66f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        Date d1 = new Date(70, 0, 1, 1, 1);
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // the epoch + local time + (1 hour and 1 minute)
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d2 = new Date(0 + d1.getTimezoneOffset() * 60 * 1000 + 60 * 60
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                * 1000 + 60 * 1000);
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Created incorrect date", d1.equals(d2));
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
76229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#Date(int, int, int, int, int, int)
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorIIIIII() {
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.Date(int, int, int, int, int, int)
80f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // the epoch + local time + (1 hour and 1 minute + 1 second)
82f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        Date d1 = new Date(70, 0, 1, 1, 1, 1);
83f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // the epoch + local time + (1 hour and 1 minute + 1 second)
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d2 = new Date(0 + d1.getTimezoneOffset() * 60 * 1000 + 60 * 60
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                * 1000 + 60 * 1000 + 1000);
87f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Created incorrect date", d1.equals(d2));
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
92229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#Date(java.lang.String)
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorLjava_lang_String() {
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.Date(java.lang.String)
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d1 = new Date("January 1, 1970, 00:00:00 GMT"); // the epoch
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d2 = new Date(0); // the epoch
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Created incorrect date", d1.equals(d2));
99f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Regression for HARMONY-238
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new Date(null);
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Constructor Date((String)null) should "
104ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath                    + "throw IllegalArgumentException");
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // expected
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
111229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#after(java.util.Date)
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_afterLjava_util_Date() {
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method boolean java.util.Date.after(java.util.Date)
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d1 = new Date(0);
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d2 = new Date(1900000);
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Older was returned as newer", d2.after(d1));
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Newer was returned as older", !d1.after(d2));
119f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            d1.after(null);
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
129229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#before(java.util.Date)
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_beforeLjava_util_Date() {
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method boolean java.util.Date.before(java.util.Date)
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d1 = new Date(0);
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d2 = new Date(1900000);
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Older was returned as newer", !d2.before(d1));
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Newer was returned as older", d1.before(d2));
137f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            d1.before(null);
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
147229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#clone()
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_clone() {
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.Object java.util.Date.clone()
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d1 = new Date(100000);
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d2 = (Date) d1.clone();
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "Cloning date results in same reference--new date is equivalent",
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                d1 != d2);
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Cloning date results unequal date", d1.equals(d2));
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
160229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#compareTo(java.util.Date)
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_compareToLjava_util_Date() {
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.util.Date.compareTo(java.util.Date)
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        final int someNumber = 10000;
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d1 = new Date(someNumber);
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d2 = new Date(someNumber);
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d3 = new Date(someNumber + 1);
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d4 = new Date(someNumber - 1);
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Comparing a date to itself did not answer zero", 0, d1
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .compareTo(d1));
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Comparing equal dates did not answer zero", 0, d1
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .compareTo(d2));
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("date1.compareTo(date2), where date1 > date2, did not result in 1",
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                1, d1.compareTo(d4));
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("date1.compareTo(date2), where date1 < date2, did not result in -1",
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                -1, d1.compareTo(d3));
177f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            d1.compareTo(null);
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
187229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#equals(java.lang.Object)
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_equalsLjava_lang_Object() {
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method boolean java.util.Date.equals(java.lang.Object)
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d1 = new Date(0);
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d2 = new Date(1900000);
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d3 = new Date(1900000);
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Equality test failed", d2.equals(d3));
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Equality test failed", !d1.equals(d2));
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
199229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#getDate()
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getDate() {
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.util.Date.getDate()
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = new GregorianCalendar(1998, Calendar.OCTOBER, 13, 19, 9)
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getTime();
205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect date", 13, d.getDate());
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
209229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#getDay()
210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getDay() {
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.util.Date.getDay()
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = new GregorianCalendar(1998, Calendar.OCTOBER, 13, 19, 9)
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getTime();
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect day", 2, d.getDay());
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
219229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#getHours()
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getHours() {
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.util.Date.getHours()
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = new GregorianCalendar(1998, Calendar.OCTOBER, 13, 19, 9)
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getTime();
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect hours", 19, d.getHours());
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
229229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#getMinutes()
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getMinutes() {
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.util.Date.getMinutes()
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = new GregorianCalendar(1998, Calendar.OCTOBER, 13, 19, 9)
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getTime();
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect minutes", 9, d.getMinutes());
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
239229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#getMonth()
240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getMonth() {
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.util.Date.getMonth()
243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = new GregorianCalendar(1998, Calendar.OCTOBER, 13, 19, 9)
244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getTime();
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect month", 9, d.getMonth());
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
249229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#getSeconds()
250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getSeconds() {
252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.util.Date.getSeconds()
253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = new GregorianCalendar(1998, Calendar.OCTOBER, 13, 19, 9)
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getTime();
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect seconds", 0, d.getSeconds());
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
259229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#getTime()
260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getTime() {
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method long java.util.Date.getTime()
263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d1 = new Date(0);
264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d2 = new Date(1900000);
265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect time", 1900000, d2.getTime());
266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect time", 0, d1.getTime());
267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
270229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#getTimezoneOffset()
271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getTimezoneOffset() {
273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.util.Date.getTimezoneOffset()
274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Used to test", true);
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
278229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#getYear()
279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getYear() {
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.util.Date.getYear()
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = new GregorianCalendar(1998, Calendar.OCTOBER, 13, 19, 9)
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getTime();
284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect year", 98, d.getYear());
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
288229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#hashCode()
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_hashCode() {
291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.util.Date.hashCode()
292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d1 = new Date(0);
293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d2 = new Date(1900000);
294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect hash", 1900000, d2.hashCode());
295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect hash", 0, d1.hashCode());
296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
299229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#parse(java.lang.String)
300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_parseLjava_lang_String() {
302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method long java.util.Date.parse(java.lang.String)
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = new Date(Date.parse("13 October 1998"));
304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        GregorianCalendar cal = new GregorianCalendar();
305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.setTime(d);
306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Parsed incorrect month", 9, cal.get(Calendar.MONTH));
307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Parsed incorrect year", 1998, cal.get(Calendar.YEAR));
308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Parsed incorrect date", 13, cal.get(Calendar.DATE));
309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        d = new Date(Date.parse("Jan-12 1999"));
311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Wrong parsed date 1", d.equals(new GregorianCalendar(1999,
312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                0, 12).getTime()));
313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        d = new Date(Date.parse("Jan12-1999"));
314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Wrong parsed date 2", d.equals(new GregorianCalendar(1999,
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                0, 12).getTime()));
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        d = new Date(Date.parse("Jan12 69-1"));
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.setTimeZone(TimeZone.getTimeZone("GMT"));
318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.clear();
319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.set(1969, Calendar.JANUARY, 12, 1, 0);
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Wrong parsed date 3", d.equals(cal.getTime()));
321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        d = new Date(Date.parse("6:45:13 3/2/1200 MST"));
322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.setTimeZone(TimeZone.getTimeZone("MST"));
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.clear();
324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.set(1200, 2, 2, 6, 45, 13);
325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Wrong parsed date 4", d.equals(cal.getTime()));
326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        d = new Date(Date.parse("Mon, 22 Nov 1999 12:52:06 GMT"));
327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.setTimeZone(TimeZone.getTimeZone("GMT"));
328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.clear();
329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.set(1999, Calendar.NOVEMBER, 22, 12, 52, 06);
330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Wrong parsed date 5", d.equals(cal.getTime()));
331f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Regression for HARMONY-259
334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Date.parse(null);
335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Date.parse(null) should throw IllegalArgumentException");
336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // expected
338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
339ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
340ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        // Regression for HARMONY-102
341ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        assertEquals("Assert 0: parse failure",
342ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath                -5400000, Date.parse("Sat, 1 Jan 1970 +0130 00:00:00"));
343ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        assertEquals("Assert 1: parse failure",
344ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath                858600000, Date.parse("00:00:00 GMT +0130 Sat, 11 Jan 1970"));
345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
348229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#setDate(int)
349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setDateI() {
351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.Date.setDate(int)
352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = new GregorianCalendar(1998, Calendar.OCTOBER, 13, 19, 9)
353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getTime();
354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        d.setDate(23);
355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Set incorrect date", 23, d.getDate());
356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
359229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#setHours(int)
360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setHoursI() {
362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.Date.setHours(int)
363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = new GregorianCalendar(1998, Calendar.OCTOBER, 13, 19, 9)
364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getTime();
365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        d.setHours(23);
366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Set incorrect hours", 23, d.getHours());
367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
370229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#setMinutes(int)
371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setMinutesI() {
373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.Date.setMinutes(int)
374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = new GregorianCalendar(1998, Calendar.OCTOBER, 13, 19, 9)
375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getTime();
376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        d.setMinutes(45);
377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Set incorrect mins", 45, d.getMinutes());
378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
381229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#setMonth(int)
382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setMonthI() {
384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.Date.setMonth(int)
385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = new GregorianCalendar(1998, Calendar.OCTOBER, 13, 19, 9)
386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getTime();
387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        d.setMonth(0);
388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Set incorrect month", 0, d.getMonth());
389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
392229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#setSeconds(int)
393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setSecondsI() {
395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.Date.setSeconds(int)
396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = new GregorianCalendar(1998, Calendar.OCTOBER, 13, 19, 9)
397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getTime();
398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        d.setSeconds(13);
399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Set incorrect seconds", 13, d.getSeconds());
400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
403229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#setTime(long)
404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setTimeJ() {
406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.Date.setTime(long)
407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d1 = new Date(0);
408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d2 = new Date(1900000);
409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        d1.setTime(900);
410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        d2.setTime(890000);
411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect time", 890000, d2.getTime());
412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Returned incorrect time", 900, d1.getTime());
413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
416229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#setYear(int)
417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setYearI() {
419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.Date.setYear(int)
420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = new GregorianCalendar(1998, Calendar.OCTOBER, 13, 19, 9)
421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getTime();
422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        d.setYear(8);
423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Set incorrect year", 8, d.getYear());
424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
427229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#toGMTString()
428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_toGMTString() {
430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.String java.util.Date.toGMTString()
431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Did not convert epoch to GMT string correctly", "1 Jan 1970 00:00:00 GMT", new Date(0)
432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .toGMTString());
433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Did not convert epoch + 1yr to GMT string correctly",
434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "1 Jan 1971 00:00:00 GMT", new Date((long) 365 * 24 * 60 * 60 * 1000).toGMTString()
435ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        );
436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
439229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#toString()
440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_toString() {
442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.String java.util.Date.toString()
443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Calendar cal = Calendar.getInstance();
444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.set(Calendar.DATE, 1);
445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.set(Calendar.MONTH, Calendar.JANUARY);
446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.set(Calendar.YEAR, 1970);
447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.set(Calendar.HOUR_OF_DAY, 0);
448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.set(Calendar.MINUTE, 0);
449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.set(Calendar.SECOND, 0);
450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date d = cal.getTime();
451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String result = d.toString();
452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect result: " + d, result
453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .startsWith("Thu Jan 01 00:00:00")
454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                && result.endsWith("1970"));
455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TimeZone tz = TimeZone.getDefault();
457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TimeZone.setDefault(TimeZone.getTimeZone("GMT-5"));
458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Date d1 = new Date(0);
460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("Returned incorrect string: " + d1, d1.toString()
461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .equals("Wed Dec 31 19:00:00 GMT-05:00 1969"));
462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } finally {
463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            TimeZone.setDefault(tz);
464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
465ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
466ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        // Test for HARMONY-5468
467ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        TimeZone.setDefault(TimeZone.getTimeZone("MST"));
468ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        Date d2 = new Date(108, 7, 27);
469ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        assertTrue("Returned incorrect string: " + d2, d2.toString()
470ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath                .startsWith("Wed Aug 27 00:00:00")
471ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath                && d2.toString().endsWith("2008"));
472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
475229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#UTC(int, int, int, int, int, int)
476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_UTCIIIIII() {
478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method long java.util.Date.UTC(int, int, int, int, int, int)
479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect UTC value for epoch", Date.UTC(70, 0, 1,
480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                0, 0, 0) == (long) 0);
481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect UTC value for epoch +1yr", Date.UTC(71,
482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                0, 1, 0, 0, 0) == (long) 365 * 24 * 60 * 60 * 1000);
483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
485229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.Date#toLocaleString() Test for method java.lang.String
486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *        java.util.Date.toGMTString()
487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_toLocaleString() {
489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale loc = Locale.getDefault();
490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Locale.setDefault(Locale.US);
49138a0b85afd4231f46fac59e59ee38729bd5154c4Neil Fuller        TimeZone tz = TimeZone.getDefault();
49238a0b85afd4231f46fac59e59ee38729bd5154c4Neil Fuller        TimeZone.setDefault(TimeZone.getTimeZone("GMT"));
49338a0b85afd4231f46fac59e59ee38729bd5154c4Neil Fuller        // This test assumes a default DateFormat.is24Hour setting.
49438a0b85afd4231f46fac59e59ee38729bd5154c4Neil Fuller        DateFormat.is24Hour = null;
49538a0b85afd4231f46fac59e59ee38729bd5154c4Neil Fuller        try {
496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals("Did not convert epoch to GMT string correctly", "Jan 1, 1970 12:00:00 AM",
49738a0b85afd4231f46fac59e59ee38729bd5154c4Neil Fuller                    new Date(0).toLocaleString());
498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals("Did not convert epoch + 1yr to GMT string correctly",
49938a0b85afd4231f46fac59e59ee38729bd5154c4Neil Fuller                    "Jan 1, 1971 12:00:00 AM",
50038a0b85afd4231f46fac59e59ee38729bd5154c4Neil Fuller                    new Date((long)365 * 24 * 60 * 60 * 1000).toLocaleString());
50138a0b85afd4231f46fac59e59ee38729bd5154c4Neil Fuller        } finally {
502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Locale.setDefault(loc);
50338a0b85afd4231f46fac59e59ee38729bd5154c4Neil Fuller            TimeZone.setDefault(tz);
50438a0b85afd4231f46fac59e59ee38729bd5154c4Neil Fuller        }
505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
507ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath    static TimeZone defaultTimeZone = TimeZone.getDefault();
508ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath
509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Sets up the fixture, for example, open a network connection. This method
511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * is called before a test is executed.
512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void setUp() {
514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Tears down the fixture, for example, close a network connection. This
518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * method is called after a test is executed.
519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() {
521ba45f538a14c08015021e899f5883f07ed2ff237Narayan Kamath        TimeZone.setDefault(defaultTimeZone);
522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
524