Skip to content

Commit 23783e8

Browse files
committed
QUnit tests for pattern attribute enabled
1 parent db385c6 commit 23783e8

File tree

1 file changed

+70
-13
lines changed

1 file changed

+70
-13
lines changed

test/js/testLauncher.js

Lines changed: 70 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,6 @@
6060
saveButton = $( "#saveButton" );
6161
} );
6262

63-
function saveReport( xml ) {
64-
var uriContent = "data:application/octet-stream," + encodeURIComponent( report );
65-
}
66-
6763
function resetEventFlags() {
6864
log( "resetting event flags" );
6965

@@ -72,14 +68,7 @@
7268
validationSuccessEvent = false;
7369
}
7470

75-
function initField( title, fieldType, ignore ) {
76-
log( "test: " + title );
77-
log( "initField: fieldType[" + fieldType + "], ignore[" + ignore + "]" );
78-
79-
field.restrictedTextField( { type : fieldType,
80-
preventInvalidInput : ignore,
81-
logger : log } );
82-
71+
function setEventListeners() {
8372
field.on( "inputIgnored", function() {
8473
log( "inputIgnored event captured" );
8574
inputIgnoredEvent = true;
@@ -96,6 +85,16 @@
9685
} );
9786
}
9887

88+
function initField( title, fieldType, ignore ) {
89+
log( "test: " + title );
90+
log( "initField: fieldType[" + fieldType + "], ignore[" + ignore + "]" );
91+
92+
field.restrictedTextField( { type : fieldType,
93+
preventInvalidInput : ignore,
94+
logger : log,
95+
usePatternAttr : false } );
96+
}
97+
9998
function simulateInput( input ) {
10099
for( var i = 0; i < input.length; i++ ) {
101100
field.trigger( "keydown" );
@@ -182,6 +181,7 @@
182181
} ).appendTo( fieldContainer );
183182

184183
field = $( fieldSelector );
184+
setEventListeners();
185185
resetEventFlags();
186186
} );
187187

@@ -219,7 +219,9 @@
219219
$( "#saveContainer" ).css( "visibility", "visible" );
220220
} );
221221

222-
QUnit.cases( testCases ).test( "Test", function(params) {
222+
// Run the tests in testCases.js (pattern mode disabled)
223+
224+
QUnit.cases( testCases ).test( "noPatternMode", function(params) {
223225
initField( params.title, params.fieldType[0], params.preventInvalidInput );
224226
writeCurrentTest( params.title, testNum, testCases.length );
225227

@@ -232,5 +234,60 @@
232234
field.blur();
233235
validatePostBlur( params );
234236
} );
237+
238+
// Run the second set of tests (pattern mode enabled) - just need to verify that no RestrictedTextField events fire
239+
240+
QUnit.test( "patternMode_correctInput_noEventsFired", function() {
241+
field.restrictedTextField( { type : "int",
242+
preventInvalidInput : false,
243+
logger : log,
244+
usePatternAttr : true } );
245+
246+
writeCurrentTest( "patternMode_correctInput_noEventsFired", testNum, testNum + 1 );
247+
248+
simulateInput( "123" );
249+
field.blur();
250+
251+
equal( field.val(), "123", "Field has correct value" );
252+
notOk( inputIgnoredEvent, "inputIgnoredEvent should never fire when pattern mode is enabled" );
253+
notOk( validationFailedEvent, "validationFailedEvent should never fire when pattern mode is enabled" );
254+
notOk( validationSuccessEvent, "validationSuccessEvent should never fire when pattern mode is enabled" );
255+
} );
256+
257+
QUnit.test( "patternMode_incorrectInput_noEventsFired", function() {
258+
field.restrictedTextField( { type : "int",
259+
preventInvalidInput : false,
260+
logger : log,
261+
usePatternAttr : true } );
262+
263+
writeCurrentTest( "patternMode_incorrectInput_noEventsFired", testNum, testNum + 1 );
264+
265+
simulateInput( "1a23" );
266+
field.blur();
267+
268+
equal( field.val(), "1a23", "Field has correct value" );
269+
notOk( inputIgnoredEvent, "inputIgnoredEvent should never fire when pattern mode is enabled" );
270+
notOk( validationFailedEvent, "validationFailedEvent should never fire when pattern mode is enabled" );
271+
notOk( validationSuccessEvent, "validationSuccessEvent should never fire when pattern mode is enabled" );
272+
} );
273+
274+
QUnit.test( "patternMode_rejectInvalidConfiguration", function() {
275+
writeCurrentTest( "patternMode_rejectInvalidConfiguration", testNum, testNum );
276+
277+
throws(
278+
function() {
279+
field.restrictedTextField( { type : "int",
280+
preventInvalidInput : true,
281+
logger : log,
282+
usePatternAttr : true } );
283+
},
284+
285+
function( err ) {
286+
return err.toString() === "Invalid configuration: preventInvalidInput and usePatternAttr cannot both be true";
287+
},
288+
289+
"Exception thrown during initilization with incorrect options"
290+
);
291+
} );
235292
}
236293
} )();

0 commit comments

Comments
 (0)