diff options
author | janekptacijarabaci <janekptacijarabaci@seznam.cz> | 2018-03-31 07:02:03 +0200 |
---|---|---|
committer | janekptacijarabaci <janekptacijarabaci@seznam.cz> | 2018-03-31 07:02:03 +0200 |
commit | 2f54cd30fc6f6c16db7e95819740e1f229b20984 (patch) | |
tree | 31d05c6b4a6a11e0dd28ab829e48ca262cdd4136 | |
parent | de16d196679e3deaf8797abcc05db5cf0ead6ae8 (diff) | |
download | UXP-2f54cd30fc6f6c16db7e95819740e1f229b20984.tar UXP-2f54cd30fc6f6c16db7e95819740e1f229b20984.tar.gz UXP-2f54cd30fc6f6c16db7e95819740e1f229b20984.tar.lz UXP-2f54cd30fc6f6c16db7e95819740e1f229b20984.tar.xz UXP-2f54cd30fc6f6c16db7e95819740e1f229b20984.zip |
Bug 1401876 - (Part 2) Add browser-chrome test for reopening picker
-rw-r--r-- | toolkit/content/tests/browser/browser_datetime_datepicker.js | 22 | ||||
-rw-r--r-- | toolkit/content/tests/browser/head.js | 6 |
2 files changed, 27 insertions, 1 deletions
diff --git a/toolkit/content/tests/browser/browser_datetime_datepicker.js b/toolkit/content/tests/browser/browser_datetime_datepicker.js index 808ef4fef..966a74e7a 100644 --- a/toolkit/content/tests/browser/browser_datetime_datepicker.js +++ b/toolkit/content/tests/browser/browser_datetime_datepicker.js @@ -168,6 +168,28 @@ add_task(async function test_datepicker_clicked() { }); /** + * 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. */ diff --git a/toolkit/content/tests/browser/head.js b/toolkit/content/tests/browser/head.js index 399b63e34..d7ed7a9ff 100644 --- a/toolkit/content/tests/browser/head.js +++ b/toolkit/content/tests/browser/head.js @@ -57,8 +57,12 @@ class DateTimeTestHelper { await BrowserTestUtils.waitForEvent(this.panel, "DateTimePickerBindingReady") } this.frame = this.panel.dateTimePopupFrame; + await this.waitForPickerReady(); + } + + async waitForPickerReady() { await BrowserTestUtils.waitForEvent(this.frame, "load", true); - // Wait for picker elements to be ready and open panel transition to end + // Wait for picker elements to be ready await BrowserTestUtils.waitForEvent(this.frame.contentDocument, "PickerReady"); } |