@@ -4,7 +4,7 @@ import chaiAsPromised from 'chai-as-promised';
44import chaiFs from 'chai-fs' ;
55import { given } from 'mocha-testdata' ;
66import path from 'path' ;
7- import { BrowserWindow } from 'electron' ;
7+ import { BrowserWindow , session } from 'electron' ;
88
99// Actual Test Imports
1010import installExtension , { REACT_DEVELOPER_TOOLS } from '../src/' ;
@@ -31,20 +31,51 @@ describe('Extension Installer', () => {
3131 it ( 'should upgraded the extension with forceDownload' , ( done ) => {
3232 const extensionName = 'React Developer Tools' ;
3333 const oldVersion = '0.14.0' ;
34- BrowserWindow . removeDevToolsExtension ( extensionName ) ;
35- BrowserWindow . addDevToolsExtension (
36- path . join ( __dirname , 'fixtures/simple_extension' ) ,
37- ) . should . be . equal ( extensionName ) ;
38- BrowserWindow . getDevToolsExtensions ( ) [ extensionName ] . version . should . be . equal ( oldVersion ) ;
3934
40- installExtension ( REACT_DEVELOPER_TOOLS , true )
41- . then ( ( ) => {
42- BrowserWindow . getDevToolsExtensions ( ) [ extensionName ] . version . should . not . be . equal (
43- oldVersion ,
44- ) ;
45- done ( ) ;
46- } )
47- . catch ( ( err ) => done ( err ) ) ;
35+ // For Electron >=9.
36+ if ( session . defaultSession . removeExtension ) {
37+ session . defaultSession . removeExtension ( extensionName ) ;
38+ } else {
39+ BrowserWindow . removeDevToolsExtension ( extensionName ) ;
40+ }
41+
42+ // For Electron >=9.
43+ if ( session . defaultSession . loadExtension ) {
44+ session . defaultSession
45+ . loadExtension ( path . join ( __dirname , 'fixtures/simple_extension' ) )
46+ . then ( ( ext ) => {
47+ ext . name . should . be . equal ( extensionName ) ;
48+ session . defaultSession
49+ . getAllExtensions ( )
50+ . find ( ( e ) => e . name === extensionName )
51+ . version . should . be . equal ( oldVersion ) ;
52+
53+ installExtension ( REACT_DEVELOPER_TOOLS , true )
54+ . then ( ( ) => {
55+ session . defaultSession
56+ . getAllExtensions ( )
57+ . find ( ( e ) => e . name === extensionName )
58+ . version . should . not . be . equal ( oldVersion ) ;
59+ done ( ) ;
60+ } )
61+ . catch ( ( err ) => done ( err ) ) ;
62+ } )
63+ . catch ( ( err ) => done ( err ) ) ;
64+ } else {
65+ BrowserWindow . addDevToolsExtension (
66+ path . join ( __dirname , 'fixtures/simple_extension' ) ,
67+ ) . should . be . equal ( extensionName ) ;
68+ BrowserWindow . getDevToolsExtensions ( ) [ extensionName ] . version . should . be . equal ( oldVersion ) ;
69+
70+ installExtension ( REACT_DEVELOPER_TOOLS , true )
71+ . then ( ( ) => {
72+ BrowserWindow . getDevToolsExtensions ( ) [ extensionName ] . version . should . not . be . equal (
73+ oldVersion ,
74+ ) ;
75+ done ( ) ;
76+ } )
77+ . catch ( ( err ) => done ( err ) ) ;
78+ }
4879 } ) ;
4980 } ) ;
5081 } ) ;
@@ -53,10 +84,20 @@ describe('Extension Installer', () => {
5384 it ( 'should resolve the promise and install all of them' , ( done ) => {
5485 installExtension ( knownExtensions )
5586 . then ( ( ) => {
56- const installed = BrowserWindow . getDevToolsExtensions ( ) ;
57- for ( const extension of knownExtensions ) {
58- installed . should . have . property ( extension . description ) ;
59- BrowserWindow . removeDevToolsExtension ( extension . description ) ;
87+ // For Electron >=9.
88+ if ( session . defaultSession . getAllExtensions ) {
89+ const installed = session . defaultSession . getAllExtensions ( ) ;
90+ for ( const extension of knownExtensions ) {
91+ installed . map ( ( e ) => e . name ) . should . include ( extension . description ) ;
92+ const extensionId = installed . find ( ( e ) => e . name === extension . description ) . id ;
93+ session . defaultSession . removeExtension ( extensionId ) ;
94+ }
95+ } else {
96+ const installed = BrowserWindow . getDevToolsExtensions ( ) ;
97+ for ( const extension of knownExtensions ) {
98+ installed . should . have . property ( extension . description ) ;
99+ BrowserWindow . removeDevToolsExtension ( extension . description ) ;
100+ }
60101 }
61102 done ( ) ;
62103 } )
@@ -69,8 +110,15 @@ describe('Extension Installer', () => {
69110 } ) ;
70111
71112 afterEach ( ( done ) => {
72- const exts = BrowserWindow . getDevToolsExtensions ( ) ;
73- Object . keys ( exts ) . forEach ( ( ext ) => BrowserWindow . removeDevToolsExtension ( ext ) ) ;
113+ // For Electron >=9.
114+ if ( session . defaultSession . getAllExtensions ) {
115+ session . defaultSession
116+ . getAllExtensions ( )
117+ . forEach ( ( ext ) => session . defaultSession . removeExtension ( ext . id ) ) ;
118+ } else {
119+ const exts = BrowserWindow . getDevToolsExtensions ( ) ;
120+ Object . keys ( exts ) . forEach ( ( ext ) => BrowserWindow . removeDevToolsExtension ( ext ) ) ;
121+ }
74122 setTimeout ( done , 200 ) ;
75123 } ) ;
76124} ) ;
0 commit comments