mirror of https://github.com/pelias/api.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.1 KiB
97 lines
2.1 KiB
9 years ago
|
var logging = require('../../../helper/logging');
|
||
|
|
||
|
module.exports.tests = {};
|
||
|
|
||
|
module.exports.tests.dnt = function(test) {
|
||
|
test('DNT=1 triggers DNT detection', function(t) {
|
||
|
var req = {
|
||
|
headers: {
|
||
|
DNT: '1'
|
||
|
}
|
||
|
};
|
||
|
|
||
|
t.ok(logging.isDNT(req), 'DNT detected');
|
||
|
t.end();
|
||
|
});
|
||
|
|
||
|
test('DNT=0 triggers DNT detection', function(t) {
|
||
|
// because this is common apparently, although the spec says to do the opposite
|
||
|
// see https://en.wikipedia.org/wiki/Do_Not_Track
|
||
|
var req = {
|
||
|
headers: {
|
||
|
DNT: '0'
|
||
|
}
|
||
|
};
|
||
|
|
||
|
t.ok(logging.isDNT(req), 'DNT detected');
|
||
|
t.end();
|
||
|
});
|
||
|
|
||
|
test('do_not_track header triggers DNT detection', function(t) {
|
||
|
// according to @riordan, some people use this too
|
||
|
var req = {
|
||
|
headers: {
|
||
|
do_not_track: '1'
|
||
|
}
|
||
|
};
|
||
|
|
||
|
t.ok(logging.isDNT(req), 'DNT detected');
|
||
|
t.end();
|
||
|
});
|
||
|
|
||
|
test('no DNT or do_not_track header does not trigger DNT detection', function(t) {
|
||
|
var req = {
|
||
|
headers: {
|
||
|
'Accept-Charset': 'utf-8'
|
||
|
}
|
||
|
};
|
||
|
|
||
|
t.notOk(logging.isDNT(req), 'DNT detected');
|
||
|
t.end();
|
||
|
});
|
||
|
};
|
||
|
|
||
|
module.exports.tests.field_removal = function(test) {
|
||
|
test('removes multiple fields that may have sensitive information', function(t) {
|
||
|
var query = {
|
||
|
text: 'possibly sensitive text',
|
||
|
'point.lat': 'possibly sensitive location info'
|
||
|
};
|
||
|
|
||
|
var cleaned_query = logging.removeFields(query);
|
||
|
|
||
|
var expected = {
|
||
|
text: '[removed]',
|
||
|
'point.lat': '[removed]'
|
||
|
};
|
||
|
|
||
|
t.deepEquals(cleaned_query, expected, 'multiple sensitive fields removed');
|
||
|
t.end();
|
||
|
});
|
||
|
|
||
|
test('non-sensitive fields untouched', function(t) {
|
||
|
var query = {
|
||
|
sources: 'wof,gn'
|
||
|
};
|
||
|
|
||
|
var cleaned_query = logging.removeFields(query);
|
||
|
|
||
|
var expected = {
|
||
|
sources: 'wof,gn'
|
||
|
};
|
||
|
|
||
|
t.deepEquals(cleaned_query, expected, 'non-sensitive fields are not touched');
|
||
|
t.end();
|
||
|
});
|
||
|
};
|
||
|
|
||
|
module.exports.all = function (tape, common) {
|
||
|
function test(name, testFunction) {
|
||
|
return tape('logging: ' + name, testFunction);
|
||
|
}
|
||
|
|
||
|
for( var testCase in module.exports.tests ){
|
||
|
module.exports.tests[testCase](test, common);
|
||
|
}
|
||
|
};
|