diff --git a/devtools/client/netmonitor/src/components/request-list-header.js b/devtools/client/netmonitor/src/components/request-list-header.js index 5e93a44873d9..22a8b8e44d99 100644 --- a/devtools/client/netmonitor/src/components/request-list-header.js +++ b/devtools/client/netmonitor/src/components/request-list-header.js @@ -115,7 +115,7 @@ const RequestListHeader = createClass({ id: `requests-list-${name}-button`, className: `requests-list-header-button`, "data-sorted": sorted, - title: sortedTitle, + title: sortedTitle ? `${label} (${sortedTitle})` : label, onClick: () => sortBy(name), }, name === "waterfall" diff --git a/devtools/client/netmonitor/test/browser.ini b/devtools/client/netmonitor/test/browser.ini index e03ba632afb2..25a8be7964ef 100644 --- a/devtools/client/netmonitor/test/browser.ini +++ b/devtools/client/netmonitor/test/browser.ini @@ -72,6 +72,7 @@ support-files = [browser_net_charts-06.js] [browser_net_charts-07.js] [browser_net_clear.js] +[browser_net_column_headers_tooltips.js] [browser_net_columns_last_column.js] [browser_net_columns_pref.js] [browser_net_columns_reset.js] diff --git a/devtools/client/netmonitor/test/browser_net_column_headers_tooltips.js b/devtools/client/netmonitor/test/browser_net_column_headers_tooltips.js new file mode 100644 index 000000000000..e12e0373c7e3 --- /dev/null +++ b/devtools/client/netmonitor/test/browser_net_column_headers_tooltips.js @@ -0,0 +1,25 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +/** + * Bug 1377094 - Test that all column headers have tooltips. + */ + +add_task(function* () { + let { monitor } = yield initNetMonitor(SIMPLE_URL); + info("Starting test... "); + + let { document } = monitor.panelWin; + + let headers = document.querySelectorAll(".requests-list-header-button"); + for (let header of headers) { + const buttonText = header.querySelector(".button-text").textContent; + const tooltip = header.getAttribute("title"); + is(buttonText, tooltip, + "The " + header.id + " header has the button text in its 'title' attribute."); + } + + yield teardown(monitor); +}); diff --git a/devtools/client/netmonitor/test/browser_net_sort-01.js b/devtools/client/netmonitor/test/browser_net_sort-01.js index e49d02d5e3c3..cea0bc1ed24a 100644 --- a/devtools/client/netmonitor/test/browser_net_sort-01.js +++ b/devtools/client/netmonitor/test/browser_net_sort-01.js @@ -117,15 +117,19 @@ add_task(function* () { if (header != target) { ok(!header.hasAttribute("data-sorted"), "The " + header.id + " header does not have a 'data-sorted' attribute."); - ok(!header.getAttribute("title"), - "The " + header.id + " header does not have a 'title' attribute."); + ok(!header.getAttribute("title").includes(L10N.getStr("networkMenu.sortedAsc")) && + !header.getAttribute("title").includes(L10N.getStr("networkMenu.sortedDesc")), + "The " + header.id + + " header does not include any sorting in the 'title' attribute."); } else { is(header.getAttribute("data-sorted"), direction, "The " + header.id + " header has a correct 'data-sorted' attribute."); - is(header.getAttribute("title"), direction == "ascending" + const sorted = direction == "ascending" ? L10N.getStr("networkMenu.sortedAsc") - : L10N.getStr("networkMenu.sortedDesc"), - "The " + header.id + " header has a correct 'title' attribute."); + : L10N.getStr("networkMenu.sortedDesc"); + ok(header.getAttribute("title").includes(sorted), + "The " + header.id + + " header includes the used sorting in the 'title' attribute."); } } } diff --git a/devtools/client/netmonitor/test/browser_net_sort-02.js b/devtools/client/netmonitor/test/browser_net_sort-02.js index dc230f63fb77..9ae08eac88bc 100644 --- a/devtools/client/netmonitor/test/browser_net_sort-02.js +++ b/devtools/client/netmonitor/test/browser_net_sort-02.js @@ -208,15 +208,19 @@ add_task(function* () { if (header != target) { ok(!header.hasAttribute("data-sorted"), "The " + header.id + " header does not have a 'data-sorted' attribute."); - ok(!header.getAttribute("title"), - "The " + header.id + " header does not have a 'title' attribute."); + ok(!header.getAttribute("title").includes(L10N.getStr("networkMenu.sortedAsc")) && + !header.getAttribute("title").includes(L10N.getStr("networkMenu.sortedDesc")), + "The " + header.id + + " header does not include any sorting in the 'title' attribute."); } else { is(header.getAttribute("data-sorted"), direction, "The " + header.id + " header has a correct 'data-sorted' attribute."); - is(header.getAttribute("title"), direction == "ascending" + const sorted = direction == "ascending" ? L10N.getStr("networkMenu.sortedAsc") - : L10N.getStr("networkMenu.sortedDesc"), - "The " + header.id + " header has a correct 'title' attribute."); + : L10N.getStr("networkMenu.sortedDesc"); + ok(header.getAttribute("title").includes(sorted), + "The " + header.id + + " header includes the used sorting in the 'title' attribute."); } } }