summaryrefslogtreecommitdiffstats
path: root/toolkit/content/tests/browser/browser_datetime_datepicker.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/content/tests/browser/browser_datetime_datepicker.js')
-rw-r--r--toolkit/content/tests/browser/browser_datetime_datepicker.js284
1 files changed, 0 insertions, 284 deletions
diff --git a/toolkit/content/tests/browser/browser_datetime_datepicker.js b/toolkit/content/tests/browser/browser_datetime_datepicker.js
deleted file mode 100644
index 966a74e7a..000000000
--- a/toolkit/content/tests/browser/browser_datetime_datepicker.js
+++ /dev/null
@@ -1,284 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-const MONTH_YEAR = ".month-year",
- DAYS_VIEW = ".days-view",
- BTN_PREV_MONTH = ".prev",
- BTN_NEXT_MONTH = ".next";
-const DATE_FORMAT = new Intl.DateTimeFormat("en-US", { year: "numeric", month: "long", timeZone: "UTC" }).format;
-
-// Create a list of abbreviations for calendar class names
-const W = "weekend",
- O = "outside",
- S = "selection",
- R = "out-of-range",
- T = "today",
- P = "off-step";
-
-// Calendar classlist for 2016-12. Used to verify the classNames are correct.
-const calendarClasslist_201612 = [
- [W, O], [O], [O], [O], [], [], [W],
- [W], [], [], [], [], [], [W],
- [W], [], [], [], [S], [], [W],
- [W], [], [], [], [], [], [W],
- [W], [], [], [], [], [], [W],
- [W, O], [O], [O], [O], [O], [O], [W, O],
-];
-
-function getCalendarText() {
- return helper.getChildren(DAYS_VIEW).map(child => child.textContent);
-}
-
-function getCalendarClassList() {
- return helper.getChildren(DAYS_VIEW).map(child => Array.from(child.classList));
-}
-
-function mergeArrays(a, b) {
- return a.map((classlist, index) => classlist.concat(b[index]));
-}
-
-let helper = new DateTimeTestHelper();
-
-registerCleanupFunction(() => {
- helper.cleanup();
-});
-
-/**
- * Test that date picker opens to today's date when input field is blank
- */
-add_task(async function test_datepicker_today() {
- const date = new Date();
-
- await helper.openPicker("data:text/html, <input type='date'>");
-
- Assert.equal(helper.getElement(MONTH_YEAR).textContent, DATE_FORMAT(date));
-
- await helper.tearDown();
-});
-
-/**
- * Test that date picker opens to the correct month, with calendar days
- * displayed correctly, given a date value is set.
- */
-add_task(async function test_datepicker_open() {
- const inputValue = "2016-12-15";
-
- await helper.openPicker(`data:text/html, <input type="date" value="${inputValue}">`);
-
- Assert.equal(helper.getElement(MONTH_YEAR).textContent, DATE_FORMAT(new Date(inputValue)));
- Assert.deepEqual(
- getCalendarText(),
- [
- "27", "28", "29", "30", "1", "2", "3",
- "4", "5", "6", "7", "8", "9", "10",
- "11", "12", "13", "14", "15", "16", "17",
- "18", "19", "20", "21", "22", "23", "24",
- "25", "26", "27", "28", "29", "30", "31",
- "1", "2", "3", "4", "5", "6", "7",
- ],
- "2016-12",
- );
- Assert.deepEqual(
- getCalendarClassList(),
- calendarClasslist_201612,
- "2016-12 classNames"
- );
-
- await helper.tearDown();
-});
-
-/**
- * When the prev month button is clicked, calendar should display the dates for
- * the previous month.
- */
-add_task(async function test_datepicker_prev_month_btn() {
- const inputValue = "2016-12-15";
- const prevMonth = "2016-11-01";
-
- await helper.openPicker(`data:text/html, <input type="date" value="${inputValue}">`);
- helper.click(helper.getElement(BTN_PREV_MONTH));
-
- Assert.equal(helper.getElement(MONTH_YEAR).textContent, DATE_FORMAT(new Date(prevMonth)));
- Assert.deepEqual(
- getCalendarText(),
- [
- "30", "31", "1", "2", "3", "4", "5",
- "6", "7", "8", "9", "10", "11", "12",
- "13", "14", "15", "16", "17", "18", "19",
- "20", "21", "22", "23", "24", "25", "26",
- "27", "28", "29", "30", "1", "2", "3",
- "4", "5", "6", "7", "8", "9", "10",
- ],
- "2016-11",
- );
-
- await helper.tearDown();
-});
-
-/**
- * When the next month button is clicked, calendar should display the dates for
- * the next month.
- */
-add_task(async function test_datepicker_next_month_btn() {
- const inputValue = "2016-12-15";
- const nextMonth = "2017-01-01";
-
- await helper.openPicker(`data:text/html, <input type="date" value="${inputValue}">`);
- helper.click(helper.getElement(BTN_NEXT_MONTH));
-
- Assert.equal(helper.getElement(MONTH_YEAR).textContent, DATE_FORMAT(new Date(nextMonth)));
- Assert.deepEqual(
- getCalendarText(),
- [
- "25", "26", "27", "28", "29", "30", "31",
- "1", "2", "3", "4", "5", "6", "7",
- "8", "9", "10", "11", "12", "13", "14",
- "15", "16", "17", "18", "19", "20", "21",
- "22", "23", "24", "25", "26", "27", "28",
- "29", "30", "31", "1", "2", "3", "4",
- ],
- "2017-01",
- );
-
- await helper.tearDown();
-});
-
-/**
- * When a date on the calendar is clicked, date picker should close and set
- * value to the input box.
- */
-add_task(async function test_datepicker_clicked() {
- const inputValue = "2016-12-15";
- const firstDayOnCalendar = "2016-11-27";
-
- await helper.openPicker(`data:text/html, <input type="date" value="${inputValue}">`);
- // Click the first item (top-left corner) of the calendar
- helper.click(helper.getElement(DAYS_VIEW).children[0]);
- await ContentTask.spawn(helper.tab.linkedBrowser, {}, async function() {
- let inputEl = content.document.querySelector("input");
- await ContentTaskUtils.waitForEvent(inputEl, "input");
- });
-
- Assert.equal(content.document.querySelector("input").value, firstDayOnCalendar);
-
- await helper.tearDown();
-});
-
-/**
- * Make sure picker is in correct state when it is reopened.
- */
-add_task(async function test_datepicker_reopen_state() {
- const inputValue = "2016-12-15";
- const nextMonth = "2017-01-01";
-
- await helper.openPicker(`data:text/html, <input type="date" value="${inputValue}">`);
- // Navigate to the next month but does not commit the change
- Assert.equal(helper.getElement(MONTH_YEAR).textContent, DATE_FORMAT(new Date(inputValue)));
- helper.click(helper.getElement(BTN_NEXT_MONTH));
- Assert.equal(helper.getElement(MONTH_YEAR).textContent, DATE_FORMAT(new Date(nextMonth)));
- EventUtils.synthesizeKey("VK_ESCAPE", {}, window);
-
- // Ensures the picker opens to the month of the input value
- await BrowserTestUtils.synthesizeMouseAtCenter("input", {}, gBrowser.selectedBrowser);
- await helper.waitForPickerReady();
- Assert.equal(helper.getElement(MONTH_YEAR).textContent, DATE_FORMAT(new Date(inputValue)));
-
- await helper.tearDown();
-});
-
-/**
- * When min and max attributes are set, calendar should show some dates as
- * out-of-range.
- */
-add_task(async function test_datepicker_min_max() {
- const inputValue = "2016-12-15";
- const inputMin = "2016-12-05";
- const inputMax = "2016-12-25";
-
- await helper.openPicker(`data:text/html, <input type="date" value="${inputValue}" min="${inputMin}" max="${inputMax}">`);
-
- Assert.deepEqual(
- getCalendarClassList(),
- mergeArrays(calendarClasslist_201612, [
- // R denotes out-of-range
- [R], [R], [R], [R], [R], [R], [R],
- [R], [], [], [], [], [], [],
- [], [], [], [], [], [], [],
- [], [], [], [], [], [], [],
- [], [R], [R], [R], [R], [R], [R],
- [R], [R], [R], [R], [R], [R], [R],
- ]),
- "2016-12 with min & max",
- );
-
- await helper.tearDown();
-});
-
-/**
- * When step attribute is set, calendar should show some dates as off-step.
- */
-add_task(async function test_datepicker_step() {
- const inputValue = "2016-12-15";
- const inputStep = "5";
-
- await helper.openPicker(`data:text/html, <input type="date" value="${inputValue}" step="${inputStep}">`);
-
- Assert.deepEqual(
- getCalendarClassList(),
- mergeArrays(calendarClasslist_201612, [
- // P denotes off-step
- [P], [P], [P], [], [P], [P], [P],
- [P], [], [P], [P], [P], [P], [],
- [P], [P], [P], [P], [], [P], [P],
- [P], [P], [], [P], [P], [P], [P],
- [], [P], [P], [P], [P], [], [P],
- [P], [P], [P], [], [P], [P], [P],
- ]),
- "2016-12 with step",
- );
-
- await helper.tearDown();
-});
-
-add_task(async function test_datepicker_abs_min() {
- const inputValue = "0001-01-01";
- await helper.openPicker(`data:text/html, <input type="date" value="${inputValue}">`);
-
- Assert.deepEqual(
- getCalendarText(),
- [
- "", "1", "2", "3", "4", "5", "6",
- "7", "8", "9", "10", "11", "12", "13",
- "14", "15", "16", "17", "18", "19", "20",
- "21", "22", "23", "24", "25", "26", "27",
- "28", "29", "30", "31", "1", "2", "3",
- "4", "5", "6", "7", "8", "9", "10",
- ],
- "0001-01",
- );
-
- await helper.tearDown();
-});
-
-add_task(async function test_datepicker_abs_max() {
- const inputValue = "275760-09-13";
- await helper.openPicker(`data:text/html, <input type="date" value="${inputValue}">`);
-
- Assert.deepEqual(
- getCalendarText(),
- [
- "31", "1", "2", "3", "4", "5", "6",
- "7", "8", "9", "10", "11", "12", "13",
- "", "", "", "", "", "", "",
- "", "", "", "", "", "", "",
- "", "", "", "", "", "", "",
- "", "", "", "", "", "", "",
- ],
- "275760-09",
- );
-
- await helper.tearDown();
-});