5
5
import * as assert from 'assert' ;
6
6
import * as sinon from 'sinon' ;
7
7
import { IExtensionManagementService , DidUninstallExtensionEvent , ILocalExtension , InstallExtensionEvent , InstallExtensionResult , UninstallExtensionEvent } from 'vs/platform/extensionManagement/common/extensionManagement' ;
8
- import { IWorkbenchExtensionEnablementService , EnablementState , IExtensionManagementServerService , IExtensionManagementServer , IWorkbenchExtensionManagementService , ExtensionInstallLocation , IProfileAwareExtensionManagementService } from 'vs/workbench/services/extensionManagement/common/extensionManagement' ;
8
+ import { IWorkbenchExtensionEnablementService , EnablementState , IExtensionManagementServerService , IExtensionManagementServer , IWorkbenchExtensionManagementService , ExtensionInstallLocation , IProfileAwareExtensionManagementService , DidChangeProfileExtensionsEvent } from 'vs/workbench/services/extensionManagement/common/extensionManagement' ;
9
9
import { ExtensionEnablementService } from 'vs/workbench/services/extensionManagement/browser/extensionEnablementService' ;
10
10
import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock' ;
11
- import { Emitter , Event } from 'vs/base/common/event' ;
11
+ import { Emitter } from 'vs/base/common/event' ;
12
12
import { IWorkspace , IWorkspaceContextService , WorkbenchState } from 'vs/platform/workspace/common/workspace' ;
13
13
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService' ;
14
14
import { IStorageService , InMemoryStorageService } from 'vs/platform/storage/common/storage' ;
@@ -116,6 +116,7 @@ suite('ExtensionEnablementService Test', () => {
116
116
117
117
const didInstallEvent = new Emitter < readonly InstallExtensionResult [ ] > ( ) ;
118
118
const didUninstallEvent = new Emitter < DidUninstallExtensionEvent > ( ) ;
119
+ const didChangeProfileExtensionsEvent = new Emitter < DidChangeProfileExtensionsEvent > ( ) ;
119
120
const installed : ILocalExtension [ ] = [ ] ;
120
121
121
122
setup ( ( ) => {
@@ -128,7 +129,7 @@ suite('ExtensionEnablementService Test', () => {
128
129
extensionManagementService : < IProfileAwareExtensionManagementService > {
129
130
onDidInstallExtensions : didInstallEvent . event ,
130
131
onDidUninstallExtension : didUninstallEvent . event ,
131
- onDidChangeProfileExtensions : Event . None ,
132
+ onDidChangeProfileExtensions : didChangeProfileExtensionsEvent . event ,
132
133
getInstalled : ( ) => Promise . resolve ( installed )
133
134
} ,
134
135
} , null , null ) ) ;
@@ -950,6 +951,22 @@ suite('ExtensionEnablementService Test', () => {
950
951
assert . deepStrictEqual ( ( < IExtension > target . args [ 0 ] [ 0 ] [ 1 ] ) . identifier , { id : 'pub.c' } ) ;
951
952
} ) ;
952
953
954
+ test ( 'test adding an extension that was disabled' , async ( ) => {
955
+ const extension = aLocalExtension ( 'pub.a' ) ;
956
+ installed . push ( extension ) ;
957
+ testObject = new TestExtensionEnablementService ( instantiationService ) ;
958
+ await testObject . setEnablement ( [ extension ] , EnablementState . DisabledGlobally ) ;
959
+
960
+ const target = sinon . spy ( ) ;
961
+ testObject . onEnablementChanged ( target ) ;
962
+ didChangeProfileExtensionsEvent . fire ( { added : [ extension ] , removed : [ ] } ) ;
963
+
964
+ assert . ok ( ! testObject . isEnabled ( extension ) ) ;
965
+ assert . strictEqual ( testObject . getEnablementState ( extension ) , EnablementState . DisabledGlobally ) ;
966
+ assert . strictEqual ( target . args [ 0 ] [ 0 ] . length , 1 ) ;
967
+ assert . deepStrictEqual ( ( < IExtension > target . args [ 0 ] [ 0 ] [ 0 ] ) . identifier , { id : 'pub.a' } ) ;
968
+ } ) ;
969
+
953
970
} ) ;
954
971
955
972
function anExtensionManagementServer ( authority : string , instantiationService : TestInstantiationService ) : IExtensionManagementServer {
0 commit comments