summaryrefslogtreecommitdiff
path: root/bin/wiki/ImportarDesdeURL/node_modules/truncate/test.js
diff options
context:
space:
mode:
Diffstat (limited to 'bin/wiki/ImportarDesdeURL/node_modules/truncate/test.js')
-rw-r--r--bin/wiki/ImportarDesdeURL/node_modules/truncate/test.js104
1 files changed, 104 insertions, 0 deletions
diff --git a/bin/wiki/ImportarDesdeURL/node_modules/truncate/test.js b/bin/wiki/ImportarDesdeURL/node_modules/truncate/test.js
new file mode 100644
index 00000000..b6fcbf4e
--- /dev/null
+++ b/bin/wiki/ImportarDesdeURL/node_modules/truncate/test.js
@@ -0,0 +1,104 @@
+var truncate = require('./truncate');
+
+exports['should truncate text with given length'] = function (t) {
+ var input, expect, actual;
+
+ input = null;
+ actual = truncate(input, 3);
+ expect = '';
+ t.strictEqual(expect, actual);
+
+ input = '';
+ actual = truncate(input, 3);
+ expect = '';
+ t.strictEqual(expect, actual);
+
+ input = 'hello';
+ actual = truncate(input, 3);
+ expect = 'hel…';
+ t.strictEqual(expect, actual);
+
+ input = 'I am not sure what I am talking about';
+ actual = truncate(input, 10);
+ expect = 'I am not s…';
+ t.strictEqual(expect, actual);
+ t.done();
+};
+
+exports['should keep url safe'] = function (t) {
+ var input, expect, actual;
+ input = 'Hey http://distilleryimage8.s3.amazonaws.com/719bf2329ddd11e28c3122000aa80097_7.jpg';
+ actual = truncate(input, 4);
+ expect = 'Hey …';
+ t.strictEqual(expect, actual);
+
+ input = 'Hey http://distilleryimage8.s3.amazonaws.com/719bf2329ddd11e28c3122000aa80097_7.jpg';
+ actual = truncate(input, 5);
+ expect = 'Hey http://distilleryimage8.s3.amazonaws.com/719bf2329ddd11e28c3122000aa80097_7.jpg';
+ t.strictEqual(expect, actual);
+
+ input = 'http://successfulsoftware.net/2013/03/19/the-brutal-truth-about-marketing-your-software-product/ http://successfulsoftware.net/2013/03/19/the-brutal-truth-about-marketing-your-software-product2/';
+ actual = truncate(input, 96);
+ expect = 'http://successfulsoftware.net/2013/03/19/the-brutal-truth-about-marketing-your-software-product/…';
+ t.strictEqual(expect, actual);
+
+ input = 'http://successfulsoftware.net/2013/03/19/the-brutal-truth-about-marketing-your-software-product/ http://successfulsoftware.net/2013/03/19/the-brutal-truth-about-marketing-your-software-product2/';
+ actual = truncate(input, 100);
+ expect = 'http://successfulsoftware.net/2013/03/19/the-brutal-truth-about-marketing-your-software-product/ http://successfulsoftware.net/2013/03/19/the-brutal-truth-about-marketing-your-software-product2/';
+ t.strictEqual(expect, actual);
+
+ input = 'Hey http://distilleryimage8.s3.amazonaws.com/719bf2329ddd11e28c3122000aa80097_7.jpg';
+ actual = truncate(input, 5);
+ expect = 'Hey http://distilleryimage8.s3.amazonaws.com/719bf2329ddd11e28c3122000aa80097_7.jpg';
+ t.strictEqual(expect, actual);
+
+ input = 'Hey http://hehe.com plop http://plop.com';
+ actual = truncate(input, 6);
+ expect = 'Hey http://hehe.com…';
+ t.strictEqual(expect, actual);
+
+ input = 'Hey http://hehe.com plop http://plop.com';
+ actual = truncate(input, 22);
+ expect = 'Hey http://hehe.com pl…';
+ t.strictEqual(expect, actual);
+
+ input = 'Hey http://hehe.com plop http://plop.com';
+ actual = truncate(input, 25);
+ expect = 'Hey http://hehe.com plop …';
+ t.strictEqual(expect, actual);
+
+ input = 'Hey http://hehe.com plop http://plop.com';
+ actual = truncate(input, 26);
+ t.strictEqual(input, actual);
+
+ t.done();
+};
+
+exports['Not vulnerable to REDOS'] = function (t) {
+
+ var prefix, pump, suffix, nPumps, attackString; // for evil input
+ var input, actual, expect; // input to truncate()
+ var before, elapsed; // timing
+
+ /* URL_REGEX */
+ prefix = '-@w--w--';
+ pump = 'ww--';
+ suffix = '';
+ nPumps = 20000;
+
+ attackString = prefix;
+ for (var i = 0; i < nPumps; i++) {
+ attackString += pump;
+ }
+ attackString += suffix;
+
+ before = process.hrtime();
+ input = 'Hey ' + attackString;
+ actual = truncate(input, 4);
+ expect = 'Hey …';
+ t.strictEqual(expect, actual);
+ elapsed = process.hrtime(before);
+
+ t.equals(elapsed[0], 0); // Should take < 1 second
+ t.done();
+};