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
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.api.java.util;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Calendar;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Date;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.GregorianCalendar;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.SimpleTimeZone;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.TimeZone;
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class SimpleTimeZoneTest extends junit.framework.TestCase {
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    SimpleTimeZone st1;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    SimpleTimeZone st2;
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
33229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#SimpleTimeZone(int, java.lang.String)
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorILjava_lang_String() {
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.SimpleTimeZone(int, java.lang.String)
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone st = new SimpleTimeZone(1000, "TEST");
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Incorrect TZ constructed", "TEST", st.getID());
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect TZ constructed: " + "returned wrong offset", st
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getRawOffset() == 1000);
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect TZ constructed" + "using daylight savings", !st
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .useDaylightTime());
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
47229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#SimpleTimeZone(int, java.lang.String,
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *        int, int, int, int, int, int, int, int)
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorILjava_lang_StringIIIIIIII() {
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.SimpleTimeZone(int, java.lang.String, int,
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // int, int, int, int, int, int, int)
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone st = new SimpleTimeZone(1000, "TEST", Calendar.NOVEMBER,
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                1, Calendar.SUNDAY, 0, Calendar.NOVEMBER, -1, Calendar.SUNDAY,
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                0);
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect TZ constructed", st
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1998, Calendar.NOVEMBER,
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13).getTime()));
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect TZ constructed", !(st
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1998, Calendar.OCTOBER,
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13).getTime())));
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Incorrect TZ constructed", "TEST", st.getID());
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Incorrect TZ constructed", 1000, st.getRawOffset());
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect TZ constructed", st.useDaylightTime());
65f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new SimpleTimeZone(1000, "TEST", 12,
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    1, Calendar.SUNDAY, 0, Calendar.NOVEMBER, -1, Calendar.SUNDAY,
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    0);
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
74f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new SimpleTimeZone(1000, "TEST", Calendar.NOVEMBER,
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    10, Calendar.SUNDAY, 0, Calendar.NOVEMBER, -1, Calendar.SUNDAY,
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    0);
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
83f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new SimpleTimeZone(1000, "TEST", Calendar.NOVEMBER,
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    1, 10, 0, Calendar.NOVEMBER, -1, Calendar.SUNDAY,
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    0);
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
92f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new SimpleTimeZone(1000, "TEST", Calendar.DECEMBER,
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    1, Calendar.SUNDAY, 0, Calendar.NOVEMBER, -10, Calendar.SUNDAY,
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    0);
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
104229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#SimpleTimeZone(int, java.lang.String,
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *        int, int, int, int, int, int, int, int, int)
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorILjava_lang_StringIIIIIIIII() {
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.SimpleTimeZone(int, java.lang.String, int,
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // int, int, int, int, int, int, int, int)
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone st = new SimpleTimeZone(1000, "TEST", Calendar.NOVEMBER,
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                1, Calendar.SUNDAY, 0, Calendar.NOVEMBER, -1, Calendar.SUNDAY,
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                0, 1000 * 60 * 60);
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect TZ constructed", st
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1998, Calendar.NOVEMBER,
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13).getTime()));
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect TZ constructed", !(st
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1998, Calendar.OCTOBER,
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13).getTime())));
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Incorrect TZ constructed", "TEST", st.getID());
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Incorrect TZ constructed", 1000, st.getRawOffset());
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect TZ constructed", st.useDaylightTime());
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect TZ constructed",
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                st.getDSTSavings() == 1000 * 60 * 60);
124f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new SimpleTimeZone(1000, "TEST", 12,
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    1, Calendar.SUNDAY, 0, Calendar.NOVEMBER, -1, Calendar.SUNDAY,
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    0, 1000 * 60 * 60);
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
133f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new SimpleTimeZone(1000, "TEST", Calendar.NOVEMBER,
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    10, Calendar.SUNDAY, 0, Calendar.NOVEMBER, -1, Calendar.SUNDAY,
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    0, 1000 * 60 * 60);
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
142f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new SimpleTimeZone(1000, "TEST", Calendar.NOVEMBER,
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    1, 10, 0, Calendar.NOVEMBER, -1, Calendar.SUNDAY,
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    0, 1000 * 60 * 60);
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
151f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new SimpleTimeZone(1000, "TEST", Calendar.DECEMBER,
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    1, Calendar.SUNDAY, 0, Calendar.NOVEMBER, -10, Calendar.SUNDAY,
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    0, 1000 * 60 * 60);
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
163229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#SimpleTimeZone(int, java.lang.String,
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *        int, int, int, int, int, int, int, int, int, int, int)
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorILjava_lang_StringIIIIIIIIIII() {
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.util.SimpleTimeZone(int, java.lang.String, int,
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // int, int, int, int, int, int, int, int, int, int)
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // TODO : Implement test
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        //Regression for HARMONY-1241
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNotNull(new SimpleTimeZone(
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                TimeZone.LONG,
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "Europe/Paris",
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SimpleTimeZone.STANDARD_TIME,
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SimpleTimeZone.STANDARD_TIME,
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SimpleTimeZone.UTC_TIME,
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SimpleTimeZone.WALL_TIME,
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SimpleTimeZone.WALL_TIME,
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                TimeZone.SHORT,
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SimpleTimeZone.STANDARD_TIME,
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                TimeZone.LONG,
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SimpleTimeZone.UTC_TIME,
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SimpleTimeZone.STANDARD_TIME,
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                TimeZone.LONG));
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        //seems RI doesn't check the startTimeMode and endTimeMode at all
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        //this behavior is contradicts with spec
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNotNull(new SimpleTimeZone(
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                TimeZone.LONG,
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "Europe/Paris",
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SimpleTimeZone.STANDARD_TIME,
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SimpleTimeZone.STANDARD_TIME,
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SimpleTimeZone.UTC_TIME,
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SimpleTimeZone.WALL_TIME,
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Integer.MAX_VALUE,
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                TimeZone.SHORT,
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SimpleTimeZone.STANDARD_TIME,
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                TimeZone.LONG,
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SimpleTimeZone.UTC_TIME,
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Integer.MIN_VALUE,
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                TimeZone.LONG));
201f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new SimpleTimeZone(1000, "TEST", 12,
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    1, Calendar.SUNDAY, 0, Integer.MAX_VALUE, Calendar.NOVEMBER, -1, Calendar.SUNDAY,
205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    0,  Integer.MAX_VALUE, 1000 * 60 * 60);
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
210f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new SimpleTimeZone(1000, "TEST", Calendar.NOVEMBER,
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    10, Calendar.SUNDAY, 0, Integer.MAX_VALUE, Calendar.NOVEMBER, -1, Calendar.SUNDAY,
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    0, Integer.MAX_VALUE, 1000 * 60 * 60);
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
219f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new SimpleTimeZone(1000, "TEST", Calendar.NOVEMBER,
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    1, 10, 0, Calendar.NOVEMBER, Integer.MAX_VALUE, -1, Calendar.SUNDAY,
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    0, Integer.MAX_VALUE, 1000 * 60 * 60);
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
228f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new SimpleTimeZone(1000, "TEST", Calendar.DECEMBER,
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    1, Calendar.SUNDAY, 0, Calendar.NOVEMBER, Integer.MAX_VALUE, -10, Calendar.SUNDAY,
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    0, Integer.MAX_VALUE, 1000 * 60 * 60);
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
240229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#clone()
241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_clone() {
243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.Object java.util.SimpleTimeZone.clone()
244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone st1 = new SimpleTimeZone(1000, "TEST",
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Calendar.NOVEMBER, 1, Calendar.SUNDAY, 0, Calendar.NOVEMBER,
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                -1, Calendar.SUNDAY, 0);
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone stA = new SimpleTimeZone(1, "Gah");
248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Clone resulted in same reference", st1.clone() != st1);
249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Clone resulted in unequal object", ((SimpleTimeZone) st1
250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .clone()).equals(st1));
251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Clone resulted in same reference", stA.clone() != stA);
252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Clone resulted in unequal object", ((SimpleTimeZone) stA
253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .clone()).equals(stA));
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
257229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#equals(java.lang.Object)
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_equalsLjava_lang_Object() {
260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method boolean
261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.util.SimpleTimeZone.equals(java.lang.Object)
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TimeZone tz = TimeZone.getTimeZone("EST");
263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1 = new SimpleTimeZone(tz.getRawOffset(), "EST");
264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st2 = new SimpleTimeZone(0, "EST");
265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(st1.equals(st2));
266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1.setRawOffset(st2.getRawOffset());
267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(st1.equals(st2));
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
271229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#getDSTSavings()
272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getDSTSavings() {
274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.util.SimpleTimeZone.getDSTSavings()
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1 = new SimpleTimeZone(0, "TEST");
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Non-zero default daylight savings",
278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                0, st1.getDSTSavings());
279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1.setStartRule(0, 1, 1, 1);
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1.setEndRule(11, 1, 1, 1);
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Incorrect default daylight savings",
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                3600000, st1.getDSTSavings());
284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1 = new SimpleTimeZone(-5 * 3600000, "EST", Calendar.APRIL, 1,
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                -Calendar.SUNDAY, 2 * 3600000, Calendar.OCTOBER, -1,
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Calendar.SUNDAY, 2 * 3600000, 7200000);
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Incorrect daylight savings from constructor", 7200000, st1
288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getDSTSavings());
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
293229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#getOffset(int, int, int, int, int, int)
294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getOffsetIIIIII() {
296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.util.SimpleTimeZone.getOffset(int, int, int,
297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // int, int, int)
298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        TimeZone st1 = TimeZone.getTimeZone("EST");
299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1 = new SimpleTimeZone(TimeZone.getTimeZone("EST").getRawOffset(), "EST");
300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect offset returned", st1.getOffset(
301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                GregorianCalendar.AD, 1998, Calendar.NOVEMBER, 11,
302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Calendar.WEDNESDAY, 0) == -(5 * 60 * 60 * 1000));
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1 = new SimpleTimeZone(TimeZone.getTimeZone("EST").getRawOffset(), "EST");
305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Incorrect offset returned", -(5 * 60 * 60 * 1000), st1
306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getOffset(GregorianCalendar.AD, 1998, Calendar.JUNE, 11,
307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        Calendar.THURSDAY, 0));
308f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Regression for HARMONY-5459
310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1 = new SimpleTimeZone(TimeZone.getDefault().getRawOffset(), TimeZone.getDefault().getID());
311f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        int fourHours = 4*60*60*1000;
312f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        st1.setRawOffset(fourHours);
313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(fourHours, st1.getOffset(1, 2099, 01, 1, 5, 0));
314f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st1.getOffset(-1, 2099, 01, 1, 5, 0);
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
321f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st1.getOffset(1, 2099, 15, 1, 5, 0);
324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
328f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st1.getOffset(1, 2099, 01, 100, 5, 0);
331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
335f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st1.getOffset(1, 2099, 01, 1, 50, 0);
338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
342f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st1.getOffset(1, 2099, 01, 1, 5, -10);
345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
352229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#getRawOffset()
353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getRawOffset() {
355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.util.SimpleTimeZone.getRawOffset()
356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1 = new SimpleTimeZone(TimeZone.getTimeZone("EST").getRawOffset(), "EST");
357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect offset returned",
358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                st1.getRawOffset() == -(5 * 60 * 60 * 1000));
359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
363229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#hashCode()
364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_hashCode() {
366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method int java.util.SimpleTimeZone.hashCode()
367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // For lack of a better test.
368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1 = new SimpleTimeZone(-5 * 3600000, "EST", Calendar.APRIL, 1,
369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                -Calendar.SUNDAY, 2 * 3600000, Calendar.OCTOBER, -1,
370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Calendar.SUNDAY, 2 * 3600000);
371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(TimeZone.getTimeZone("EST").hashCode() != 0);
372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(st1.hashCode() != 0);
373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
376229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#hasSameRules(java.util.TimeZone)
377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_hasSameRulesLjava_util_TimeZone() {
379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method boolean
380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.util.SimpleTimeZone.hasSameRules(java.util.TimeZone)
381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone st = new SimpleTimeZone(1000, "TEST", Calendar.NOVEMBER,
382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                1, Calendar.SUNDAY, 0, Calendar.NOVEMBER, -1, Calendar.SUNDAY,
383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                0);
384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone sameAsSt = new SimpleTimeZone(1000, "REST",
385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Calendar.NOVEMBER, 1, Calendar.SUNDAY, 0, Calendar.NOVEMBER,
386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                -1, Calendar.SUNDAY, 0);
387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone notSameAsSt = new SimpleTimeZone(1000, "PEST",
388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Calendar.NOVEMBER, 2, Calendar.SUNDAY, 0, Calendar.NOVEMBER,
389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                -1, Calendar.SUNDAY, 0);
390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Time zones have same rules but return false", st
391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .hasSameRules(sameAsSt));
392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Time zones have different rules but return true", !st
393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .hasSameRules(notSameAsSt));
394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
397229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#inDaylightTime(java.util.Date)
398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_inDaylightTimeLjava_util_Date() {
400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method boolean
401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // java.util.SimpleTimeZone.inDaylightTime(java.util.Date)
402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TimeZone tz = TimeZone.getTimeZone("EST");
403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone zone = new SimpleTimeZone(tz.getRawOffset(), "EST",
404f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes                Calendar.APRIL, 1, -Calendar.SUNDAY, 7200000, Calendar.OCTOBER, -1, Calendar.SUNDAY, 7200000, 3600000);
405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        GregorianCalendar gc = new GregorianCalendar(1998, Calendar.JUNE, 11);
406f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect daylight value1", zone.inDaylightTime(gc
408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getTime()));
409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        gc = new GregorianCalendar(1998, Calendar.NOVEMBER, 11);
410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect daylight value2", !(zone
411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(gc.getTime())));
412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        gc = new GregorianCalendar(zone);
413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        gc.set(1999, Calendar.APRIL, 4, 1, 59, 59);
414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect daylight value3", !(zone
415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(gc.getTime())));
416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Date date = new Date(gc.getTime().getTime() + 1000);
417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect daylight value4", zone
418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(date));
419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        gc.set(1999, Calendar.OCTOBER, 31, 1, 0, 0);
420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect daylight value5", !(zone
421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(gc.getTime())));
422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        date = new Date(gc.getTime().getTime() - 1000);
423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect daylight value6", zone
424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(date));
425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect daylight value7", !zone
427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new Date(891752400000L + 7200000 - 1)));
428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect daylight value8", zone
429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new Date(891752400000L + 7200000)));
430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect daylight value9", zone
431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new Date(909288000000L + 7200000 - 1)));
432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Returned incorrect daylight value10", !zone
433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new Date(909288000000L + 7200000)));
434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
437229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#setDSTSavings(int)
438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setDSTSavingsI() {
440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.SimpleTimeZone.setDSTSavings(int)
441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone st = new SimpleTimeZone(1000, "Test_TZ");
442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setStartRule(0, 1, 1, 1);
443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setEndRule(11, 1, 1, 1);
444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setDSTSavings(1);
445cff1616012dc0d56c2da9af2b9b1183e76c7e044Elliott Hughes        assertEquals(1, st.getDSTSavings());
446cff1616012dc0d56c2da9af2b9b1183e76c7e044Elliott Hughes        try {
447cff1616012dc0d56c2da9af2b9b1183e76c7e044Elliott Hughes            st.setDSTSavings(0);
448cff1616012dc0d56c2da9af2b9b1183e76c7e044Elliott Hughes            fail();
449cff1616012dc0d56c2da9af2b9b1183e76c7e044Elliott Hughes        } catch (IllegalArgumentException expected) {
450cff1616012dc0d56c2da9af2b9b1183e76c7e044Elliott Hughes        }
451cff1616012dc0d56c2da9af2b9b1183e76c7e044Elliott Hughes        try {
452cff1616012dc0d56c2da9af2b9b1183e76c7e044Elliott Hughes            st.setDSTSavings(-1);
453cff1616012dc0d56c2da9af2b9b1183e76c7e044Elliott Hughes            fail();
454cff1616012dc0d56c2da9af2b9b1183e76c7e044Elliott Hughes        } catch (IllegalArgumentException expected) {
455cff1616012dc0d56c2da9af2b9b1183e76c7e044Elliott Hughes        }
456cff1616012dc0d56c2da9af2b9b1183e76c7e044Elliott Hughes      }
457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
459229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#setEndRule(int, int, int)
460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setEndRuleIII() {
462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone st = new SimpleTimeZone(1000, "Test_TZ");
463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setStartRule(Calendar.NOVEMBER, 1, 0);
464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setEndRule(Calendar.NOVEMBER, 20, 0);
465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set1", st.useDaylightTime());
466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set2", st.inDaylightTime(
467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                new GregorianCalendar(1998, Calendar.NOVEMBER,
468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13).getTime()));
469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set3", !(st
470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1998, Calendar.OCTOBER,
471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13).getTime())));
472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
474f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            st.setEndRule(13, 20, 0);
475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
479f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
481f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            st.setEndRule(1, 32, 0);
482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
486f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
488f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            st.setEndRule(1, 30, 10);
489f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("IllegalArgumentException is not thrown.");
490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
496229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#setEndRule(int, int, int, int)
497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setEndRuleIIII() {
499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.SimpleTimeZone.setEndRule(int, int,
500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // int, int)
501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone st = new SimpleTimeZone(1000, "Test_TZ");
502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Spec indicates that both end and start must be set or result is
503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // undefined
504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setStartRule(Calendar.NOVEMBER, 1, Calendar.SUNDAY, 0);
505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setEndRule(Calendar.NOVEMBER, -1, Calendar.SUNDAY, 0);
506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set1", st.useDaylightTime());
507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set2", st
508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1998, Calendar.NOVEMBER,
509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13).getTime()));
510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set3", !(st
511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1998, Calendar.OCTOBER,
512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13).getTime())));
513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setEndRule(12, -1, Calendar.SUNDAY, 0);
516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setEndRule(Calendar.NOVEMBER, 10, Calendar.SUNDAY, 0);
523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
529adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setEndRule(Calendar.NOVEMBER, -1, 8, 0);
530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setEndRule(Calendar.NOVEMBER, -1, Calendar.SUNDAY, -10);
537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
544229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#setEndRule(int, int, int, int, boolean)
545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setEndRuleIIIIZ() {
547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.SimpleTimeZone.setEndRule(int, int,
548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // int, int, boolean)
549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone st = new SimpleTimeZone(1000, "Test_TZ");
550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Spec indicates that both end and start must be set or result is
551adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // undefined
552adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setStartRule(Calendar.NOVEMBER, 8, Calendar.SUNDAY, 1, false);
553adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setEndRule(Calendar.NOVEMBER, 15, Calendar.SUNDAY, 1, true);
554adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set1", st.useDaylightTime());
555adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set2", st
556adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime((new GregorianCalendar(1999, Calendar.NOVEMBER,
557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        7, 12, 0).getTime())));
558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set3", st
559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime((new GregorianCalendar(1999, Calendar.NOVEMBER,
560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        20, 12, 0).getTime())));
561adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set4", !(st
562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1999, Calendar.NOVEMBER,
563adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        6, 12, 0).getTime())));
564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set5", !(st
565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1999, Calendar.NOVEMBER,
566adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        21, 12, 0).getTime())));
567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
568adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setEndRule(20, 15, Calendar.SUNDAY, 1, true);
570adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
571adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
573adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
574adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
575adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
576adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setEndRule(Calendar.NOVEMBER, 35, Calendar.SUNDAY, 1, true);
577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
579adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
581adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
583adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setEndRule(Calendar.NOVEMBER, 15, 12, 1, true);
584adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
586adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
587adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
589adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
590adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setEndRule(Calendar.NOVEMBER, 15, Calendar.SUNDAY, -1, true);
591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
593adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
594adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
595adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
597adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
598229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#setRawOffset(int)
599adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setRawOffsetI() {
601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.SimpleTimeZone.setRawOffset(int)
602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
603adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1 = new SimpleTimeZone(TimeZone.getTimeZone("EST").getRawOffset(), "EST");
604adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int off = st1.getRawOffset();
605adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1.setRawOffset(1000);
606adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean val = st1.getRawOffset() == 1000;
607adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1.setRawOffset(off);
608adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect offset set", val);
609adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
610adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
611adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
612229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#setStartRule(int, int, int)
613adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
614adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setStartRuleIII() {
615adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.SimpleTimeZone.setStartRule(int, int,
616adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // int)
617adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone st = new SimpleTimeZone(1000, "Test_TZ");
618adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Spec indicates that both end and start must be set or result is
619adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // undefined
620adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setStartRule(Calendar.NOVEMBER, 1, 1);
621adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setEndRule(Calendar.DECEMBER, 1, 1);
622adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set", st.useDaylightTime());
623adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set", st
624adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime((new GregorianCalendar(1998, Calendar.NOVEMBER,
625adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13).getTime())));
626adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set", !(st
627adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1998, Calendar.OCTOBER,
628adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13).getTime())));
629adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
630adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
631f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            st.setStartRule(13, 20, 0);
632adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
633adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
634adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
635adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
636f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
637adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
638f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            st.setStartRule(1, 32, 0);
639adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
640adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
641adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
642adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
643f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
644adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
645f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            st.setStartRule(1, 30, 10);
646f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes            fail("IllegalArgumentException is not thrown.");
647adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
648adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
649adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
650adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
651adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
652adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
653229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#setStartRule(int, int, int, int)
654adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
655adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setStartRuleIIII() {
656adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.SimpleTimeZone.setStartRule(int, int,
657adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // int, int)
658adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone st = new SimpleTimeZone(1000, "Test_TZ");
659adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Spec indicates that both end and start must be set or result is
660adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // undefined
661adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setStartRule(Calendar.NOVEMBER, 1, Calendar.SUNDAY, 0);
662adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setEndRule(Calendar.NOVEMBER, -1, Calendar.SUNDAY, 0);
663adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set1", st.useDaylightTime());
664adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set2", st
665adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime((new GregorianCalendar(1998, Calendar.NOVEMBER,
666adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13).getTime())));
667adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set3", !(st
668adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1998, Calendar.OCTOBER,
669adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13).getTime())));
670adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
671adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
672adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setStartRule(12, -1, Calendar.SUNDAY, 0);
673adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
674adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
675adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
676adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
677adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
678adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
679adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setStartRule(Calendar.NOVEMBER, 10, Calendar.SUNDAY, 0);
680adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
681adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
682adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
683adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
684adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
685adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
686adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setStartRule(Calendar.NOVEMBER, -1, 8, 0);
687adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
688adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
689adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
690adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
691adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
692adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
693adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setStartRule(Calendar.NOVEMBER, -1, Calendar.SUNDAY, -10);
694adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
695adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
696adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
697adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
698adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
699adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
700adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
701229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#setStartRule(int, int, int, int, boolean)
702adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
703adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setStartRuleIIIIZ() {
7049cc7e409710f67925a1cf3054d3ced9114d47e75steven_huang        TimeZone.setDefault(TimeZone.getTimeZone("GMT"));
705adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.SimpleTimeZone.setStartRule(int, int,
706adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // int, int, boolean)
707adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone st = new SimpleTimeZone(TimeZone.getTimeZone("EST").getRawOffset(), "EST");
708adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Spec indicates that both end and start must be set or result is
709adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // undefined
710adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setStartRule(Calendar.NOVEMBER, 1, Calendar.SUNDAY, 1, true);
711adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setEndRule(Calendar.NOVEMBER, 15, Calendar.SUNDAY, 1, false);
712adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set1", st.useDaylightTime());
713adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set2", st
714adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime((new GregorianCalendar(1999, Calendar.NOVEMBER,
715adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        7, 12, 0).getTime())));
716adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set3", st
717adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime((new GregorianCalendar(1999, Calendar.NOVEMBER,
718adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13, 12, 0).getTime())));
719adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set4", !(st
720adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1999, Calendar.NOVEMBER,
721adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        6, 12, 0).getTime())));
722adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("StartRule improperly set5", !(st
723adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1999, Calendar.NOVEMBER,
724adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        14, 12, 0).getTime())));
725adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
726adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
727adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setStartRule(20, 15, Calendar.SUNDAY, 1, true);
728adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
729adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
730adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
731adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
732adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
733adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
734adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setStartRule(Calendar.NOVEMBER, 35, Calendar.SUNDAY, 1, true);
735adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
736adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
737adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
738adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
739adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
740adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
741adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setStartRule(Calendar.NOVEMBER, 15, 12, 1, true);
742adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
743adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
744adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
745adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
746adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
747adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
748adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            st.setStartRule(Calendar.NOVEMBER, 15, Calendar.SUNDAY, -1, true);
749adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException is not thrown.");
750adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalArgumentException iae) {
751adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
752adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
753adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
754adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
755adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
756229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#setStartYear(int)
757adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
758adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setStartYearI() {
759adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method void java.util.SimpleTimeZone.setStartYear(int)
760adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone st = new SimpleTimeZone(1000, "Test_TZ");
761adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setStartRule(Calendar.NOVEMBER, 1, Calendar.SUNDAY, 0);
762adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setEndRule(Calendar.NOVEMBER, -1, Calendar.SUNDAY, 0);
763adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setStartYear(1999);
764adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("set year improperly set1", !(st
765adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1999, Calendar.JULY, 12)
766adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        .getTime())));
767adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("set year improperly set2", !(st
768adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1998, Calendar.OCTOBER,
769adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13).getTime())));
770adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("set year improperly set3", (st
771adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .inDaylightTime(new GregorianCalendar(1999, Calendar.NOVEMBER,
772adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                        13).getTime())));
773adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
774adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
775adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
776229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#toString()
777adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
778adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_toString() {
779adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.lang.String java.util.SimpleTimeZone.toString()
780adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String string = TimeZone.getTimeZone("EST").toString();
781adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNotNull("toString() returned null", string);
782adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("toString() is empty", string.length() != 0);
783adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
784adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
785adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
786229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * java.util.SimpleTimeZone#useDaylightTime()
787adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
788adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_useDaylightTime() {
789adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method boolean java.util.SimpleTimeZone.useDaylightTime()
790adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SimpleTimeZone st = new SimpleTimeZone(1000, "Test_TZ");
791adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("useDaylightTime returned incorrect value", !st
792adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .useDaylightTime());
793adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Spec indicates that both end and start must be set or result is
794adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // undefined
795adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setStartRule(Calendar.NOVEMBER, 1, Calendar.SUNDAY, 0);
796adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st.setEndRule(Calendar.NOVEMBER, -1, Calendar.SUNDAY, 0);
797adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("useDaylightTime returned incorrect value", st
798adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .useDaylightTime());
799adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
800f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
801adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_getOffsetJ() {
802adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Calendar cal = Calendar.getInstance();
803adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.set(1998, Calendar.NOVEMBER, 11, 0, 0);
804adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1 = new SimpleTimeZone(TimeZone.getTimeZone("EST").getRawOffset(), "EST");
805adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
806adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Incorrect offset returned", st1.getOffset(cal.getTimeInMillis()) ==
807adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            -(5 * 60 * 60 * 1000));
808adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
809adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1 = new SimpleTimeZone(TimeZone.getTimeZone("EST").getRawOffset(), "EST");
810adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.set(1998, Calendar.JUNE, 11, 0, 0);
811adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("Incorrect offset returned", -(5 * 60 * 60 * 1000), st1
812adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getOffset(cal.getTimeInMillis()));
813f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
814adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Regression for HARMONY-5459
815adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        st1 = new SimpleTimeZone(TimeZone.getDefault().getRawOffset(), TimeZone.getDefault().getID());
816f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        int fourHours = 4*60*60*1000;
817f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        st1.setRawOffset(fourHours);
818adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        cal.set(2099, 01, 1, 0, 0);
819f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
820adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(fourHours, st1.getOffset(cal.getTimeInMillis()));
821adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
822adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
823f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
824adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
825adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
826adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Sets up the fixture, for example, open a network connection. This method
827adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * is called before a test is executed.
828adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
829adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void setUp() {
830adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
831adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
832adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
833adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Tears down the fixture, for example, close a network connection. This
834adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * method is called after a test is executed.
835adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
836adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() {
837adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
838adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
839