(function() { var assert, vows, util; vows = require('vows'); assert = require('assert'); util = require('../../lib/util'); vows.describe('Module core extension String').addBatch({ 'Testing value': { topic: 'bullet', 'join the keys': function(topic) { return assert.equal(util.string.value(topic), 'bullet'); } }, 'Testing gsub': { topic: 'bullet', 'when no args': function(topic) { return assert.equal(util.string.gsub(topic), 'bullet'); }, 'when only 1 arg': function(topic) { return assert.equal(util.string.gsub(topic, /./), 'bullet'); }, 'when given proper args': function(topic) { return assert.equal(util.string.gsub(topic, /[aeiou]/, '*'), 'b*ll*t'); }, 'when replacement is a function': { 'with many groups': function(topic) { var str; str = util.string.gsub(topic, /([aeiou])(.)/, function($) { return "<" + $[1] + ">" + $[2]; }); return assert.equal(str, 'bllt'); }, 'with no groups': function(topic) { var str; str = util.string.gsub(topic, /[aeiou]/, function($) { return "<" + $[1] + ">"; }); return assert.equal(str, 'bllt'); } }, 'when replacement is special': { 'with many groups': function(topic) { return assert.equal(util.string.gsub(topic, /([aeiou])(.)/, '<$1>$2'), 'bllt'); }, 'with no groups': function(topic) { return assert.equal(util.string.gsub(topic, /[aeiou]/, '<$1>'), 'bllt'); } } }, 'Testing capitalize': { topic: 'employee salary', 'normal': function(topic) { return assert.equal(util.string.capitalize(topic), 'Employee Salary'); } }, 'Testing upcase': { topic: 'bullet', 'only first letter should be upcase': function(topic) { return assert.equal(util.string.upcase(topic), 'Bullet'); }, 'letter after underscore': function(topic) { return assert.equal(util.string.upcase('bullet_record'), 'Bullet_Record'); }, 'letter after slash': function(topic) { return assert.equal(util.string.upcase('bullet_record/errors'), 'Bullet_Record/Errors'); }, 'no letter after space': function(topic) { return assert.equal(util.string.upcase('employee salary'), 'Employee salary'); } }, 'Testing downcase': { topic: 'BULLET', 'only first letter should be downcase': function(topic) { return assert.equal(util.string.downcase(topic), 'bULLET'); }, 'letter after underscore': function(topic) { return assert.equal(util.string.downcase('BULLET_RECORD'), 'bULLET_rECORD'); }, 'letter after slash': function(topic) { return assert.equal(util.string.downcase('BULLET_RECORD/ERRORS'), 'bULLET_rECORD/eRRORS'); } } })["export"](module); }).call(this);