This commit is contained in:
Jordan Eldredge 2020-01-07 07:30:12 -08:00
parent e2ca45cc76
commit 376781267e
2 changed files with 116 additions and 32 deletions

View file

@ -9,9 +9,11 @@ function log(message) {
console.log(message);
}
const TIMEOUT = 10000;
async function expectSelector(page, selector) {
log(`Waiting for selector ${selector}...`);
await page.waitForSelector(selector, { timeout: 8000 });
await page.waitForSelector(selector, { timeout: TIMEOUT });
log(`Found selector ✅`);
}
@ -23,7 +25,7 @@ async function testPage({ url, name, firstTrackText }) {
await page.goto(url);
await expectSelector(page, webampButtonSelector);
log("Going to click the Webamp button");
await page.click(webampButtonSelector, { timeout: 8000 });
await page.click(webampButtonSelector, { timeout: TIMEOUT });
await expectSelector(page, "#webamp #main-window");
log("Looking for first track...");
const firstTrack = await page.$(".track-cell.current");
@ -43,7 +45,7 @@ async function testPage({ url, name, firstTrackText }) {
}
log("Clicking play...");
await page.click("#webamp #main-window #play", { timeout: 2000 });
await page.click("#webamp #main-window #play", { timeout: TIMEOUT });
await expectSelector(page, "#webamp #main-window.play");
log("✅ Success! Test passed.");
} catch (e) {
@ -56,30 +58,46 @@ async function testPage({ url, name, firstTrackText }) {
}
}
async function testPageWithRetries(options) {
let retries = 5;
while (retries--) {
try {
await testPage(options);
return;
} catch (e) {
console.error(e);
if (retries > 0) {
console.log(`Retrying... ${retries} left.`);
}
}
}
throw new Error("Failed all 5 retries");
}
async function main() {
await testPage({
await testPageWithRetries({
name: "Popular",
url: "https://archive.org/details/gd73-06-10.sbd.hollister.174.sbeok.shnf",
firstTrackText: "Grateful Dead - Morning Dew",
});
await testPage({
await testPageWithRetries({
name: "Regular",
url:
"https://archive.org/details/78_mambo-no.-5_perez-prado-and-his-orchestra-d.-perez-prado_gbia0009774b",
firstTrackText: "Mambo No. 5",
});
await testPage({
await testPageWithRetries({
name: "Samples Only",
url:
"https://archive.org/details/lp_smokey-and-the-bandit-2-original-soundtrac_various-brenda-lee-burt-reynolds-don-willi",
firstTrackText: "Texas Bound And Flyin",
});
await testPage({
await testPageWithRetries({
name: "Stream Only",
url: "https://archive.org/details/cd_a-sweeter-music_sarah-cahill",
firstTrackText: "Be Kind to One Another",
});
await testPage({
await testPageWithRetries({
name: "Another",
url:
"https://archive.org/details/78_house-of-the-rising-sun_josh-white-and-his-guitar_gbia0001628b",

View file

@ -38,7 +38,12 @@ export interface System extends MakiObject {
enumcontainer(num: number): Container;
enumembedguid(num: number): string;
getwac(wac_guid: string): Wac;
messagebox(message: string, msgtitle: string, flag: number, notanymore_id: string): number;
messagebox(
message: string,
msgtitle: string,
flag: number,
notanymore_id: string
): number;
getplayitemstring(): string;
getplayitemlength(): number;
getplayitemmetadatastring(metadataname: string): string;
@ -51,8 +56,17 @@ export interface System extends MakiObject {
getdecodername(playitem: string): string;
playfile(playitem: string): void;
getalbumart(playitem: string): number;
downloadmedia(url: string, destinationPath: string, wantAddToML: boolean, notifyDownloadsList: boolean): void;
downloadurl(url: string, destination_filename: string, progress_dialog_title: string): void;
downloadmedia(
url: string,
destinationPath: string,
wantAddToML: boolean,
notifyDownloadsList: boolean
): void;
downloadurl(
url: string,
destination_filename: string,
progress_dialog_title: string
): void;
ondownloadfinished(url: string, success: boolean, filename: string): void;
getdownloadpath(): string;
setdownloadpath(new_path: string): void;
@ -191,11 +205,23 @@ export interface System extends MakiObject {
getstring(table: string, id: number): string;
getlanguageid(): string;
selectfile(extlist: string, id: string, prev_filename: string): string;
selectfolder(wnd_title: string, wnd_info: string, default_path: string): string;
selectfolder(
wnd_title: string,
wnd_info: string,
default_path: string
): string;
systemmenu(): void;
windowmenu(): void;
triggeraction(context: GuiObject, actionname: string, actionparam: string): void;
showwindow(guidorgroupid: string, preferedcontainer: string, transient: boolean): GuiObject;
triggeraction(
context: GuiObject,
actionname: string,
actionparam: string
): void;
showwindow(
guidorgroupid: string,
preferedcontainer: string,
transient: boolean
): GuiObject;
hidewindow(hw: GuiObject): void;
hidenamedwindow(guidorgroup: string): void;
isnamedwindowvisible(guidorgroup: string): boolean;
@ -254,7 +280,12 @@ export interface Container extends MakiObject {
export interface Wac extends MakiObject {
getguid(): string;
getname(): string;
sendcommand(cmd: string, param1: number, param2: number, param3: string): number;
sendcommand(
cmd: string,
param1: number,
param2: number,
param3: string
): number;
show(): void;
hide(): void;
isvisible(): boolean;
@ -294,7 +325,12 @@ export interface MakiMap extends MakiObject {
export interface PopupMenu extends MakiObject {
addsubmenu(submenu: PopupMenu, submenutext: string): void;
addcommand(cmdtxt: string, cmd_id: number, checked: boolean, disabled: boolean): void;
addcommand(
cmdtxt: string,
cmd_id: number,
checked: boolean,
disabled: boolean
): void;
addseparator(): void;
popatxy(x: number, y: number): number;
popatmouse(): number;
@ -419,8 +455,23 @@ export interface GuiObject extends MakiObject {
onkeyup(vk_code: number): void;
ongetfocus(): void;
onkillfocus(): void;
sendaction(action: string, param: string, x: number, y: number, p1: number, p2: number): number;
onaction(action: string, param: string, x: number, y: number, p1: number, p2: number, source: GuiObject): number;
sendaction(
action: string,
param: string,
x: number,
y: number,
p1: number,
p2: number
): number;
onaction(
action: string,
param: string,
x: number,
y: number,
p1: number,
p2: number,
source: GuiObject
): number;
}
export interface Group extends GuiObject {
@ -462,7 +513,11 @@ export interface Layout extends Group {
}
export interface WindowHolder extends GuiObject {
setregionfrommap(regionmap: MakiMap, threshold: number, reverse: boolean): void;
setregionfrommap(
regionmap: MakiMap,
threshold: number,
reverse: boolean
): void;
setregion(reg: Region): void;
getcontent(): GuiObject;
getguid(): string;
@ -524,7 +579,11 @@ export interface Browser extends GuiObject {
refresh(): void;
home(): void;
settargetname(targetname: string): void;
onbeforenavigate(url: string, flags: number, targetframename: string): boolean;
onbeforenavigate(
url: string,
flags: number,
targetframename: string
): boolean;
ondocumentcomplete(url: string): void;
ondocumentready(url: string): void;
getdocumenttitle(): string;
@ -534,13 +593,9 @@ export interface Browser extends GuiObject {
onmedialink(url: string): string;
}
export interface EqVis extends GuiObject {
export interface EqVis extends GuiObject {}
}
export interface Status extends GuiObject {
}
export interface Status extends GuiObject {}
export interface Text extends GuiObject {
settext(txt: string): void;
@ -550,9 +605,7 @@ export interface Text extends GuiObject {
ontextchanged(newtxt: string): void;
}
export interface Title extends GuiObject {
}
export interface Title extends GuiObject {}
export interface Layer extends GuiObject {
onbeginresize(x: number, y: number, w: number, h: number): void;
@ -564,7 +617,11 @@ export interface Layer extends GuiObject {
fx_ongetpixelx(r: number, d: number, x: number, y: number): number;
fx_ongetpixely(r: number, d: number, x: number, y: number): number;
fx_ongetpixela(r: number, d: number, x: number, y: number): number;
setregionfrommap(regionmap: MakiMap, threshold: number, reverse: boolean): void;
setregionfrommap(
regionmap: MakiMap,
threshold: number,
reverse: boolean
): void;
setregion(reg: Region): void;
fx_setenabled(onoff: boolean): void;
fx_getenabled(): boolean;
@ -668,7 +725,11 @@ export interface QueryList extends GuiObject {
export interface MouseRedir extends GuiObject {
setredirection(o: GuiObject): void;
getredirection(): GuiObject;
setregionfrommap(regionmap: MakiMap, threshold: number, reverse: boolean): void;
setregionfrommap(
regionmap: MakiMap,
threshold: number,
reverse: boolean
): void;
setregion(reg: Region): void;
}
@ -809,7 +870,12 @@ export interface GuiTree extends GuiObject {
ensureitemvisible(item: TreeItem): void;
getcontentswidth(): number;
getcontentsheight(): number;
addtreeitem(item: TreeItem, par: TreeItem, sorted: number, haschildtab: number): TreeItem;
addtreeitem(
item: TreeItem,
par: TreeItem,
sorted: number,
haschildtab: number
): TreeItem;
removetreeitem(item: TreeItem): number;
movetreeitem(item: TreeItem, newparent: TreeItem): void;
deleteallitems(): void;