mirror of
https://github.com/DustinBrett/daedalOS.git
synced 2026-01-15 12:15:02 +00:00
Testing dragging from desktop
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -17,6 +17,7 @@ public/Users/Public/**
|
||||
!public/Users/**/desktop.ini
|
||||
!public/Users/Public/Desktop
|
||||
!public/Users/Public/Desktop/My PC.url
|
||||
!public/Users/Public/Desktop/Public.url
|
||||
!public/Users/Public/Documents
|
||||
!public/Users/Public/Music
|
||||
!public/Users/Public/Pictures
|
||||
|
||||
@@ -14,6 +14,7 @@ import {
|
||||
TEST_APP_ICON,
|
||||
TEST_APP_TITLE,
|
||||
TEST_APP_TITLE_TEXT,
|
||||
TEST_DESKTOP_FILE,
|
||||
TEST_ROOT_ARCHIVE,
|
||||
TEST_ROOT_FILE,
|
||||
TEST_ROOT_FILE_2,
|
||||
@@ -44,6 +45,7 @@ import {
|
||||
desktopEntryIsVisible,
|
||||
didCaptureConsoleLogs,
|
||||
disableWallpaper,
|
||||
dragDesktopEntryToFileExplorer,
|
||||
dragFileExplorerEntryToDesktop,
|
||||
fileExplorerAddressBarHasValue,
|
||||
fileExplorerEntriesAreVisible,
|
||||
@@ -292,7 +294,7 @@ test.describe("has files & folders", () => {
|
||||
});
|
||||
});
|
||||
|
||||
test("can drag to desktop", async ({ browserName, headless, page }) => {
|
||||
test("can drop on desktop", async ({ browserName, headless, page }) => {
|
||||
test.skip(
|
||||
headless && DRAG_HEADLESS_NOT_SUPPORTED_BROWSERS.has(browserName),
|
||||
"no headless drag support"
|
||||
@@ -301,6 +303,7 @@ test.describe("has files & folders", () => {
|
||||
await desktopEntryIsHidden(TEST_ROOT_FILE, { page });
|
||||
await fileExplorerEntryIsVisible(TEST_ROOT_FILE, { page });
|
||||
await dragFileExplorerEntryToDesktop(TEST_ROOT_FILE, { page });
|
||||
await fileExplorerEntryIsHidden(TEST_ROOT_FILE, { page });
|
||||
await desktopEntryIsVisible(TEST_ROOT_FILE, { page });
|
||||
});
|
||||
|
||||
@@ -325,7 +328,18 @@ test.describe("has files & folders", () => {
|
||||
await expect(page.locator(".focus-within")).toHaveCount(2);
|
||||
});
|
||||
|
||||
// TEST: can drop (from Desktop)
|
||||
test("can drop from desktop", async ({ browserName, headless, page }) => {
|
||||
test.skip(
|
||||
headless && DRAG_HEADLESS_NOT_SUPPORTED_BROWSERS.has(browserName),
|
||||
"no headless drag support"
|
||||
);
|
||||
|
||||
await fileExplorerEntryIsHidden(TEST_DESKTOP_FILE, { page });
|
||||
await desktopEntryIsVisible(TEST_DESKTOP_FILE, { page });
|
||||
await dragDesktopEntryToFileExplorer(TEST_DESKTOP_FILE, { page });
|
||||
await desktopEntryIsHidden(TEST_DESKTOP_FILE, { page });
|
||||
await fileExplorerEntryIsVisible(TEST_DESKTOP_FILE, { page });
|
||||
});
|
||||
});
|
||||
|
||||
test("can change page title", async ({ page }) => {
|
||||
|
||||
@@ -12,27 +12,26 @@ test.describe("has correct tags", () => {
|
||||
|
||||
await expect(preloadElements).toHaveCount(desktopIcons.length);
|
||||
|
||||
const preloadHrefs = await Promise.all(
|
||||
(await preloadElements.elementHandles()).map(
|
||||
async (preloadElement) =>
|
||||
basename(
|
||||
(await preloadElement.getAttribute("href")) ||
|
||||
(await preloadElement.getAttribute("imagesrcset")) ||
|
||||
""
|
||||
).split(" ")[0]
|
||||
)
|
||||
);
|
||||
const fileNames = desktopIcons.map((filePath) => basename(filePath));
|
||||
|
||||
preloadHrefs.forEach((preloadHref) =>
|
||||
expect(fileNames).toContain(preloadHref)
|
||||
);
|
||||
(
|
||||
await Promise.all(
|
||||
(await preloadElements.elementHandles()).map(
|
||||
async (preloadElement) =>
|
||||
basename(
|
||||
(await preloadElement.getAttribute("href")) ||
|
||||
(await preloadElement.getAttribute("imagesrcset")) ||
|
||||
""
|
||||
).split(" ")[0]
|
||||
)
|
||||
)
|
||||
).forEach((preloadHref) => expect(fileNames).toContain(preloadHref));
|
||||
});
|
||||
|
||||
test("has open graphs", async ({ page }) => {
|
||||
const openGraphElements = page.locator("meta[property^='og:']");
|
||||
|
||||
await expect(openGraphElements).toHaveCount(OG_TAGS.length);
|
||||
await expect(page.locator("meta[property^='og:']")).toHaveCount(
|
||||
OG_TAGS.length
|
||||
);
|
||||
|
||||
OG_TAGS.forEach((tag) =>
|
||||
expect(() =>
|
||||
|
||||
@@ -220,6 +220,7 @@ export const TEST_APP_TITLE = /^My PC$/;
|
||||
export const TEST_APP_TITLE_TEXT = "My PC";
|
||||
export const TEST_APP_ICON = /\/pc\.(webp|png)$/;
|
||||
|
||||
export const TEST_DESKTOP_FILE = /^Public$/;
|
||||
export const TEST_ROOT_ARCHIVE = /^archive.zip$/;
|
||||
export const TEST_ROOT_FILE = /^CREDITS.md$/;
|
||||
export const TEST_ROOT_FILE_2 = /^favicon.ico$/;
|
||||
|
||||
@@ -213,6 +213,24 @@ export const dragFileExplorerEntryToDesktop = async (
|
||||
targetPosition: { x: 1, y: 1 },
|
||||
});
|
||||
|
||||
export const dragDesktopEntryToFileExplorer = async (
|
||||
label: RegExp | string,
|
||||
{ page }: TestProps
|
||||
): Promise<void> => {
|
||||
const { height = 0, width = 0 } =
|
||||
(await page.locator(FILE_EXPLORER_SELECTOR).boundingBox()) || {};
|
||||
|
||||
page
|
||||
.locator(DESKTOP_ENTRIES_SELECTOR)
|
||||
.getByLabel(label)
|
||||
.dragTo(page.locator(FILE_EXPLORER_SELECTOR), {
|
||||
targetPosition: {
|
||||
x: width - 5,
|
||||
y: height - 5,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
export const dragWindowToDesktop = async ({
|
||||
page,
|
||||
}: TestProps): Promise<void> => {
|
||||
|
||||
5
public/Users/Public/Desktop/Public.url
Normal file
5
public/Users/Public/Desktop/Public.url
Normal file
@@ -0,0 +1,5 @@
|
||||
[InternetShortcut]
|
||||
BaseURL=FileExplorer
|
||||
IconFile=/System/Icons/user.webp
|
||||
Type=System
|
||||
URL=/Users/Public
|
||||
Reference in New Issue
Block a user