mirror of
https://github.com/S2-/gitlit
synced 2025-08-04 05:10:05 +02:00
add node modules to repo
This commit is contained in:
162
app/node_modules/electron-in-page-search/test/smoke_browser_window_test.ts
generated
vendored
Normal file
162
app/node_modules/electron-in-page-search/test/smoke_browser_window_test.ts
generated
vendored
Normal file
@@ -0,0 +1,162 @@
|
||||
import searchInPage from '../src/index';
|
||||
import * as A from 'assert';
|
||||
import { remote } from 'electron';
|
||||
import { spy } from 'sinon';
|
||||
|
||||
function waitForReady(w: Electron.WebviewTag) {
|
||||
return new Promise(resolve => {
|
||||
const c = w.getWebContents && w.getWebContents();
|
||||
if (c) {
|
||||
resolve(w);
|
||||
return;
|
||||
}
|
||||
w.addEventListener('dom-ready', resolve);
|
||||
});
|
||||
}
|
||||
|
||||
function pause1000ms() {
|
||||
return new Promise(resolve => {
|
||||
setTimeout(resolve, 1000);
|
||||
});
|
||||
}
|
||||
|
||||
context('For browser window', function() {
|
||||
before(function() {
|
||||
document.body.innerHTML = '<div>foo bar baz foo bar piyo poyo</div>';
|
||||
});
|
||||
|
||||
describe('searchInPage()', function() {
|
||||
it('creates search instance which enables in-page search', function() {
|
||||
const s = searchInPage(remote.getCurrentWebContents());
|
||||
A.ok(s);
|
||||
A.ok(!s.opened);
|
||||
|
||||
A.equal(document.querySelector('webview'), null);
|
||||
|
||||
const opened = spy();
|
||||
s.on('open', opened);
|
||||
|
||||
s.openSearchWindow();
|
||||
A.ok(opened.called);
|
||||
A.ok(s.opened);
|
||||
|
||||
const w = document.querySelector('webview') as Electron.WebviewTag;
|
||||
A.equal(w.className, 'electron-in-page-search-window search-active');
|
||||
|
||||
const started = spy();
|
||||
s.on('start', started);
|
||||
|
||||
const stopped = spy();
|
||||
s.on('stop', stopped);
|
||||
|
||||
const next = spy();
|
||||
return waitForReady(w)
|
||||
.then(pause1000ms)
|
||||
.then(() => {
|
||||
remote.getCurrentWindow().focusOnWebView();
|
||||
w.executeJavaScript(
|
||||
`(function() {
|
||||
document.querySelector('.inpage-search-input').value = 'foo';
|
||||
document.querySelector('.inpage-search-forward').click();
|
||||
})()`,
|
||||
false,
|
||||
);
|
||||
})
|
||||
.then(pause1000ms)
|
||||
.then(() => {
|
||||
A.ok(started.called);
|
||||
A.equal(started.args[0][0], 'foo');
|
||||
|
||||
s.on('next', next);
|
||||
|
||||
w.executeJavaScript(
|
||||
`(function() {
|
||||
document.querySelector('.inpage-search-forward').click();
|
||||
})()`,
|
||||
false,
|
||||
);
|
||||
})
|
||||
.then(pause1000ms)
|
||||
.then(() => {
|
||||
A.ok(next.called);
|
||||
A.equal(next.args[0][0], 'foo');
|
||||
A.ok(next.args[0][1]);
|
||||
w.executeJavaScript(
|
||||
`(function() {
|
||||
document.querySelector('.inpage-search-close').click();
|
||||
})()`,
|
||||
false,
|
||||
);
|
||||
})
|
||||
.then(pause1000ms)
|
||||
.then(() => {
|
||||
A.ok(!s.opened);
|
||||
A.ok(stopped.called);
|
||||
A.equal(w.className, 'electron-in-page-search-window search-inactive');
|
||||
s.finalize();
|
||||
A.equal(document.querySelector('webview'), null);
|
||||
});
|
||||
});
|
||||
|
||||
it('can search words multiple times', function() {
|
||||
const s = searchInPage(remote.getCurrentWebContents());
|
||||
s.openSearchWindow();
|
||||
const w = document.querySelector('webview') as Electron.WebviewTag;
|
||||
const next = spy();
|
||||
const start = spy();
|
||||
s.on('next', next);
|
||||
s.on('start', start);
|
||||
return waitForReady(w)
|
||||
.then(pause1000ms)
|
||||
.then(() => {
|
||||
remote.getCurrentWindow().focusOnWebView();
|
||||
w.executeJavaScript(
|
||||
`(function() {
|
||||
document.querySelector('.inpage-search-input').value = 'foo';
|
||||
const b = document.querySelector('.inpage-search-forward');
|
||||
b.click();
|
||||
b.click();
|
||||
})()`,
|
||||
false,
|
||||
);
|
||||
})
|
||||
.then(pause1000ms)
|
||||
.then(() => {
|
||||
remote.getCurrentWindow().focusOnWebView();
|
||||
w.executeJavaScript(
|
||||
`(function() {
|
||||
document.querySelector('.inpage-search-input').value = 'ba';
|
||||
const b = document.querySelector('.inpage-search-forward');
|
||||
b.click();
|
||||
b.click();
|
||||
})()`,
|
||||
false,
|
||||
);
|
||||
})
|
||||
.then(pause1000ms)
|
||||
.then(() => {
|
||||
A.equal(start.args[0][0], 'foo');
|
||||
A.equal(start.args[1][0], 'ba');
|
||||
A.equal(next.args[0][0], 'foo');
|
||||
A.ok(next.args[0][1]);
|
||||
A.equal(next.args[1][0], 'ba');
|
||||
A.ok(next.args[1][1]);
|
||||
})
|
||||
.then(() => {
|
||||
w.executeJavaScript(
|
||||
`(function() {
|
||||
document.querySelector('.inpage-search-close').click();
|
||||
})()`,
|
||||
false,
|
||||
);
|
||||
})
|
||||
.then(pause1000ms)
|
||||
.then(() => {
|
||||
A.ok(!s.opened);
|
||||
A.equal(w.className, 'electron-in-page-search-window search-inactive');
|
||||
s.finalize();
|
||||
A.equal(document.querySelector('webview'), null);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user