Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
(async () => {
var downloadPath = path.resolve(__dirname, 'data', 'downloaded');
var sleep = ms => {
return new Promise(resolve => {
setTimeout(resolve, ms);
});
};
try {
await openBrowserAndStartScreencast(
path.join('captures', 'file-download', 'file-download.gif'),
);
await client().send('Page.setDownloadBehavior', {
behavior: 'allow',
downloadPath: downloadPath,
});
await goto('http://localhost:3000/download');
// ensure that file_upload.js is run before this, to allow the file to be available for download
await click('foo.txt');
sleep(1000);
expect(path.join(downloadPath, 'foo.txt')).to.exist;
} catch (e) {
console.error(e);
process.exitCode = 1;
} finally {
await closeBrowserAndStopScreencast();
fs.unlinkSync(path.join(downloadPath, 'foo.txt'));
}
})();
(async () => {
try {
// example 1
await openBrowserAndStartScreencast(
path.join('captures', 'dynamic-pages', 'dynamic-pages.gif'),
);
await goto('http://localhost:3000/dynamic_loading');
await click('Example 1:');
await click('Start');
// no waits, taiko implicitly listens and waits for the right state.
expect(await text('Hello World').exists()).to.be.true;
// example 2
await goto('http://localhost:3000/dynamic_loading');
await click('Example 2:');
await click('Start');
expect(await text('Hello World').exists()).to.be.true;
} catch (e) {
console.error(e);
process.exitCode = 1;
} finally {
await closeBrowserAndStopScreencast();
}
})();
(async () => {
try {
await openBrowserAndStartScreencast(
path.join('captures', 'frames', 'frames.gif'),
);
await goto('http://localhost:3000/nested_frames');
expect(
await text('MIDDLE').exists(),
'expected "MIDDLE" to exist on page',
).to.be.true;
// taiko does not need to be told about frames, it automagically figures it out.
//TODO: tinyMCE example
} catch (e) {
console.error(e);
process.exitCode = 1;
} finally {
await closeBrowserAndStopScreencast();
}
})();
(async () => {
try {
await openBrowserAndStartScreencast(
path.join('captures', 'contenteditable', 'contenteditable.gif'),
);
// a local file with simple `contenteditable`
await goto('file:///' + cwd + '/data/contenteditable.html');
var text = 'Taiko writes into a contenteditable field!';
await write(text, into(textBox(below('Editable Demo'))));
var content = await textBox(below('Editable Demo')).text();
expect(content).to.have.string(text);
// a rich text editor
await goto('http://localhost:3000/tinymce');
text = 'Taiko writes into a tinyMCE editor';
await write(text, into(textBox(below('An iFrame'))));
content = await into(textBox(below('An iFrame'))).text();
expect(content).to.have.string(text);
} catch (e) {
console.error(e);
process.exitCode = 1;
} finally {
await closeBrowserAndStopScreencast();
}
})();
(async () => {
try {
await openBrowserAndStartScreencast(
path.join('captures', 'contenteditable', 'contenteditable.gif'),
);
// a local file with simple `contenteditable`
await goto('file:///' + cwd + '/data/contenteditable.html');
var text = 'Taiko writes into a contenteditable field!';
await write(text, into(textBox(below('Editable Demo'))));
var content = await textBox(below('Editable Demo')).text();
expect(content).to.have.string(text);
// a rich text editor
await goto('http://localhost:3000/tinymce');
text = 'Taiko writes into a tinyMCE editor';
await write(text, into(textBox(below('An iFrame'))));
content = await into(textBox(below('An iFrame'))).text();
expect(content).to.have.string(text);
} catch (e) {
console.error(e);
process.exitCode = 1;
} finally {
await closeBrowserAndStopScreencast();
return new Promise(resolve => {
setTimeout(resolve, ms);
});
};
try {
await openBrowserAndStartScreencast(
path.join('captures', 'file-download', 'file-download.gif'),
);
await client().send('Page.setDownloadBehavior', {
behavior: 'allow',
downloadPath: downloadPath,
});
await goto('http://localhost:3000/download');
// ensure that file_upload.js is run before this, to allow the file to be available for download
await click('foo.txt');
sleep(1000);
expect(path.join(downloadPath, 'foo.txt')).to.exist;
} catch (e) {
console.error(e);
process.exitCode = 1;
} finally {
await closeBrowserAndStopScreencast();
fs.unlinkSync(path.join(downloadPath, 'foo.txt'));
}
})();
(async () => {
try {
// example 1
await openBrowserAndStartScreencast(
path.join('captures', 'dynamic-pages', 'dynamic-pages.gif'),
);
await goto('http://localhost:3000/dynamic_loading');
await click('Example 1:');
await click('Start');
// no waits, taiko implicitly listens and waits for the right state.
expect(await text('Hello World').exists()).to.be.true;
// example 2
await goto('http://localhost:3000/dynamic_loading');
await click('Example 2:');
await click('Start');
expect(await text('Hello World').exists()).to.be.true;
} catch (e) {
console.error(e);
process.exitCode = 1;
} finally {
await closeBrowserAndStopScreencast();
}
})();
(async () => {
try {
// example 1
await openBrowserAndStartScreencast(
path.join('captures', 'dynamic-pages', 'dynamic-pages.gif'),
);
await goto('http://localhost:3000/dynamic_loading');
await click('Example 1:');
await click('Start');
// no waits, taiko implicitly listens and waits for the right state.
expect(await text('Hello World').exists()).to.be.true;
// example 2
await goto('http://localhost:3000/dynamic_loading');
await click('Example 2:');
await click('Start');
expect(await text('Hello World').exists()).to.be.true;
} catch (e) {
console.error(e);
process.exitCode = 1;
} finally {
await closeBrowserAndStopScreencast();
}
})();
(async () => {
try {
// example 1
await openBrowserAndStartScreencast(
path.join('captures', 'dynamic-pages', 'dynamic-pages.gif'),
);
await goto('http://localhost:3000/dynamic_loading');
await click('Example 1:');
await click('Start');
// no waits, taiko implicitly listens and waits for the right state.
expect(await text('Hello World').exists()).to.be.true;
// example 2
await goto('http://localhost:3000/dynamic_loading');
await click('Example 2:');
await click('Start');
expect(await text('Hello World').exists()).to.be.true;
} catch (e) {
console.error(e);
process.exitCode = 1;
} finally {
await closeBrowserAndStopScreencast();
}
})();
(async () => {
try {
await openBrowserAndStartScreencast(
path.join('captures', 'frames', 'frames.gif'),
);
await goto('http://localhost:3000/nested_frames');
expect(
await text('MIDDLE').exists(),
'expected "MIDDLE" to exist on page',
).to.be.true;
// taiko does not need to be told about frames, it automagically figures it out.
//TODO: tinyMCE example
} catch (e) {
console.error(e);
process.exitCode = 1;
} finally {
await closeBrowserAndStopScreencast();
}
})();