re2-latin1
Version:
Bindings for RE2: fast, safe alternative to backtracking regular expression engines.
66 lines (48 loc) • 1.32 kB
JavaScript
;
const unit = require("heya-unit");
const RE2 = require("../re2");
// tests
unit.add(module, [
function test_newUnicodeWarnOnce(t) {
"use strict";
let errorMessage = null;
const consoleError = console.error;
console.error = msg => (errorMessage = msg);
RE2.unicodeWarningLevel = "warnOnce";
let a = new RE2(".*");
eval(t.TEST("errorMessage"));
errorMessage = null;
a = new RE2(".?");
eval(t.TEST("errorMessage === null"));
RE2.unicodeWarningLevel = "warnOnce";
a = new RE2(".+");
eval(t.TEST("errorMessage"));
RE2.unicodeWarningLevel = "nothing";
console.error = consoleError;
},
function test_newUnicodeWarn(t) {
"use strict";
let errorMessage = null;
const consoleError = console.error;
console.error = msg => (errorMessage = msg);
RE2.unicodeWarningLevel = "warn";
let a = new RE2(".*");
eval(t.TEST("errorMessage"));
errorMessage = null;
a = new RE2(".?");
eval(t.TEST("errorMessage"));
RE2.unicodeWarningLevel = "nothing";
console.error = consoleError;
},
function test_newUnicodeWarn(t) {
"use strict";
RE2.unicodeWarningLevel = "throw";
try {
let a = new RE2(".");
t.test(false); // shouldn't be here
} catch(e) {
eval(t.TEST("e instanceof SyntaxError"));
}
RE2.unicodeWarningLevel = "nothing";
}
]);