Autoría | Ultima modificación | Ver Log |
"use strict";
describe("dropdown shortcuts: init plugin (with nationalMode=false) to test keyboard shortcuts", function() {
beforeEach(function() {
intlSetup();
input = $("<input>").appendTo("body");
iti = window.intlTelInput(input[0], {
nationalMode: false
});
});
afterEach(function() {
intlTeardown();
});
describe("when selected flag element has focus", function() {
beforeEach(function() {
getFlagsContainerElement().focus();
});
it("pressing UP opens the dropdown", function() {
triggerKeyOnFlagsContainerElement("ArrowUp");
expect(getListElement()).toBeVisible();
});
it("pressing DOWN opens the dropdown", function() {
triggerKeyOnFlagsContainerElement("ArrowDown");
expect(getListElement()).toBeVisible();
});
it("pressing SPACE opens the dropdown", function() {
triggerKeyOnFlagsContainerElement(" ");
expect(getListElement()).toBeVisible();
});
it("pressing ENTER opens the dropdown", function() {
triggerKeyOnFlagsContainerElement("Enter");
expect(getListElement()).toBeVisible();
});
});
describe("when dropdown is opened", function() {
beforeEach(function() {
getSelectedFlagContainer()[0].click();
});
it("pressing esc closes the popup", function() {
triggerKeyOnBody("Escape");
expect(getListElement()).not.toBeVisible();
});
it("pressing up while on the top item does not change the highlighted item", function() {
triggerKeyOnBody("ArrowUp");
var topItem = getListElement().find("li.iti__country:eq(0)");
expect(topItem).toHaveClass("iti__highlight");
});
it("pressing z highlights Zambia", function() {
triggerKeyOnBody("z");
var zambiaListItem = getListElement().find("li[data-country-code='zm']");
expect(zambiaListItem).toHaveClass("iti__highlight");
});
it("pressing z three times also highlights Zambia (no further matches)", function() {
triggerKeyOnBody("z");
triggerKeyOnBody("z");
triggerKeyOnBody("z");
var zambiaListItem = getListElement().find("li[data-country-code='zm']");
expect(zambiaListItem).toHaveClass("iti__highlight");
});
describe("typing z then i then DOWN", function() {
var lastItem;
beforeEach(function() {
lastItem = getListElement().find("li.iti__country:last");
triggerKeyOnBody("z");
triggerKeyOnBody("i");
triggerKeyOnBody("ArrowDown");
});
it("highlights the last item, which is Åland Islands", function() {
expect(lastItem).toHaveClass("iti__highlight");
expect(lastItem.attr("data-country-code")).toEqual("ax");
});
it("pressing down while on the last item does not change the highlighted item", function() {
triggerKeyOnBody("ArrowDown");
expect(lastItem).toHaveClass("iti__highlight");
});
});
describe("pressing down", function() {
beforeEach(function() {
triggerKeyOnBody("ArrowDown");
});
it("changes the highlighted item", function() {
var listElement = getListElement();
var topItem = listElement.find("li.iti__country:eq(0)");
expect(topItem).not.toHaveClass("iti__highlight");
var secondItem = listElement.find("li.iti__country:eq(1)");
expect(secondItem).toHaveClass("iti__highlight");
});
describe("pressing enter", function() {
beforeEach(function() {
triggerKeyOnBody("Enter");
});
it("changes the active item", function() {
var listElement = getListElement();
var topItem = listElement.find("li.iti__country:eq(0)");
expect(topItem).not.toHaveClass("iti__active");
var secondItem = listElement.find("li.iti__country:eq(1)");
expect(secondItem).toHaveClass("iti__active");
});
it("closes the dropdown", function() {
expect(getListElement()).not.toBeVisible();
});
it("updates the dial code", function() {
expect(getInputVal()).toEqual("+44");
});
});
});
});
});