describe('TextPath', function() { var text , data = 'M 100 200 C 200 100 300 0 400 100 C 500 200 600 300 700 200 C 800 100 900 100 900 100' beforeEach(function() { text = draw.text('We go up, then we go down, then up again') }) afterEach(function() { draw.clear() }) describe('path()', function() { it('returns the text element', function() { expect(text.path(data)).toBe(text) }) it('creates a textPath node in the text element', function() { text.path(data) expect(text.node.firstChild.nodeName).toBe('textPath') }) }) describe('textPath()', function() { it('creates a reference to the textPath', function() { expect(text.path(data).textPath() instanceof SVG.TextPath).toBe(true) }) }) describe('track()', function() { it('creates a reference to the path', function() { expect(text.path(data).track() instanceof SVG.Path).toBe(true) }) }) describe('array()', function() { it('return the path array of the underlying path', function() { expect(text.path(data).array()).toEqual(new SVG.PathArray(data)) }) it('return null if there is no underlying path', function () { expect(text.array()).toBe(null) }) }) describe('plot()', function() { it('change the array of the underlying path when a string is passed', function() { expect(text.path().plot(data)).toBe(text) expect(text.array()).toEqual(new SVG.PathArray(data)) }) it('do nothing when a string is passed and there is no underlying path', function() { expect(text.plot(data)).toBe(text) expect(text.array()).toEqual(null) }) it('return the path array of the underlying path when no arguments is passed', function () { text.path(data) expect(text.plot()).toBe(text.array()) expect(text.plot()).not.toBe(null) }) it('return null when no arguments is passed and there is no underlying path', function () { expect(text.plot()).toBe(null) }) }) })