mirror of
https://github.com/atom/atom.git
synced 2026-01-23 22:08:08 -05:00
Add rootView.deactivateExtension
This commit is contained in:
@@ -397,6 +397,14 @@ describe "RootView", ->
|
||||
expect(-> rootView.activateExtension({ activate: -> })).toThrow()
|
||||
|
||||
describe "deactivation", ->
|
||||
it "is deactivated and removed from the extension list", ->
|
||||
rootView.activateExtension(extension)
|
||||
expect(rootView.extensions[extension.name]).toBeTruthy()
|
||||
spyOn(extension, "deactivate").andCallThrough()
|
||||
rootView.deactivateExtension(extension)
|
||||
expect(extension.deactivate).toHaveBeenCalled()
|
||||
expect(rootView.extensions[extension.name]).toBeFalsy()
|
||||
|
||||
it "is deactivated when the rootView is deactivated", ->
|
||||
rootView.activateExtension(extension)
|
||||
spyOn(extension, "deactivate").andCallThrough()
|
||||
|
||||
@@ -80,7 +80,7 @@ describe "TreeView", ->
|
||||
describe "when the prototypes deactivate method is called", ->
|
||||
it "calls the deactivate on tree view instance", ->
|
||||
spyOn(treeView, "deactivate").andCallThrough()
|
||||
TreeView.deactivate()
|
||||
rootView.deactivateExtension(TreeView)
|
||||
expect(treeView.deactivate).toHaveBeenCalled()
|
||||
|
||||
it "restores expanded directories and selected file when deserialized", ->
|
||||
|
||||
@@ -87,6 +87,10 @@ class RootView extends View
|
||||
@extensions[extension.name] = extension
|
||||
extension.activate(this, @extensionStates[extension.name])
|
||||
|
||||
deactivateExtension: (extension) ->
|
||||
extension.deactivate?()
|
||||
delete @extensions[extension.name]
|
||||
|
||||
deactivate: ->
|
||||
atom.rootViewStates[$windowNumber] = JSON.stringify(@serialize())
|
||||
extension.deactivate?() for name, extension of @extensions
|
||||
|
||||
Reference in New Issue
Block a user