Files
iD/test/spec/core/context.js

127 lines
4.1 KiB
JavaScript

describe('iD.Context', function() {
var assets = {
'iD/img/loader.gif': '/assets/iD/img/loader-b66184b5c4afbccc25f.gif'
};
describe('#assetPath', function() {
it('sets and gets assetPath', function() {
var context = iD.Context(window);
expect(context.assetPath()).to.eql('');
context.assetPath('iD/');
expect(context.assetPath()).to.eql('iD/');
});
});
describe('#assetMap', function() {
it('sets and gets assetMap', function() {
var context = iD.Context(window);
expect(context.assetMap()).to.eql({});
context.assetMap(assets);
expect(context.assetMap()).to.eql(assets);
});
});
describe('#asset', function() {
var context;
beforeEach(function() {
context = iD.Context(window).assetPath('iD/').assetMap(assets);
});
it('looks first in assetMap', function() {
expect(context.asset('img/loader.gif')).to.eql('/assets/iD/img/loader-b66184b5c4afbccc25f.gif');
});
it('falls back to prepending assetPath', function() {
expect(context.asset('img/spinner.gif')).to.eql('iD/img/spinner.gif');
});
});
describe('#imagePath', function() {
var context;
beforeEach(function() {
context = iD.Context(window).assetPath('iD/').assetMap(assets);
});
it('looks first in assetMap', function() {
expect(context.imagePath('loader.gif')).to.eql('/assets/iD/img/loader-b66184b5c4afbccc25f.gif');
});
it('falls back to prepending assetPath', function() {
expect(context.imagePath('spinner.gif')).to.eql('iD/img/spinner.gif');
});
});
describe('#presets', function() {
it('supports custom presets', function() {
var presetsCollection = {
presets: {
'mines': {
geometry: ['point', 'area'],
name: 'Mining Concession',
tags: { 'concession': 'mining' }
},
'area': {
'name': 'Area',
'tags': {},
'geometry': ['area']
},
'point': {
'name': 'Point',
'tags': {},
'geometry': ['point']
},
'line': {
'name': 'Line',
'tags': {},
'geometry': ['line']
},
'vertex': {
'name': 'Other',
'tags': {},
'geometry': ['vertex']
}
},
fields: {
'name': {
'key': 'name',
'type': 'localized',
'label': 'Name',
'placeholder': 'Common name (if any)'
}
}
};
var context = iD.Context(window).presets(presetsCollection),
way = iD.Way({tags: {concession: 'mining', area: 'yes'}}),
graph = iD.Graph([way]);
expect(context.presets().match(way, graph).id).to.eql('mines');
});
});
describe('#debug', function() {
it('sets and gets debug flags', function() {
var context = iD.Context(window),
flags = {
tile: false,
collision: false,
imagery: false,
imperial: false,
driveLeft: false
};
expect(context.debugFlags()).to.eql(flags);
context.setDebug('tile', true);
expect(context.getDebug('tile')).to.be.true;
context.setDebug('collision');
expect(context.getDebug('collision')).to.be.true;
context.setDebug('tile', false);
expect(context.getDebug('tile')).to.be.false;
});
});
});