Prevent dragging groups into groups. Fixes #8706
[adiumx.git] / UnitTests / TestDateAdditions.m
blobf7d2c846857a567097696b7937f42b70f6a6a6e6
1 //
2 //  TestDateAdditions.m
3 //  Adium
4 //
5 //  Created by Peter Hosey on 2007-11-12.
6 //  Copyright 2007 Peter Hosey. All rights reserved.
7 //
9 #import "TestDateAdditions.h"
11 #import <AIUtilities/AIDateAdditions.h>
13 @implementation TestDateAdditions
15 - (void)testConvertIntervalToWeeks
17         NSCalendarDate *now = [NSCalendarDate calendarDate];
18         NSCalendarDate *then;
20         int weeks, days, hours, minutes;
21         NSTimeInterval seconds;
23         //Test exactly one week ago.
24         then = [now
25                 dateByAddingYears:-0  months:-0    days:-7
26                                         hours:-0 minutes:-0 seconds:-0];
27         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
28                                                 toWeeks:&weeks
29                                                    days:&days
30                                                   hours:&hours
31                                                 minutes:&minutes
32                                                 seconds:&seconds];
33         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
34         STAssertEquals(weeks, 1, @"Expected the difference between now and 7 days ago to be 1 week; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
35         STAssertEquals( days, 0, @"Expected the difference between now and 7 days ago to be 1 week, 0 days; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
36         STAssertEquals(hours, 0, @"Expected the difference between now and 7 days ago to be 1 week, 0 hours; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
37         STAssertEquals(minutes, 0, @"Expected the difference between now and 7 days ago to be 1 week, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
38         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 7 days ago to be 1 week, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
40         //Test eight days ago. [Insert obligatory Beatles reference]
41         then = [now
42                 dateByAddingYears:-0  months:-0    days:-8
43                                         hours:-0 minutes:-0 seconds:-0];
44         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
45                                                 toWeeks:&weeks
46                                                    days:&days
47                                                   hours:&hours
48                                                 minutes:&minutes
49                                                 seconds:&seconds];
50         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
51         STAssertEquals(weeks, 1, @"Expected the difference between now and 8 days ago to be 1 week, 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
52         STAssertEquals( days, 1, @"Expected the difference between now and 8 days ago to be 1 week, 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
53         STAssertEquals(hours, 0, @"Expected the difference between now and 8 days ago to be 1 week, 1 day, 0 hours; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
54         STAssertEquals(minutes, 0, @"Expected the difference between now and 8 days ago to be 1 week, 1 day, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
55         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 8 days ago to be 1 week, 1 day, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
57         //Test six days (almost, but not quite, one week) ago. [Insert obligatory DJ Shadow reference]
58         then = [now
59                 dateByAddingYears:-0  months:-0    days:-6
60                                         hours:-0 minutes:-0 seconds:-0];
61         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
62                                                 toWeeks:&weeks
63                                                    days:&days
64                                                   hours:&hours
65                                                 minutes:&minutes
66                                                 seconds:&seconds];
67         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
68         STAssertEquals(weeks, 0, @"Expected the difference between now and 6 days ago to be 0 weeks, 6 days; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
69         STAssertEquals( days, 6, @"Expected the difference between now and 8 days ago to be 6 days; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
70         STAssertEquals(hours, 0, @"Expected the difference between now and 8 days ago to be 6 days, 0 hours; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
71         STAssertEquals(minutes, 0, @"Expected the difference between now and 8 days ago to be 6 days, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
72         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 8 days ago to be 6 days, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
74 - (void)testConvertIntervalToDays
76         NSCalendarDate *now = [NSCalendarDate calendarDate];
77         NSCalendarDate *then;
79         int weeks, days, hours, minutes;
80         NSTimeInterval seconds;
82         //Test one day ago.
83         then = [now
84                 dateByAddingYears:-0  months:-0    days:-1
85                                         hours:-0 minutes:-0 seconds:-0];
86         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
87                                                 toWeeks:&weeks
88                                                    days:&days
89                                                   hours:&hours
90                                                 minutes:&minutes
91                                                 seconds:&seconds];
92         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
93         STAssertEquals(weeks, 0, @"Expected the difference between now and 1 day ago to be 0 weeks, 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
94         STAssertEquals( days, 1, @"Expected the difference between now and 1 day ago to be 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
95         STAssertEquals(hours, 0, @"Expected the difference between now and 1 day ago to be 1 day, 0 hours; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
96         STAssertEquals(minutes, 0, @"Expected the difference between now and 1 day ago to be 1 day, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
97         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 1 day ago to be 1 day, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
99         //Test one day ago, expressed as hours.
100         then = [now
101                 dateByAddingYears:-0   months:-0    days:-0
102                                         hours:-24 minutes:-0 seconds:-0];
103         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
104                                                 toWeeks:&weeks
105                                                    days:&days
106                                                   hours:&hours
107                                                 minutes:&minutes
108                                                 seconds:&seconds];
109         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
110         STAssertEquals(weeks, 0, @"Expected the difference between now and 1 day ago to be 0 weeks, 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
111         STAssertEquals( days, 1, @"Expected the difference between now and 1 day ago to be 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
112         STAssertEquals(hours, 0, @"Expected the difference between now and 1 day ago to be 1 day, 0 hours; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
113         STAssertEquals(minutes, 0, @"Expected the difference between now and 1 day ago to be 1 day, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
114         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 1 day ago to be 1 day, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
115         
116         //Test 23 hours (almost, but not quite, one day) ago.
117         then = [now
118                 dateByAddingYears:-0   months:-0    days:-0
119                                         hours:-24 minutes:-0 seconds:-0];
120         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
121                                                 toWeeks:&weeks
122                                                    days:&days
123                                                   hours:&hours
124                                                 minutes:&minutes
125                                                 seconds:&seconds];
126         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
127         STAssertEquals(weeks, 0, @"Expected the difference between now and 1 day ago to be 0 weeks, 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
128         STAssertEquals( days, 1, @"Expected the difference between now and 1 day ago to be 1 day; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
129         STAssertEquals(hours, 0, @"Expected the difference between now and 1 day ago to be 1 day, 0 hours; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
130         STAssertEquals(minutes, 0, @"Expected the difference between now and 1 day ago to be 1 day, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
131         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 1 day ago to be 1 day, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
133 - (void)testConvertIntervalToHours
135         NSCalendarDate *now = [NSCalendarDate calendarDate];
136         NSCalendarDate *then;
138         int weeks, days, hours, minutes;
139         NSTimeInterval seconds;
141         //Test one hour ago.
142         then = [now
143                 dateByAddingYears:-0  months:-0    days:-0
144                                         hours:-1 minutes:-0 seconds:-0];
145         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
146                                                 toWeeks:&weeks
147                                                    days:&days
148                                                   hours:&hours
149                                                 minutes:&minutes
150                                                 seconds:&seconds];
151         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
152         STAssertEquals(weeks, 0, @"Expected the difference between now and 1 hour ago to be 0 weeks, 1 hour; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
153         STAssertEquals( days, 0, @"Expected the difference between now and 1 hour ago to be 0 days, 1 hour; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
154         STAssertEquals(hours, 1, @"Expected the difference between now and 1 hour ago to be 1 hour; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
155         STAssertEquals(minutes, 0, @"Expected the difference between now and 1 hour ago to be 1 hour, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
156         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 1 hour ago to be 1 hour, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
158         //Test one hour ago, expressed as minutes.
159         then = [now
160                 dateByAddingYears:-0  months:-0    days:-0
161                                         hours:-1 minutes:-0 seconds:-0];
162         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
163                                                 toWeeks:&weeks
164                                                    days:&days
165                                                   hours:&hours
166                                                 minutes:&minutes
167                                                 seconds:&seconds];
168         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
169         STAssertEquals(weeks, 0, @"Expected the difference between now and 1 hour ago to be 0 weeks, 1 hour; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
170         STAssertEquals( days, 0, @"Expected the difference between now and 1 hour ago to be 0 days, 1 hour; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
171         STAssertEquals(hours, 1, @"Expected the difference between now and 1 hour ago to be 1 hour; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
172         STAssertEquals(minutes, 0, @"Expected the difference between now and 1 hour ago to be 1 hour, 0 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
173         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 1 hour ago to be 1 hour, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
175         //Test 59 minutes (almost, but not quite, one hour) ago.
176         then = [now
177                 dateByAddingYears:-0  months:-0     days:-0
178                                         hours:-0 minutes:-59 seconds:-0];
179         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
180                                                 toWeeks:&weeks
181                                                    days:&days
182                                                   hours:&hours
183                                                 minutes:&minutes
184                                                 seconds:&seconds];
185         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
186         STAssertEquals(weeks, 0, @"Expected the difference between now and 59 minutes ago to be 0 weeks, 59 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
187         STAssertEquals( days, 0, @"Expected the difference between now and 59 minutes ago to be 0 days, 59 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
188         STAssertEquals(hours, 0, @"Expected the difference between now and 59 minutes ago to be 0 hours, 59 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
189         STAssertEquals(minutes, 59, @"Expected the difference between now and 59 minutes ago to be 59 minutes; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
190         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 59 minutes ago to be 59 minutes, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
192 - (void)testConvertIntervalToMinutes
194         NSCalendarDate *now = [NSCalendarDate calendarDate];
195         NSCalendarDate *then;
197         int weeks, days, hours, minutes;
198         NSTimeInterval seconds;
200         //Test one minute ago.
201         then = [now
202                 dateByAddingYears:-0  months:-0    days:-0
203                                         hours:-0 minutes:-1 seconds:-0];
204         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
205                                                 toWeeks:&weeks
206                                                    days:&days
207                                                   hours:&hours
208                                                 minutes:&minutes
209                                                 seconds:&seconds];
210         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
211         STAssertEquals(weeks, 0, @"Expected the difference between now and 1 minute ago to be 0 weeks, 1 minute; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
212         STAssertEquals( days, 0, @"Expected the difference between now and 1 minute ago to be 0 days, 1 minute; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
213         STAssertEquals(hours, 0, @"Expected the difference between now and 1 minute ago to be 0 hours, 1 minute; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
214         STAssertEquals(minutes, 1, @"Expected the difference between now and 1 minute ago to be 1 minute; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
215         STAssertEquals(seconds, 0.0, @"Expected the difference between now and 1 minute ago to be 1 minute, 0 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
217         //Test 59 seconds (almost, but not quite, one minute) ago.
218         then = [now
219                 dateByAddingYears:-0  months:-0    days:-0
220                                         hours:-0 minutes:-0 seconds:-59];
221         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
222                                                 toWeeks:&weeks
223                                                    days:&days
224                                                   hours:&hours
225                                                 minutes:&minutes
226                                                 seconds:&seconds];
227         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
228         STAssertEquals(weeks, 0, @"Expected the difference between now and 59 seconds ago to be 0 weeks, 59 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
229         STAssertEquals( days, 0, @"Expected the difference between now and 59 seconds ago to be 0 days, 59 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
230         STAssertEquals(hours, 0, @"Expected the difference between now and 59 seconds ago to be 0 hours, 59 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
231         STAssertEquals(minutes, 0, @"Expected the difference between now and 59 seconds ago to be 0 minutes, 59 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
232         STAssertEquals(seconds, 59.0, @"Expected the difference between now and 59 seconds ago to be 59 seconds; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
234 - (void)testConvertIntervalToSeconds
236         NSCalendarDate *now = [NSCalendarDate calendarDate];
237         NSCalendarDate *then;
239         int weeks, days, hours, minutes;
240         NSTimeInterval seconds;
242         //Test one second ago.
243         then = [now
244                 dateByAddingYears:-0  months:-0    days:-0
245                                         hours:-0 minutes:-0 seconds:-1];
246         [NSDate convertTimeInterval:[now timeIntervalSinceDate:then]
247                                                 toWeeks:&weeks
248                                                    days:&days
249                                                   hours:&hours
250                                                 minutes:&minutes
251                                                 seconds:&seconds];
252         NSLog(@"%s: seconds is %.15f", __PRETTY_FUNCTION__, seconds);
253         STAssertEquals(weeks, 0, @"Expected the difference between now and 1 second ago to be 0 weeks, 1 second; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
254         STAssertEquals( days, 0, @"Expected the difference between now and 1 second ago to be 0 days, 1 second; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
255         STAssertEquals(hours, 0, @"Expected the difference between now and 1 second ago to be 0 hours, 1 second; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
256         STAssertEquals(minutes, 0, @"Expected the difference between now and 1 second ago to be 0 minutes, 1 second; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
257         STAssertEquals(seconds, 1.0, @"Expected the difference between now and 1 second ago to be 1 second; result was %iw, %id, %ih, %im, %fs", weeks, days, hours, minutes, seconds);
260 @end