UNPKG

@qooxdoo/framework

Version:

The JS Framework for Coders

119 lines (99 loc) 5.95 kB
/* ************************************************************************ qooxdoo - the new era of web development http://qooxdoo.org Copyright: 2009 1&1 Internet AG, Germany, http://www.1und1.de License: MIT: https://opensource.org/licenses/MIT See the LICENSE file in the project's top-level directory for details. Authors: * Adrian Olaru (adrianolaru) ====================================================================== This class contains code based on the following work: * Cross-Browser Split http://stevenlevithan.com/demo/split.cfm Copyright: (c) 2006-2007, Steven Levithan <http://stevenlevithan.com> License: MIT: http://www.opensource.org/licenses/mit-license.php Authors: * Steven Levithan ************************************************************************ */ qx.Class.define("qx.test.util.StringSplit", { extend : qx.dev.unit.TestCase, members : { /** * @lint ignoreDeprecated(eval) */ testSplit : function() { var testCode = [ ["qx.util.StringSplit.split('')", [""]], ["qx.util.StringSplit.split('', /./)", [""]], ["qx.util.StringSplit.split('', /.?/)", []], ["qx.util.StringSplit.split('', /.??/)", []], ["qx.util.StringSplit.split('ab', /a*/)", ["", "b"]], ["qx.util.StringSplit.split('ab', /a*?/)", ["a", "b"]], ["qx.util.StringSplit.split('ab', /(?:ab)/)", ["", ""]], ["qx.util.StringSplit.split('ab', /(?:ab)*/)", ["", ""]], ["qx.util.StringSplit.split('ab', /(?:ab)*?/)", ["a", "b"]], ["qx.util.StringSplit.split('test', '')", ["t", "e", "s", "t"]], ["qx.util.StringSplit.split('test')", ["test"]], ["qx.util.StringSplit.split('111', 1)", ["", "", "", ""]], ["qx.util.StringSplit.split('test', /(?:)/, 2)", ["t", "e"]], ["qx.util.StringSplit.split('test', /(?:)/, -1)", ["t", "e", "s", "t"]], ["qx.util.StringSplit.split('test', /(?:)/, undefined)",["t", "e", "s", "t"]], ["qx.util.StringSplit.split('test', /(?:)/, null)", []], ["qx.util.StringSplit.split('test', /(?:)/, NaN)", []], ["qx.util.StringSplit.split('test', /(?:)/, true)", ["t"]], ["qx.util.StringSplit.split('test', /(?:)/, '2')", ["t", "e"]], ["qx.util.StringSplit.split('test', /(?:)/, 'two')", []], ["qx.util.StringSplit.split('a', /-/)", ["a"]], ["qx.util.StringSplit.split('a', /-?/)", ["a"]], ["qx.util.StringSplit.split('a', /-??/)", ["a"]], ["qx.util.StringSplit.split('a', /a/)", ["", ""]], ["qx.util.StringSplit.split('a', /a?/)", ["", ""]], ["qx.util.StringSplit.split('a', /a??/)", ["a"]], ["qx.util.StringSplit.split('ab', /-/)", ["ab"]], ["qx.util.StringSplit.split('ab', /-?/)", ["a", "b"]], ["qx.util.StringSplit.split('ab', /-??/)", ["a", "b"]], ["qx.util.StringSplit.split('a-b', /-/)", ["a", "b"]], ["qx.util.StringSplit.split('a-b', /-?/)", ["a", "b"]], ["qx.util.StringSplit.split('a-b', /-??/)", ["a", "-", "b"]], ["qx.util.StringSplit.split('a--b', /-/)", ["a", "", "b"]], ["qx.util.StringSplit.split('a--b', /-?/)", ["a", "", "b"]], ["qx.util.StringSplit.split('a--b', /-??/)", ["a", "-", "-", "b"]], ["qx.util.StringSplit.split('', /()()/)", []], ["qx.util.StringSplit.split('.', /()()/)", ["."]], ["qx.util.StringSplit.split('.', /(.?)(.?)/)", ["", ".", "", ""]], ["qx.util.StringSplit.split('.', /(.??)(.??)/)", ["."]], ["qx.util.StringSplit.split('.', /(.)?(.)?/)", ["", ".", undefined, ""]], ["qx.util.StringSplit.split('tesst', /(s)*/)", ["t", undefined, "e", "s", "t"]], ["qx.util.StringSplit.split('tesst', /(s)*?/)", ["t", undefined, "e", undefined, "s", undefined, "s", undefined, "t"]], ["qx.util.StringSplit.split('tesst', /(s*)/)", ["t", "", "e", "ss", "t"]], ["qx.util.StringSplit.split('tesst', /(s*?)/)", ["t", "", "e", "", "s", "", "s", "", "t"]], ["qx.util.StringSplit.split('tesst', /(?:s)*/)", ["t", "e", "t"]], ["qx.util.StringSplit.split('tesst', /(?=s+)/)", ["te", "s", "st"]], ["qx.util.StringSplit.split('test', 't')", ["", "es", ""]], ["qx.util.StringSplit.split('test', 'es')", ["t", "t"]], ["qx.util.StringSplit.split('test', /t/)", ["", "es", ""]], ["qx.util.StringSplit.split('test', /es/)", ["t", "t"]], ["qx.util.StringSplit.split('test', /(t)/)", ["", "t", "es", "t", ""]], ["qx.util.StringSplit.split('test', /(es)/)", ["t", "es", "t"]], ["qx.util.StringSplit.split('test', /(t)(e)(s)(t)/)", ["", "t", "e", "s", "t", ""]], ["qx.util.StringSplit.split('.', /(((.((.??)))))/)", ["", ".", ".", ".", "", "", ""]], ["qx.util.StringSplit.split('.', /(((((.??)))))/)", ["."]] ]; for (var i = 0; i < testCode.length; i++) { var result = eval(testCode[i][0]); this.assertArrayEquals(testCode[i][1], result); } var ecmaSampleRe = /<(\/)?([^<>]+)>/; this.assertArrayEquals(["A", undefined, "B", "bold", "/", "B", "and", undefined, "CODE", "coded", "/", "CODE", ""], qx.util.StringSplit.split('A<B>bold</B>and<CODE>coded</CODE>', ecmaSampleRe)); } } });