2015-04-01 23:08:15 +00:00
|
|
|
/*global define,describe,it,expect,beforeEach,jasmine*/
|
|
|
|
|
|
|
|
define(
|
|
|
|
["../../src/policies/EditableViewPolicy"],
|
|
|
|
function (EditableViewPolicy) {
|
|
|
|
"use strict";
|
|
|
|
|
|
|
|
describe("The editable view policy", function () {
|
2015-04-01 23:21:03 +00:00
|
|
|
var testView,
|
|
|
|
mockDomainObject,
|
|
|
|
testMode,
|
|
|
|
policy;
|
|
|
|
|
|
|
|
beforeEach(function () {
|
|
|
|
testMode = true; // Act as if we're in Edit mode by default
|
|
|
|
mockDomainObject = jasmine.createSpyObj(
|
|
|
|
'domainObject',
|
|
|
|
['hasCapability']
|
|
|
|
);
|
|
|
|
mockDomainObject.hasCapability.andCallFake(function (c) {
|
|
|
|
return (c === 'editor') && testMode;
|
|
|
|
});
|
|
|
|
|
|
|
|
policy = new EditableViewPolicy();
|
|
|
|
});
|
|
|
|
|
2015-04-01 23:08:15 +00:00
|
|
|
it("disallows views in edit mode that are flagged as non-editable", function () {
|
2015-04-01 23:21:03 +00:00
|
|
|
expect(policy.allow({ editable: false }, mockDomainObject))
|
|
|
|
.toBeFalsy();
|
|
|
|
});
|
2015-04-01 23:08:15 +00:00
|
|
|
|
2015-04-01 23:21:03 +00:00
|
|
|
it("allows views in edit mode that are flagged as editable", function () {
|
|
|
|
expect(policy.allow({ editable: true }, mockDomainObject))
|
|
|
|
.toBeTruthy();
|
2015-04-01 23:08:15 +00:00
|
|
|
});
|
2015-04-01 23:21:03 +00:00
|
|
|
|
2015-04-01 23:08:15 +00:00
|
|
|
it("allows any view outside of edit mode", function () {
|
2015-04-01 23:21:03 +00:00
|
|
|
var testViews = [
|
|
|
|
{ editable: false },
|
|
|
|
{ editable: true },
|
|
|
|
{ someKey: "some value" }
|
|
|
|
];
|
|
|
|
testMode = false; // Act as if we're not in Edit mode
|
2015-04-01 23:08:15 +00:00
|
|
|
|
2015-04-01 23:21:03 +00:00
|
|
|
testViews.forEach(function (testView) {
|
|
|
|
expect(policy.allow(testView, mockDomainObject)).toBeTruthy();
|
|
|
|
});
|
2015-04-01 23:08:15 +00:00
|
|
|
});
|
|
|
|
|
2015-04-01 23:21:03 +00:00
|
|
|
it("treats views with no defined 'editable' property as editable", function () {
|
|
|
|
expect(policy.allow({ someKey: "some value" }, mockDomainObject))
|
|
|
|
.toBeTruthy();
|
2015-04-01 23:08:15 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
);
|