YUI.add('dump-tests', function(Y) {
var Assert = Y.Assert,
ObjectAssert = Y.ObjectAssert,
deep = {
one: {
two: {
three: {
four: {
five: {
six: {
seven: [1, 2, 3, 4, 5]
}
}
}
}
}
}
};
var suite = new Y.Test.Suite("Dump");
suite.add(new Y.Test.Case({
name: "Dump tests",
test_dump: function() {
Assert.areEqual("0", Y.Lang.dump(0));
Assert.areEqual("null", Y.Lang.dump(null));
Assert.areEqual("false", Y.Lang.dump(false));
// Other types tested in substitute
},
'test: dump with a date': function() {
var d = new Date();
var control = '{date => ' + d.toString() + '}';
var out = Y.Lang.dump({
date: d
});
Assert.areSame(control, out, 'Failed to encode Date properly');
},
'test: HTMLElement': function() {
var out = Y.Lang.dump({
nodeType: 3,
tagName: 'DIV',
id: 'foo'
});
Assert.areEqual('DIV#foo', out, 'Failed to encode HTMLElement');
},
'test: HTMLDocument': function() {
var out = Y.Lang.dump({
location: {},
body: {}
});
Assert.areEqual('document', out, 'Failed to encode HTMLDocument');
},
'test: HTMLWindow': function() {
var out = Y.Lang.dump({
document: {},
navigator: {}
});
Assert.areEqual('window', out, 'Failed to encode HTMLWindow');
},
'test: function': function() {
var out = Y.Lang.dump(function() {
});
Assert.areEqual('f(){...}', out, 'Failed to encode function');
},
'test: array': function() {
var out = Y.Lang.dump([ 1, 2, 3, 4 ]);
Assert.areEqual('[1, 2, 3, 4]', out, 'Failed to encode array');
},
'test: array with object': function() {
var out = Y.Lang.dump([ 1, 2, 3, 4, {
one: true, two: true
}]);
Assert.areEqual('[1, 2, 3, 4, {one => true, two => true}]', out, 'Failed to encode array with Object');
},
'test: array with regex': function() {
var out = Y.Lang.dump([ 1, 2, 3, 4, /foo^bar/]);
Assert.areEqual('[1, 2, 3, 4, /foo^bar/]', out, 'Failed to encode array with RegEx');
},
'test: default depth': function() {
var out = Y.Lang.dump(deep);
Assert.areEqual('{one => {two => {three => {four => {...}}}}}', out, 'Failed to truncate at 3');
},
'test: depth of 5': function() {
var out = Y.Lang.dump(deep, 5);
Assert.areEqual('{one => {two => {three => {four => {five => {six => {...}}}}}}}', out, 'Failed to truncate at 5');
},
'test: depth of 10': function() {
var out = Y.Lang.dump(deep, 10);
Assert.areEqual('{one => {two => {three => {four => {five => {six => {seven => [1, 2, 3, 4, 5]}}}}}}}', out, 'Failed to truncate at 5');
}
}));
Y.Test.Runner.add(suite);
});