| Index: third_party/WebKit/LayoutTests/http/tests/inspector-unit/soft-context-menu.js
|
| diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector-unit/soft-context-menu.js b/third_party/WebKit/LayoutTests/http/tests/inspector-unit/soft-context-menu.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2853e266ef6d2b754a25f2316da8d441f542915e
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/http/tests/inspector-unit/soft-context-menu.js
|
| @@ -0,0 +1,89 @@
|
| +var menu = new UI.SoftContextMenu([{
|
| + type: 'item',
|
| + label: 'First',
|
| + enabled: true
|
| +},
|
| +{
|
| + type: 'subMenu',
|
| + label: 'Second',
|
| + enabled: true,
|
| + subItems: [
|
| + {type: 'subMenu', label: 'Child 1', enabled: true, subItems: [{type: 'item', label: 'Grandchild', id: 'Grandchild', enabled: true}]},
|
| + {type: 'item', label: 'Child 2', enabled: true},
|
| + {type: 'item', label: 'Child 3', enabled: true},
|
| + {type: 'item', label: 'Child 4', enabled: true}
|
| + ]
|
| +},
|
| +{
|
| + type: 'separator',
|
| +},{
|
| + type: 'item',
|
| + label: 'Third',
|
| + enabled: true
|
| +}], item => TestRunner.addResult('Item Selected: ' + item));
|
| +
|
| +var initialFocusedElement = UI.inspectorView.element.createChild('div');
|
| +initialFocusedElement.textContent = 'Initial Focused Element';
|
| +initialFocusedElement.tabIndex = -1;
|
| +initialFocusedElement.focus();
|
| +
|
| +dumpContextMenu();
|
| +menu.show(document, new AnchorBox(50, 50, 0, 0));
|
| +dumpContextMenu();
|
| +pressKey('ArrowDown');
|
| +pressKey('ArrowDown');
|
| +pressKey('ArrowDown');
|
| +pressKey('ArrowUp');
|
| +pressKey('ArrowUp');
|
| +pressKey('ArrowUp');
|
| +pressKey('ArrowDown');
|
| +TestRunner.addResult('Enter Submenu');
|
| +pressKey('ArrowRight');
|
| +pressKey('ArrowDown');
|
| +pressKey('ArrowDown');
|
| +pressKey('ArrowDown');
|
| +TestRunner.addResult('Leave Submenu ArrowLeft');
|
| +pressKey('ArrowLeft');
|
| +pressKey('ArrowRight');
|
| +TestRunner.addResult('Leave Submenu Escape');
|
| +pressKey('Escape');
|
| +TestRunner.addResult('Enter Sub-Submenu');
|
| +pressKey(' ');
|
| +pressKey('Enter');
|
| +pressKey('Enter');
|
| +TestRunner.completeTest();
|
| +
|
| +function pressKey(key) {
|
| + var element = document.deepActiveElement();
|
| + if (!element)
|
| + return;
|
| + element.dispatchEvent(TestRunner.createKeyEvent(key));
|
| + if (key === ' ')
|
| + key = 'Space';
|
| + TestRunner.addResult(key);
|
| + dumpContextMenu();
|
| +}
|
| +
|
| +function dumpContextMenu() {
|
| + if (initialFocusedElement.hasFocus()) {
|
| + TestRunner.addResult('Initial focused element has focus');
|
| + return;
|
| + }
|
| + var selection = '';
|
| + var subMenu = menu;
|
| + var activeElement = document.deepActiveElement();
|
| + do {
|
| + if (selection)
|
| + selection += ' -> ';
|
| + if (subMenu._contextMenuElement === activeElement)
|
| + selection += '[';
|
| + if (subMenu._highlightedMenuItemElement)
|
| + selection += subMenu._highlightedMenuItemElement.textContent.replace(/[^A-z0-9 ]/g, '');
|
| + else
|
| + selection += 'null'
|
| + if (subMenu._contextMenuElement === activeElement)
|
| + selection += ']';
|
| + }
|
| + while (subMenu = subMenu._subMenu)
|
| + TestRunner.addResult(selection);
|
| +}
|
|
|