| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 // Dart test program for Date. | 5 // Dart test program for Date. |
| 6 | 6 |
| 7 class DateTest { | 7 class DateTest { |
| 8 // Tests if the time moves eventually forward. | 8 // Tests if the time moves eventually forward. |
| 9 static void testNow() { | 9 static void testNow() { |
| 10 var t1 = new Date.now(); | 10 var t1 = new Date.now(); |
| 11 bool timeMovedForward = false; | 11 bool timeMovedForward = false; |
| 12 for (int i = 0; i < 1000000; i++) { | 12 for (int i = 0; i < 1000000; i++) { |
| 13 var t2 = new Date.now(); | 13 var t2 = new Date.now(); |
| 14 if (t1.value < t2.value) { | 14 if (t1.millisecondsSinceEpoch < t2.millisecondsSinceEpoch) { |
| 15 timeMovedForward = true; | 15 timeMovedForward = true; |
| 16 break; | 16 break; |
| 17 } | 17 } |
| 18 } | 18 } |
| 19 Expect.equals(true, timeMovedForward); | 19 Expect.equals(true, timeMovedForward); |
| 20 Expect.isFalse(t1.isUtc()); | 20 Expect.isFalse(t1.isUtc); |
| 21 } | 21 } |
| 22 | 22 |
| 23 static void testValue() { | 23 static void testValue() { |
| 24 var dt1 = new Date.now(); | 24 var dt1 = new Date.now(); |
| 25 var value = dt1.value; | 25 var millisecondsSinceEpoch = dt1.millisecondsSinceEpoch; |
| 26 var dt2 = new Date.fromEpoch(value); | 26 var dt2 = new Date.fromMillisecondsSinceEpoch(millisecondsSinceEpoch); |
| 27 Expect.equals(value, dt2.value); | 27 Expect.equals(millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); |
| 28 } | 28 } |
| 29 | 29 |
| 30 static void testFarAwayDates() { | 30 static void testFarAwayDates() { |
| 31 Date dt = new Date.fromEpoch(1000000000000001, isUtc: true); | 31 Date dt = |
| 32 new Date.fromMillisecondsSinceEpoch(1000000000000001, isUtc: true); |
| 32 Expect.equals(33658, dt.year); | 33 Expect.equals(33658, dt.year); |
| 33 Expect.equals(9, dt.month); | 34 Expect.equals(9, dt.month); |
| 34 Expect.equals(27, dt.day); | 35 Expect.equals(27, dt.day); |
| 35 Expect.equals(1, dt.hours); | 36 Expect.equals(1, dt.hour); |
| 36 Expect.equals(46, dt.minutes); | 37 Expect.equals(46, dt.minute); |
| 37 Expect.equals(40, dt.seconds); | 38 Expect.equals(40, dt.second); |
| 38 Expect.equals(1, dt.milliseconds); | 39 Expect.equals(1, dt.millisecond); |
| 39 dt = new Date.fromEpoch(-1000000000000001, isUtc: true); | 40 dt = new Date.fromMillisecondsSinceEpoch(-1000000000000001, isUtc: true); |
| 40 Expect.equals(-29719, dt.year); | 41 Expect.equals(-29719, dt.year); |
| 41 Expect.equals(4, dt.month); | 42 Expect.equals(4, dt.month); |
| 42 Expect.equals(5, dt.day); | 43 Expect.equals(5, dt.day); |
| 43 Expect.equals(22, dt.hours); | 44 Expect.equals(22, dt.hour); |
| 44 Expect.equals(13, dt.minutes); | 45 Expect.equals(13, dt.minute); |
| 45 Expect.equals(19, dt.seconds); | 46 Expect.equals(19, dt.second); |
| 46 Expect.equals(999, dt.milliseconds); | 47 Expect.equals(999, dt.millisecond); |
| 47 // Same with local zone. | 48 // Same with local zone. |
| 48 dt = new Date.fromEpoch(1000000000000001); | 49 dt = new Date.fromMillisecondsSinceEpoch(1000000000000001); |
| 49 Expect.equals(33658, dt.year); | 50 Expect.equals(33658, dt.year); |
| 50 Expect.equals(9, dt.month); | 51 Expect.equals(9, dt.month); |
| 51 Expect.equals(true, dt.day == 27 || dt.day == 26); | 52 Expect.equals(true, dt.day == 27 || dt.day == 26); |
| 52 // Not much we can test for local hours. | 53 // Not much we can test for local hour. |
| 53 Expect.equals(true, dt.hours >= 0 && dt.hours < 24); | 54 Expect.equals(true, dt.hour >= 0 && dt.hour < 24); |
| 54 // Timezones can have offsets down to 15 minutes. | 55 // Timezones can have offsets down to 15 minute. |
| 55 Expect.equals(true, dt.minutes % 15 == 46 % 15); | 56 Expect.equals(true, dt.minute % 15 == 46 % 15); |
| 56 Expect.equals(40, dt.seconds); | 57 Expect.equals(40, dt.second); |
| 57 Expect.equals(1, dt.milliseconds); | 58 Expect.equals(1, dt.millisecond); |
| 58 dt = new Date.fromEpoch(-1000000000000001); | 59 dt = new Date.fromMillisecondsSinceEpoch(-1000000000000001); |
| 59 Expect.equals(-29719, dt.year); | 60 Expect.equals(-29719, dt.year); |
| 60 Expect.equals(4, dt.month); | 61 Expect.equals(4, dt.month); |
| 61 Expect.equals(true, 5 == dt.day || 6 == dt.day); | 62 Expect.equals(true, 5 == dt.day || 6 == dt.day); |
| 62 // Not much we can test for local hours. | 63 // Not much we can test for local hour. |
| 63 Expect.equals(true, dt.hours >= 0 && dt.hours < 24); | 64 Expect.equals(true, dt.hour >= 0 && dt.hour < 24); |
| 64 // Timezones can have offsets down to 15 minutes. | 65 // Timezones can have offsets down to 15 minute. |
| 65 Expect.equals(true, dt.minutes % 15 == 13); | 66 Expect.equals(true, dt.minute % 15 == 13); |
| 66 Expect.equals(19, dt.seconds); | 67 Expect.equals(19, dt.second); |
| 67 Expect.equals(999, dt.milliseconds); | 68 Expect.equals(999, dt.millisecond); |
| 68 } | 69 } |
| 69 | 70 |
| 70 static void testEquivalentYears() { | 71 static void testEquivalentYears() { |
| 71 // All hardcoded values come from V8. This means that the values are not | 72 // All hardcoded values come from V8. This means that the values are not |
| 72 // necessarily correct (see limitations of Date object in | 73 // necessarily correct (see limitations of Date object in |
| 73 // EcmaScript 15.9.1 and in particular 15.9.1.8/9). | 74 // EcmaScript 15.9.1 and in particular 15.9.1.8/9). |
| 74 Date dt = new Date.fromEpoch(-31485600000, isUtc: true); | 75 Date dt = new Date.fromMillisecondsSinceEpoch(-31485600000, isUtc: true); |
| 75 Expect.equals(1969, dt.year); | 76 Expect.equals(1969, dt.year); |
| 76 Expect.equals(1, dt.month); | 77 Expect.equals(1, dt.month); |
| 77 Expect.equals(1, dt.day); | 78 Expect.equals(1, dt.day); |
| 78 Expect.equals(14, dt.hours); | 79 Expect.equals(14, dt.hour); |
| 79 Expect.equals(0, dt.minutes); | 80 Expect.equals(0, dt.minute); |
| 80 Expect.equals(0, dt.seconds); | 81 Expect.equals(0, dt.second); |
| 81 Expect.equals(0, dt.milliseconds); | 82 Expect.equals(0, dt.millisecond); |
| 82 dt = new Date.fromEpoch(-63108000000, isUtc: true); | 83 dt = new Date.fromMillisecondsSinceEpoch(-63108000000, isUtc: true); |
| 83 Expect.equals(1968, dt.year); | 84 Expect.equals(1968, dt.year); |
| 84 Expect.equals(1, dt.month); | 85 Expect.equals(1, dt.month); |
| 85 Expect.equals(1, dt.day); | 86 Expect.equals(1, dt.day); |
| 86 Expect.equals(14, dt.hours); | 87 Expect.equals(14, dt.hour); |
| 87 Expect.equals(0, dt.minutes); | 88 Expect.equals(0, dt.minute); |
| 88 Expect.equals(0, dt.seconds); | 89 Expect.equals(0, dt.second); |
| 89 Expect.equals(0, dt.milliseconds); | 90 Expect.equals(0, dt.millisecond); |
| 90 dt = new Date.fromEpoch(-94644000000, isUtc: true); | 91 dt = new Date.fromMillisecondsSinceEpoch(-94644000000, isUtc: true); |
| 91 Expect.equals(1967, dt.year); | 92 Expect.equals(1967, dt.year); |
| 92 Expect.equals(1, dt.month); | 93 Expect.equals(1, dt.month); |
| 93 Expect.equals(1, dt.day); | 94 Expect.equals(1, dt.day); |
| 94 Expect.equals(14, dt.hours); | 95 Expect.equals(14, dt.hour); |
| 95 Expect.equals(0, dt.minutes); | 96 Expect.equals(0, dt.minute); |
| 96 Expect.equals(0, dt.seconds); | 97 Expect.equals(0, dt.second); |
| 97 Expect.equals(0, dt.milliseconds); | 98 Expect.equals(0, dt.millisecond); |
| 98 dt = new Date.fromEpoch(-126180000000, isUtc: true); | 99 dt = new Date.fromMillisecondsSinceEpoch(-126180000000, isUtc: true); |
| 99 Expect.equals(1966, dt.year); | 100 Expect.equals(1966, dt.year); |
| 100 Expect.equals(1, dt.month); | 101 Expect.equals(1, dt.month); |
| 101 Expect.equals(1, dt.day); | 102 Expect.equals(1, dt.day); |
| 102 Expect.equals(14, dt.hours); | 103 Expect.equals(14, dt.hour); |
| 103 Expect.equals(0, dt.minutes); | 104 Expect.equals(0, dt.minute); |
| 104 Expect.equals(0, dt.seconds); | 105 Expect.equals(0, dt.second); |
| 105 Expect.equals(0, dt.milliseconds); | 106 Expect.equals(0, dt.millisecond); |
| 106 dt = new Date.fromEpoch(-157716000000, isUtc: true); | 107 dt = new Date.fromMillisecondsSinceEpoch(-157716000000, isUtc: true); |
| 107 Expect.equals(1965, dt.year); | 108 Expect.equals(1965, dt.year); |
| 108 Expect.equals(1, dt.month); | 109 Expect.equals(1, dt.month); |
| 109 Expect.equals(1, dt.day); | 110 Expect.equals(1, dt.day); |
| 110 Expect.equals(14, dt.hours); | 111 Expect.equals(14, dt.hour); |
| 111 Expect.equals(0, dt.minutes); | 112 Expect.equals(0, dt.minute); |
| 112 Expect.equals(0, dt.seconds); | 113 Expect.equals(0, dt.second); |
| 113 Expect.equals(0, dt.milliseconds); | 114 Expect.equals(0, dt.millisecond); |
| 114 dt = new Date.fromEpoch(-2177402400000, isUtc: true); | 115 dt = new Date.fromMillisecondsSinceEpoch(-2177402400000, isUtc: true); |
| 115 Expect.equals(1901, dt.year); | 116 Expect.equals(1901, dt.year); |
| 116 Expect.equals(1, dt.month); | 117 Expect.equals(1, dt.month); |
| 117 Expect.equals(1, dt.day); | 118 Expect.equals(1, dt.day); |
| 118 Expect.equals(14, dt.hours); | 119 Expect.equals(14, dt.hour); |
| 119 Expect.equals(0, dt.minutes); | 120 Expect.equals(0, dt.minute); |
| 120 Expect.equals(0, dt.seconds); | 121 Expect.equals(0, dt.second); |
| 121 Expect.equals(0, dt.milliseconds); | 122 Expect.equals(0, dt.millisecond); |
| 122 dt = new Date.fromEpoch(-5333076000000, isUtc: true); | 123 dt = new Date.fromMillisecondsSinceEpoch(-5333076000000, isUtc: true); |
| 123 Expect.equals(1801, dt.year); | 124 Expect.equals(1801, dt.year); |
| 124 Expect.equals(1, dt.month); | 125 Expect.equals(1, dt.month); |
| 125 Expect.equals(1, dt.day); | 126 Expect.equals(1, dt.day); |
| 126 Expect.equals(14, dt.hours); | 127 Expect.equals(14, dt.hour); |
| 127 Expect.equals(0, dt.minutes); | 128 Expect.equals(0, dt.minute); |
| 128 Expect.equals(0, dt.seconds); | 129 Expect.equals(0, dt.second); |
| 129 Expect.equals(0, dt.milliseconds); | 130 Expect.equals(0, dt.millisecond); |
| 130 dt = new Date.fromEpoch(-8520285600000, isUtc: true); | 131 dt = new Date.fromMillisecondsSinceEpoch(-8520285600000, isUtc: true); |
| 131 Expect.equals(1700, dt.year); | 132 Expect.equals(1700, dt.year); |
| 132 Expect.equals(1, dt.month); | 133 Expect.equals(1, dt.month); |
| 133 Expect.equals(1, dt.day); | 134 Expect.equals(1, dt.day); |
| 134 Expect.equals(14, dt.hours); | 135 Expect.equals(14, dt.hour); |
| 135 Expect.equals(0, dt.minutes); | 136 Expect.equals(0, dt.minute); |
| 136 Expect.equals(0, dt.seconds); | 137 Expect.equals(0, dt.second); |
| 137 Expect.equals(0, dt.milliseconds); | 138 Expect.equals(0, dt.millisecond); |
| 138 dt = new Date.fromEpoch(-14831719200000, isUtc: true); | 139 dt = new Date.fromMillisecondsSinceEpoch(-14831719200000, isUtc: true); |
| 139 Expect.equals(1500, dt.year); | 140 Expect.equals(1500, dt.year); |
| 140 Expect.equals(1, dt.month); | 141 Expect.equals(1, dt.month); |
| 141 Expect.equals(1, dt.day); | 142 Expect.equals(1, dt.day); |
| 142 Expect.equals(14, dt.hours); | 143 Expect.equals(14, dt.hour); |
| 143 Expect.equals(0, dt.minutes); | 144 Expect.equals(0, dt.minute); |
| 144 Expect.equals(0, dt.seconds); | 145 Expect.equals(0, dt.second); |
| 145 Expect.equals(0, dt.milliseconds); | 146 Expect.equals(0, dt.millisecond); |
| 146 dt = new Date.fromEpoch(-59011408800000, isUtc: true); | 147 dt = new Date.fromMillisecondsSinceEpoch(-59011408800000, isUtc: true); |
| 147 Expect.equals(100, dt.year); | 148 Expect.equals(100, dt.year); |
| 148 Expect.equals(1, dt.month); | 149 Expect.equals(1, dt.month); |
| 149 Expect.equals(1, dt.day); | 150 Expect.equals(1, dt.day); |
| 150 Expect.equals(14, dt.hours); | 151 Expect.equals(14, dt.hour); |
| 151 Expect.equals(0, dt.minutes); | 152 Expect.equals(0, dt.minute); |
| 152 Expect.equals(0, dt.seconds); | 153 Expect.equals(0, dt.second); |
| 153 Expect.equals(0, dt.milliseconds); | 154 Expect.equals(0, dt.millisecond); |
| 154 dt = new Date.fromEpoch(-62011408800000, isUtc: true); | 155 dt = new Date.fromMillisecondsSinceEpoch(-62011408800000, isUtc: true); |
| 155 Expect.equals(4, dt.year); | 156 Expect.equals(4, dt.year); |
| 156 Expect.equals(12, dt.month); | 157 Expect.equals(12, dt.month); |
| 157 Expect.equals(8, dt.day); | 158 Expect.equals(8, dt.day); |
| 158 Expect.equals(8, dt.hours); | 159 Expect.equals(8, dt.hour); |
| 159 Expect.equals(40, dt.minutes); | 160 Expect.equals(40, dt.minute); |
| 160 Expect.equals(0, dt.seconds); | 161 Expect.equals(0, dt.second); |
| 161 Expect.equals(0, dt.milliseconds); | 162 Expect.equals(0, dt.millisecond); |
| 162 dt = new Date.fromEpoch(-64011408800000, isUtc: true); | 163 dt = new Date.fromMillisecondsSinceEpoch(-64011408800000, isUtc: true); |
| 163 Expect.equals(-59, dt.year); | 164 Expect.equals(-59, dt.year); |
| 164 Expect.equals(7, dt.month); | 165 Expect.equals(7, dt.month); |
| 165 Expect.equals(24, dt.day); | 166 Expect.equals(24, dt.day); |
| 166 Expect.equals(5, dt.hours); | 167 Expect.equals(5, dt.hour); |
| 167 Expect.equals(6, dt.minutes); | 168 Expect.equals(6, dt.minute); |
| 168 Expect.equals(40, dt.seconds); | 169 Expect.equals(40, dt.second); |
| 169 Expect.equals(0, dt.milliseconds); | 170 Expect.equals(0, dt.millisecond); |
| 170 final int SECONDS_YEAR_2035 = 2051222400; | 171 final int SECONDS_YEAR_2035 = 2051222400; |
| 171 dt = new Date.fromEpoch(SECONDS_YEAR_2035 * 1000 + 1, isUtc: true); | 172 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 + 1, |
| 173 isUtc: true); |
| 172 Expect.equals(2035, dt.year); | 174 Expect.equals(2035, dt.year); |
| 173 Expect.equals(1, dt.month); | 175 Expect.equals(1, dt.month); |
| 174 Expect.equals(1, dt.day); | 176 Expect.equals(1, dt.day); |
| 175 Expect.equals(0, dt.hours); | 177 Expect.equals(0, dt.hour); |
| 176 Expect.equals(0, dt.minutes); | 178 Expect.equals(0, dt.minute); |
| 177 Expect.equals(0, dt.seconds); | 179 Expect.equals(0, dt.second); |
| 178 Expect.equals(1, dt.milliseconds); | 180 Expect.equals(1, dt.millisecond); |
| 179 dt = new Date.fromEpoch(SECONDS_YEAR_2035 * 1000 - 1, isUtc: true); | 181 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 - 1, |
| 182 isUtc: true); |
| 180 Expect.equals(2034, dt.year); | 183 Expect.equals(2034, dt.year); |
| 181 Expect.equals(12, dt.month); | 184 Expect.equals(12, dt.month); |
| 182 Expect.equals(31, dt.day); | 185 Expect.equals(31, dt.day); |
| 183 Expect.equals(23, dt.hours); | 186 Expect.equals(23, dt.hour); |
| 184 Expect.equals(59, dt.minutes); | 187 Expect.equals(59, dt.minute); |
| 185 Expect.equals(59, dt.seconds); | 188 Expect.equals(59, dt.second); |
| 186 Expect.equals(999, dt.milliseconds); | 189 Expect.equals(999, dt.millisecond); |
| 187 dt = new Date(2035, 1, 1, 0, 0, 0, 1, isUtc: true); | 190 dt = new Date(2035, 1, 1, 0, 0, 0, 1, isUtc: true); |
| 188 Expect.equals(SECONDS_YEAR_2035 * 1000 + 1, dt.value); | 191 Expect.equals(SECONDS_YEAR_2035 * 1000 + 1, dt.millisecondsSinceEpoch); |
| 189 dt = new Date(2034, 12, 31, 23, 59, 59, 999, isUtc: true); | 192 dt = new Date(2034, 12, 31, 23, 59, 59, 999, isUtc: true); |
| 190 Expect.equals(SECONDS_YEAR_2035 * 1000 - 1, dt.value); | 193 Expect.equals(SECONDS_YEAR_2035 * 1000 - 1, dt.millisecondsSinceEpoch); |
| 191 dt = new Date.fromEpoch(SECONDS_YEAR_2035 * 1000 + 1); | 194 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 + 1); |
| 192 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) || | 195 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) || |
| 193 (2034 == dt.year && 12 == dt.month && 31 == dt.day)); | 196 (2034 == dt.year && 12 == dt.month && 31 == dt.day)); |
| 194 Expect.equals(0, dt.seconds); | 197 Expect.equals(0, dt.second); |
| 195 Expect.equals(1, dt.milliseconds); | 198 Expect.equals(1, dt.millisecond); |
| 196 Date dt2 = new Date( | 199 Date dt2 = new Date( |
| 197 dt.year, dt.month, dt.day, dt.hours, dt.minutes, dt.seconds, | 200 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, |
| 198 dt.milliseconds); | 201 dt.millisecond); |
| 199 Expect.equals(dt.value, dt2.value); | 202 Expect.equals(dt.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); |
| 200 dt = new Date.fromEpoch(SECONDS_YEAR_2035 * 1000 - 1); | 203 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 - 1); |
| 201 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) || | 204 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) || |
| 202 (2034 == dt.year && 12 == dt.month && 31 == dt.day)); | 205 (2034 == dt.year && 12 == dt.month && 31 == dt.day)); |
| 203 Expect.equals(59, dt.seconds); | 206 Expect.equals(59, dt.second); |
| 204 Expect.equals(999, dt.milliseconds); | 207 Expect.equals(999, dt.millisecond); |
| 205 dt2 = new Date( | 208 dt2 = new Date( |
| 206 dt.year, dt.month, dt.day, dt.hours, dt.minutes, dt.seconds, | 209 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, |
| 207 dt.milliseconds); | 210 dt.millisecond); |
| 208 Expect.equals(dt.value, dt2.value); | 211 Expect.equals(dt.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); |
| 209 dt = new Date.fromEpoch(2100000000 * 1000, isUtc: true); | 212 dt = new Date.fromMillisecondsSinceEpoch(2100000000 * 1000, isUtc: true); |
| 210 Expect.equals(2036, dt.year); | 213 Expect.equals(2036, dt.year); |
| 211 Expect.equals(7, dt.month); | 214 Expect.equals(7, dt.month); |
| 212 Expect.equals(18, dt.day); | 215 Expect.equals(18, dt.day); |
| 213 Expect.equals(13, dt.hours); | 216 Expect.equals(13, dt.hour); |
| 214 Expect.equals(20, dt.minutes); | 217 Expect.equals(20, dt.minute); |
| 215 Expect.equals(0, dt.seconds); | 218 Expect.equals(0, dt.second); |
| 216 Expect.equals(0, dt.milliseconds); | 219 Expect.equals(0, dt.millisecond); |
| 217 // Internally this will use the maximum value for the native calls. | 220 // Internally this will use the maximum value for the native calls. |
| 218 dt = new Date(2036, 7, 18, 13, 20); | 221 dt = new Date(2036, 7, 18, 13, 20); |
| 219 Expect.equals(2036, dt.year); | 222 Expect.equals(2036, dt.year); |
| 220 Expect.equals(7, dt.month); | 223 Expect.equals(7, dt.month); |
| 221 Expect.equals(18, dt.day); | 224 Expect.equals(18, dt.day); |
| 222 Expect.equals(13, dt.hours); | 225 Expect.equals(13, dt.hour); |
| 223 Expect.equals(20, dt.minutes); | 226 Expect.equals(20, dt.minute); |
| 224 Expect.equals(0, dt.seconds); | 227 Expect.equals(0, dt.second); |
| 225 Expect.equals(0, dt.milliseconds); | 228 Expect.equals(0, dt.millisecond); |
| 226 Expect.equals("2036-07-18 13:20:00.000", dt.toString()); | 229 Expect.equals("2036-07-18 13:20:00.000", dt.toString()); |
| 227 } | 230 } |
| 228 | 231 |
| 229 static void testExtremes() { | 232 static void testExtremes() { |
| 230 var dt = new Date.fromEpoch(8640000000000000, isUtc: true); | 233 var dt = |
| 234 new Date.fromMillisecondsSinceEpoch(8640000000000000, isUtc: true); |
| 231 Expect.equals(275760, dt.year); | 235 Expect.equals(275760, dt.year); |
| 232 Expect.equals(9, dt.month); | 236 Expect.equals(9, dt.month); |
| 233 Expect.equals(13, dt.day); | 237 Expect.equals(13, dt.day); |
| 234 Expect.equals(0, dt.hours); | 238 Expect.equals(0, dt.hour); |
| 235 Expect.equals(0, dt.minutes); | 239 Expect.equals(0, dt.minute); |
| 236 Expect.equals(0, dt.seconds); | 240 Expect.equals(0, dt.second); |
| 237 Expect.equals(0, dt.milliseconds); | 241 Expect.equals(0, dt.millisecond); |
| 238 dt = new Date.fromEpoch(-8640000000000000, isUtc: true); | 242 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000, isUtc: true); |
| 239 Expect.equals(-271821, dt.year); | 243 Expect.equals(-271821, dt.year); |
| 240 Expect.equals(4, dt.month); | 244 Expect.equals(4, dt.month); |
| 241 Expect.equals(20, dt.day); | 245 Expect.equals(20, dt.day); |
| 242 Expect.equals(0, dt.hours); | 246 Expect.equals(0, dt.hour); |
| 243 Expect.equals(0, dt.minutes); | 247 Expect.equals(0, dt.minute); |
| 244 Expect.equals(0, dt.seconds); | 248 Expect.equals(0, dt.second); |
| 245 Expect.equals(0, dt.milliseconds); | 249 Expect.equals(0, dt.millisecond); |
| 246 // Make sure that we can build the extreme dates in local too. | 250 // Make sure that we can build the extreme dates in local too. |
| 247 dt = new Date.fromEpoch(8640000000000000); | 251 dt = new Date.fromMillisecondsSinceEpoch(8640000000000000); |
| 248 dt = new Date(dt.year, dt.month, dt.day, dt.hours, dt.minutes); | 252 dt = new Date(dt.year, dt.month, dt.day, dt.hour, dt.minute); |
| 249 Expect.equals(8640000000000000, dt.value); | 253 Expect.equals(8640000000000000, dt.millisecondsSinceEpoch); |
| 250 dt = new Date.fromEpoch(-8640000000000000); | 254 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000); |
| 251 dt = new Date(dt.year, dt.month, dt.day, dt.hours, dt.minutes); | 255 dt = new Date(dt.year, dt.month, dt.day, dt.hour, dt.minute); |
| 252 Expect.equals(-8640000000000000, dt.value); | 256 Expect.equals(-8640000000000000, dt.millisecondsSinceEpoch); |
| 253 Expect.throws(() => new Date.fromEpoch(8640000000000001, isUtc: true)); | 257 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(8640000000000001, |
| 254 Expect.throws(() => new Date.fromEpoch(-8640000000000001, isUtc: true)); | 258 isUtc: true)); |
| 255 Expect.throws(() => new Date.fromEpoch(8640000000000001)); | 259 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(-8640000000000001, |
| 256 Expect.throws(() => new Date.fromEpoch(-8640000000000001)); | 260 isUtc: true)); |
| 257 dt = new Date.fromEpoch(8640000000000000); | 261 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(8640000000000001)); |
| 262 Expect.throws( |
| 263 () => new Date.fromMillisecondsSinceEpoch(-8640000000000001)); |
| 264 dt = new Date.fromMillisecondsSinceEpoch(8640000000000000); |
| 258 Expect.throws(() => new Date(dt.year, dt.month, dt.day, | 265 Expect.throws(() => new Date(dt.year, dt.month, dt.day, |
| 259 dt.hours, dt.minutes, 0, 1)); | 266 dt.hour, dt.minute, 0, 1)); |
| 260 dt = new Date.fromEpoch(-8640000000000000); | 267 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000); |
| 261 // TODO(floitsch): Update comment after refactoring. | 268 // TODO(floitsch): Update comment after refactoring. |
| 262 // This test currently fails because the arguments must not be negative. | 269 // This test currently fails because the arguments must not be negative. |
| 263 // However we are going to allow negative (and overflowing) arguments and | 270 // However we are going to allow negative (and overflowing) arguments and |
| 264 // this line will then throw for the correct reason. | 271 // this line will then throw for the correct reason. |
| 265 Expect.throws(() => new Date(dt.year, dt.month, dt.day, | 272 Expect.throws(() => new Date(dt.year, dt.month, dt.day, |
| 266 dt.hours, dt.minutes, 0, -1)); | 273 dt.hour, dt.minute, 0, -1)); |
| 267 } | 274 } |
| 268 | 275 |
| 269 static void testUTCGetters() { | 276 static void testUTCGetters() { |
| 270 var dt = new Date.fromEpoch(1305140315000, isUtc: true); | 277 var dt = new Date.fromMillisecondsSinceEpoch(1305140315000, isUtc: true); |
| 271 Expect.equals(2011, dt.year); | 278 Expect.equals(2011, dt.year); |
| 272 Expect.equals(5, dt.month); | 279 Expect.equals(5, dt.month); |
| 273 Expect.equals(11, dt.day); | 280 Expect.equals(11, dt.day); |
| 274 Expect.equals(18, dt.hours); | 281 Expect.equals(18, dt.hour); |
| 275 Expect.equals(58, dt.minutes); | 282 Expect.equals(58, dt.minute); |
| 276 Expect.equals(35, dt.seconds); | 283 Expect.equals(35, dt.second); |
| 277 Expect.equals(0, dt.milliseconds); | 284 Expect.equals(0, dt.millisecond); |
| 278 Expect.equals(true, dt.isUtc()); | 285 Expect.equals(true, dt.isUtc); |
| 279 Expect.equals(1305140315000, dt.value); | 286 Expect.equals(1305140315000, dt.millisecondsSinceEpoch); |
| 280 dt = new Date.fromEpoch(-9999999, isUtc: true); | 287 dt = new Date.fromMillisecondsSinceEpoch(-9999999, isUtc: true); |
| 281 Expect.equals(1969, dt.year); | 288 Expect.equals(1969, dt.year); |
| 282 Expect.equals(12, dt.month); | 289 Expect.equals(12, dt.month); |
| 283 Expect.equals(31, dt.day); | 290 Expect.equals(31, dt.day); |
| 284 Expect.equals(21, dt.hours); | 291 Expect.equals(21, dt.hour); |
| 285 Expect.equals(13, dt.minutes); | 292 Expect.equals(13, dt.minute); |
| 286 Expect.equals(20, dt.seconds); | 293 Expect.equals(20, dt.second); |
| 287 Expect.equals(1, dt.milliseconds); | 294 Expect.equals(1, dt.millisecond); |
| 288 } | 295 } |
| 289 | 296 |
| 290 static void testLocalGetters() { | 297 static void testLocalGetters() { |
| 291 var dt1 = new Date.fromEpoch(1305140315000); | 298 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000); |
| 292 var dt2 = new Date(dt1.year, dt1.month, dt1.day, | 299 var dt2 = new Date(dt1.year, dt1.month, dt1.day, |
| 293 dt1.hours, dt1.minutes, dt1.seconds, | 300 dt1.hour, dt1.minute, dt1.second, |
| 294 dt1.milliseconds, | 301 dt1.millisecond, |
| 295 isUtc: true); | 302 isUtc: true); |
| 296 Duration zoneOffset = dt1.difference(dt2); | 303 Duration zoneOffset = dt1.difference(dt2); |
| 297 Expect.equals(true, zoneOffset.inDays == 0); | 304 Expect.equals(true, zoneOffset.inDays == 0); |
| 298 Expect.equals(true, zoneOffset.inHours.abs() <= 12); | 305 Expect.equals(true, zoneOffset.inHours.abs() <= 12); |
| 299 Expect.equals(dt1.year, dt2.year); | 306 Expect.equals(dt1.year, dt2.year); |
| 300 Expect.equals(dt1.month, dt2.month); | 307 Expect.equals(dt1.month, dt2.month); |
| 301 Expect.equals(true, (dt1.day - dt2.day).abs() <= 1); | 308 Expect.equals(true, (dt1.day - dt2.day).abs() <= 1); |
| 302 Expect.equals(true, dt1.hours < 24); | 309 Expect.equals(true, dt1.hour < 24); |
| 303 // There are timezones with 0.5 or 0.25 hour offsets. | 310 // There are timezones with 0.5 or 0.25 hour offsets. |
| 304 Expect.equals(true, | 311 Expect.equals(true, |
| 305 (dt1.minutes == dt2.minutes) || | 312 (dt1.minute == dt2.minute) || |
| 306 ((dt1.minutes - dt2.minutes).abs() == 30) || | 313 ((dt1.minute - dt2.minute).abs() == 30) || |
| 307 ((dt1.minutes - dt2.minutes).abs() == 15)); | 314 ((dt1.minute - dt2.minute).abs() == 15)); |
| 308 Expect.equals(dt1.seconds, dt2.seconds); | 315 Expect.equals(dt1.second, dt2.second); |
| 309 Expect.equals(dt1.milliseconds, dt2.milliseconds); | 316 Expect.equals(dt1.millisecond, dt2.millisecond); |
| 310 } | 317 } |
| 311 | 318 |
| 312 static void testConstructors() { | 319 static void testConstructors() { |
| 313 var dt0 = new Date(2011, 5, 11, 18, 58, 35, 0, isUtc: true); | 320 var dt0 = new Date(2011, 5, 11, 18, 58, 35, 0, isUtc: true); |
| 314 Expect.equals(1305140315000, dt0.value); | 321 Expect.equals(1305140315000, dt0.millisecondsSinceEpoch); |
| 315 var dt1 = new Date.fromEpoch(1305140315000); | 322 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000); |
| 316 Expect.equals(dt1.value, dt0.value); | 323 Expect.equals(dt1.millisecondsSinceEpoch, dt0.millisecondsSinceEpoch); |
| 317 Expect.equals(true, dt1 == dt0); | 324 Expect.equals(true, dt1 == dt0); |
| 318 var dt3 = new Date(dt1.year, dt1.month, dt1.day, dt1.hours, dt1.minutes, | 325 var dt3 = new Date(dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, |
| 319 dt1.seconds, dt1.milliseconds); | 326 dt1.second, dt1.millisecond); |
| 320 Expect.equals(dt1.value, dt3.value); | 327 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); |
| 321 Expect.equals(true, dt1 == dt3); | 328 Expect.equals(true, dt1 == dt3); |
| 322 dt3 = new Date( | 329 dt3 = new Date( |
| 323 dt1.year, dt1.month, dt1.day, dt1.hours, dt1.minutes, | 330 dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, |
| 324 dt1.seconds, dt1.milliseconds); | 331 dt1.second, dt1.millisecond); |
| 325 Expect.equals(dt1.value, dt3.value); | 332 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); |
| 326 Expect.equals(true, dt1 == dt3); | 333 Expect.equals(true, dt1 == dt3); |
| 327 var dt2 = dt1.toLocal(); | 334 var dt2 = dt1.toLocal(); |
| 328 dt3 = new Date(2011, 5, dt1.day, dt1.hours, dt1.minutes, 35, 0); | 335 dt3 = new Date(2011, 5, dt1.day, dt1.hour, dt1.minute, 35, 0); |
| 329 Expect.equals(dt2.value, dt3.value); | 336 Expect.equals(dt2.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); |
| 330 Expect.equals(true, dt2 == dt3); | 337 Expect.equals(true, dt2 == dt3); |
| 331 dt1 = new Date.fromEpoch(-9999999, isUtc: true); | 338 dt1 = new Date.fromMillisecondsSinceEpoch(-9999999, isUtc: true); |
| 332 dt3 = new Date( | 339 dt3 = new Date( |
| 333 dt1.year, dt1.month, dt1.day, dt1.hours, dt1.minutes, | 340 dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, |
| 334 dt1.seconds, dt1.milliseconds, isUtc: true); | 341 dt1.second, dt1.millisecond, isUtc: true); |
| 335 Expect.equals(dt1.value, dt3.value); | 342 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); |
| 336 dt3 = new Date(99, 1, 2, 10, 11, 12, 0, isUtc: true); | 343 dt3 = new Date(99, 1, 2, 10, 11, 12, 0, isUtc: true); |
| 337 Expect.equals(99, dt3.year); | 344 Expect.equals(99, dt3.year); |
| 338 Expect.equals(1, dt3.month); | 345 Expect.equals(1, dt3.month); |
| 339 Expect.equals(2, dt3.day); | 346 Expect.equals(2, dt3.day); |
| 340 Expect.equals(10, dt3.hours); | 347 Expect.equals(10, dt3.hour); |
| 341 Expect.equals(11, dt3.minutes); | 348 Expect.equals(11, dt3.minute); |
| 342 Expect.equals(12, dt3.seconds); | 349 Expect.equals(12, dt3.second); |
| 343 Expect.equals(0, dt3.milliseconds); | 350 Expect.equals(0, dt3.millisecond); |
| 344 Expect.equals(true, dt3.isUtc()); | 351 Expect.equals(true, dt3.isUtc); |
| 345 var dt4 = new Date(99, 1, 2); | 352 var dt4 = new Date(99, 1, 2); |
| 346 Expect.equals(99, dt4.year); | 353 Expect.equals(99, dt4.year); |
| 347 Expect.equals(1, dt4.month); | 354 Expect.equals(1, dt4.month); |
| 348 Expect.equals(2, dt4.day); | 355 Expect.equals(2, dt4.day); |
| 349 Expect.equals(0, dt4.hours); | 356 Expect.equals(0, dt4.hour); |
| 350 Expect.equals(0, dt4.minutes); | 357 Expect.equals(0, dt4.minute); |
| 351 Expect.equals(0, dt4.seconds); | 358 Expect.equals(0, dt4.second); |
| 352 Expect.equals(0, dt4.milliseconds); | 359 Expect.equals(0, dt4.millisecond); |
| 353 Expect.isFalse(dt4.isUtc()); | 360 Expect.isFalse(dt4.isUtc); |
| 354 var dt5 = new Date(99, 1, 2, isUtc: true); | 361 var dt5 = new Date(99, 1, 2, isUtc: true); |
| 355 Expect.equals(99, dt5.year); | 362 Expect.equals(99, dt5.year); |
| 356 Expect.equals(1, dt5.month); | 363 Expect.equals(1, dt5.month); |
| 357 Expect.equals(2, dt5.day); | 364 Expect.equals(2, dt5.day); |
| 358 Expect.equals(0, dt5.hours); | 365 Expect.equals(0, dt5.hour); |
| 359 Expect.equals(0, dt5.minutes); | 366 Expect.equals(0, dt5.minute); |
| 360 Expect.equals(0, dt5.seconds); | 367 Expect.equals(0, dt5.second); |
| 361 Expect.equals(0, dt5.milliseconds); | 368 Expect.equals(0, dt5.millisecond); |
| 362 Expect.isTrue(dt5.isUtc()); | 369 Expect.isTrue(dt5.isUtc); |
| 363 var dt6 = new Date(2012, 2, 27, 13, 27, 0); | 370 var dt6 = new Date(2012, 2, 27, 13, 27, 0); |
| 364 Expect.equals(2012, dt6.year); | 371 Expect.equals(2012, dt6.year); |
| 365 Expect.equals(2, dt6.month); | 372 Expect.equals(2, dt6.month); |
| 366 Expect.equals(27, dt6.day); | 373 Expect.equals(27, dt6.day); |
| 367 Expect.equals(13, dt6.hours); | 374 Expect.equals(13, dt6.hour); |
| 368 Expect.equals(27, dt6.minutes); | 375 Expect.equals(27, dt6.minute); |
| 369 Expect.equals(0, dt6.seconds); | 376 Expect.equals(0, dt6.second); |
| 370 Expect.equals(0, dt6.milliseconds); | 377 Expect.equals(0, dt6.millisecond); |
| 371 Expect.isFalse(dt6.isUtc()); | 378 Expect.isFalse(dt6.isUtc); |
| 372 var dt7 = new Date(2012, 2, 27, 13, 27, 0, isUtc: true); | 379 var dt7 = new Date(2012, 2, 27, 13, 27, 0, isUtc: true); |
| 373 Expect.equals(2012, dt7.year); | 380 Expect.equals(2012, dt7.year); |
| 374 Expect.equals(2, dt7.month); | 381 Expect.equals(2, dt7.month); |
| 375 Expect.equals(27, dt7.day); | 382 Expect.equals(27, dt7.day); |
| 376 Expect.equals(13, dt7.hours); | 383 Expect.equals(13, dt7.hour); |
| 377 Expect.equals(27, dt7.minutes); | 384 Expect.equals(27, dt7.minute); |
| 378 Expect.equals(0, dt7.seconds); | 385 Expect.equals(0, dt7.second); |
| 379 Expect.equals(0, dt7.milliseconds); | 386 Expect.equals(0, dt7.millisecond); |
| 380 Expect.isTrue(dt7.isUtc()); | 387 Expect.isTrue(dt7.isUtc); |
| 381 } | 388 } |
| 382 | 389 |
| 383 static void testChangeTimeZone() { | 390 static void testChangeTimeZone() { |
| 384 var dt1 = new Date.fromEpoch(1305140315000); | 391 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000); |
| 385 var dt2 = dt1.toUtc(); | 392 var dt2 = dt1.toUtc(); |
| 386 Expect.equals(dt1.value, dt2.value); | 393 Expect.equals(dt1.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); |
| 387 var dt3 = new Date.fromEpoch(1305140315000, isUtc: true); | 394 var dt3 = new Date.fromMillisecondsSinceEpoch(1305140315000, isUtc: true); |
| 388 Expect.equals(dt1.value, dt3.value); | 395 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); |
| 389 Expect.equals(dt2.year, dt3.year); | 396 Expect.equals(dt2.year, dt3.year); |
| 390 Expect.equals(dt2.month, dt3.month); | 397 Expect.equals(dt2.month, dt3.month); |
| 391 Expect.equals(dt2.day, dt3.day); | 398 Expect.equals(dt2.day, dt3.day); |
| 392 Expect.equals(dt2.hours, dt3.hours); | 399 Expect.equals(dt2.hour, dt3.hour); |
| 393 Expect.equals(dt2.minutes, dt3.minutes); | 400 Expect.equals(dt2.minute, dt3.minute); |
| 394 Expect.equals(dt2.seconds, dt3.seconds); | 401 Expect.equals(dt2.second, dt3.second); |
| 395 Expect.equals(dt2.milliseconds, dt3.milliseconds); | 402 Expect.equals(dt2.millisecond, dt3.millisecond); |
| 396 var dt4 = dt3.toLocal(); | 403 var dt4 = dt3.toLocal(); |
| 397 Expect.equals(dt1.year, dt4.year); | 404 Expect.equals(dt1.year, dt4.year); |
| 398 Expect.equals(dt1.month, dt4.month); | 405 Expect.equals(dt1.month, dt4.month); |
| 399 Expect.equals(dt1.day, dt4.day); | 406 Expect.equals(dt1.day, dt4.day); |
| 400 Expect.equals(dt1.hours, dt4.hours); | 407 Expect.equals(dt1.hour, dt4.hour); |
| 401 Expect.equals(dt1.minutes, dt4.minutes); | 408 Expect.equals(dt1.minute, dt4.minute); |
| 402 Expect.equals(dt1.seconds, dt4.seconds); | 409 Expect.equals(dt1.second, dt4.second); |
| 403 Expect.equals(dt1.milliseconds, dt4.milliseconds); | 410 Expect.equals(dt1.millisecond, dt4.millisecond); |
| 404 } | 411 } |
| 405 | 412 |
| 406 static void testSubAdd() { | 413 static void testSubAdd() { |
| 407 var dt1 = new Date.fromEpoch(1305140315000, isUtc: true); | 414 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000, isUtc: true); |
| 408 var dt2 = dt1.add(new Duration(milliseconds: | 415 var dt2 = dt1.add(new Duration(milliseconds: |
| 409 3 * Duration.MILLISECONDS_PER_SECOND + 5)); | 416 3 * Duration.MILLISECONDS_PER_SECOND + 5)); |
| 410 Expect.equals(dt1.year, dt2.year); | 417 Expect.equals(dt1.year, dt2.year); |
| 411 Expect.equals(dt1.month, dt2.month); | 418 Expect.equals(dt1.month, dt2.month); |
| 412 Expect.equals(dt1.day, dt2.day); | 419 Expect.equals(dt1.day, dt2.day); |
| 413 Expect.equals(dt1.hours, dt2.hours); | 420 Expect.equals(dt1.hour, dt2.hour); |
| 414 Expect.equals(dt1.minutes, dt2.minutes); | 421 Expect.equals(dt1.minute, dt2.minute); |
| 415 Expect.equals(dt1.seconds + 3, dt2.seconds); | 422 Expect.equals(dt1.second + 3, dt2.second); |
| 416 Expect.equals(dt1.milliseconds + 5, dt2.milliseconds); | 423 Expect.equals(dt1.millisecond + 5, dt2.millisecond); |
| 417 var dt3 = dt2.subtract(new Duration(milliseconds: | 424 var dt3 = dt2.subtract(new Duration(milliseconds: |
| 418 3 * Duration.MILLISECONDS_PER_SECOND + 5)); | 425 3 * Duration.MILLISECONDS_PER_SECOND + 5)); |
| 419 Expect.equals(true, dt1 == dt3); | 426 Expect.equals(true, dt1 == dt3); |
| 420 Expect.equals(false, dt1 == dt2); | 427 Expect.equals(false, dt1 == dt2); |
| 421 } | 428 } |
| 422 | 429 |
| 423 static void testDateStrings() { | 430 static void testDateStrings() { |
| 424 // TODO(floitsch): Clean up the Date API that deals with strings. | 431 // TODO(floitsch): Clean up the Date API that deals with strings. |
| 425 var dt1 = new Date.fromString("2011-05-11 18:58:35Z"); | 432 var dt1 = new Date.fromString("2011-05-11 18:58:35Z"); |
| 426 Expect.equals(1305140315000, dt1.value); | 433 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch); |
| 427 Expect.isTrue(dt1.isUtc()); | 434 Expect.isTrue(dt1.isUtc); |
| 428 dt1 = new Date.fromString("20110511 18:58:35z"); | 435 dt1 = new Date.fromString("20110511 18:58:35z"); |
| 429 Expect.equals(1305140315000, dt1.value); | 436 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch); |
| 430 Expect.isTrue(dt1.isUtc()); | 437 Expect.isTrue(dt1.isUtc); |
| 431 dt1 = new Date.fromString("+20110511 18:58:35z"); | 438 dt1 = new Date.fromString("+20110511 18:58:35z"); |
| 432 Expect.equals(1305140315000, dt1.value); | 439 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch); |
| 433 Expect.isTrue(dt1.isUtc()); | 440 Expect.isTrue(dt1.isUtc); |
| 434 var str = dt1.toString(); | 441 var str = dt1.toString(); |
| 435 var dt2 = new Date.fromString(str); | 442 var dt2 = new Date.fromString(str); |
| 436 Expect.equals(true, dt1 == dt2); | 443 Expect.equals(true, dt1 == dt2); |
| 437 var dt3 = dt1.toUtc(); | 444 var dt3 = dt1.toUtc(); |
| 438 str = dt3.toString(); | 445 str = dt3.toString(); |
| 439 Expect.equals("2011-05-11 18:58:35.000Z", str); | 446 Expect.equals("2011-05-11 18:58:35.000Z", str); |
| 440 var dt4 = new Date.fromString("-1234-01-01 00:00:00Z"); | 447 var dt4 = new Date.fromString("-1234-01-01 00:00:00Z"); |
| 441 Expect.equals(-1234, dt4.year); | 448 Expect.equals(-1234, dt4.year); |
| 442 Expect.equals(1, dt4.month); | 449 Expect.equals(1, dt4.month); |
| 443 Expect.equals(1, dt4.day); | 450 Expect.equals(1, dt4.day); |
| 444 Expect.equals(0, dt4.hours); | 451 Expect.equals(0, dt4.hour); |
| 445 Expect.equals(0, dt4.minutes); | 452 Expect.equals(0, dt4.minute); |
| 446 Expect.equals(0, dt4.seconds); | 453 Expect.equals(0, dt4.second); |
| 447 Expect.equals(0, dt4.milliseconds); | 454 Expect.equals(0, dt4.millisecond); |
| 448 Expect.isTrue(dt4.isUtc()); | 455 Expect.isTrue(dt4.isUtc); |
| 449 var dt5 = new Date.fromString("0099-01-02"); | 456 var dt5 = new Date.fromString("0099-01-02"); |
| 450 Expect.equals(99, dt5.year); | 457 Expect.equals(99, dt5.year); |
| 451 Expect.equals(1, dt5.month); | 458 Expect.equals(1, dt5.month); |
| 452 Expect.equals(2, dt5.day); | 459 Expect.equals(2, dt5.day); |
| 453 Expect.equals(0, dt5.hours); | 460 Expect.equals(0, dt5.hour); |
| 454 Expect.equals(0, dt5.minutes); | 461 Expect.equals(0, dt5.minute); |
| 455 Expect.equals(0, dt5.seconds); | 462 Expect.equals(0, dt5.second); |
| 456 Expect.equals(0, dt5.milliseconds); | 463 Expect.equals(0, dt5.millisecond); |
| 457 Expect.isFalse(dt5.isUtc()); | 464 Expect.isFalse(dt5.isUtc); |
| 458 var dt6 = new Date.fromString("2012-01-01 00:00:10.012"); | 465 var dt6 = new Date.fromString("2012-01-01 00:00:10.012"); |
| 459 Expect.equals(12, dt6.milliseconds); | 466 Expect.equals(12, dt6.millisecond); |
| 460 dt6 = new Date.fromString("2012-01-01 00:00:10.003"); | 467 dt6 = new Date.fromString("2012-01-01 00:00:10.003"); |
| 461 Expect.equals(3, dt6.milliseconds); | 468 Expect.equals(3, dt6.millisecond); |
| 462 dt6 = new Date.fromString("2012-01-01 00:00:10.5"); | 469 dt6 = new Date.fromString("2012-01-01 00:00:10.5"); |
| 463 Expect.equals(500, dt6.milliseconds); | 470 Expect.equals(500, dt6.millisecond); |
| 464 dt6 = new Date.fromString("2012-01-01 00:00:10.003Z"); | 471 dt6 = new Date.fromString("2012-01-01 00:00:10.003Z"); |
| 465 Expect.equals(3, dt6.milliseconds); | 472 Expect.equals(3, dt6.millisecond); |
| 466 dt6 = new Date.fromString("2012-01-01 00:00:10.5z"); | 473 dt6 = new Date.fromString("2012-01-01 00:00:10.5z"); |
| 467 Expect.equals(500, dt6.milliseconds); | 474 Expect.equals(500, dt6.millisecond); |
| 468 var dt7 = new Date.fromString("2011-05-11T18:58:35Z"); | 475 var dt7 = new Date.fromString("2011-05-11T18:58:35Z"); |
| 469 Expect.equals(1305140315000, dt7.value); | 476 Expect.equals(1305140315000, dt7.millisecondsSinceEpoch); |
| 470 var dt8 = new Date.fromString("-1234-01-01T00:00:00Z"); | 477 var dt8 = new Date.fromString("-1234-01-01T00:00:00Z"); |
| 471 Expect.equals(-1234, dt8.year); | 478 Expect.equals(-1234, dt8.year); |
| 472 Expect.equals(1, dt8.month); | 479 Expect.equals(1, dt8.month); |
| 473 Expect.equals(1, dt8.day); | 480 Expect.equals(1, dt8.day); |
| 474 Expect.equals(0, dt8.hours); | 481 Expect.equals(0, dt8.hour); |
| 475 Expect.equals(0, dt8.minutes); | 482 Expect.equals(0, dt8.minute); |
| 476 Expect.equals(0, dt8.seconds); | 483 Expect.equals(0, dt8.second); |
| 477 Expect.equals(0, dt8.milliseconds); | 484 Expect.equals(0, dt8.millisecond); |
| 478 Expect.isTrue(dt8.isUtc()); | 485 Expect.isTrue(dt8.isUtc); |
| 479 var dt9 = new Date.fromString("-1234-01-01T00:00:00"); | 486 var dt9 = new Date.fromString("-1234-01-01T00:00:00"); |
| 480 Expect.equals(-1234, dt9.year); | 487 Expect.equals(-1234, dt9.year); |
| 481 Expect.equals(1, dt9.month); | 488 Expect.equals(1, dt9.month); |
| 482 Expect.equals(1, dt9.day); | 489 Expect.equals(1, dt9.day); |
| 483 Expect.equals(0, dt9.hours); | 490 Expect.equals(0, dt9.hour); |
| 484 Expect.equals(0, dt9.minutes); | 491 Expect.equals(0, dt9.minute); |
| 485 Expect.equals(0, dt9.seconds); | 492 Expect.equals(0, dt9.second); |
| 486 Expect.equals(0, dt9.milliseconds); | 493 Expect.equals(0, dt9.millisecond); |
| 487 Expect.isFalse(dt9.isUtc()); | 494 Expect.isFalse(dt9.isUtc); |
| 488 var dt10 = new Date.fromString("-12340101"); | 495 var dt10 = new Date.fromString("-12340101"); |
| 489 Expect.equals(-1234, dt10.year); | 496 Expect.equals(-1234, dt10.year); |
| 490 Expect.equals(1, dt10.month); | 497 Expect.equals(1, dt10.month); |
| 491 Expect.equals(1, dt10.day); | 498 Expect.equals(1, dt10.day); |
| 492 Expect.equals(0, dt10.hours); | 499 Expect.equals(0, dt10.hour); |
| 493 Expect.equals(0, dt10.minutes); | 500 Expect.equals(0, dt10.minute); |
| 494 Expect.equals(0, dt10.seconds); | 501 Expect.equals(0, dt10.second); |
| 495 Expect.equals(0, dt10.milliseconds); | 502 Expect.equals(0, dt10.millisecond); |
| 496 Expect.isFalse(dt10.isUtc()); | 503 Expect.isFalse(dt10.isUtc); |
| 497 dt1 = new Date.fromString("2012-02-27 13:27:00"); | 504 dt1 = new Date.fromString("2012-02-27 13:27:00"); |
| 498 Expect.equals(2012, dt1.year); | 505 Expect.equals(2012, dt1.year); |
| 499 Expect.equals(2, dt1.month); | 506 Expect.equals(2, dt1.month); |
| 500 Expect.equals(27, dt1.day); | 507 Expect.equals(27, dt1.day); |
| 501 Expect.equals(13, dt1.hours); | 508 Expect.equals(13, dt1.hour); |
| 502 Expect.equals(27, dt1.minutes); | 509 Expect.equals(27, dt1.minute); |
| 503 Expect.equals(0, dt1.seconds); | 510 Expect.equals(0, dt1.second); |
| 504 Expect.equals(0, dt1.milliseconds); | 511 Expect.equals(0, dt1.millisecond); |
| 505 Expect.equals(false, dt1.isUtc()); | 512 Expect.equals(false, dt1.isUtc); |
| 506 dt1 = new Date.fromString("2012-02-27 13:27:00.423z"); | 513 dt1 = new Date.fromString("2012-02-27 13:27:00.423z"); |
| 507 Expect.equals(2012, dt1.year); | 514 Expect.equals(2012, dt1.year); |
| 508 Expect.equals(2, dt1.month); | 515 Expect.equals(2, dt1.month); |
| 509 Expect.equals(27, dt1.day); | 516 Expect.equals(27, dt1.day); |
| 510 Expect.equals(13, dt1.hours); | 517 Expect.equals(13, dt1.hour); |
| 511 Expect.equals(27, dt1.minutes); | 518 Expect.equals(27, dt1.minute); |
| 512 Expect.equals(0, dt1.seconds); | 519 Expect.equals(0, dt1.second); |
| 513 Expect.equals(423, dt1.milliseconds); | 520 Expect.equals(423, dt1.millisecond); |
| 514 Expect.equals(true, dt1.isUtc()); | 521 Expect.equals(true, dt1.isUtc); |
| 515 dt1 = new Date.fromString("20120227 13:27:00"); | 522 dt1 = new Date.fromString("20120227 13:27:00"); |
| 516 Expect.equals(2012, dt1.year); | 523 Expect.equals(2012, dt1.year); |
| 517 Expect.equals(2, dt1.month); | 524 Expect.equals(2, dt1.month); |
| 518 Expect.equals(27, dt1.day); | 525 Expect.equals(27, dt1.day); |
| 519 Expect.equals(13, dt1.hours); | 526 Expect.equals(13, dt1.hour); |
| 520 Expect.equals(27, dt1.minutes); | 527 Expect.equals(27, dt1.minute); |
| 521 Expect.equals(0, dt1.seconds); | 528 Expect.equals(0, dt1.second); |
| 522 Expect.equals(0, dt1.milliseconds); | 529 Expect.equals(0, dt1.millisecond); |
| 523 Expect.equals(false, dt1.isUtc()); | 530 Expect.equals(false, dt1.isUtc); |
| 524 dt1 = new Date.fromString("20120227T132700"); | 531 dt1 = new Date.fromString("20120227T132700"); |
| 525 Expect.equals(2012, dt1.year); | 532 Expect.equals(2012, dt1.year); |
| 526 Expect.equals(2, dt1.month); | 533 Expect.equals(2, dt1.month); |
| 527 Expect.equals(27, dt1.day); | 534 Expect.equals(27, dt1.day); |
| 528 Expect.equals(13, dt1.hours); | 535 Expect.equals(13, dt1.hour); |
| 529 Expect.equals(27, dt1.minutes); | 536 Expect.equals(27, dt1.minute); |
| 530 Expect.equals(0, dt1.seconds); | 537 Expect.equals(0, dt1.second); |
| 531 Expect.equals(0, dt1.milliseconds); | 538 Expect.equals(0, dt1.millisecond); |
| 532 Expect.equals(false, dt1.isUtc()); | 539 Expect.equals(false, dt1.isUtc); |
| 533 dt1 = new Date.fromString("20120227"); | 540 dt1 = new Date.fromString("20120227"); |
| 534 Expect.equals(2012, dt1.year); | 541 Expect.equals(2012, dt1.year); |
| 535 Expect.equals(2, dt1.month); | 542 Expect.equals(2, dt1.month); |
| 536 Expect.equals(27, dt1.day); | 543 Expect.equals(27, dt1.day); |
| 537 Expect.equals(0, dt1.hours); | 544 Expect.equals(0, dt1.hour); |
| 538 Expect.equals(0, dt1.minutes); | 545 Expect.equals(0, dt1.minute); |
| 539 Expect.equals(0, dt1.seconds); | 546 Expect.equals(0, dt1.second); |
| 540 Expect.equals(0, dt1.milliseconds); | 547 Expect.equals(0, dt1.millisecond); |
| 541 Expect.equals(false, dt1.isUtc()); | 548 Expect.equals(false, dt1.isUtc); |
| 542 dt1 = new Date.fromString("2012-02-27T14Z"); | 549 dt1 = new Date.fromString("2012-02-27T14Z"); |
| 543 Expect.equals(2012, dt1.year); | 550 Expect.equals(2012, dt1.year); |
| 544 Expect.equals(2, dt1.month); | 551 Expect.equals(2, dt1.month); |
| 545 Expect.equals(27, dt1.day); | 552 Expect.equals(27, dt1.day); |
| 546 Expect.equals(14, dt1.hours); | 553 Expect.equals(14, dt1.hour); |
| 547 Expect.equals(0, dt1.minutes); | 554 Expect.equals(0, dt1.minute); |
| 548 Expect.equals(0, dt1.seconds); | 555 Expect.equals(0, dt1.second); |
| 549 Expect.equals(0, dt1.milliseconds); | 556 Expect.equals(0, dt1.millisecond); |
| 550 Expect.equals(true, dt1.isUtc()); | 557 Expect.equals(true, dt1.isUtc); |
| 551 dt1 = new Date.fromString("-123450101 00:00:00 Z"); | 558 dt1 = new Date.fromString("-123450101 00:00:00 Z"); |
| 552 Expect.equals(-12345, dt1.year); | 559 Expect.equals(-12345, dt1.year); |
| 553 Expect.equals(1, dt1.month); | 560 Expect.equals(1, dt1.month); |
| 554 Expect.equals(1, dt1.day); | 561 Expect.equals(1, dt1.day); |
| 555 Expect.equals(0, dt1.hours); | 562 Expect.equals(0, dt1.hour); |
| 556 Expect.equals(0, dt1.minutes); | 563 Expect.equals(0, dt1.minute); |
| 557 Expect.equals(0, dt1.seconds); | 564 Expect.equals(0, dt1.second); |
| 558 Expect.equals(0, dt1.milliseconds); | 565 Expect.equals(0, dt1.millisecond); |
| 559 Expect.equals(true, dt1.isUtc()); | 566 Expect.equals(true, dt1.isUtc); |
| 560 // We only support milliseconds. If the user supplies more data (the "51" | 567 // We only support millisecond. If the user supplies more data (the "51" |
| 561 // here), we round. | 568 // here), we round. |
| 562 // If (eventually) we support more than just milliseconds this test could | 569 // If (eventually) we support more than just millisecond this test could |
| 563 // fail. Please update the test in this case. | 570 // fail. Please update the test in this case. |
| 564 dt1 = new Date.fromString("1999-01-02 23:59:59.99951"); | 571 dt1 = new Date.fromString("1999-01-02 23:59:59.99951"); |
| 565 Expect.equals(1999, dt1.year); | 572 Expect.equals(1999, dt1.year); |
| 566 Expect.equals(1, dt1.month); | 573 Expect.equals(1, dt1.month); |
| 567 Expect.equals(3, dt1.day); | 574 Expect.equals(3, dt1.day); |
| 568 Expect.equals(0, dt1.hours); | 575 Expect.equals(0, dt1.hour); |
| 569 Expect.equals(0, dt1.minutes); | 576 Expect.equals(0, dt1.minute); |
| 570 Expect.equals(0, dt1.seconds); | 577 Expect.equals(0, dt1.second); |
| 571 Expect.equals(0, dt1.milliseconds); | 578 Expect.equals(0, dt1.millisecond); |
| 572 Expect.equals(false, dt1.isUtc()); | 579 Expect.equals(false, dt1.isUtc); |
| 573 dt1 = new Date.fromString("1999-01-02 23:58:59.99951Z"); | 580 dt1 = new Date.fromString("1999-01-02 23:58:59.99951Z"); |
| 574 Expect.equals(1999, dt1.year); | 581 Expect.equals(1999, dt1.year); |
| 575 Expect.equals(1, dt1.month); | 582 Expect.equals(1, dt1.month); |
| 576 Expect.equals(2, dt1.day); | 583 Expect.equals(2, dt1.day); |
| 577 Expect.equals(23, dt1.hours); | 584 Expect.equals(23, dt1.hour); |
| 578 Expect.equals(59, dt1.minutes); | 585 Expect.equals(59, dt1.minute); |
| 579 Expect.equals(0, dt1.seconds); | 586 Expect.equals(0, dt1.second); |
| 580 Expect.equals(0, dt1.milliseconds); | 587 Expect.equals(0, dt1.millisecond); |
| 581 Expect.equals(true, dt1.isUtc()); | 588 Expect.equals(true, dt1.isUtc); |
| 582 dt1 = new Date.fromString("0009-09-09 09:09:09.009Z"); | 589 dt1 = new Date.fromString("0009-09-09 09:09:09.009Z"); |
| 583 Expect.equals(9, dt1.year); | 590 Expect.equals(9, dt1.year); |
| 584 Expect.equals(9, dt1.month); | 591 Expect.equals(9, dt1.month); |
| 585 Expect.equals(9, dt1.day); | 592 Expect.equals(9, dt1.day); |
| 586 Expect.equals(9, dt1.hours); | 593 Expect.equals(9, dt1.hour); |
| 587 Expect.equals(9, dt1.minutes); | 594 Expect.equals(9, dt1.minute); |
| 588 Expect.equals(9, dt1.seconds); | 595 Expect.equals(9, dt1.second); |
| 589 Expect.equals(9, dt1.milliseconds); | 596 Expect.equals(9, dt1.millisecond); |
| 590 Expect.equals(true, dt1.isUtc()); | 597 Expect.equals(true, dt1.isUtc); |
| 591 } | 598 } |
| 592 | 599 |
| 593 static void testWeekday() { | 600 static void testWeekday() { |
| 594 // 2011-10-06 is Summertime. | 601 // 2011-10-06 is Summertime. |
| 595 var d = new Date(2011, 10, 6, 0, 45, 37, 0); | 602 var d = new Date(2011, 10, 6, 0, 45, 37, 0); |
| 596 Expect.equals(Date.THU, d.weekday); | 603 Expect.equals(Date.THU, d.weekday); |
| 597 d = new Date(2011, 10, 6, 0, 45, 37, 0, isUtc: true); | 604 d = new Date(2011, 10, 6, 0, 45, 37, 0, isUtc: true); |
| 598 Expect.equals(Date.THU, d.weekday); | 605 Expect.equals(Date.THU, d.weekday); |
| 599 d = new Date(2011, 10, 5, 23, 45, 37, 0); | 606 d = new Date(2011, 10, 5, 23, 45, 37, 0); |
| 600 Expect.equals(Date.WED, d.weekday); | 607 Expect.equals(Date.WED, d.weekday); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 633 testEquivalentYears(); | 640 testEquivalentYears(); |
| 634 testExtremes(); | 641 testExtremes(); |
| 635 testFarAwayDates(); | 642 testFarAwayDates(); |
| 636 testWeekday(); | 643 testWeekday(); |
| 637 } | 644 } |
| 638 } | 645 } |
| 639 | 646 |
| 640 main() { | 647 main() { |
| 641 DateTest.testMain(); | 648 DateTest.testMain(); |
| 642 } | 649 } |
| OLD | NEW |