     sel2.should.have.deep.property 'endPos.word', 2
     sel2.should.have.deep.property 'endPos.pos', 1
 
+  it 'unbind correctly', ->
+    rte = new Rte "Zero One two three four five"
+    sel = new Selection 0, 1, rte
+    sel2 = new Selection 0, 5, rte
+    sel.unbind()
+    (sel.left == null).should.be.true
+    (sel.right == null).should.be.true
+    rte.getWord(0).left.length.should.equal 1
+    rte.getWord(0).right.length.should.equal 0
+
+
 describe 'Word objects should', ->
   sel = sel2 = rte = word = null
-  it 'be linked correctly to selections', ->
+  it 'be linked correctly to selections [constructor]', ->
     rte = new Rte "This is a test"
     sel = new Selection 0, 6, rte
     word = rte.getWord(0)

describe 'Selection object should', ->
  sel = sel2 = rte = word = null

  it 'be initialized with three parameters', ->
    rte = new Rte "Zero One two three four five"
    sel = new Selection 1, 7, rte

    sel.should.have.property('startPos')
    sel.should.have.deep.property('startPos.word', 0)
    sel.should.have.deep.property('startPos.pos', 1)

    word = rte.getWord(1)
    word.left.length.should.equals 0
    word.right[0].equals(sel).should.be.true

  it 'should remove selection correctly [removeSel]', ->
    rte = new Rte "This is a test"
    sel = new Selection 0, 6, rte
    word = rte.getWord(0)
    word.removeSel sel, "left"
    word.left.length.should.equals 0

    word = rte.getWord(1)
    word.right.length.should.equals 1
