|
|
|
@ -356,5 +356,65 @@ describe('meta', function () {
|
|
|
|
|
done(err);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should set proper Access-Control-Allow-Origin header', function (done) {
|
|
|
|
|
var jar = request.jar();
|
|
|
|
|
var oldValue = meta.config['access-control-allow-origin-regex'];
|
|
|
|
|
meta.config['access-control-allow-origin-regex'] = 'match\\.this\\..+\\.domain.com, mydomain\\.com';
|
|
|
|
|
request.get(nconf.get('url') + '/api/search?term=bug', {
|
|
|
|
|
form: {
|
|
|
|
|
},
|
|
|
|
|
json: true,
|
|
|
|
|
jar: jar,
|
|
|
|
|
headers: {
|
|
|
|
|
origin: 'match.this.anything123.domain.com',
|
|
|
|
|
},
|
|
|
|
|
}, function (err, response, body) {
|
|
|
|
|
assert.ifError(err);
|
|
|
|
|
assert.equal(response.headers['access-control-allow-origin'], 'match.this.anything123.domain.com');
|
|
|
|
|
meta.config['access-control-allow-origin-regex'] = oldValue;
|
|
|
|
|
done(err);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('Access-Control-Allow-Origin header should be empty if origin does not match', function (done) {
|
|
|
|
|
var jar = request.jar();
|
|
|
|
|
var oldValue = meta.config['access-control-allow-origin-regex'];
|
|
|
|
|
meta.config['access-control-allow-origin-regex'] = 'match\\.this\\..+\\.domain.com, mydomain\\.com';
|
|
|
|
|
request.get(nconf.get('url') + '/api/search?term=bug', {
|
|
|
|
|
form: {
|
|
|
|
|
},
|
|
|
|
|
json: true,
|
|
|
|
|
jar: jar,
|
|
|
|
|
headers: {
|
|
|
|
|
origin: 'notallowed.com',
|
|
|
|
|
},
|
|
|
|
|
}, function (err, response, body) {
|
|
|
|
|
assert.ifError(err);
|
|
|
|
|
assert.equal(response.headers['access-control-allow-origin'], undefined);
|
|
|
|
|
meta.config['access-control-allow-origin-regex'] = oldValue;
|
|
|
|
|
done(err);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should not error with invalid regexp', function (done) {
|
|
|
|
|
var jar = request.jar();
|
|
|
|
|
var oldValue = meta.config['access-control-allow-origin-regex'];
|
|
|
|
|
meta.config['access-control-allow-origin-regex'] = '[match\\.this\\..+\\.domain.com, mydomain\\.com';
|
|
|
|
|
request.get(nconf.get('url') + '/api/search?term=bug', {
|
|
|
|
|
form: {
|
|
|
|
|
},
|
|
|
|
|
json: true,
|
|
|
|
|
jar: jar,
|
|
|
|
|
headers: {
|
|
|
|
|
origin: 'mydomain.com',
|
|
|
|
|
},
|
|
|
|
|
}, function (err, response, body) {
|
|
|
|
|
assert.ifError(err);
|
|
|
|
|
assert.equal(response.headers['access-control-allow-origin'], 'mydomain.com');
|
|
|
|
|
meta.config['access-control-allow-origin-regex'] = oldValue;
|
|
|
|
|
done(err);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|