//------------------------------------------------------------------------------------------------------- | |
// 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' }); |