fix: enable navigator.setAppBadge/clearAppBadge (#27067)
This commit is contained in:
parent
8b74361b0c
commit
c5a41defbd
19 changed files with 481 additions and 41 deletions
|
|
@ -1550,3 +1550,57 @@ describe('navigator.clipboard', () => {
|
|||
expect(clipboard).to.not.equal('Read permission denied.');
|
||||
});
|
||||
});
|
||||
|
||||
ifdescribe((process.platform !== 'linux' || app.isUnityRunning()))('navigator.setAppBadge/clearAppBadge', () => {
|
||||
let w: BrowserWindow;
|
||||
before(async () => {
|
||||
w = new BrowserWindow({
|
||||
show: false
|
||||
});
|
||||
await w.loadFile(path.join(fixturesPath, 'pages', 'blank.html'));
|
||||
});
|
||||
|
||||
const expectedBadgeCount = 42;
|
||||
|
||||
const fireAppBadgeAction: any = (action: string, value: any) => {
|
||||
return w.webContents.executeJavaScript(`
|
||||
navigator.${action}AppBadge(${value}).then(() => 'success').catch(err => err.message)`);
|
||||
};
|
||||
|
||||
// For some reason on macOS changing the badge count doesn't happen right away, so wait
|
||||
// until it changes.
|
||||
async function waitForBadgeCount (value: number) {
|
||||
let badgeCount = app.getBadgeCount();
|
||||
while (badgeCount !== value) {
|
||||
await new Promise(resolve => setTimeout(resolve, 10));
|
||||
badgeCount = app.getBadgeCount();
|
||||
}
|
||||
return badgeCount;
|
||||
}
|
||||
|
||||
after(() => {
|
||||
app.badgeCount = 0;
|
||||
closeAllWindows();
|
||||
});
|
||||
|
||||
it('setAppBadge can set a numerical value', async () => {
|
||||
const result = await fireAppBadgeAction('set', expectedBadgeCount);
|
||||
expect(result).to.equal('success');
|
||||
expect(waitForBadgeCount(expectedBadgeCount)).to.eventually.equal(expectedBadgeCount);
|
||||
});
|
||||
|
||||
it('setAppBadge can set an empty(dot) value', async () => {
|
||||
const result = await fireAppBadgeAction('set');
|
||||
expect(result).to.equal('success');
|
||||
expect(waitForBadgeCount(0)).to.eventually.equal(0);
|
||||
});
|
||||
|
||||
it('clearAppBadge can clear a value', async () => {
|
||||
let result = await fireAppBadgeAction('set', expectedBadgeCount);
|
||||
expect(result).to.equal('success');
|
||||
expect(waitForBadgeCount(expectedBadgeCount)).to.eventually.equal(expectedBadgeCount);
|
||||
result = await fireAppBadgeAction('clear');
|
||||
expect(result).to.equal('success');
|
||||
expect(waitForBadgeCount(0)).to.eventually.equal(0);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue