Bug 1285225 - Set accesskey and disabled properties on menuitems with submenus in Menu API;r=jdescottes

MozReview-Commit-ID: GN9j5pEn3cH
This commit is contained in:
Brian Grinstead 2016-07-08 07:24:09 -07:00
Родитель 4a6222d06c
Коммит f3214d3c0b
2 изменённых файлов: 22 добавлений и 1 удалений

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

@ -104,6 +104,15 @@ Menu.prototype._createMenuItems = function (parent) {
let menu = doc.createElement("menu");
menu.appendChild(menupopup);
menu.setAttribute("label", item.label);
if (item.disabled) {
menu.setAttribute("disabled", "true");
}
if (item.accesskey) {
menu.setAttribute("accesskey", item.accesskey);
}
if (item.id) {
menu.id = item.id;
}
parent.appendChild(menu);
} else if (item.type === "separator") {
let menusep = doc.createElement("menuseparator");

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

@ -130,6 +130,13 @@ function* testSubmenu(toolbox) {
label: "Submenu parent",
submenu: submenu,
}));
menu.append(new MenuItem({
label: "Submenu parent with attributes",
id: "submenu-parent-with-attrs",
submenu: submenu,
accesskey: "A",
disabled: true,
}));
menu.popup(0, 0, toolbox);
ok(toolbox.doc.querySelector("#menu-popup"), "A popup is in the DOM");
@ -137,8 +144,13 @@ function* testSubmenu(toolbox) {
"No menuitem children");
let menus = toolbox.doc.querySelectorAll("#menu-popup > menu");
is(menus.length, 1, "Correct number of menus");
is(menus.length, 2, "Correct number of menus");
is(menus[0].getAttribute("label"), "Submenu parent", "Correct label");
ok(!menus[0].hasAttribute("disabled"), "Correct disabled state");
is(menus[1].getAttribute("accesskey"), "A", "Correct accesskey");
ok(menus[1].hasAttribute("disabled"), "Correct disabled state");
ok(menus[1].id, "submenu-parent-with-attrs", "Correct id");
let subMenuItems = menus[0].querySelectorAll("menupopup > menuitem");
is(subMenuItems.length, 1, "Correct number of submenu items");