regexp() behavior
Does not contains assertions from the assertions containers.
test
.value(test.regexp(new RegExp()).hasHeader)
.isUndefined()
.value(test.regexp(new RegExp()).hasMessage)
.isUndefined()
.value(test.regexp(new RegExp()).isInfinite)
.isUndefined()
;
Assert that the tested value is an instance of RegExp
.
test
.regexp(/foobar/)
.regexp(new RegExp('foo', 'i'))
.case('Test failure', function(){
test
.exception(function(){
test.regexp({});
})
.exception(function(){
test.regexp([]);
})
.exception(function(){
test.regexp('');
})
.exception(function(){
test.regexp();
})
.exception(function(){
test.regexp(undefined);
})
.exception(function(){
test.regexp(null);
})
.exception(function(){
test.regexp(true);
})
.exception(function(){
test.regexp(false);
})
.exception(function(){
test.regexp(0);
})
.exception(function(){
test.regexp(1);
})
.exception(function(){
test.regexp('[a-z]');
})
.exception(function(){
test.regexp('/foobar/');
})
.exception(function(){
test.regexp(RegExp);
})
.exception(function(){
test.regexp(new Date());
})
;
})
;
Assertions of regexp()
is(expected).
var regexp = new RegExp(/[a-z]/);
test
.regexp(regexp)
.is(new RegExp(/[a-z]/))
.exception(function(){
test.regexp(regexp).is(/A-Z/);
})
;
isNot(expected).
var regexp = new RegExp(/[a-z]/);
test
.regexp(regexp)
.isNot(new RegExp(/[A-Z]/))
.exception(function(){
test.regexp(regexp).isNot(/[a-z]/);
})
;
isIdenticalTo(expected).
var
regexp = new RegExp(/[a-z]/),
ref = regexp
;
test
.regexp(regexp)
.isIdenticalTo(ref)
.exception(function(){
test.regexp(regexp).isIdenticalTo(/[a-z]/);
})
;
isNotIdenticalTo(expected).
var regexp = new RegExp(/[a-z]/);
test
.regexp(regexp)
.isNotIdenticalTo(new RegExp(/[a-z]/))
.exception(function(){
test.regexp(regexp).isNotIdenticalTo(regexp);
})
;
isEqualTo(expected).
var
regexp = new RegExp(/[a-z]/),
ref = regexp
;
test
.regexp(regexp)
.isEqualTo(ref)
.exception(function(){
test.regexp(regexp).isEqualTo(/[a-z]/);
})
;
isNotEqualTo(expected).
var regexp = new RegExp(/[a-z]/);
test
.regexp(regexp)
.isNotEqualTo(new RegExp(/[a-z]/))
.exception(function(){
test.regexp(regexp).isNotEqualTo(regexp);
})
;
match(expected).
var
regexp = new RegExp(/[a-z]/),
ref = regexp
;
test
.regexp(regexp)
.match(function(reg){
return reg === ref;
})
.exception(function(){
test.regexp(regexp).match(function(actual){
return actual.source == '[A-Z]';
});
})
;
notMatch(expected).
var
regexp = new RegExp(/[a-z]/),
ref = regexp
;
test
.regexp(regexp)
.notMatch(function(actual){
var reg = new RegExp(/[a-z]/);
return reg === ref || reg === actual;
})
.exception(function(){
test.regexp(regexp).notMatch(function(actual){
return actual.source == '[a-z]';
});
})
;
isValid(expected).
var
regexp = new RegExp(/[a-z]/),
ref = regexp
;
test
.regexp(regexp)
.isValid(function(reg){
return reg === ref;
})
.exception(function(){
test.regexp(regexp).isValid(function(actual){
return actual.source == '[A-Z]';
});
})
;
isNotValid(expected).
var
regexp = new RegExp(/[a-z]/),
ref = regexp
;
test
.regexp(regexp)
.isNotValid(function(actual){
var reg = new RegExp(/[a-z]/);
return reg === ref || reg === actual;
})
.exception(function(){
test.regexp(regexp).isNotValid(function(actual){
return actual.source == '[a-z]';
});
})
;
isEnumerable(property).
var regexp = new RegExp(/[a-z]/);
// define an enumerable property
Object.defineProperty(regexp, 'myCustom', {
enumerable: true, value: 'static'
});
test
.regexp(regexp)
.isEnumerable('myCustom')
.exception(function(){
test.regexp(regexp).isEnumerable('ignoreCase');
})
;
isNotEnumerable(property).
var regexp = new RegExp(/[a-z]/);
// define an enumerable property
Object.defineProperty(regexp, 'myCustom', {
enumerable: true, value: 'static'
});
test
.regexp(regexp)
.isNotEnumerable('lastIndex')
.isNotEnumerable('ignoreCase')
.isNotEnumerable('multiline')
.exception(function(){
test.regexp(regexp).isNotEnumerable('myCustom');
})
;
isFrozen.
var regexp = new RegExp(/[a-z]/);
Object.freeze(regexp);
test
.regexp(regexp)
.isFrozen()
.exception(function(){
test.regexp(/[a-z]/).isFrozen();
})
;
isNotFrozen.
var
regexp = new RegExp(/[a-z]/),
regexpFrozen = new RegExp(/[a-z]/)
;
Object.freeze(regexpFrozen);
test
.regexp(regexp)
.isNotFrozen()
.exception(function(){
test.regexp(regexpFrozen).isNotFrozen();
})
;
hasProperty(property [, value]).
test
.regexp(/[a-z]/)
.hasProperty('lastIndex')
.hasProperty('constructor')
.exception(function(){
test.regexp(/[a-z]/).hasProperty('foo');
})
;
hasNotProperty(property [, value]).
test
.regexp(/[a-z]/)
.hasNotProperty('foobar')
.exception(function(){
test.regexp(/[a-z]/).hasNotProperty('lastIndex');
})
;
hasOwnProperty(property [, value]).
test
.regexp(/[a-z]/)
.hasOwnProperty('lastIndex')
.exception(function(){
test.regexp(/[a-z]/).hasOwnProperty('constructor');
})
;
hasNotOwnProperty(property [, value]).
test
.regexp(/[a-z]/)
.hasNotOwnProperty('constructor')
.exception(function(){
test.regexp(/[a-z]/).hasNotOwnProperty('lastIndex');
})
;
hasKey(key [,value ]).
test
.regexp(/[a-z]/)
.hasKey('lastIndex')
.hasKey('constructor')
.exception(function(){
test.regexp(/[a-z]/).hasKey('foo');
})
;
notHasKey(key [,value]).
test
.regexp(/[a-z]/)
.notHasKey('foobar')
.exception(function(){
test.regexp(/[a-z]/).notHasKey('lastIndex');
})
;