mirror of
https://github.com/zen-browser/desktop.git
synced 2026-02-02 18:14:38 +00:00
test: Added tests for folder density and max subfolders, b=no-bug, c=folders, tests
This commit is contained in:
@@ -145,7 +145,7 @@
|
||||
|
||||
createSubfolder() {
|
||||
gZenFolders.createFolder([], {
|
||||
renameFolder: true,
|
||||
renameFolder: !gZenUIManager.testingEnabled,
|
||||
label: 'Subfolder',
|
||||
insertAfter: this.querySelector('.tab-group-container').lastElementChild,
|
||||
});
|
||||
|
||||
@@ -81,6 +81,13 @@
|
||||
return;
|
||||
}
|
||||
this.#lastFolderContextMenu = folder;
|
||||
|
||||
const newSubfolderItem = document.getElementById('context_zenFolderNewSubfolder');
|
||||
newSubfolderItem.setAttribute(
|
||||
'disabled',
|
||||
folder.level >= ZEN_MAX_SUBFOLDERS - 1 ? 'true' : 'false'
|
||||
);
|
||||
|
||||
const changeFolderSpace = document
|
||||
.getElementById('context_zenChangeFolderSpace')
|
||||
.querySelector('menupopup');
|
||||
|
||||
@@ -11,5 +11,7 @@ support-files = [
|
||||
["browser_folder_subfolder.js"]
|
||||
["browser_folder_basic_toggle.js"]
|
||||
["browser_folder_owner_tabs.js"]
|
||||
["browser_folder_density.js"]
|
||||
["browser_folder_max_subfolders.js"]
|
||||
|
||||
["browser_folder_issue_9885.js"]
|
||||
|
||||
26
src/zen/tests/folders/browser_folder_density.js
Normal file
26
src/zen/tests/folders/browser_folder_density.js
Normal file
@@ -0,0 +1,26 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
https://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
'use strict';
|
||||
|
||||
add_task(async function test_Folder_Density() {
|
||||
const tab = gBrowser.selectedTab;
|
||||
const folder = await gZenFolders.createFolder([], {
|
||||
renameFolder: false,
|
||||
});
|
||||
|
||||
let tabRect = tab.getBoundingClientRect();
|
||||
let folderRect = folder.labelElement.parentElement.getBoundingClientRect();
|
||||
Assert.equal(tabRect.height, folderRect.height, 'Folder height matches tab height');
|
||||
Assert.equal(tabRect.width, folderRect.width, 'Folder width matches tab width');
|
||||
|
||||
gUIDensity.update(gUIDensity.MODE_TOUCH);
|
||||
|
||||
tabRect = tab.getBoundingClientRect();
|
||||
folderRect = folder.getBoundingClientRect();
|
||||
Assert.equal(tabRect.height, folderRect.height, 'Folder height matches tab height');
|
||||
Assert.equal(tabRect.width, folderRect.width, 'Folder width matches tab width');
|
||||
|
||||
gUIDensity.update();
|
||||
await removeFolder(folder);
|
||||
});
|
||||
39
src/zen/tests/folders/browser_folder_max_subfolders.js
Normal file
39
src/zen/tests/folders/browser_folder_max_subfolders.js
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
https://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
'use strict';
|
||||
|
||||
// Keep in sync with the default value for `zen.folders.max-subfolders`
|
||||
const TEST_MAX_FOLDERS = 5;
|
||||
|
||||
add_task(async function test_Max_Subfolders() {
|
||||
const folder = await gZenFolders.createFolder([], {
|
||||
renameFolder: false,
|
||||
});
|
||||
|
||||
const subfolderItem = document.getElementById('context_zenFolderNewSubfolder');
|
||||
debugger;
|
||||
let currentFolder = folder;
|
||||
for (let i = 1; i < TEST_MAX_FOLDERS; i++) {
|
||||
await openFolderContextMenu(currentFolder);
|
||||
ok(subfolderItem.getAttribute('disabled') !== 'true', `Subfolder item should be enabled`);
|
||||
const folderCreateEvent = BrowserTestUtils.waitForEvent(window, 'TabGroupCreate');
|
||||
EventUtils.synthesizeMouseAtCenter(subfolderItem, {});
|
||||
await folderCreateEvent;
|
||||
const items = currentFolder.allItems;
|
||||
Assert.equal(items.length, 2, `Folder should have 2 items`);
|
||||
ok(gBrowser.isTabGroup(items[1]), `Item should be a tab group`);
|
||||
currentFolder = items[1];
|
||||
}
|
||||
|
||||
await openFolderContextMenu(currentFolder);
|
||||
Assert.equal(
|
||||
subfolderItem.getAttribute('disabled'),
|
||||
'true',
|
||||
`Subfolder item should be disabled after reaching max subfolders`
|
||||
);
|
||||
|
||||
document.getElementById('zenFolderActions').hidePopup();
|
||||
|
||||
await removeFolder(folder);
|
||||
});
|
||||
@@ -9,3 +9,12 @@ async function removeFolder(folder) {
|
||||
folder.delete();
|
||||
await removeEvent;
|
||||
}
|
||||
|
||||
async function openFolderContextMenu(folder) {
|
||||
const popup = document.getElementById('zenFolderActions');
|
||||
let menuEvent = BrowserTestUtils.waitForEvent(popup, 'popupshown');
|
||||
EventUtils.synthesizeMouseAtCenter(folder.labelElement, {
|
||||
type: 'contextmenu',
|
||||
});
|
||||
await menuEvent;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user