Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
66 lines
1.8 KiB
JavaScript
Executable file
66 lines
1.8 KiB
JavaScript
Executable file
'use strict';
|
|
|
|
/* global Icon, GridIconRenderer, MocksHelper */
|
|
/* global require, suite, test, assert, sinon */
|
|
|
|
require('/shared/elements/gaia_grid/js/grid_icon_renderer.js');
|
|
require('/shared/test/unit/mocks/mock_image.js');
|
|
|
|
require('/shared/js/homescreens/icon.js');
|
|
|
|
var mocksHelperForIcon = new MocksHelper([
|
|
'Image'
|
|
]).init();
|
|
|
|
suite('icon.js >', function() {
|
|
|
|
mocksHelperForIcon.attachTestHelpers();
|
|
|
|
test('it sets the background size when there is not an icon', function() {
|
|
var element = document.createElement('img');
|
|
var subject = new Icon(element);
|
|
subject.render();
|
|
|
|
var backgroundSize = element.style.backgroundSize;
|
|
assert.isTrue(backgroundSize.contains(subject.size / 10));
|
|
});
|
|
|
|
test('it sets the background image when there is an icon', function() {
|
|
var fakeBlob = new Blob([], {type: 'image/png'});
|
|
var fakeURL = URL.createObjectURL(fakeBlob);
|
|
sinon.stub(URL, 'createObjectURL').returns(fakeURL);
|
|
|
|
var realPromise = window.Promise;
|
|
window.Promise = function() {
|
|
return {
|
|
then: function(resolve) {
|
|
resolve(fakeBlob);
|
|
}
|
|
};
|
|
};
|
|
|
|
var imageSpy = this.sinon.spy(window, 'Image');
|
|
|
|
var element = document.createElement('img');
|
|
var subject = new Icon(element, 'http://myweb/xxx.png');
|
|
subject.render();
|
|
|
|
sinon.stub(GridIconRenderer.prototype, 'favicon', function() {
|
|
return {
|
|
then: function(resolve) {
|
|
resolve(fakeBlob);
|
|
}
|
|
};
|
|
});
|
|
|
|
imageSpy.lastCall.thisValue.triggerEvent('onload');
|
|
|
|
var backgroundImage = element.style.backgroundImage;
|
|
assert.equal(backgroundImage, 'url(\"' + fakeURL + '\")');
|
|
|
|
window.Promise = realPromise;
|
|
GridIconRenderer.prototype.favicon.restore();
|
|
URL.createObjectURL.restore();
|
|
});
|
|
|
|
});
|