143 lines
4.7 KiB
JavaScript
143 lines
4.7 KiB
JavaScript
defineSuite([
|
|
'Core/PinBuilder',
|
|
'Core/buildModuleUrl',
|
|
'Core/Color',
|
|
'ThirdParty/when'
|
|
], function(
|
|
PinBuilder,
|
|
buildModuleUrl,
|
|
Color,
|
|
when) {
|
|
'use strict';
|
|
|
|
function getPinColor(canvas) {
|
|
var context2D = canvas.getContext('2d');
|
|
var data = context2D.getImageData(64, 5, 1, 1).data;
|
|
return Color.fromBytes(data[0], data[1], data[2]);
|
|
}
|
|
|
|
function getIconColor(canvas) {
|
|
var context2D = canvas.getContext('2d');
|
|
var data = context2D.getImageData(64, 32, 1, 1).data;
|
|
return Color.fromBytes(data[0], data[1], data[2]);
|
|
}
|
|
|
|
it('fromColor creates icon of correct color', function() {
|
|
var builder = new PinBuilder();
|
|
var canvas = builder.fromColor(Color.GREEN, 128);
|
|
expect(getPinColor(canvas)).toEqual(Color.GREEN);
|
|
});
|
|
|
|
it('fromText creates icon of correct color with symbol', function() {
|
|
var builder = new PinBuilder();
|
|
//Solid square icon
|
|
var canvas = builder.fromText('\u25A0', Color.BLUE, 128);
|
|
expect(getPinColor(canvas)).toEqual(Color.BLUE);
|
|
expect(getIconColor(canvas)).toEqual(Color.WHITE);
|
|
});
|
|
|
|
it('fromUrl creates icon of correct color with symbol', function() {
|
|
var builder = new PinBuilder();
|
|
|
|
//Solid square icon
|
|
return when(builder.fromUrl(buildModuleUrl('Assets/Textures/maki/square.png'), Color.RED, 128), function(canvas) {
|
|
expect(getPinColor(canvas)).toEqual(Color.RED);
|
|
expect(getIconColor(canvas)).toEqual(Color.WHITE);
|
|
});
|
|
});
|
|
|
|
it('fromMakiIconId creates icon of correct color with symbol', function() {
|
|
var builder = new PinBuilder();
|
|
|
|
//Solid square icon
|
|
return when(builder.fromMakiIconId('square', Color.YELLOW, 128), function(canvas) {
|
|
expect(getPinColor(canvas)).toEqual(Color.YELLOW);
|
|
expect(getIconColor(canvas)).toEqual(Color.WHITE);
|
|
});
|
|
});
|
|
|
|
it('caches and returns existing canvas', function() {
|
|
var builder = new PinBuilder();
|
|
var canvas = builder.fromColor(Color.GREEN, 128);
|
|
var canvas2 = builder.fromColor(Color.GREEN, 128);
|
|
expect(canvas).toBe(canvas2);
|
|
});
|
|
|
|
it('fromColor throws without color', function() {
|
|
var builder = new PinBuilder();
|
|
expect(function() {
|
|
builder.fromColor(undefined, 128);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it('fromColor throws without size', function() {
|
|
var builder = new PinBuilder();
|
|
expect(function() {
|
|
builder.fromColor(Color.RED, undefined);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it('fromText throws without text', function() {
|
|
var builder = new PinBuilder();
|
|
expect(function() {
|
|
builder.fromText(undefined, Color.RED, 128);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it('fromText throws without color', function() {
|
|
var builder = new PinBuilder();
|
|
expect(function() {
|
|
builder.fromText('text', undefined, 128);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it('fromText throws without size', function() {
|
|
var builder = new PinBuilder();
|
|
expect(function() {
|
|
builder.fromText('text', Color.RED, undefined);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it('fromUrl throws without url', function() {
|
|
var builder = new PinBuilder();
|
|
expect(function() {
|
|
builder.fromUrl(undefined, Color.RED, 128);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it('fromUrl throws without color', function() {
|
|
var builder = new PinBuilder();
|
|
expect(function() {
|
|
builder.fromUrl('http://someUrl.invalid/some.png', undefined, 128);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it('fromUrl throws without size', function() {
|
|
var builder = new PinBuilder();
|
|
expect(function() {
|
|
builder.fromUrl('http://someUrl.invalid/some.png', Color.RED, undefined);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it('fromMakiIconId throws without id', function() {
|
|
var builder = new PinBuilder();
|
|
expect(function() {
|
|
builder.fromMakiIconId(undefined, Color.RED, 128);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it('fromMakiIconId throws without color', function() {
|
|
var builder = new PinBuilder();
|
|
expect(function() {
|
|
builder.fromMakiIconId('hospital', undefined, 128);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it('fromMakiIconId throws without size', function() {
|
|
var builder = new PinBuilder();
|
|
expect(function() {
|
|
builder.fromMakiIconId('hospital', Color.RED, undefined);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
});
|