mirror of
https://github.com/zen-browser/desktop.git
synced 2025-09-05 19:08:18 +00:00
test: Added tests for folder collapse bug fix, b=closes #9981, c=folders, tests
This commit is contained in:
@@ -1219,7 +1219,11 @@
|
||||
let itemHeight = 0;
|
||||
for (const item of group.allItems) {
|
||||
itemHeight += item.getBoundingClientRect().height;
|
||||
if (item.hasAttribute('folder-active') && (!item.selected || !onlyIfActive)) {
|
||||
if (
|
||||
item.hasAttribute('folder-active') &&
|
||||
(!item.selected || !onlyIfActive) &&
|
||||
(selectedTab ? item === selectedTab : true)
|
||||
) {
|
||||
item.removeAttribute('folder-active');
|
||||
if (!onlyIfActive) {
|
||||
item.setAttribute('was-folder-active', 'true');
|
||||
|
@@ -17,5 +17,7 @@ support-files = [
|
||||
["browser_folder_multiselected.js"]
|
||||
["browser_folder_visible_tabs.js"]
|
||||
["browser_folder_level_checks.js"]
|
||||
["browser_folder_reset_button.js"]
|
||||
|
||||
["browser_folder_issue_9885.js"]
|
||||
["browser_folder_issue_9981.js"]
|
||||
|
40
src/zen/tests/folders/browser_folder_issue_9981.js
Normal file
40
src/zen/tests/folders/browser_folder_issue_9981.js
Normal file
@@ -0,0 +1,40 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
https://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(async function test_Issue_9981() {
|
||||
const selectedTab = gBrowser.selectedTab;
|
||||
const tab1 = BrowserTestUtils.addTab(gBrowser, 'about:blank');
|
||||
const tab2 = BrowserTestUtils.addTab(gBrowser, 'about:blank');
|
||||
const folder = await gZenFolders.createFolder([tab1, tab2], {});
|
||||
|
||||
gBrowser.selectedTab = tab2;
|
||||
|
||||
gBrowser.addRangeToMultiSelectedTabs(tab1, tab2);
|
||||
ok(tab1.multiselected, 'Tab 1 should be multiselected');
|
||||
ok(tab2.multiselected, 'Tab 2 should be multiselected');
|
||||
Assert.equal(gBrowser.multiSelectedTabsCount, 2, 'There should be 2 multiselected tabs');
|
||||
await new Promise((resolve) => setTimeout(resolve, 0));
|
||||
|
||||
const collapseEvent = BrowserTestUtils.waitForEvent(window, 'TabGroupCollapse');
|
||||
EventUtils.synthesizeMouseAtCenter(folder.labelElement, {});
|
||||
await collapseEvent;
|
||||
|
||||
gBrowser.clearMultiSelectedTabs();
|
||||
gBrowser.selectedTab = selectedTab;
|
||||
|
||||
Assert.equal(folder.activeTabs.length, 2, 'Folder should have 2 active tabs');
|
||||
|
||||
ok(tab1.hasAttribute('folder-active'), 'Tab 1 should be in the active folder');
|
||||
ok(tab2.hasAttribute('folder-active'), 'Tab 2 should be in the active folder');
|
||||
|
||||
const tab2ResetButton = tab2.querySelector('.tab-reset-button');
|
||||
tab2ResetButton.style.display = 'flex';
|
||||
EventUtils.synthesizeMouseAtCenter(tab2ResetButton, {});
|
||||
|
||||
ok(tab1.hasAttribute('folder-active'), 'Tab 1 should be in the active folder');
|
||||
ok(!tab2.hasAttribute('folder-active'), 'Tab 2 should not be in the active folder');
|
||||
|
||||
await removeFolder(folder);
|
||||
});
|
@@ -18,8 +18,8 @@ add_task(async function test_Folder_Multiselected_Tabs() {
|
||||
folder.collapsed = true;
|
||||
await collapseEvent;
|
||||
|
||||
ok(!tab2.multiselected, 'Tab 2 should not be multiselected');
|
||||
Assert.equal(gBrowser.multiSelectedTabsCount, 0, 'There should be 1 multiselected tab');
|
||||
ok(tab2.multiselected, 'Tab 2 should not be multiselected');
|
||||
Assert.equal(gBrowser.multiSelectedTabsCount, 3, 'There should be 3 multiselected tabs');
|
||||
|
||||
for (const t of [tab1, tab2]) {
|
||||
BrowserTestUtils.removeTab(t);
|
||||
|
38
src/zen/tests/folders/browser_folder_reset_button.js
Normal file
38
src/zen/tests/folders/browser_folder_reset_button.js
Normal file
@@ -0,0 +1,38 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
https://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(async function test_Issue_() {
|
||||
const selectedTab = gBrowser.selectedTab;
|
||||
const tab1 = BrowserTestUtils.addTab(gBrowser, 'about:blank');
|
||||
const tab2 = BrowserTestUtils.addTab(gBrowser, 'about:blank');
|
||||
const folder = await gZenFolders.createFolder([tab1, tab2], {});
|
||||
|
||||
gBrowser.selectedTab = tab2;
|
||||
|
||||
gBrowser.addRangeToMultiSelectedTabs(tab1, tab2);
|
||||
ok(tab1.multiselected, 'Tab 1 should be multiselected');
|
||||
ok(tab2.multiselected, 'Tab 2 should be multiselected');
|
||||
Assert.equal(gBrowser.multiSelectedTabsCount, 2, 'There should be 2 multiselected tabs');
|
||||
await new Promise((resolve) => setTimeout(resolve, 0));
|
||||
|
||||
const collapseEvent = BrowserTestUtils.waitForEvent(window, 'TabGroupCollapse');
|
||||
EventUtils.synthesizeMouseAtCenter(folder.labelElement, {});
|
||||
await collapseEvent;
|
||||
|
||||
gBrowser.clearMultiSelectedTabs();
|
||||
gBrowser.selectedTab = selectedTab;
|
||||
|
||||
Assert.equal(folder.activeTabs.length, 2, 'Folder should have 2 active tabs');
|
||||
|
||||
ok(tab1.hasAttribute('folder-active'), 'Tab 1 should be in the active folder');
|
||||
ok(tab2.hasAttribute('folder-active'), 'Tab 2 should be in the active folder');
|
||||
|
||||
EventUtils.synthesizeMouseAtCenter(folder.resetButton, {});
|
||||
|
||||
ok(!tab1.hasAttribute('folder-active'), 'Tab 1 should not be in the active folder');
|
||||
ok(!tab2.hasAttribute('folder-active'), 'Tab 2 should not be in the active folder');
|
||||
|
||||
await removeFolder(folder);
|
||||
});
|
Reference in New Issue
Block a user