diff --git a/tests/js/doctools.js b/tests/js/doctools.js index 8533f7148..c569bcb8a 100644 --- a/tests/js/doctools.js +++ b/tests/js/doctools.js @@ -1,32 +1,86 @@ var DOCUMENTATION_OPTIONS = {}; -describe('urldecode', function() { - it('should correctly decode URLs and replace `+`s with a spaces', function() { - var test_encoded_string = - '%D1%88%D0%B5%D0%BB%D0%BB%D1%8B+%D1%88%D0%B5%D0%BB%D0%BB%D1%8B'; - var test_decoded_string = 'шеллы шеллы'; - expect(jQuery.urldecode(test_encoded_string)).toEqual(test_decoded_string); +describe('jQuery extensions', function() { + + describe('urldecode', function() { + + it('should correctly decode URLs and replace `+`s with a spaces', function() { + var test_encoded_string = + '%D1%88%D0%B5%D0%BB%D0%BB%D1%8B+%D1%88%D0%B5%D0%BB%D0%BB%D1%8B'; + var test_decoded_string = 'шеллы шеллы'; + expect(jQuery.urldecode(test_encoded_string)).toEqual(test_decoded_string); + }); + }); + describe('getQueryParameters', function() { + var paramString = '?q=test+this&check_keywords=yes&area=default'; + var queryParamObject = { + area: ['default'], + check_keywords: ['yes'], + q: ['test this'] + }; + + it('should correctly create query parameter object from string', function() { + expect(jQuery.getQueryParameters(paramString)).toEqual(queryParamObject); + }); + + it('should correctly create query param object from URL params', function() { + history.pushState({}, '_', window.location + paramString); + expect(jQuery.getQueryParameters()).toEqual(queryParamObject); + }); + + }); + + describe('highlightText', function() { + + var cyrillicTerm = 'шеллы'; + var umlautTerm = 'gänsefüßchen'; + + it('should highlight text incl. special characters correctly in HTML', function() { + var highlightTestSpan = + jQuery('This is the шеллы and Gänsefüßchen test!'); + jQuery(document.body).append(highlightTestSpan); + highlightTestSpan.highlightText(cyrillicTerm, 'highlighted'); + highlightTestSpan.highlightText(umlautTerm, 'highlighted'); + var expectedHtmlString = + 'This is the шеллы and ' + + 'Gänsefüßchen test!'; + expect(highlightTestSpan.html()).toEqual(expectedHtmlString); + }); + + it('should highlight text incl. special characters correctly in SVG', function() { + var highlightTestSvg = jQuery( + '' + + '' + + '' + + 'This is the шеллы and Gänsefüßchen test!' + + '' + + '' + + ''); + $("#svg-highlight-test").html($("#svg-highlight-test").html()); + jQuery(document.body).append(highlightTestSvg); + highlightTestSvg.highlightText(cyrillicTerm, 'highlighted'); + highlightTestSvg.highlightText(umlautTerm, 'highlighted'); + var expectedSvgString = + '' + + '' + + '' + + '' + + '' + + '' + + 'This is the ' + + 'шеллы and ' + + 'Gänsefüßchen test!' + + '' + + ''; + expect(highlightTestSvg.html()).toEqual(expectedSvgString); + }); + + }); + + }); -describe('getQueryParameters', function() { - var paramString = '?q=test+this&check_keywords=yes&area=default'; - var queryParamObject = { - area: ['default'], - check_keywords: ['yes'], - q: ['test this'] - }; - - it('should correctly create query parameter object from string', function() { - expect(jQuery.getQueryParameters(paramString)).toEqual(queryParamObject); - }); - - it('should correctly create query param object from URL params', function() { - history.pushState({}, '_', window.location + paramString); - expect(jQuery.getQueryParameters()).toEqual(queryParamObject); - }); - -});