| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | 
							- /*
 
-  * tst.invalid.js: tests invalid invocations
 
-  */
 
- var mod_assert = require('assert');
 
- var mod_extsprintf = require('../lib/extsprintf');
 
- var mod_path = require('path');
 
- var sprintf = mod_extsprintf.sprintf;
 
- var testcases = [ {
 
-     'name': 'missing all arguments',
 
-     'args': [],
 
-     'errmsg': /first argument must be a format string$/
 
- }, {
 
-     'name': 'missing argument for format specifier (first char and specifier)',
 
-     'args': [ '%s' ],
 
-     'errmsg': new RegExp(
 
-         'format string "%s": conversion specifier "%s" at character 1 ' +
 
- 	'has no matching argument \\(too few arguments passed\\)')
 
- }, {
 
-     'name': 'missing argument for format specifier (later in string)',
 
-     'args': [ 'hello %s world %13d', 'big' ],
 
-     'errmsg': new RegExp(
 
-         'format string "hello %s world %13d": conversion specifier "%13d" at ' +
 
- 	'character 16 has no matching argument \\(too few arguments passed\\)')
 
- }, {
 
-     'name': 'printing null as string',
 
-     'args': [ '%d cookies %3s', 15, null ],
 
-     'errmsg': new RegExp(
 
-         'format string "%d cookies %3s": conversion specifier "%3s" at ' +
 
- 	'character 12 attempted to print undefined or null as a string ' +
 
- 	'\\(argument 3 to sprintf\\)')
 
- }, {
 
-     'name': 'printing undefined as string',
 
-     'args': [ '%d cookies %3s ah %d', 15, undefined, 7 ],
 
-     'errmsg': new RegExp(
 
-         'format string "%d cookies %3s ah %d": conversion specifier "%3s" at ' +
 
- 	'character 12 attempted to print undefined or null as a string ' +
 
- 	'\\(argument 3 to sprintf\\)')
 
- }, {
 
-     'name': 'unsupported format character',
 
-     'args': [ 'do not use %X', 13 ],
 
-     'errmsg': new RegExp(
 
-         'format string "do not use %X": conversion ' +
 
- 	'specifier "%X" at character 12 is not supported$')
 
- }, {
 
-     'name': 'unsupported flags',
 
-     'args': [ '%#x', 13 ],
 
-     'errmsg': new RegExp(
 
-         'format string "%#x": conversion ' +
 
- 	'specifier "%#x" at character 1 uses unsupported flags$')
 
- } ];
 
- function main(verbose) {
 
- 	testcases.forEach(function (tc) {
 
- 		var error;
 
- 		console.error('test case: %s', tc.name);
 
- 		if (verbose) {
 
- 			console.error('    args:   %s', JSON.stringify(tc.args));
 
- 		}
 
- 		mod_assert.throws(function () {
 
- 			try {
 
- 				sprintf.apply(null, tc.args);
 
- 			} catch (ex) {
 
- 				error = ex;
 
- 				throw (ex);
 
- 			}
 
- 		}, tc.errmsg);
 
- 		if (verbose && error) {
 
- 			console.error('    error:  %s', error.message);
 
- 		}
 
- 	});
 
- 	console.log('%s tests passed', mod_path.basename(__filename));
 
- }
 
- main(process.argv.length > 2 && process.argv[2] == '-v');
 
 
  |