mirror of
https://github.com/nasa/openmct.git
synced 2025-02-18 16:40:58 +00:00
[Imagery] Test mct-background-image
WTD-1170.
This commit is contained in:
parent
c41db4f22b
commit
ba88281bd0
@ -27,7 +27,74 @@ define(
|
||||
"use strict";
|
||||
|
||||
describe("The mct-background-image directive", function () {
|
||||
var mockDocument,
|
||||
mockScope,
|
||||
mockElement,
|
||||
testImage,
|
||||
directive;
|
||||
|
||||
beforeEach(function () {
|
||||
mockDocument = [
|
||||
jasmine.createSpyObj('document', ['createElement'])
|
||||
];
|
||||
mockScope = jasmine.createSpyObj('scope', ['$watch']);
|
||||
mockElement = jasmine.createSpyObj('element', [ 'css' ]);
|
||||
testImage = {};
|
||||
|
||||
mockDocument[0].createElement.andReturn(testImage);
|
||||
|
||||
directive = new MCTBackgroundImage(mockDocument);
|
||||
});
|
||||
|
||||
it("is applicable as an attribute", function () {
|
||||
expect(directive.restrict).toEqual("A");
|
||||
});
|
||||
|
||||
it("two-way-binds its own value", function () {
|
||||
expect(directive.scope.mctBackgroundImage).toEqual("=");
|
||||
});
|
||||
|
||||
it("watches for changes to the URL", function () {
|
||||
directive.link(mockScope, mockElement, {});
|
||||
expect(mockScope.$watch).toHaveBeenCalledWith(
|
||||
'mctBackgroundImage',
|
||||
jasmine.any(Function)
|
||||
);
|
||||
});
|
||||
|
||||
it("updates images in-order, even when they load out-of-order", function () {
|
||||
var firstOnload;
|
||||
|
||||
directive.link(mockScope, mockElement);
|
||||
|
||||
mockScope.$watch.mostRecentCall.args[1]("some/url/0");
|
||||
firstOnload = testImage.onload;
|
||||
|
||||
mockScope.$watch.mostRecentCall.args[1]("some/url/1");
|
||||
|
||||
// Resolve in a different order
|
||||
testImage.onload();
|
||||
firstOnload();
|
||||
|
||||
// Should still have taken the more recent value
|
||||
expect(mockElement.css.mostRecentCall.args).toEqual([
|
||||
"background-image",
|
||||
"url('some/url/1')"
|
||||
]);
|
||||
});
|
||||
|
||||
it("clears the background image when undefined is passed in", function () {
|
||||
directive.link(mockScope, mockElement);
|
||||
|
||||
mockScope.$watch.mostRecentCall.args[1]("some/url/0");
|
||||
testImage.onload();
|
||||
mockScope.$watch.mostRecentCall.args[1](undefined);
|
||||
|
||||
expect(mockElement.css.mostRecentCall.args).toEqual([
|
||||
"background-image",
|
||||
undefined
|
||||
]);
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
||||
|
Loading…
x
Reference in New Issue
Block a user