d8f2d727b48c39946e74ae8c7415e50f3dc0535a
[WebKit-https.git] / LayoutTests / fast / js / resources / date-constructor.js
1 description(
2 'This test case tests the Date constructor. ' +
3 'In particular, it tests many cases of creating a Date from another Date ' +
4 'and creating a Date from an object that has both valueOf and toString functions.'
5 );
6
7 var object = new Object;
8 object.valueOf = function() { return 1111; }
9 object.toSTring = function() { return "2222"; }
10
11 var timeZoneOffset = Date.parse("Dec 25 1995") - Date.parse("Dec 25 1995 GMT");
12
13 shouldBe('new Date(1111).getTime()', '1111');
14 shouldBe('new Date(object).getTime()', '1111');
15 shouldBe('new Date(new Date(1111)).getTime()', '1111');
16 shouldBe('new Date(new Date(1111).toString()).getTime()', '1000');
17
18 shouldBe('new Date(1111, 1).getTime() - timeZoneOffset', '-27104803200000');
19 shouldBe('new Date(1111, 1, 1).getTime() - timeZoneOffset', '-27104803200000');
20 shouldBe('new Date(1111, 1, 1, 1).getTime() - timeZoneOffset', '-27104799600000');
21 shouldBe('new Date(1111, 1, 1, 1, 1).getTime() - timeZoneOffset', '-27104799540000');
22 shouldBe('new Date(1111, 1, 1, 1, 1, 1).getTime() - timeZoneOffset', '-27104799539000');
23 shouldBe('new Date(1111, 1, 1, 1, 1, 1, 1).getTime() - timeZoneOffset', '-27104799538999');
24 shouldBe('new Date(1111, 1, 1, 1, 1, 1, 1, 1).getTime() - timeZoneOffset', '-27104799538999');
25 shouldBe('new Date(1111, 1, 1, 1, 1, 1, 1, 1, 1).getTime() - timeZoneOffset', '-27104799538999');
26 shouldBe('new Date(1111, 1, 1, 1, 1, 1, 1, 1, 1).getTime() - timeZoneOffset', '-27104799538999');
27
28 shouldBe('new Date(new Date(1111, 1)).getTime() - timeZoneOffset', '-27104803200000');
29 shouldBe('new Date(new Date(1111, 1, 1)).getTime() - timeZoneOffset', '-27104803200000');
30 shouldBe('new Date(new Date(1111, 1, 1, 1)).getTime() - timeZoneOffset', '-27104799600000');
31 shouldBe('new Date(new Date(1111, 1, 1, 1, 1, 1)).getTime() - timeZoneOffset', '-27104799539000');
32 shouldBe('new Date(new Date(1111, 1, 1, 1, 1, 1, 1)).getTime() - timeZoneOffset', '-27104799538999');
33 shouldBe('new Date(new Date(1111, 1, 1, 1, 1, 1, 1, 1)).getTime() - timeZoneOffset', '-27104799538999');
34 shouldBe('new Date(new Date(1111, 1, 1, 1, 1, 1, 1, 1, 1)).getTime() - timeZoneOffset', '-27104799538999');
35
36 // I believe these next results may be incorrect.
37 // Firefox gives different results.
38 // Keep the tests here as a regression test for now.
39 shouldBe('new Date(1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111).getTime() - timeZoneOffset', '-28085817599889');
40 shouldBe('new Date(new Date(1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111)).getTime() - timeZoneOffset', '-28085817599889');
41
42 var successfullyParsed = true;