You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
4.9 KiB
114 lines
4.9 KiB
2 years ago
|
/*
|
||
|
Copyright (c) 2004-2006, The Dojo Foundation
|
||
|
All Rights Reserved.
|
||
|
|
||
|
Licensed under the Academic Free License version 2.1 or above OR the
|
||
|
modified BSD license. For more information on Dojo licensing, see:
|
||
|
|
||
|
http://dojotoolkit.org/community/licensing.shtml
|
||
|
*/
|
||
|
|
||
|
dojo.require("dojo.string.extras");
|
||
|
|
||
|
function test_string_substituteParams(){
|
||
|
var tpla = "This %{string} has %{parameters} %{toReplace}";
|
||
|
var ps0 = dojo.string.substituteParams(tpla, { string: "area", parameters: "foo", toReplace: "bar"});
|
||
|
jum.assertEquals("test20", "This area has foo bar", ps0);
|
||
|
|
||
|
var thrown = false;
|
||
|
try {
|
||
|
// Missing a required parameter
|
||
|
var ps1 = dojo.string.substituteParams(tpla, { string: "area", parameters: "foo", extra: "baz"});
|
||
|
}catch(e){
|
||
|
thrown = e; // exception must be thrown
|
||
|
}
|
||
|
jum.assertTrue("test21", thrown);
|
||
|
|
||
|
var tplb = "Passed as arguments: %{0}, %{1}, %{2}.";
|
||
|
var ps2 = dojo.string.substituteParams(tplb, "zero", "one", "two");
|
||
|
jum.assertEquals("test22", "Passed as arguments: zero, one, two.", ps2);
|
||
|
|
||
|
// Unused argument provided
|
||
|
var tplb = "Passed as arguments: %{0}, %{1}, %{2}.";
|
||
|
var ps3 = dojo.string.substituteParams(tplb, "zero", "one", "two", "three");
|
||
|
jum.assertEquals("test23", "Passed as arguments: zero, one, two.", ps2);
|
||
|
|
||
|
thrown = false;
|
||
|
try{
|
||
|
// Missing a required parameter
|
||
|
var ps4 = dojo.string.substituteParams(tplb, "zero", "one");
|
||
|
}catch(e){
|
||
|
thrown = e; // exception must be thrown
|
||
|
}
|
||
|
jum.assertTrue("test24", thrown);
|
||
|
}
|
||
|
|
||
|
function test_string_isBlank(){
|
||
|
jum.assertTrue("test40", dojo.string.isBlank(' '));
|
||
|
jum.assertFalse("test50", dojo.string.isBlank(' x'));
|
||
|
jum.assertFalse("test60", dojo.string.isBlank('x '));
|
||
|
jum.assertTrue("test70", dojo.string.isBlank(''));
|
||
|
jum.assertTrue("test80", dojo.string.isBlank(null));
|
||
|
jum.assertTrue("test90", dojo.string.isBlank(new Array()));
|
||
|
}
|
||
|
|
||
|
function test_string_capitalize(){
|
||
|
jum.assertEquals("test100", 'This Is A Bunch Of Words', dojo.string.capitalize('this is a bunch of words'));
|
||
|
jum.assertEquals("test110", 'Word', dojo.string.capitalize('word'));
|
||
|
jum.assertEquals("test120", ' ', dojo.string.capitalize(' '));
|
||
|
jum.assertEquals("test130", '', dojo.string.capitalize(''));
|
||
|
jum.assertEquals("test140", '', dojo.string.capitalize(null));
|
||
|
jum.assertEquals("test150", '', dojo.string.capitalize(new Array()));
|
||
|
jum.assertEquals("test160", "This One Has Extra Space", dojo.string.capitalize("this one has extra space"));
|
||
|
}
|
||
|
|
||
|
function test_string_escape() {
|
||
|
// TODO: vary the tests a bit more :)
|
||
|
// xml | html
|
||
|
jum.assertEquals("test200", '<body bgcolor="#ffcc00">& becomes &amp; y'all!',
|
||
|
dojo.string.escape("xml", '<body bgcolor="#ffcc00">& becomes & y\'all!'));
|
||
|
jum.assertEquals("test201", '<body bgcolor="#ffcc00">& becomes &amp; y'all!',
|
||
|
dojo.string.escape("html", '<body bgcolor="#ffcc00">& becomes & y\'all!'));
|
||
|
jum.assertEquals("test202", '<body bgcolor="#ffcc00">& becomes &amp; y'all!',
|
||
|
dojo.string.escapeXml('<body bgcolor="#ffcc00">& becomes & y\'all!'));
|
||
|
// sql
|
||
|
jum.assertEquals("test210", "Hey y''all! How is it ''''going''''?",
|
||
|
dojo.string.escape("sql", "Hey y'all! How is it ''going''?"));
|
||
|
jum.assertEquals("test210", "Hey y''all! How is it ''''going''''?",
|
||
|
dojo.string.escapeSql("Hey y'all! How is it ''going''?"));
|
||
|
// regexp
|
||
|
jum.assertEquals("test220", "wrong \\\\ divide",
|
||
|
dojo.string.escape("regexp", "wrong \\ divide"));
|
||
|
jum.assertEquals("test221", "wrong \\\\ divide",
|
||
|
dojo.string.escape("regex", "wrong \\ divide"));
|
||
|
jum.assertEquals("test222", "wrong \\\\ divide",
|
||
|
dojo.string.escapeRegExp("wrong \\ divide"));
|
||
|
// js
|
||
|
jum.assertEquals("test230", "I have \\\"quotes\\\" of various \\'types\\'",
|
||
|
dojo.string.escape("javascript", "I have \"quotes\" of various 'types'"));
|
||
|
jum.assertEquals("test231", "I have \\\"quotes\\\" of various \\'types\\'",
|
||
|
dojo.string.escape("js", "I have \"quotes\" of various 'types'"));
|
||
|
jum.assertEquals("test232", "I have \\\"quotes\\\" of various \\'types\\'",
|
||
|
dojo.string.escapeJavaScript("I have \"quotes\" of various 'types'"));
|
||
|
}
|
||
|
|
||
|
function test_string_summary() {
|
||
|
jum.assertEquals("test300", "Every good boy do...",
|
||
|
dojo.string.summary("Every good boy does fine", 17));
|
||
|
jum.assertEquals("test300", "Hey Mr...",
|
||
|
dojo.string.summary("Hey Mr. Jones", 6));
|
||
|
jum.assertEquals("test300", "I like candy",
|
||
|
dojo.string.summary("I like candy", 30));
|
||
|
}
|
||
|
|
||
|
function test_normalizeNewlines() {
|
||
|
var t1 = "blahblahblah\r\nblahblahblah\rblahblhablhablhablh\nblahbalhablhablhab";
|
||
|
var r1 = "blahblahblah\nblahblahblah\nblahblhablhablhablh\nblahbalhablhablhab";
|
||
|
var r2 = "blahblahblah\rblahblahblah\rblahblhablhablhablh\rblahbalhablhablhab";
|
||
|
var r3 = "blahblahblah\r\nblahblahblah\r\nblahblhablhablhablh\r\nblahbalhablhablhab";
|
||
|
|
||
|
jum.assertEquals("test401", r1, dojo.string.normalizeNewlines(t1,'\n'));
|
||
|
jum.assertEquals("test402", r2, dojo.string.normalizeNewlines(t1,'\r'));
|
||
|
jum.assertEquals("test403", r3, dojo.string.normalizeNewlines(t1));
|
||
|
}
|