                 it("should content view have correct origin") {
                     let origin = contentView.convert(contentView.frame.origin, to: sut)
                     expect(origin).to(equal(CGPoint.zero))
+                }
+
+                context("change content view") {
+                    var newContentView: UIView!
+
+                    beforeEach {
+                        newContentView = UIView(frame: .zero)
+                        sut.contentView = newContentView
+                        sut.setNeedsLayout()
+                        sut.layoutIfNeeded()
+                    }
+
+                    it("should have correct content view") {
+                        expect(sut.contentView).to(be(newContentView))
+                    }
+
+                    it("should new content view have superview") {
+                        expect(newContentView.superview).notTo(beNil())
+                    }
+
+                    it("should previous content view not have superview") {
+                        expect(contentView.superview).to(beNil())
+                    }
                 }
 
                 context("set right view") {

                        let origin = rightView.convert(rightView.frame.origin, to: sut)
                        let expectation = CGPoint(x: sut.bounds.maxX, y: sut.bounds.minY)
                        expect(origin).to(equal(expectation))
                    }

                    context("reveal right") {

                    sut.layoutIfNeeded()
                }

                it("should have correct content view") {
                    expect(sut.contentView).to(be(contentView))
                }

                it("should content view have superview") {
                    expect(contentView.superview).notTo(beNil())
                }

                it("should content view have correct size") {
