| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| |
| if (this.WScript && this.WScript.LoadScriptFile) { |
| this.WScript.LoadScriptFile('..\\UnitTestFramework\\UnitTestFramework.js'); |
| } |
| |
| var tests = [ |
| { |
| name: '"\\c" should be treated as "\\\\c" outside the character set', |
| assertions: [ |
| [/^\c$/, '\\c'], |
| ] |
| }, |
| { |
| name: '"\\c" should be treated as "c" inside the character set', |
| assertions: [ |
| [/[\c]/, 'c'], |
| [/[\c-]/, 'c'] |
| ] |
| }, |
| { |
| name: 'A non-letter character after "\\c" inside the character set should be the letter\'s mathematical value mod 32', |
| assertions: [ |
| [/[\c1]/, '\x11'] |
| ] |
| }, |
| { |
| name: 'A non-letter character after "\\c" outside the character set should not be treated differently', |
| assertions: [ |
| [/\c1/, '\\c1'] |
| ] |
| }, |
| { |
| name: '"]" should be allowed on its own', |
| assertions: [ |
| [/]/, ']'] |
| ] |
| } |
| ]; |
| |
| var testsForRunner = tests.map(function (test) { |
| return { |
| name: test.name, |
| body: function () { |
| test.assertions.forEach(function (assertion) { |
| var re = assertion[0]; |
| var inputString = assertion[1]; |
| assert.isTrue(re.test(inputString), re.source); |
| }); |
| } |
| } |
| }); |
| |
| testRunner.runTests(testsForRunner, { verbose: WScript.Arguments[0] != 'summary' }); |