filebrowser/frontend/tests/acceptance/pageObject/HomePage.js

48 lines
2.0 KiB
JavaScript

import { format } from "util";
import { filesToDelete, swapFileOnRename } from "../../helper/file_helper.js";
export class HomePage {
constructor() {
this.dialogInputSelector = '//input[@class="input input--block"]';
this.lastNavaigatedFolderSelector =
'//div[@class="breadcrumbs"]/span[last()]/a';
this.contentEditorSelector = '//textarea[@class="ace_text-input"]';
this.editorContent = '//div[@class="ace_line"]';
this.buttonSelector = `//button[@title="%s"]`;
this.fileSelector = `//div[@aria-label="%s"]`;
this.cardActionSelector = '//div[@class="card-action"]/button[@title="%s"]';
}
async createNewFolder(folderName) {
await global.page.click(format(this.buttonSelector, "New folder"));
await global.page.fill(this.dialogInputSelector, folderName);
await global.page.click(format(this.cardActionSelector, "Create"));
}
async createFileWithContent(filename, content) {
await global.page.click(format(this.buttonSelector, "New file"));
await global.page.fill(this.dialogInputSelector, filename);
await global.page.click(format(this.cardActionSelector, "Create"));
await global.page.fill(this.contentEditorSelector, content);
await global.page.click(format(this.buttonSelector, "Save"));
await global.page.click(format(this.buttonSelector, "Close"));
//saving the file info into global array to delete later
filesToDelete.push(filename);
}
async renameFile(oldfileName, newfileName) {
await global.page.click(format(this.fileSelector, oldfileName));
await global.page.click(format(this.buttonSelector, "Rename"));
await global.page.fill(this.dialogInputSelector, newfileName);
await global.page.click(format(this.cardActionSelector, "Rename"));
await swapFileOnRename(oldfileName, newfileName);
}
async deleteFile(filename) {
await global.page.click(format(this.fileSelector, filename));
await global.page.click(format(this.buttonSelector, "Delete"));
await global.page.click(format(this.cardActionSelector, "Delete"));
}
}