From db8eb7907de17771be1bceaa1ee6c55cea62739f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gert=20K=2E=20S=C3=B8nderby?= Date: Fri, 2 Oct 2015 14:35:28 +0200 Subject: [PATCH] Added test suite that checks a number of cases for hasFormat(). --- test/squire.spec.js | 64 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/test/squire.spec.js b/test/squire.spec.js index fea78bc..2b3ff9e 100644 --- a/test/squire.spec.js +++ b/test/squire.spec.js @@ -32,6 +32,70 @@ describe('Squire RTE', function () { editor.setSelection(range); } + describe('hasFormat', function () { + var startHTML; + beforeEach( function () { + startHTML = '
one two three four five
'; + editor.setHTML(startHTML); + }); + + it('returns false when range not touching format', function () { + var range = doc.createRange(); + range.setStart(doc.body.childNodes.item(0), 0); + range.setEnd(doc.body.childNodes.item(0), 1); + editor.setSelection(range); + expect(editor.hasFormat('b'), 'to be false'); + }); + + it('returns false when range inside other format', function () { + var range = doc.createRange(); + range.setStart(doc.querySelector('i').childNodes[0], 1); + range.setEnd(doc.querySelector('i').childNodes[0], 2); + editor.setSelection(range); + expect(editor.hasFormat('b'), 'to be false'); + }); + + it('returns false when range covers anything outside format', function () { + var range = doc.createRange(); + range.setStart(doc.querySelector('b').previousSibling, 2); + range.setEnd(doc.querySelector('b').childNodes[0], 8); + editor.setSelection(range); + expect(editor.hasFormat('b'), 'to be false'); + }); + + it('returns true when range inside format', function () { + var range = doc.createRange(); + range.setStart(doc.querySelector('b').childNodes[0], 2); + range.setEnd(doc.querySelector('b').childNodes[0], 8); + editor.setSelection(range); + expect(editor.hasFormat('b'), 'to be true'); + }); + + it('returns true when range covers start of format', function () { + var range = doc.createRange(); + range.setStartBefore(doc.querySelector('b')); + range.setEnd(doc.querySelector('b').childNodes[0], 8); + editor.setSelection(range); + expect(editor.hasFormat('b'), 'to be true'); + }); + + it('returns true when range covers end of format', function () { + var range = doc.createRange(); + range.setStart(doc.querySelector('b').childNodes[0], 2); + range.setEndAfter(doc.querySelector('b')); + editor.setSelection(range); + expect(editor.hasFormat('b'), 'to be true'); + }); + + it('returns true when range covers all of format', function () { + var range = doc.createRange(); + range.setStartBefore(doc.querySelector('b')); + range.setEndAfter(doc.querySelector('b')); + editor.setSelection(range); + expect(editor.hasFormat('b'), 'to be true'); + }); + }); + describe('removeAllFormatting', function () { // Trivial cases it('removes inline styles', function () {