mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 13:27:35 +00:00
Libraries: Move to Userland/Libraries/
This commit is contained in:
parent
dc28c07fa5
commit
13d7c09125
1857 changed files with 266 additions and 274 deletions
51
Userland/Libraries/LibJS/Tests/builtins/Date/Date.UTC.js
Normal file
51
Userland/Libraries/LibJS/Tests/builtins/Date/Date.UTC.js
Normal file
|
@ -0,0 +1,51 @@
|
|||
test("basic functionality", () => {
|
||||
expect(Date.UTC(2020)).toBe(1577836800000);
|
||||
expect(Date.UTC(2000, 10)).toBe(973036800000);
|
||||
expect(Date.UTC(1980, 5, 30)).toBe(331171200000);
|
||||
expect(Date.UTC(1980, 5, 30, 13)).toBe(331218000000);
|
||||
expect(Date.UTC(1970, 5, 30, 13, 30)).toBe(15600600000);
|
||||
expect(Date.UTC(1970, 0, 1, 0, 0, 59)).toBe(59000);
|
||||
expect(Date.UTC(1970, 0, 1, 0, 0, 0, 999)).toBe(999);
|
||||
|
||||
expect(Date.UTC(1969, 11, 31, 23, 59, 59, 817)).toBe(-183);
|
||||
|
||||
expect(Date.UTC(1799, 0)).toBe(-5396198400000);
|
||||
expect(Date.UTC(1800, 0)).toBe(-5364662400000);
|
||||
expect(Date.UTC(1801, 0)).toBe(-5333126400000);
|
||||
expect(Date.UTC(1802, 0)).toBe(-5301590400000);
|
||||
expect(Date.UTC(1803, 0)).toBe(-5270054400000);
|
||||
expect(Date.UTC(1804, 0)).toBe(-5238518400000);
|
||||
|
||||
expect(Date.UTC(1999, 0)).toBe(915148800000);
|
||||
expect(Date.UTC(2000, 0)).toBe(946684800000);
|
||||
expect(Date.UTC(2001, 0)).toBe(978307200000);
|
||||
expect(Date.UTC(2002, 0)).toBe(1009843200000);
|
||||
expect(Date.UTC(2003, 0)).toBe(1041379200000);
|
||||
expect(Date.UTC(2004, 0)).toBe(1072915200000);
|
||||
|
||||
expect(Date.UTC(20000, 0)).toBe(568971820800000);
|
||||
});
|
||||
|
||||
test("leap year", () => {
|
||||
expect(Date.UTC(2020, 2, 1)).toBe(1583020800000);
|
||||
});
|
||||
|
||||
test("out of range", () => {
|
||||
expect(Date.UTC(2020, -20)).toBe(1525132800000);
|
||||
expect(Date.UTC(2020, 20)).toBe(1630454400000);
|
||||
|
||||
expect(Date.UTC(2020, 1, -10)).toBe(1579564800000);
|
||||
expect(Date.UTC(2020, 1, 40)).toBe(1583884800000);
|
||||
|
||||
expect(Date.UTC(2020, 1, 15, -50)).toBe(1581544800000);
|
||||
expect(Date.UTC(2020, 1, 15, 50)).toBe(1581904800000);
|
||||
|
||||
expect(Date.UTC(2020, 1, 15, 12, -123)).toBe(1581760620000);
|
||||
expect(Date.UTC(2020, 1, 15, 12, 123)).toBe(1581775380000);
|
||||
|
||||
expect(Date.UTC(2020, 1, 15, 12, 30, -123)).toBe(1581769677000);
|
||||
expect(Date.UTC(2020, 1, 15, 12, 30, 123)).toBe(1581769923000);
|
||||
|
||||
expect(Date.UTC(2020, 1, 15, 12, 30, 30, -2345)).toBe(1581769827655);
|
||||
expect(Date.UTC(2020, 1, 15, 12, 30, 30, 2345)).toBe(1581769832345);
|
||||
});
|
77
Userland/Libraries/LibJS/Tests/builtins/Date/Date.js
Normal file
77
Userland/Libraries/LibJS/Tests/builtins/Date/Date.js
Normal file
|
@ -0,0 +1,77 @@
|
|||
test("basic functionality", () => {
|
||||
expect(Date).toHaveLength(7);
|
||||
expect(Date.name === "Date");
|
||||
expect(Date.prototype).not.toHaveProperty("length");
|
||||
});
|
||||
|
||||
test("string constructor", () => {
|
||||
// The string constructor is the same as calling the timestamp constructor with the result of Date.parse(arguments).
|
||||
// Since that has exhaustive tests in Date.parse.js, just do some light smoke testing here.
|
||||
expect(new Date("2017-09-07T21:08:59.001Z").toISOString()).toBe("2017-09-07T21:08:59.001Z");
|
||||
});
|
||||
|
||||
test("timestamp constructor", () => {
|
||||
// The timestamp constructor takes a timestamp in milliseconds since the start of the epoch, in UTC.
|
||||
|
||||
// 50 days and 1234 milliseconds after the start of the epoch.
|
||||
// Most Date methods return values in local time, but since timezone offsets are less than 17 days,
|
||||
// these checks will pass in all timezones.
|
||||
let timestamp = 50 * 24 * 60 * 60 * 1000 + 1234;
|
||||
|
||||
let date = new Date(timestamp);
|
||||
expect(date.getTime()).toBe(timestamp); // getTime() returns the timestamp in UTC.
|
||||
expect(date.getMilliseconds()).toBe(234);
|
||||
expect(date.getSeconds()).toBe(1);
|
||||
expect(date.getFullYear()).toBe(1970);
|
||||
expect(date.getMonth()).toBe(1); // Feb
|
||||
});
|
||||
|
||||
test("tuple constructor", () => {
|
||||
// The tuple constructor takes a date in local time.
|
||||
expect(new Date(2019, 11).getFullYear()).toBe(2019);
|
||||
expect(new Date(2019, 11).getMonth()).toBe(11);
|
||||
expect(new Date(2019, 11).getDate()).toBe(1); // getDay() returns day of week, getDate() returns day in month
|
||||
expect(new Date(2019, 11).getHours()).toBe(0);
|
||||
expect(new Date(2019, 11).getMinutes()).toBe(0);
|
||||
expect(new Date(2019, 11).getSeconds()).toBe(0);
|
||||
expect(new Date(2019, 11).getMilliseconds()).toBe(0);
|
||||
expect(new Date(2019, 11).getDay()).toBe(0);
|
||||
|
||||
let date = new Date(2019, 11, 15, 9, 16, 14, 123); // Note: Month is 0-based.
|
||||
expect(date.getFullYear()).toBe(2019);
|
||||
expect(date.getMonth()).toBe(11);
|
||||
expect(date.getDate()).toBe(15);
|
||||
expect(date.getHours()).toBe(9);
|
||||
expect(date.getMinutes()).toBe(16);
|
||||
expect(date.getSeconds()).toBe(14);
|
||||
expect(date.getMilliseconds()).toBe(123);
|
||||
expect(date.getDay()).toBe(0);
|
||||
|
||||
// getTime() returns a time stamp in UTC, but we can at least check it's in the right interval, which will be true independent of the local timezone if the range is big enough.
|
||||
let timestamp_lower_bound = 1575072000000; // 2019-12-01T00:00:00Z
|
||||
let timestamp_upper_bound = 1577750400000; // 2019-12-31T00:00:00Z
|
||||
expect(date.getTime()).toBeGreaterThan(timestamp_lower_bound);
|
||||
expect(date.getTime()).toBeLessThan(timestamp_upper_bound);
|
||||
});
|
||||
|
||||
test("tuple constructor overflow", () => {
|
||||
let date = new Date(2019, 13, 33, 30, 70, 80, 2345);
|
||||
expect(date.getFullYear()).toBe(2020);
|
||||
expect(date.getMonth()).toBe(2);
|
||||
expect(date.getDate()).toBe(5);
|
||||
expect(date.getHours()).toBe(7);
|
||||
expect(date.getMinutes()).toBe(11);
|
||||
expect(date.getSeconds()).toBe(22);
|
||||
expect(date.getMilliseconds()).toBe(345);
|
||||
expect(date.getDay()).toBe(4);
|
||||
|
||||
let date = new Date(2019, -13, -33, -30, -70, -80, -2345);
|
||||
expect(date.getFullYear()).toBe(2017);
|
||||
expect(date.getMonth()).toBe(9);
|
||||
expect(date.getDate()).toBe(26);
|
||||
expect(date.getHours()).toBe(16);
|
||||
expect(date.getMinutes()).toBe(48);
|
||||
expect(date.getSeconds()).toBe(37);
|
||||
expect(date.getMilliseconds()).toBe(655);
|
||||
expect(date.getDay()).toBe(4);
|
||||
});
|
10
Userland/Libraries/LibJS/Tests/builtins/Date/Date.now.js
Normal file
10
Userland/Libraries/LibJS/Tests/builtins/Date/Date.now.js
Normal file
|
@ -0,0 +1,10 @@
|
|||
test("basic functionality", () => {
|
||||
var last = 0;
|
||||
for (var i = 0; i < 100; ++i) {
|
||||
var now = Date.now();
|
||||
expect(now).not.toBeNaN();
|
||||
expect(now).toBeGreaterThan(1580000000000);
|
||||
expect(now).toBeGreaterThanOrEqual(last);
|
||||
last = now;
|
||||
}
|
||||
});
|
32
Userland/Libraries/LibJS/Tests/builtins/Date/Date.parse.js
Normal file
32
Userland/Libraries/LibJS/Tests/builtins/Date/Date.parse.js
Normal file
|
@ -0,0 +1,32 @@
|
|||
test("basic functionality", () => {
|
||||
expect(Date.parse("2020")).toBe(1577836800000);
|
||||
expect(Date.parse("2000-11")).toBe(973036800000);
|
||||
expect(Date.parse("1980-06-30")).toBe(331171200000);
|
||||
expect(Date.parse("1970-06-30T13:30Z")).toBe(15600600000);
|
||||
expect(Date.parse("1970-01-01T00:00:59Z")).toBe(59000);
|
||||
expect(Date.parse("1970-01-01T00:00:00.999Z")).toBe(999);
|
||||
expect(Date.parse("2020T13:14+15:16")).toBe(1577829480000);
|
||||
expect(Date.parse("2020T13:14-15:16")).toBe(1577939400000);
|
||||
expect(Date.parse("2020T23:59Z")).toBe(1577923140000);
|
||||
|
||||
expect(Date.parse("+020000")).toBe(568971820800000);
|
||||
expect(Date.parse("+020000-01")).toBe(568971820800000);
|
||||
expect(Date.parse("+020000-01T00:00:00.000Z")).toBe(568971820800000);
|
||||
|
||||
expect(Date.parse(2020)).toBe(1577836800000);
|
||||
|
||||
expect(Date.parse("+1980")).toBe(NaN);
|
||||
expect(Date.parse("1980-")).toBe(NaN);
|
||||
expect(Date.parse("1980-05-")).toBe(NaN);
|
||||
expect(Date.parse("1980-05-00T")).toBe(NaN);
|
||||
expect(Date.parse("1980-05-00T15:15:")).toBe(NaN);
|
||||
expect(Date.parse("1980-05-00T15:15:15.")).toBe(NaN);
|
||||
expect(Date.parse("1980-5-30")).toBe(NaN);
|
||||
expect(Date.parse("1980-05-30T13")).toBe(NaN);
|
||||
expect(Date.parse("1980-05-30T13:4")).toBe(NaN);
|
||||
expect(Date.parse("1980-05-30T13:40+")).toBe(NaN);
|
||||
expect(Date.parse("1980-05-30T13:40+1")).toBe(NaN);
|
||||
expect(Date.parse("1980-05-30T13:40+1:10")).toBe(NaN);
|
||||
expect(Date.parse("1970-06-30T13:30Zoo")).toBe(NaN);
|
||||
expect(Date.parse("2020T13:30.40:")).toBe(NaN);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
let d = new Date();
|
||||
expect(d.getDate()).toBe(d.getDate());
|
||||
expect(d.getDate()).not.toBeNaN();
|
||||
expect(d.getDate()).toBeGreaterThanOrEqual(1);
|
||||
expect(d.getDate()).toBeLessThanOrEqual(31);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getDay()).toBe(d.getDay());
|
||||
expect(d.getDay()).not.toBeNaN();
|
||||
expect(d.getDay()).toBeGreaterThanOrEqual(0);
|
||||
expect(d.getDay()).toBeLessThanOrEqual(6);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getFullYear()).toBe(d.getFullYear());
|
||||
expect(d.getFullYear()).not.toBeNaN();
|
||||
expect(d.getFullYear()).toBe(d.getFullYear());
|
||||
expect(d.getFullYear()).toBeGreaterThanOrEqual(2020);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getHours()).toBe(d.getHours());
|
||||
expect(d.getHours()).not.toBeNaN();
|
||||
expect(d.getHours()).toBeGreaterThanOrEqual(0);
|
||||
expect(d.getHours()).toBeLessThanOrEqual(23);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getMilliseconds()).toBe(d.getMilliseconds());
|
||||
expect(d.getMilliseconds()).not.toBeNaN();
|
||||
expect(d.getMilliseconds()).toBeGreaterThanOrEqual(0);
|
||||
expect(d.getMilliseconds()).toBeLessThanOrEqual(999);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getMinutes()).toBe(d.getMinutes());
|
||||
expect(d.getMinutes()).not.toBeNaN();
|
||||
expect(d.getMinutes()).toBeGreaterThanOrEqual(0);
|
||||
expect(d.getMinutes()).toBeLessThanOrEqual(59);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getMonth()).toBe(d.getMonth());
|
||||
expect(d.getMonth()).not.toBeNaN();
|
||||
expect(d.getMonth()).toBeGreaterThanOrEqual(0);
|
||||
expect(d.getMonth()).toBeLessThanOrEqual(11);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getSeconds()).toBe(d.getSeconds());
|
||||
expect(d.getSeconds()).not.toBeNaN();
|
||||
expect(d.getSeconds()).toBeGreaterThanOrEqual(0);
|
||||
expect(d.getSeconds()).toBeLessThanOrEqual(59);
|
||||
});
|
|
@ -0,0 +1,6 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getTime()).toBe(d.getTime());
|
||||
expect(d.getTime()).not.toBeNaN();
|
||||
expect(d.getTime()).toBeGreaterThanOrEqual(1580000000000);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
let d = new Date();
|
||||
expect(d.getUTCDate()).toBe(d.getUTCDate());
|
||||
expect(d.getUTCDate()).not.toBeNaN();
|
||||
expect(d.getUTCDate()).toBeGreaterThanOrEqual(1);
|
||||
expect(d.getUTCDate()).toBeLessThanOrEqual(31);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getUTCDay()).toBe(d.getUTCDay());
|
||||
expect(d.getUTCDay()).not.toBeNaN();
|
||||
expect(d.getUTCDay()).toBeGreaterThanOrEqual(0);
|
||||
expect(d.getUTCDay()).toBeLessThanOrEqual(6);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getUTCFullYear()).toBe(d.getUTCFullYear());
|
||||
expect(d.getUTCFullYear()).not.toBeNaN();
|
||||
expect(d.getUTCFullYear()).toBe(d.getUTCFullYear());
|
||||
expect(d.getUTCFullYear()).toBeGreaterThanOrEqual(2020);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getUTCHours()).toBe(d.getUTCHours());
|
||||
expect(d.getUTCHours()).not.toBeNaN();
|
||||
expect(d.getUTCHours()).toBeGreaterThanOrEqual(0);
|
||||
expect(d.getUTCHours()).toBeLessThanOrEqual(23);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getUTCMilliseconds()).toBe(d.getUTCMilliseconds());
|
||||
expect(d.getUTCMilliseconds()).not.toBeNaN();
|
||||
expect(d.getUTCMilliseconds()).toBeGreaterThanOrEqual(0);
|
||||
expect(d.getUTCMilliseconds()).toBeLessThanOrEqual(999);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getUTCMinutes()).toBe(d.getUTCMinutes());
|
||||
expect(d.getUTCMinutes()).not.toBeNaN();
|
||||
expect(d.getUTCMinutes()).toBeGreaterThanOrEqual(0);
|
||||
expect(d.getUTCMinutes()).toBeLessThanOrEqual(59);
|
||||
});
|
|
@ -0,0 +1,26 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getUTCMonth()).toBe(d.getUTCMonth());
|
||||
expect(d.getUTCMonth()).not.toBeNaN();
|
||||
expect(d.getUTCMonth()).toBeGreaterThanOrEqual(0);
|
||||
expect(d.getUTCMonth()).toBeLessThanOrEqual(11);
|
||||
|
||||
expect(new Date(Date.UTC(2020, 11)).getUTCMonth()).toBe(11);
|
||||
});
|
||||
|
||||
test("leap years", () => {
|
||||
expect(new Date(Date.UTC(2019, 1, 29)).getUTCDate()).toBe(1);
|
||||
expect(new Date(Date.UTC(2019, 1, 29)).getUTCMonth()).toBe(2);
|
||||
expect(new Date(Date.UTC(2100, 1, 29)).getUTCDate()).toBe(1);
|
||||
expect(new Date(Date.UTC(2100, 1, 29)).getUTCMonth()).toBe(2);
|
||||
|
||||
expect(new Date(Date.UTC(2000, 1, 29)).getUTCDate()).toBe(29);
|
||||
expect(new Date(Date.UTC(2000, 1, 29)).getUTCMonth()).toBe(1);
|
||||
expect(new Date(Date.UTC(2020, 1, 29)).getUTCDate()).toBe(29);
|
||||
expect(new Date(Date.UTC(2020, 1, 29)).getUTCMonth()).toBe(1);
|
||||
|
||||
expect(new Date(Date.UTC(2019, 2, 1)).getUTCDate()).toBe(1);
|
||||
expect(new Date(Date.UTC(2019, 2, 1)).getUTCMonth()).toBe(2);
|
||||
expect(new Date(Date.UTC(2020, 2, 1)).getUTCDate()).toBe(1);
|
||||
expect(new Date(Date.UTC(2020, 2, 1)).getUTCMonth()).toBe(2);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
var d = new Date();
|
||||
expect(d.getUTCSeconds()).toBe(d.getUTCSeconds());
|
||||
expect(d.getUTCSeconds()).not.toBeNaN();
|
||||
expect(d.getUTCSeconds()).toBeGreaterThanOrEqual(0);
|
||||
expect(d.getUTCSeconds()).toBeLessThanOrEqual(59);
|
||||
});
|
|
@ -0,0 +1,7 @@
|
|||
test("basic functionality", () => {
|
||||
expect(new Date(1597955034555).toISOString()).toBe("2020-08-20T20:23:54.555Z");
|
||||
expect(new Date(Date.UTC(22020)).toISOString()).toBe("+022020-01-01T00:00:00.000Z");
|
||||
expect(new Date(Date.UTC(1950)).toISOString()).toBe("1950-01-01T00:00:00.000Z");
|
||||
expect(new Date(Date.UTC(1800)).toISOString()).toBe("1800-01-01T00:00:00.000Z");
|
||||
expect(new Date(Date.UTC(-100)).toISOString()).toBe("-000100-01-01T00:00:00.000Z");
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue