summaryrefslogtreecommitdiff
path: root/tests/qunit/suites/resources/jquery/jquery.textSelection.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/qunit/suites/resources/jquery/jquery.textSelection.test.js')
-rw-r--r--tests/qunit/suites/resources/jquery/jquery.textSelection.test.js275
1 files changed, 0 insertions, 275 deletions
diff --git a/tests/qunit/suites/resources/jquery/jquery.textSelection.test.js b/tests/qunit/suites/resources/jquery/jquery.textSelection.test.js
deleted file mode 100644
index 5fe23944..00000000
--- a/tests/qunit/suites/resources/jquery/jquery.textSelection.test.js
+++ /dev/null
@@ -1,275 +0,0 @@
-( function ( $ ) {
-
- QUnit.module( 'jquery.textSelection', QUnit.newMwEnvironment() );
-
- /**
- * Test factory for $.fn.textSelection( 'encapsulateText' )
- *
- * @param options {object} associative array containing:
- * description {string}
- * input {string}
- * output {string}
- * start {int} starting char for selection
- * end {int} ending char for selection
- * params {object} add'l parameters for $().textSelection( 'encapsulateText' )
- */
- function encapsulateTest( options ) {
- var opt = $.extend( {
- description: '',
- before: {},
- after: {},
- replace: {}
- }, options );
-
- opt.before = $.extend( {
- text: '',
- start: 0,
- end: 0
- }, opt.before );
- opt.after = $.extend( {
- text: '',
- selected: null
- }, opt.after );
-
- QUnit.test( opt.description, function ( assert ) {
- /*jshint onevar: false */
- var tests = 1;
- if ( opt.after.selected !== null ) {
- tests++;
- }
- QUnit.expect( tests );
-
- var $textarea = $( '<textarea>' );
-
- $( '#qunit-fixture' ).append( $textarea );
-
- //$textarea.textSelection( 'setContents', opt.before.text); // this method is actually missing atm...
- $textarea.val( opt.before.text ); // won't work with the WikiEditor iframe?
-
- var start = opt.before.start,
- end = opt.before.end;
-
- var options = $.extend( {}, opt.replace ); // Clone opt.replace
- options.selectionStart = start;
- options.selectionEnd = end;
- $textarea.textSelection( 'encapsulateSelection', options );
-
- var text = $textarea.textSelection( 'getContents' ).replace( /\r\n/g, '\n' );
-
- assert.equal( text, opt.after.text, 'Checking full text after encapsulation' );
-
- if ( opt.after.selected !== null ) {
- var selected = $textarea.textSelection( 'getSelection' );
- assert.equal( selected, opt.after.selected, 'Checking selected text after encapsulation.' );
- }
-
- } );
- }
-
- var caretSample,
- sig = {
- pre: '--~~~~'
- },
- bold = {
- pre: '\'\'\'',
- peri: 'Bold text',
- post: '\'\'\''
- },
- h2 = {
- pre: '== ',
- peri: 'Heading 2',
- post: ' ==',
- regex: /^(\s*)(={1,6})(.*?)\2(\s*)$/,
- regexReplace: '$1==$3==$4',
- ownline: true
- },
- ulist = {
- pre: '* ',
- peri: 'Bulleted list item',
- post: '',
- ownline: true,
- splitlines: true
- };
-
- encapsulateTest( {
- description: 'Adding sig to end of text',
- before: {
- text: 'Wikilove dude! ',
- start: 15,
- end: 15
- },
- after: {
- text: 'Wikilove dude! --~~~~',
- selected: ''
- },
- replace: sig
- } );
-
- encapsulateTest( {
- description: 'Adding bold to empty',
- before: {
- text: '',
- start: 0,
- end: 0
- },
- after: {
- text: '\'\'\'Bold text\'\'\'',
- selected: 'Bold text' // selected because it's the default
- },
- replace: bold
- } );
-
- encapsulateTest( {
- description: 'Adding bold to existing text',
- before: {
- text: 'Now is the time for all good men to come to the aid of their country',
- start: 20,
- end: 32
- },
- after: {
- text: 'Now is the time for \'\'\'all good men\'\'\' to come to the aid of their country',
- selected: '' // empty because it's not the default'
- },
- replace: bold
- } );
-
- encapsulateTest( {
- description: 'ownline option: adding new h2',
- before: {
- text: 'Before\nAfter',
- start: 7,
- end: 7
- },
- after: {
- text: 'Before\n== Heading 2 ==\nAfter',
- selected: 'Heading 2'
- },
- replace: h2
- } );
-
- encapsulateTest( {
- description: 'ownline option: turn a whole line into new h2',
- before: {
- text: 'Before\nMy heading\nAfter',
- start: 7,
- end: 17
- },
- after: {
- text: 'Before\n== My heading ==\nAfter',
- selected: ''
- },
- replace: h2
- } );
-
-
- encapsulateTest( {
- description: 'ownline option: turn a partial line into new h2',
- before: {
- text: 'BeforeMy headingAfter',
- start: 6,
- end: 16
- },
- after: {
- text: 'Before\n== My heading ==\nAfter',
- selected: ''
- },
- replace: h2
- } );
-
-
- encapsulateTest( {
- description: 'splitlines option: no selection, insert new list item',
- before: {
- text: 'Before\nAfter',
- start: 7,
- end: 7
- },
- after: {
- text: 'Before\n* Bulleted list item\nAfter'
- },
- replace: ulist
- } );
-
- encapsulateTest( {
- description: 'splitlines option: single partial line selection, insert new list item',
- before: {
- text: 'BeforeMy List ItemAfter',
- start: 6,
- end: 18
- },
- after: {
- text: 'Before\n* My List Item\nAfter'
- },
- replace: ulist
- } );
-
- encapsulateTest( {
- description: 'splitlines option: multiple lines',
- before: {
- text: 'Before\nFirst\nSecond\nThird\nAfter',
- start: 7,
- end: 25
- },
- after: {
- text: 'Before\n* First\n* Second\n* Third\nAfter'
- },
- replace: ulist
- } );
-
-
- function caretTest( options ) {
- QUnit.test( options.description, 2, function ( assert ) {
- var pos, $textarea = $( '<textarea>' ).text( options.text );
-
- $( '#qunit-fixture' ).append( $textarea );
-
- if ( options.mode === 'set' ) {
- $textarea.textSelection( 'setSelection', {
- start: options.start,
- end: options.end
- } );
- }
-
- function among( actual, expected, message ) {
- if ( $.isArray( expected ) ) {
- assert.ok( $.inArray( actual, expected ) !== -1, message + ' (got ' + actual + '; expected one of ' + expected.join( ', ' ) + ')' );
- } else {
- assert.equal( actual, expected, message );
- }
- }
-
- pos = $textarea.textSelection( 'getCaretPosition', { startAndEnd: true } );
- among( pos[0], options.start, 'Caret start should be where we set it.' );
- among( pos[1], options.end, 'Caret end should be where we set it.' );
- } );
- }
-
- caretSample = 'Some big text that we like to work with. Nothing fancy... you know what I mean?';
-
- /*
- // @broken: Disabled per bug 34820
- caretTest({
- description: 'getCaretPosition with original/empty selection - bug 31847 with IE 6/7/8',
- text: caretSample,
- start: [0, caretSample.length], // Opera and Firefox (prior to FF 6.0) default caret to the end of the box (caretSample.length)
- end: [0, caretSample.length], // Other browsers default it to the beginning (0), so check both.
- mode: 'get'
- });
- */
-
- caretTest( {
- description: 'set/getCaretPosition with forced empty selection',
- text: caretSample,
- start: 7,
- end: 7,
- mode: 'set'
- } );
-
- caretTest( {
- description: 'set/getCaretPosition with small selection',
- text: caretSample,
- start: 6,
- end: 11,
- mode: 'set'
- } );
-}( jQuery ) );