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

Unified Diff: third_party/WebKit/LayoutTests/http/tests/inspector-unit/list-control-fixed-height.js

Issue 2592433003: [DevTools] Replace ViewportControl with ListControl. (Closed)
Patch Set: tests Created 4 years 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
Index: third_party/WebKit/LayoutTests/http/tests/inspector-unit/list-control-fixed-height.js
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector-unit/list-control-fixed-height.js b/third_party/WebKit/LayoutTests/http/tests/inspector-unit/list-control-fixed-height.js
new file mode 100644
index 0000000000000000000000000000000000000000..05920c6884c57bc23c2744ce935c00b74e8b46ad
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/inspector-unit/list-control-fixed-height.js
@@ -0,0 +1,201 @@
+TestRunner.addResult('Test ListControl rendering and selection for fixed height case.');
+
+class Delegate {
+ constructor() {
+ this.height = 10;
+ }
+
+ createElementForItem(item) {
+ TestRunner.addResult('Creating element for ' + item);
+ var element = document.createElement('div');
+ element.style.height = this.height + 'px';
+ element.textContent = item;
+ return element;
+ }
+
+ heightForItem(item) {
+ return this.height;
+ }
+
+ isItemSelectable(item) {
+ return (item % 5 === 0) || (item % 5 === 2);
+ }
+
+ selectedItemChanged(from, to, fromElement, toElement) {
+ TestRunner.addResult('Selection changed from ' + from + ' to ' + to);
+ if (fromElement)
+ fromElement.classList.remove('selected');
+ if (toElement)
+ toElement.classList.add('selected');
+ }
+}
+
+var delegate = new Delegate();
+var list = new UI.ListControl(delegate);
+list.setHeightMode(UI.ListHeightMode.Fixed);
+list.element.style.height = '73px';
+UI.inspectorView.element.appendChild(list.element);
+
+function dumpList()
+{
+ var height = list.element.offsetHeight;
+ TestRunner.addResult(`----list[length=${list.length()}][height=${height}]----`);
+ for (var child of list.element.children) {
+ var offsetTop = child.getBoundingClientRect().top - list.element.getBoundingClientRect().top;
+ var offsetBottom = child.getBoundingClientRect().bottom - list.element.getBoundingClientRect().top;
+ var visible = (offsetBottom <= 0 || offsetTop >= height) ? ' ' :
+ (offsetTop >= 0 && offsetBottom <= height ? '*' : '+');
+ var selected = child.classList.contains('selected') ? ' (selected)' : '';
+ var text = child === list._topElement ? 'top' : (child === list._bottomElement ? 'bottom' : child.textContent);
+ TestRunner.addResult(`${visible}[${offsetTop}] ${text}${selected}`);
+ }
+ TestRunner.addResult('');
+}
+
+TestRunner.addResult('Adding 0, 1, 2');
+list.replaceAllItems([0, 1, 2]);
+dumpList();
+
+TestRunner.addResult('Scrolling to 0');
+list.scrollItemAtIndexIntoView(0);
+dumpList();
+
+TestRunner.addResult('Scrolling to 2');
+list.scrollItemAtIndexIntoView(2);
+dumpList();
+
+TestRunner.addResult('ArrowDown');
+list.onKeyDown(TestRunner.createKeyEvent('ArrowDown'));
+dumpList();
+
+TestRunner.addResult('Selecting 2');
+list.selectItemAtIndex(2);
+dumpList();
+
+TestRunner.addResult('PageUp');
+list.onKeyDown(TestRunner.createKeyEvent('PageUp'));
+dumpList();
+
+TestRunner.addResult('PageDown');
+list.onKeyDown(TestRunner.createKeyEvent('PageDown'));
+dumpList();
+
+TestRunner.addResult('ArrowDown');
+list.onKeyDown(TestRunner.createKeyEvent('ArrowDown'));
+dumpList();
+
+TestRunner.addResult('Replacing 0 with 5, 6, 7');
+list.replaceItemsInRange(0, 1, [5, 6, 7]);
+dumpList();
+
+TestRunner.addResult('ArrowUp');
+list.onKeyDown(TestRunner.createKeyEvent('ArrowUp'));
+dumpList();
+
+TestRunner.addResult('Pushing 10');
+list.pushItem(10);
+dumpList();
+
+TestRunner.addResult('Selecting 10');
+list.selectItemAtIndex(5);
+dumpList();
+
+TestRunner.addResult('Popping 10');
+list.popItem();
+dumpList();
+
+TestRunner.addResult('Removing 2');
+list.removeItemAtIndex(4);
+dumpList();
+
+TestRunner.addResult('Inserting 8');
+list.insertItemAtIndex(1, 8);
+dumpList();
+
+TestRunner.addResult('Replacing with 0...20');
+list.replaceAllItems([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]);
+dumpList();
+
+TestRunner.addResult('Resizing');
+list.element.style.height = '84px';
+list.viewportResized();
+dumpList();
+
+TestRunner.addResult('Scrolling to 19');
+list.scrollItemAtIndexIntoView(19);
+dumpList();
+
+TestRunner.addResult('Scrolling to 5');
+list.scrollItemAtIndexIntoView(5);
+dumpList();
+
+TestRunner.addResult('Scrolling to 12');
+list.scrollItemAtIndexIntoView(12);
+dumpList();
+
+TestRunner.addResult('Scrolling to 13');
+list.scrollItemAtIndexIntoView(13);
+dumpList();
+
+TestRunner.addResult('Changing the item height, switching to measure');
+delegate.height = 15;
+list.setHeightMode(UI.ListHeightMode.Measured);
+dumpList();
+
+TestRunner.addResult('Selecting 7');
+list.selectItemAtIndex(7);
+dumpList();
+
+TestRunner.addResult('Replacing 7 with 27');
+list.replaceItemsInRange(7, 8, [27]);
+dumpList();
+
+TestRunner.addResult('Replacing 18, 19 with 28, 29');
+list.replaceItemsInRange(18, 20, [28, 29]);
+dumpList();
+
+TestRunner.addResult('PageDown');
+list.onKeyDown(TestRunner.createKeyEvent('PageDown'));
+dumpList();
+
+TestRunner.addResult('Replacing 1, 2, 3 with [31-43]');
+list.replaceItemsInRange(1, 4, [31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43]);
+dumpList();
+
+TestRunner.addResult('ArrowUp');
+list.onKeyDown(TestRunner.createKeyEvent('ArrowUp'));
+dumpList();
+
+TestRunner.addResult('Selecting -1');
+list.selectItemAtIndex(-1);
+dumpList();
+
+TestRunner.addResult('ArrowUp');
+list.onKeyDown(TestRunner.createKeyEvent('ArrowUp'));
+dumpList();
+
+TestRunner.addResult('Selecting -1');
+list.selectItemAtIndex(-1);
+dumpList();
+
+TestRunner.addResult('ArrowDown');
+list.onKeyDown(TestRunner.createKeyEvent('ArrowDown'));
+dumpList();
+
+TestRunner.addResult('Selecting -1');
+list.selectItemAtIndex(-1);
+dumpList();
+
+TestRunner.addResult('PageUp');
+list.onKeyDown(TestRunner.createKeyEvent('PageUp'));
+dumpList();
+
+TestRunner.addResult('Replacing all but 29 with []');
+list.replaceItemsInRange(0, 29, []);
+dumpList();
+
+TestRunner.addResult('ArrowDown');
+list.onKeyDown(TestRunner.createKeyEvent('ArrowDown'));
+dumpList();
+
+TestRunner.completeTest();

Powered by Google App Engine
This is Rietveld 408576698