lorem
Version:
Filler text generator compatible with Node.js, Require.js and plain-old <script/>.
106 lines (103 loc) • 4.01 kB
JavaScript
var lorem = require('../library/lorem.js');
function testIpsum(test, cls, html, options) {
test.expect(1);
test.equal(lorem.ipsum(cls, options), html);
test.done();
}
exports['ipsum'] = {
setUp: function(callback) {
this.mathRandom = Math.random;
var pseudoRandom = 0;
Math.random = function() {
return pseudoRandom = pseudoRandom < 0.9 ? pseudoRandom + 0.1 : 0;
};
callback();
},
tearDown: function(callback) {
Math.random = this.mathRandom;
callback();
},
'w': function(test) {
testIpsum(test, 'w', 'et');
},
'lorem_w': function(test) {
testIpsum(test, 'lorem_w', 'et');
},
'lorem_w1': function(test) {
testIpsum(test, 'lorem_w1', 'et');
},
'lorem_w4$5': function(test) {
testIpsum(test, 'lorem_w4$5', 'et ni');
},
'lorem_w2': function(test) {
testIpsum(test, 'lorem_w2', 'et nisi');
},
's$4': function(test) {
testIpsum(test, 's$4', 'Nisi');
},
'lorem_s': function(test) {
testIpsum(test, 'lorem_s', 'Nisi velit in et et.');
},
'lorem_s1': function(test) {
testIpsum(test, 'lorem_s1', 'Nisi velit in et et.');
},
'lorem_s2': function(test) {
testIpsum(test, 'lorem_s2', 'Nisi velit in et et. Et impedit repellendus lorem et nisi velit in.');
},
'lorem_s$1': function(test) {
testIpsum(test, 'lorem_s2$1', 'N');
},
'lorem_s$10': function(test) {
testIpsum(test, 'lorem_s2$10', 'Nisi velit');
},
'lorem_s$': function(test) {
testIpsum(test, 'lorem_s2$x', 'Nisi velit in et et. Et impedit repellendus lorem et nisi velit in.');
},
'lorem_p': function(test) {
testIpsum(test, 'lorem_p', '<p>Velit in et et deserunt. Impedit repellendus lorem et nisi velit in et. ' +
'Deserunt et impedit repellendus lorem et nisi. In et et deserunt et impedit.</p>');
},
'lorem_p1': function(test) {
testIpsum(test, 'lorem_p1', '<p>Velit in et et deserunt. Impedit repellendus lorem et nisi velit in et. ' +
'Deserunt et impedit repellendus lorem et nisi. In et et deserunt et impedit.</p>');
},
'lorem_p2': function(test) {
testIpsum(test, 'lorem_p2', '<p>Velit in et et deserunt. Impedit repellendus lorem et nisi velit in et. ' +
'Deserunt et impedit repellendus lorem et nisi. In et et deserunt et impedit.</p><p>Et nisi velit in. ' +
'Et deserunt et impedit repellendus lorem et. Velit in et et deserunt. Impedit repellendus lorem et nisi velit in et. ' +
'Deserunt et impedit repellendus lorem et nisi. In et et deserunt et impedit. Lorem et nisi velit in et et deserunt et.</p>');
},
'lorem_i1x100': function(test) {
testIpsum(test, 'lorem_i1x100', 'http://placehold.it/1x100');
},
'lorem_unsupported_suffix': function(test) {
testIpsum(test, 'lorem_');
},
'custom_lorem_w': function(test) {
testIpsum(test, 'custom_lorem_w');
},
'custom_lorem_w with prefix adjusted': function(test) {
testIpsum(test, 'custom_lorem_w', 'et', { prefix: 'custom_lorem_' });
},
'custom_lorem_w with text modified': function(test) {
testIpsum(test, 'lorem_w', 'a', { text: 'a b c' });
},
'lorem_w with overridden defaults (prefix)': function(test) {
var defaultPrefix = lorem.defaults().prefix;
try {
lorem.overrideDefaults({ prefix: 'custom_lorem_' });
testIpsum(test, 'custom_lorem_w', 'et');
} finally {
lorem.overrideDefaults({ prefix: defaultPrefix });
}
},
'lorem_w with overridden defaults (text)': function(test) {
var defaultText = lorem.defaults().text;
try {
lorem.overrideDefaults({ text: 'a b c' });
testIpsum(test, 'lorem_w', 'a');
} finally {
lorem.overrideDefaults({ text: defaultText });
}
}
};