@@ -1578,12 +1578,6 @@ describe('navigator.clipboard', () => {
15781578
15791579ifdescribe ( ( process . platform !== 'linux' || app . isUnityRunning ( ) ) ) ( 'navigator.setAppBadge/clearAppBadge' , ( ) => {
15801580 let w : BrowserWindow ;
1581- before ( async ( ) => {
1582- w = new BrowserWindow ( {
1583- show : false
1584- } ) ;
1585- await w . loadFile ( path . join ( fixturesPath , 'pages' , 'blank.html' ) ) ;
1586- } ) ;
15871581
15881582 const expectedBadgeCount = 42 ;
15891583
@@ -1603,30 +1597,96 @@ ifdescribe((process.platform !== 'linux' || app.isUnityRunning()))('navigator.se
16031597 return badgeCount ;
16041598 }
16051599
1606- after ( ( ) => {
1607- app . badgeCount = 0 ;
1608- closeAllWindows ( ) ;
1609- } ) ;
1600+ describe ( 'in the renderer' , ( ) => {
1601+ before ( async ( ) => {
1602+ w = new BrowserWindow ( {
1603+ show : false
1604+ } ) ;
1605+ await w . loadFile ( path . join ( fixturesPath , 'pages' , 'blank.html' ) ) ;
1606+ } ) ;
16101607
1611- it ( 'setAppBadge can set a numerical value' , async ( ) => {
1612- const result = await fireAppBadgeAction ( 'set' , expectedBadgeCount ) ;
1613- expect ( result ) . to . equal ( 'success' ) ;
1614- expect ( waitForBadgeCount ( expectedBadgeCount ) ) . to . eventually . equal ( expectedBadgeCount ) ;
1615- } ) ;
1608+ after ( ( ) => {
1609+ app . badgeCount = 0 ;
1610+ closeAllWindows ( ) ;
1611+ } ) ;
16161612
1617- it ( 'setAppBadge can set an empty(dot) value' , async ( ) => {
1618- const result = await fireAppBadgeAction ( 'set' ) ;
1619- expect ( result ) . to . equal ( 'success' ) ;
1620- expect ( waitForBadgeCount ( 0 ) ) . to . eventually . equal ( 0 ) ;
1613+ it ( 'setAppBadge can set a numerical value' , async ( ) => {
1614+ const result = await fireAppBadgeAction ( 'set' , expectedBadgeCount ) ;
1615+ expect ( result ) . to . equal ( 'success' ) ;
1616+ expect ( waitForBadgeCount ( expectedBadgeCount ) ) . to . eventually . equal ( expectedBadgeCount ) ;
1617+ } ) ;
1618+
1619+ it ( 'setAppBadge can set an empty(dot) value' , async ( ) => {
1620+ const result = await fireAppBadgeAction ( 'set' ) ;
1621+ expect ( result ) . to . equal ( 'success' ) ;
1622+ expect ( waitForBadgeCount ( 0 ) ) . to . eventually . equal ( 0 ) ;
1623+ } ) ;
1624+
1625+ it ( 'clearAppBadge can clear a value' , async ( ) => {
1626+ let result = await fireAppBadgeAction ( 'set' , expectedBadgeCount ) ;
1627+ expect ( result ) . to . equal ( 'success' ) ;
1628+ expect ( waitForBadgeCount ( expectedBadgeCount ) ) . to . eventually . equal ( expectedBadgeCount ) ;
1629+ result = await fireAppBadgeAction ( 'clear' ) ;
1630+ expect ( result ) . to . equal ( 'success' ) ;
1631+ expect ( waitForBadgeCount ( 0 ) ) . to . eventually . equal ( 0 ) ;
1632+ } ) ;
16211633 } ) ;
16221634
1623- it ( 'clearAppBadge can clear a value' , async ( ) => {
1624- let result = await fireAppBadgeAction ( 'set' , expectedBadgeCount ) ;
1625- expect ( result ) . to . equal ( 'success' ) ;
1626- expect ( waitForBadgeCount ( expectedBadgeCount ) ) . to . eventually . equal ( expectedBadgeCount ) ;
1627- result = await fireAppBadgeAction ( 'clear' ) ;
1628- expect ( result ) . to . equal ( 'success' ) ;
1629- expect ( waitForBadgeCount ( 0 ) ) . to . eventually . equal ( 0 ) ;
1635+ describe ( 'in a service worker' , ( ) => {
1636+ beforeEach ( async ( ) => {
1637+ w = new BrowserWindow ( {
1638+ show : false ,
1639+ webPreferences : {
1640+ nodeIntegration : true ,
1641+ partition : 'sw-file-scheme-spec' ,
1642+ contextIsolation : false
1643+ }
1644+ } ) ;
1645+ } ) ;
1646+
1647+ afterEach ( ( ) => {
1648+ app . badgeCount = 0 ;
1649+ closeAllWindows ( ) ;
1650+ } ) ;
1651+
1652+ it ( 'setAppBadge can be called in a ServiceWorker' , ( done ) => {
1653+ w . webContents . on ( 'ipc-message' , ( event , channel , message ) => {
1654+ if ( channel === 'reload' ) {
1655+ w . webContents . reload ( ) ;
1656+ } else if ( channel === 'error' ) {
1657+ done ( message ) ;
1658+ } else if ( channel === 'response' ) {
1659+ expect ( message ) . to . equal ( 'SUCCESS setting app badge' ) ;
1660+ expect ( waitForBadgeCount ( expectedBadgeCount ) ) . to . eventually . equal ( expectedBadgeCount ) ;
1661+ session . fromPartition ( 'sw-file-scheme-spec' ) . clearStorageData ( {
1662+ storages : [ 'serviceworkers' ]
1663+ } ) . then ( ( ) => done ( ) ) ;
1664+ }
1665+ } ) ;
1666+ w . webContents . on ( 'crashed' , ( ) => done ( new Error ( 'WebContents crashed.' ) ) ) ;
1667+ w . loadFile ( path . join ( fixturesPath , 'pages' , 'service-worker' , 'badge-index.html' ) , { search : '?setBadge' } ) ;
1668+ } ) ;
1669+
1670+ it ( 'clearAppBadge can be called in a ServiceWorker' , ( done ) => {
1671+ w . webContents . on ( 'ipc-message' , ( event , channel , message ) => {
1672+ if ( channel === 'reload' ) {
1673+ w . webContents . reload ( ) ;
1674+ } else if ( channel === 'setAppBadge' ) {
1675+ expect ( message ) . to . equal ( 'SUCCESS setting app badge' ) ;
1676+ expect ( waitForBadgeCount ( expectedBadgeCount ) ) . to . eventually . equal ( expectedBadgeCount ) ;
1677+ } else if ( channel === 'error' ) {
1678+ done ( message ) ;
1679+ } else if ( channel === 'response' ) {
1680+ expect ( message ) . to . equal ( 'SUCCESS clearing app badge' ) ;
1681+ expect ( waitForBadgeCount ( expectedBadgeCount ) ) . to . eventually . equal ( expectedBadgeCount ) ;
1682+ session . fromPartition ( 'sw-file-scheme-spec' ) . clearStorageData ( {
1683+ storages : [ 'serviceworkers' ]
1684+ } ) . then ( ( ) => done ( ) ) ;
1685+ }
1686+ } ) ;
1687+ w . webContents . on ( 'crashed' , ( ) => done ( new Error ( 'WebContents crashed.' ) ) ) ;
1688+ w . loadFile ( path . join ( fixturesPath , 'pages' , 'service-worker' , 'badge-index.html' ) , { search : '?clearBadge' } ) ;
1689+ } ) ;
16301690 } ) ;
16311691} ) ;
16321692
0 commit comments