Bug 1401876 - (Part 2) Add browser-chrome test for reopening picker. r=mconley

MozReview-Commit-ID: BjR0rVxkdT

--HG--
extra : rebase_source : 92c1d3fc55dbe0eb8c1524a7510bc6431f296a25
This commit is contained in:
Scott Wu 2017-09-25 17:43:27 +08:00
Родитель e8af7b7a7d
Коммит 5362aea0cf
2 изменённых файлов: 27 добавлений и 1 удалений

Просмотреть файл

@ -172,6 +172,28 @@ add_task(async function test_datepicker_clicked() {
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.

Просмотреть файл

@ -148,8 +148,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");
}