Move non-focus serialization specs from pane-view-spec to pane-spec

This commit is contained in:
Nathan Sobo
2014-01-14 21:39:47 -07:00
parent d9d28b5236
commit 1c6564f7a5
2 changed files with 39 additions and 22 deletions

View File

@@ -5,9 +5,18 @@ PaneContainer = require '../src/pane-container'
describe "Pane", ->
class Item extends Model
constructor: (@name) ->
@deserialize: ({name, uri}) -> new this(name, uri)
constructor: (@name, @uri) ->
getUri: -> @uri
getPath: -> @path
serialize: -> {deserializer: 'Item', @name, @uri}
isEqual: (other) -> @name is other?.name
beforeEach ->
atom.deserializers.add(Item)
afterEach ->
atom.deserializers.remove(Item)
describe "construction", ->
it "sets the active item to the first item", ->
@@ -397,3 +406,32 @@ describe "Pane", ->
expect(container.root.children).toEqual [pane1, pane2]
pane2.destroy()
expect(container.root).toBe pane1
describe "serialization", ->
pane = null
beforeEach ->
pane = new Pane(items: [new Item("A", "a"), new Item("B", "b"), new Item("C", "c")])
it "can serialize and deserialize the pane and all its items", ->
newPane = pane.testSerialization()
expect(newPane.items).toEqual pane.items
it "restores the active item on deserialization", ->
pane.activateItemAtIndex(1)
newPane = pane.testSerialization()
expect(newPane.activeItem).toEqual newPane.items[1]
it "does not include items that cannot be deserialized", ->
spyOn(console, 'warn')
unserializable = {}
pane.activateItem(unserializable)
newPane = pane.testSerialization()
expect(newPane.activeItem).toEqual pane.items[0]
expect(newPane.items.length).toBe pane.items.length - 1
it "includes the pane's focus state in the serialized state", ->
pane.focus()
newPane = pane.testSerialization()
expect(newPane.focused).toBe true

View File

@@ -266,27 +266,6 @@ describe "PaneView", ->
expect(container.find('> .pane-column > .pane').toArray()).toEqual [pane2[0], pane3[0]]
describe "serialization", ->
it "can serialize and deserialize the pane and all its items", ->
newPane = new PaneView(pane.model.testSerialization())
expect(newPane.getItems()).toEqual [view1, editor1, view2, editor2]
it "restores the active item on deserialization", ->
pane.activateItem(editor2)
newPane = new PaneView(pane.model.testSerialization())
expect(newPane.activeItem).toEqual editor2
it "does not show items that cannot be deserialized", ->
spyOn(console, 'warn')
class Unserializable
getViewClass: -> TestView
pane.activateItem(new Unserializable)
newPane = new PaneView(pane.model.testSerialization())
expect(newPane.activeItem).toEqual pane.items[0]
expect(newPane.items.length).toBe pane.items.length - 1
it "focuses the pane after attach only if had focus when serialized", ->
container.attachToDom()
pane.focus()