- Revision
- 124287
- Author
- [email protected]
- Date
- 2012-07-31 19:49:16 -0700 (Tue, 31 Jul 2012)
Log Message
i and j keys no longer scroll in results.html
https://bugs.webkit.org/show_bug.cgi?id=92584
Reviewed by Tony Chang.
Scrolling broke with r122880 since the scrolling element is no
longer the body.
Also, fix TestNavigator to allow navigating to tests in the
unexpected passes table. That table doesn't have expand links,
so we change TestNavigator to navigate the tbody's instead, which
also happens to remove a bunch of unnecessary tree-walking.
* fast/harness/resources/results-test.js:
* fast/harness/results-expected.txt:
* fast/harness/results.html:
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (124286 => 124287)
--- trunk/LayoutTests/ChangeLog 2012-08-01 02:43:55 UTC (rev 124286)
+++ trunk/LayoutTests/ChangeLog 2012-08-01 02:49:16 UTC (rev 124287)
@@ -1,3 +1,22 @@
+2012-07-31 Ojan Vafai <[email protected]>
+
+ i and j keys no longer scroll in results.html
+ https://bugs.webkit.org/show_bug.cgi?id=92584
+
+ Reviewed by Tony Chang.
+
+ Scrolling broke with r122880 since the scrolling element is no
+ longer the body.
+
+ Also, fix TestNavigator to allow navigating to tests in the
+ unexpected passes table. That table doesn't have expand links,
+ so we change TestNavigator to navigate the tbody's instead, which
+ also happens to remove a bunch of unnecessary tree-walking.
+
+ * fast/harness/resources/results-test.js:
+ * fast/harness/results-expected.txt:
+ * fast/harness/results.html:
+
2012-07-31 Ami Fischman <[email protected]>
[Chromium] Layout Test http/tests/media/media-source/webm/video-media-source-*.html is flaky
Modified: trunk/LayoutTests/fast/harness/resources/results-test.js (124286 => 124287)
--- trunk/LayoutTests/fast/harness/resources/results-test.js 2012-08-01 02:43:55 UTC (rev 124286)
+++ trunk/LayoutTests/fast/harness/resources/results-test.js 2012-08-01 02:49:16 UTC (rev 124287)
@@ -552,7 +552,7 @@
runTest(results, function() {
if (window.eventSender) {
eventSender.keyDown('k'); // previous
- var testRows = document.querySelectorAll('#results-table tbody tr');
+ var testRows = document.querySelectorAll('#results-table tbody');
assertTrue(!testRows[0].classList.contains('current'));
assertTrue(!testRows[1].classList.contains('current'));
assertTrue(testRows[2].classList.contains('current'));
@@ -562,13 +562,21 @@
runTest(results, function() {
if (window.eventSender) {
eventSender.keyDown('j'); // next
- var testRows = document.querySelectorAll('#results-table tbody tr');
+ var testRows = document.querySelectorAll('#results-table tbody');
assertTrue(testRows[0].classList.contains('current'));
assertTrue(!testRows[1].classList.contains('current'));
assertTrue(!testRows[2].classList.contains('current'));
}
});
+ results = mockResults();
+ var subtree = results.tests['foo'] = {}
+ subtree['bar.html'] = mockExpectation('TEXT', 'FAIL');
+ subtree['bar1.html'] = mockExpectation('TEXT', 'FAIL');
+ subtree['bar2.html'] = mockExpectation('TEXT', 'FAIL');
+ subtree['bar3.html'] = mockExpectation('TEXT', 'PASS');
+ subtree['bar4.html'] = mockExpectation('IMAGE', 'PASS');
+
runTest(results, function() {
assertTrue(document.getElementById('results-table'));
assertTrue(visibleExpandLinks().length == 3);
@@ -577,7 +585,7 @@
eventSender.keyDown('i', ["metaKey"]);
eventSender.keyDown('i', ["shiftKey"]);
eventSender.keyDown('i', ["ctrlKey"]);
- var testRows = document.querySelectorAll('#results-table tbody tr');
+ var testRows = document.querySelectorAll('tbody');
assertTrue(!testRows[0].classList.contains('current'));
assertTrue(!testRows[1].classList.contains('current'));
assertTrue(!testRows[2].classList.contains('current'));
@@ -621,8 +629,14 @@
eventSender.keyDown('l'); // last
assertTrue(!testRows[0].classList.contains('current'));
assertTrue(!testRows[1].classList.contains('current'));
- assertTrue(testRows[2].classList.contains('current'));
+ assertTrue(testRows[4].classList.contains('current'));
+ var flaggedTestsTextbox = document.getElementById('flagged-tests');
+
+ eventSender.keyDown('f'); // flag
+ assertTrue(flaggedTestsTextbox.innerText == 'foo/bar4.html');
+ eventSender.keyDown('f'); // unflag
+
eventSender.keyDown('i'); // first
eventSender.keyDown('e', ["metaKey"]);
@@ -645,7 +659,6 @@
eventSender.keyDown('f', ["metaKey"]);
eventSender.keyDown('f', ["shiftKey"]);
eventSender.keyDown('f', ["ctrlKey"]);
- var flaggedTestsTextbox = document.getElementById('flagged-tests');
assertTrue(flaggedTestsTextbox.innerText == '');
eventSender.keyDown('f'); // flag
Modified: trunk/LayoutTests/fast/harness/results-expected.txt (124286 => 124287)
--- trunk/LayoutTests/fast/harness/results-expected.txt 2012-08-01 02:43:55 UTC (rev 124286)
+++ trunk/LayoutTests/fast/harness/results-expected.txt 2012-08-01 02:49:16 UTC (rev 124287)
@@ -205,6 +205,7 @@
TEST-36: PASS
TEST-36: PASS
TEST-36: PASS
+TEST-36: PASS
TEST-37: PASS
TEST-37: PASS
TEST-37: PASS
Modified: trunk/LayoutTests/fast/harness/results.html (124286 => 124287)
--- trunk/LayoutTests/fast/harness/results.html 2012-08-01 02:43:55 UTC (rev 124286)
+++ trunk/LayoutTests/fast/harness/results.html 2012-08-01 02:49:16 UTC (rev 124287)
@@ -404,8 +404,9 @@
setTimeout(function() { func.apply(null, args); }, 100);
}
-function visibleTests(container)
+function visibleTests(opt_container)
{
+ var container = opt_container || document;
if (onlyShowUnexpectedFailures())
return container.querySelectorAll('tbody:not(.expected)');
else
@@ -449,7 +450,7 @@
basePath += '/trunk/LayoutTests/';
} else
basePath = globalState().results.layout_tests_dir + '/';
- return '<a class=test-link href="" + basePath + test + '">' + test + '</a>';
+ return '<a class=test-link href="" + basePath + test + '">' + test + '</a><span class=flag _onclick_="unflag(this)"> \u2691</span>';
}
function unflag(flag)
@@ -460,8 +461,7 @@
function testLinkWithExpandButton(test)
{
- return '<span class=expand-button _onclick_="toggleExpectations(this)"><span class=expand-button-text>+</span></span>' + testLink(test) +
- '<span class=flag _onclick_="unflag(this)"> \u2691</span>';
+ return '<span class=expand-button _onclick_="toggleExpectations(this)"><span class=expand-button-text>+</span></span>' + testLink(test);
}
function resultLink(testPrefix, suffix, contents)
@@ -1003,7 +1003,7 @@
TestNavigator._scrollToLastTest = function()
{
- var links = visibleExpandLinks();
+ var links = visibleTests();
if (TestNavigator._setCurrentTest(links.length - 1))
TestNavigator._scrollToCurrentTest();
}
@@ -1026,28 +1026,33 @@
TestNavigator._currentTestLink = function()
{
- var links = visibleExpandLinks();
+ var links = visibleTests();
return links[TestNavigator.currentTestIndex];
}
+TestNavigator._currentTestExpandLink = function()
+{
+ return TestNavigator._currentTestLink().querySelector('.expand-button-text');
+}
+
TestNavigator._expandCurrentTest = function()
{
- expandExpectations(TestNavigator._currentTestLink());
+ expandExpectations(TestNavigator._currentTestExpandLink());
}
TestNavigator._collapseCurrentTest = function()
{
- collapseExpectations(TestNavigator._currentTestLink());
+ collapseExpectations(TestNavigator._currentTestExpandLink());
}
TestNavigator._toggleCurrentTest = function()
{
- toggleExpectations(TestNavigator._currentTestLink());
+ toggleExpectations(TestNavigator._currentTestExpandLink());
}
TestNavigator._toggleCurrentTestFlagged = function()
{
- var testLink = parentOfType(TestNavigator._currentTestLink(), 'tbody');
+ var testLink = TestNavigator._currentTestLink();
TestNavigator.flagTest(testLink, !testLink.classList.contains('flagged'));
}
@@ -1088,18 +1093,18 @@
TestNavigator._setCurrentTest = function(testIndex)
{
- var links = visibleExpandLinks();
+ var links = visibleTests();
if (testIndex < 0 || testIndex >= links.length)
return false;
- var currExpandLink = links[TestNavigator.currentTestIndex];
- if (currExpandLink)
- parentOfType(currExpandLink, 'tr').classList.remove('current');
+ var currentTest = links[TestNavigator.currentTestIndex];
+ if (currentTest)
+ currentTest.classList.remove('current');
TestNavigator.currentTestIndex = testIndex;
- currExpandLink = links[TestNavigator.currentTestIndex];
- parentOfType(currExpandLink, 'tr').classList.add('current');
+ currentTest = links[TestNavigator.currentTestIndex];
+ currentTest.classList.add('current');
return true;
}
@@ -1111,23 +1116,24 @@
return;
var rowRect = targetLink.getBoundingClientRect();
+ var container = document.querySelector('.content-container');
// rowRect is in client coords (i.e. relative to viewport), so we just want to add its top to the current scroll position.
- window.scrollTo(window.scrollX, window.scrollY + rowRect.top - 20);
+ container.scrollTop += rowRect.top - 20;
}
TestNavigator._onlyShowUnexpectedFailuresChanged_ = function()
{
- var currentTestLink = document.querySelector('.current .expand-button-text');
- if (!currentTestLink)
+ var currentTest = document.querySelector('.current');
+ if (!currentTest)
return;
// If our currentTest became hidden, reset the currentTestIndex.
- if (onlyShowUnexpectedFailures() && parentOfType(currentTestLink, 'tbody').classList.contains('expected'))
+ if (onlyShowUnexpectedFailures() && currentTest.classList.contains('expected'))
TestNavigator._scrollToFirstTest();
else {
// Recompute TestNavigator.currentTestIndex
- var links = visibleExpandLinks();
- TestNavigator.currentTestIndex = links.indexOf(currentTestLink);
+ var links = visibleTests();
+ TestNavigator.currentTestIndex = links.indexOf(currentTest);
window.console.log('TestNavigator.currentTestIndex is ', TestNavigator.currentTestIndex)
}
}