Skip to content

Commit e24b616

Browse files
mehdi-sy-hclaude
andcommitted
tests(folders): Add tests for zen.folders.new-tabs-in-folder
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 8e616a6 commit e24b616

2 files changed

Lines changed: 93 additions & 0 deletions

File tree

src/zen/tests/folders/browser.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ support-files = [
2626

2727
["browser_folder_multiselected.js"]
2828

29+
["browser_folder_new_tabs.js"]
30+
2931
["browser_folder_owner_tabs.js"]
3032

3133
["browser_folder_reset_button.js"]
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
/* Any copyright is dedicated to the Public Domain.
2+
https://creativecommons.org/publicdomain/zero/1.0/ */
3+
4+
"use strict";
5+
6+
add_task(async function test_New_Tab_Inside_Folder() {
7+
await SpecialPowers.pushPrefEnv({
8+
set: [["zen.folders.new-tabs-in-folder", true]],
9+
});
10+
const selectedTab = gBrowser.selectedTab;
11+
const tab = BrowserTestUtils.addTab(gBrowser, "about:blank");
12+
const folder = await gZenFolders.createFolder([tab], {
13+
renameFolder: false,
14+
});
15+
gBrowser.selectedTab = tab;
16+
const triggeringPrincipal = Services.scriptSecurityManager.getSystemPrincipal();
17+
18+
const newTab = gBrowser.addTab("https://example.com", {
19+
inBackground: true,
20+
triggeringPrincipal,
21+
});
22+
23+
/* eslint-disable mozilla/no-arbitrary-setTimeout */
24+
await new Promise((resolve) => setTimeout(resolve, 100));
25+
26+
Assert.equal(folder.tabs.length, 3, "New tab was added to the folder");
27+
Assert.equal(newTab.group, folder, "New tab is in the folder group");
28+
29+
gBrowser.selectedTab = selectedTab;
30+
await removeFolder(folder);
31+
await SpecialPowers.popPrefEnv();
32+
});
33+
34+
add_task(async function test_New_Tab_Not_Inside_Folder_When_Pref_Disabled() {
35+
await SpecialPowers.pushPrefEnv({
36+
set: [["zen.folders.new-tabs-in-folder", false]],
37+
});
38+
const selectedTab = gBrowser.selectedTab;
39+
const tab = BrowserTestUtils.addTab(gBrowser, "about:blank");
40+
const folder = await gZenFolders.createFolder([tab], {
41+
renameFolder: false,
42+
});
43+
gBrowser.selectedTab = tab;
44+
const triggeringPrincipal = Services.scriptSecurityManager.getSystemPrincipal();
45+
46+
const newTab = gBrowser.addTab("https://example.com", {
47+
inBackground: true,
48+
triggeringPrincipal,
49+
});
50+
51+
await new Promise((resolve) => setTimeout(resolve, 100));
52+
53+
Assert.equal(folder.tabs.length, 2, "New tab was not added to the folder");
54+
ok(!newTab.group, "New tab should not be in any group");
55+
56+
gBrowser.selectedTab = selectedTab;
57+
BrowserTestUtils.removeTab(newTab);
58+
await removeFolder(folder);
59+
await SpecialPowers.popPrefEnv();
60+
});
61+
62+
add_task(async function test_Owned_Tab_Not_Captured_By_New_Tabs_In_Folder() {
63+
await SpecialPowers.pushPrefEnv({
64+
set: [
65+
["zen.folders.new-tabs-in-folder", true],
66+
["zen.folders.owned-tabs-in-folder", false],
67+
],
68+
});
69+
const selectedTab = gBrowser.selectedTab;
70+
const tab = BrowserTestUtils.addTab(gBrowser, "about:blank");
71+
const folder = await gZenFolders.createFolder([tab], {
72+
renameFolder: false,
73+
});
74+
gBrowser.selectedTab = tab;
75+
76+
const newTab = gBrowser.addTab("https://example.com", {
77+
relatedToCurrent: true,
78+
ownerTab: tab,
79+
triggeringPrincipal,
80+
});
81+
82+
await new Promise((resolve) => setTimeout(resolve, 100));
83+
84+
Assert.equal(folder.tabs.length, 2, "Owned tab was not captured by new-tabs-in-folder");
85+
ok(!newTab.group, "Owned tab should not be in any group");
86+
87+
gBrowser.selectedTab = selectedTab;
88+
BrowserTestUtils.removeTab(newTab);
89+
await removeFolder(folder);
90+
await SpecialPowers.popPrefEnv();
91+
});

0 commit comments

Comments
 (0)