Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(872)

Unified Diff: third_party/WebKit/LayoutTests/http/tests/inspector-unit/soft-context-menu.js

Issue 2824023002: DevTools: Use FocusRestorer in SoftContextMenu (Closed)
Patch Set: Print keys in test Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/http/tests/inspector-unit/soft-context-menu-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
+}
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/http/tests/inspector-unit/soft-context-menu-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698