@ -4,54 +4,65 @@ var assert = require('assert');
var util = require ( 'util' ) ;
var util = require ( 'util' ) ;
var symbol = Symbol ( 'foo' ) ;
var symbol = Symbol ( 'foo' ) ;
assert . equal ( util . format ( ) , '' ) ;
assert . strictEqual ( util . format ( ) , '' ) ;
assert . equal ( util . format ( '' ) , '' ) ;
assert . strictEqual ( util . format ( '' ) , '' ) ;
assert . equal ( util . format ( [ ] ) , '[]' ) ;
assert . strictEqual ( util . format ( [ ] ) , '[]' ) ;
assert . equal ( util . format ( { } ) , '{}' ) ;
assert . strictEqual ( util . format ( [ 0 ] ) , '[ 0 ]' ) ;
assert . equal ( util . format ( null ) , 'null' ) ;
assert . strictEqual ( util . format ( { } ) , '{}' ) ;
assert . equal ( util . format ( true ) , 'true' ) ;
assert . strictEqual ( util . format ( { foo : 42 } ) , '{ foo: 42 }' ) ;
assert . equal ( util . format ( false ) , 'false' ) ;
assert . strictEqual ( util . format ( null ) , 'null' ) ;
assert . equal ( util . format ( 'test' ) , 'test' ) ;
assert . strictEqual ( util . format ( true ) , 'true' ) ;
assert . strictEqual ( util . format ( false ) , 'false' ) ;
assert . strictEqual ( util . format ( 'test' ) , 'test' ) ;
// CHECKME this is for console.log() compatibility - but is it *right*?
// CHECKME this is for console.log() compatibility - but is it *right*?
assert . e qual( util . format ( 'foo' , 'bar' , 'baz' ) , 'foo bar baz' ) ;
assert . strictE qual( util . format ( 'foo' , 'bar' , 'baz' ) , 'foo bar baz' ) ;
// ES6 Symbol handling
// ES6 Symbol handling
assert . e qual( util . format ( symbol ) , 'Symbol(foo)' ) ;
assert . strictE qual( util . format ( symbol ) , 'Symbol(foo)' ) ;
assert . e qual( util . format ( 'foo' , symbol ) , 'foo Symbol(foo)' ) ;
assert . strictE qual( util . format ( 'foo' , symbol ) , 'foo Symbol(foo)' ) ;
assert . e qual( util . format ( '%s' , symbol ) , 'Symbol(foo)' ) ;
assert . strictE qual( util . format ( '%s' , symbol ) , 'Symbol(foo)' ) ;
assert . e qual( util . format ( '%j' , symbol ) , 'undefined' ) ;
assert . strictE qual( util . format ( '%j' , symbol ) , 'undefined' ) ;
assert . throws ( function ( ) {
assert . throws ( function ( ) {
util . format ( '%d' , symbol ) ;
util . format ( '%d' , symbol ) ;
} , TypeError ) ;
} , TypeError ) ;
assert . e qual( util . format ( '%d' , 42.0 ) , '42' ) ;
assert . strictE qual( util . format ( '%d' , 42.0 ) , '42' ) ;
assert . e qual( util . format ( '%d' , 42 ) , '42' ) ;
assert . strictE qual( util . format ( '%d' , 42 ) , '42' ) ;
assert . e qual( util . format ( '%s' , 42 ) , '42' ) ;
assert . strictE qual( util . format ( '%s' , 42 ) , '42' ) ;
assert . e qual( util . format ( '%j' , 42 ) , '42' ) ;
assert . strictE qual( util . format ( '%j' , 42 ) , '42' ) ;
assert . e qual( util . format ( '%d' , '42.0' ) , '42' ) ;
assert . strictE qual( util . format ( '%d' , '42.0' ) , '42' ) ;
assert . e qual( util . format ( '%d' , '42' ) , '42' ) ;
assert . strictE qual( util . format ( '%d' , '42' ) , '42' ) ;
assert . e qual( util . format ( '%s' , '42' ) , '42' ) ;
assert . strictE qual( util . format ( '%s' , '42' ) , '42' ) ;
assert . e qual( util . format ( '%j' , '42' ) , '"42"' ) ;
assert . strictE qual( util . format ( '%j' , '42' ) , '"42"' ) ;
assert . e qual( util . format ( '%%s%s' , 'foo' ) , '%sfoo' ) ;
assert . strictE qual( util . format ( '%%s%s' , 'foo' ) , '%sfoo' ) ;
assert . equal ( util . format ( '%s' ) , '%s' ) ;
assert . strictEqual ( util . format ( '%s' ) , '%s' ) ;
assert . equal ( util . format ( '%s' , undefined ) , 'undefined' ) ;
assert . strictEqual ( util . format ( '%s' , undefined ) , 'undefined' ) ;
assert . equal ( util . format ( '%s' , 'foo' ) , 'foo' ) ;
assert . strictEqual ( util . format ( '%s' , 'foo' ) , 'foo' ) ;
assert . equal ( util . format ( '%s:%s' ) , '%s:%s' ) ;
assert . strictEqual ( util . format ( '%s:%s' ) , '%s:%s' ) ;
assert . equal ( util . format ( '%s:%s' , undefined ) , 'undefined:%s' ) ;
assert . strictEqual ( util . format ( '%s:%s' , undefined ) , 'undefined:%s' ) ;
assert . equal ( util . format ( '%s:%s' , 'foo' ) , 'foo:%s' ) ;
assert . strictEqual ( util . format ( '%s:%s' , 'foo' ) , 'foo:%s' ) ;
assert . equal ( util . format ( '%s:%s' , 'foo' , 'bar' ) , 'foo:bar' ) ;
assert . strictEqual ( util . format ( '%s:%s' , 'foo' , 'bar' ) , 'foo:bar' ) ;
assert . equal ( util . format ( '%s:%s' , 'foo' , 'bar' , 'baz' ) , 'foo:bar baz' ) ;
assert . strictEqual ( util . format ( '%s:%s' , 'foo' , 'bar' , 'baz' ) , 'foo:bar baz' ) ;
assert . equal ( util . format ( '%%%s%%' , 'hi' ) , '%hi%' ) ;
assert . strictEqual ( util . format ( '%%%s%%' , 'hi' ) , '%hi%' ) ;
assert . equal ( util . format ( '%%%s%%%%' , 'hi' ) , '%hi%%' ) ;
assert . strictEqual ( util . format ( '%%%s%%%%' , 'hi' ) , '%hi%%' ) ;
assert . strictEqual ( util . format ( '%sbc%%def' , 'a' ) , 'abc%def' ) ;
assert . strictEqual ( util . format ( '%d:%d' , 12 , 30 ) , '12:30' ) ;
assert . strictEqual ( util . format ( '%d:%d' , 12 ) , '12:%d' ) ;
assert . strictEqual ( util . format ( '%d:%d' ) , '%d:%d' ) ;
assert . strictEqual ( util . format ( 'o: %j, a: %j' , { } , [ ] ) , 'o: {}, a: []' ) ;
assert . strictEqual ( util . format ( 'o: %j, a: %j' , { } ) , 'o: {}, a: %j' ) ;
assert . strictEqual ( util . format ( 'o: %j, a: %j' ) , 'o: %j, a: %j' ) ;
( function ( ) {
( function ( ) {
var o = { } ;
var o = { } ;
o . o = o ;
o . o = o ;
assert . equal ( util . format ( '%j' , o ) , '[Circular]' ) ;
assert . strictE qual( util . format ( '%j' , o ) , '[Circular]' ) ;
} ) ( ) ;
} ) ( ) ;
// Errors
// Errors
@ -64,4 +75,4 @@ function CustomError(msg) {
{ value : 'CustomError' , enumerable : false } ) ;
{ value : 'CustomError' , enumerable : false } ) ;
}
}
util . inherits ( CustomError , Error ) ;
util . inherits ( CustomError , Error ) ;
assert . e qual( util . format ( new CustomError ( 'bar' ) ) , '[CustomError: bar]' ) ;
assert . strictE qual( util . format ( new CustomError ( 'bar' ) ) , '[CustomError: bar]' ) ;