@dasch-swiss/dsp-js
Version:
JavaScript library that handles API requests to Knora
406 lines • 31.3 kB
JavaScript
import { MockAjaxCall } from "../../../../test/mockajaxcall";
import { KnoraApiConfig } from "../../../knora-api-config";
import { KnoraApiConnection } from "../../../knora-api-connection";
import { CreateAdministrativePermission } from "../../../models/admin/create-administrative-permission";
import { CreateDefaultObjectAccessPermission } from "../../../models/admin/create-default-object-access-permission";
import { CreatePermission } from "../../../models/admin/create-permission";
import { Permission } from "../../../models/admin/permission";
import { UpdateAdministrativePermission } from "../../../models/admin/update-administrative-permission";
import { UpdateAdministrativePermissionGroup } from "../../../models/admin/update-administrative-permission-group";
import { UpdateDefaultObjectAccessPermission } from "../../../models/admin/update-default-object-access-permission";
import { UpdateDefaultObjectAccessPermissionGroup } from "../../../models/admin/update-default-object-access-permission-group";
import { UpdateDefaultObjectAccessPermissionProperty } from "../../../models/admin/update-default-object-access-permission-property";
import { UpdateDefaultObjectAccessPermissionResourceClass } from "../../../models/admin/update-default-object-access-permission-resource-class";
import { UpdatePermission } from "../../../models/admin/update-permission";
describe("PermissionsEndpoint", function () {
var config = new KnoraApiConfig("http", "localhost", 3333, undefined, undefined, true);
var knoraApiConnection = new KnoraApiConnection(config);
beforeEach(function () {
jasmine.Ajax.install();
});
afterEach(function () {
jasmine.Ajax.uninstall();
});
describe("Method getProjectPermissions", function () {
it("should return all permissions", function (done) {
var projectIri = "http://rdfh.ch/projects/00FF";
knoraApiConnection.admin.permissionsEndpoint.getProjectPermissions(projectIri).subscribe(function (response) {
expect(response.body.permissions.length).toEqual(6);
expect(response.body.permissions[0].id).toEqual("http://rdfh.ch/permissions/00FF/PNTn7ZvsS_OabbexCxr_Eg");
expect(response.body.permissions[0].permissionType).toEqual("http://www.knora.org/ontology/knora-admin#DefaultObjectAccessPermission");
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var projectPermissionsResponse = require("../../../../test/data/api/admin/permissions/get-permissions-for-project-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(projectPermissionsResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF");
expect(request.method).toEqual("GET");
});
});
describe("Method getAdministrativePermissions", function () {
it("should return all administrative permissions", function (done) {
var projectIri = "http://rdfh.ch/projects/00FF";
knoraApiConnection.admin.permissionsEndpoint.getAdministrativePermissions(projectIri).subscribe(function (response) {
expect(response.body.administrative_permissions.length).toEqual(3);
expect(response.body.administrative_permissions[0].hasPermissions.length).toEqual(1);
var permissions = new Permission();
permissions.name = "ProjectResourceCreateAllPermission";
expect(response.body.administrative_permissions[0].hasPermissions[0]).toEqual(permissions);
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var permissionsResponse = require("../../../../test/data/api/admin/permissions/get-administrative-permissions-for-project-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(permissionsResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/ap/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF");
expect(request.method).toEqual("GET");
});
});
describe("Method getAdministrativePermission", function () {
it("should return an administrative permission", function (done) {
var projectIri = "http://rdfh.ch/projects/00FF";
var groupIri = "http://www.knora.org/ontology/knora-admin#ProjectMember";
knoraApiConnection.admin.permissionsEndpoint.getAdministrativePermission(projectIri, groupIri).subscribe(function (response) {
expect(response.body.administrative_permission.hasPermissions.length).toEqual(1);
var permissions = new Permission();
permissions.name = "ProjectResourceCreateAllPermission";
expect(response.body.administrative_permission.hasPermissions[0]).toEqual(permissions);
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var permissionResponse = require("../../../../test/data/api/admin/permissions/get-administrative-permission-for-project-group-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(permissionResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/ap/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF/http%3A%2F%2Fwww.knora.org%2Fontology%2Fknora-admin%23ProjectMember");
expect(request.method).toEqual("GET");
});
});
describe("Method createAdministrativePermission", function () {
it("should create an administrative permission", function (done) {
var permission = new CreatePermission();
permission.name = "ProjectAdminGroupAllPermission";
var groupIri = "http://rdfh.ch/groups/0001/thing-searcher";
var projectIri = "http://rdfh.ch/projects/0001";
var adminPermission = new CreateAdministrativePermission();
adminPermission.forGroup = groupIri;
adminPermission.forProject = projectIri;
adminPermission.hasPermissions = [permission];
knoraApiConnection.admin.permissionsEndpoint.createAdministrativePermission(adminPermission).subscribe(function (response) {
// TODO: remove this bad hack once test data is stable
expect(response.body.administrative_permission.id).toBeDefined(); //.toEqual("http://rdfh.ch/permissions/0001/cYBzgOcHSR6kNocj5osOJA");
expect(response.body.administrative_permission.forGroup).toEqual("http://rdfh.ch/groups/0001/thing-searcher");
expect(response.body.administrative_permission.forProject).toEqual("http://rdfh.ch/projects/0001");
expect(response.body.administrative_permission.hasPermissions.length).toEqual(1);
expect(response.body.administrative_permission.hasPermissions[0].name).toEqual("ProjectAdminGroupAllPermission");
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var permissionCreationResponse = require("../../../../test/data/api/admin/permissions/create-administrative-permission-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(permissionCreationResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/ap");
expect(request.method).toEqual("POST");
var payload = require("../../../../test/data/api/admin/permissions/create-administrative-permission-request.json");
expect(request.data()).toEqual(payload);
});
it("should attempt to create an administrative permission without a project property", function () {
var permission = new CreatePermission();
permission.name = "ProjectAdminGroupAllPermission";
var groupIri = "http://rdfh.ch/groups/0001/thing-searcher";
var adminPermission = new CreateAdministrativePermission();
adminPermission.forGroup = groupIri;
adminPermission.hasPermissions = [permission];
expect(function () {
return knoraApiConnection.admin.permissionsEndpoint.createAdministrativePermission(adminPermission);
}).toThrow(new Error("Group and project are required when creating a new administrative permission."));
});
it("should attempt to create an administrative permission without a group property", function () {
var permission = new CreatePermission();
permission.name = "ProjectAdminGroupAllPermission";
var projectIri = "http://rdfh.ch/projects/0001";
var adminPermission = new CreateAdministrativePermission();
adminPermission.forProject = projectIri;
adminPermission.hasPermissions = [permission];
expect(function () {
return knoraApiConnection.admin.permissionsEndpoint.createAdministrativePermission(adminPermission);
}).toThrow(new Error("Group and project are required when creating a new administrative permission."));
});
it("should create an administrative permission with a custom Iri", function (done) {
var permission = new CreatePermission();
permission.name = "ProjectAdminGroupAllPermission";
permission.permissionCode = null;
permission.additionalInformation = null;
var groupIri = "http://rdfh.ch/groups/0001/thing-searcher";
var projectIri = "http://rdfh.ch/projects/0001";
var adminPermission = new CreateAdministrativePermission();
adminPermission.forGroup = groupIri;
adminPermission.forProject = projectIri;
adminPermission.id = "http://rdfh.ch/permissions/0001/u0PRnDl3kgcbrehZnRlEfA";
adminPermission.hasPermissions = [permission];
knoraApiConnection.admin.permissionsEndpoint.createAdministrativePermission(adminPermission).subscribe(function (response) {
expect(response.body.administrative_permission.id).toEqual("http://rdfh.ch/permissions/0001/u0PRnDl3kgcbrehZnRlEfA");
expect(response.body.administrative_permission.forGroup).toEqual("http://rdfh.ch/groups/0001/thing-searcher");
expect(response.body.administrative_permission.forProject).toEqual("http://rdfh.ch/projects/0001");
expect(response.body.administrative_permission.hasPermissions.length).toEqual(1);
expect(response.body.administrative_permission.hasPermissions[0].name).toEqual("ProjectAdminGroupAllPermission");
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var permissionCreationResponse = require("../../../../test/data/api/admin/permissions/create-administrative-permission-withCustomIRI-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(permissionCreationResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/ap");
expect(request.method).toEqual("POST");
var payload = require("../../../../test/data/api/admin/permissions/create-administrative-permission-withCustomIRI-request.json");
expect(request.data()).toEqual(payload);
});
});
describe("Method updateAdministrativePermission", function () {
it("should update an administrative permission", function (done) {
var updateAdminPerm = new UpdateAdministrativePermission();
var perm = new UpdatePermission();
perm.additionalInformation = null;
perm.name = "ProjectAdminGroupAllPermission";
perm.permissionCode = null;
updateAdminPerm.hasPermissions = [perm];
knoraApiConnection.admin.permissionsEndpoint.updateAdministrativePermission("http://rdfh.ch/permissions/00FF/buxHAlz8SHuu0FuiLN_tKQ", updateAdminPerm).subscribe(function (res) {
expect(res.body.administrative_permission.id).toEqual("http://rdfh.ch/permissions/00FF/buxHAlz8SHuu0FuiLN_tKQ");
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var permissionUpdateResponse = require("../../../../test/data/api/admin/permissions/update-administrative-permission-hasPermissions-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(permissionUpdateResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/http%3A%2F%2Frdfh.ch%2Fpermissions%2F00FF%2FbuxHAlz8SHuu0FuiLN_tKQ/hasPermissions");
expect(request.method).toEqual("PUT");
var payload = require("../../../../test/data/api/admin/permissions/update-administrative-permission-hasPermissions-request.json");
expect(request.data()).toEqual(payload);
});
});
describe("Method updateAdministrativePermissionGroup", function () {
it("should update an administrative permission's group", function (done) {
var updateAdminPermGroup = new UpdateAdministrativePermissionGroup();
updateAdminPermGroup.forGroup = "http://rdfh.ch/groups/00FF/images-reviewer";
knoraApiConnection.admin.permissionsEndpoint.updateAdministrativePermissionGroup("http://rdfh.ch/permissions/00FF/buxHAlz8SHuu0FuiLN_tKQ", updateAdminPermGroup).subscribe(function (res) {
expect(res.body.administrative_permission.id).toEqual("http://rdfh.ch/permissions/00FF/buxHAlz8SHuu0FuiLN_tKQ");
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var permissionUpdateResponse = require("../../../../test/data/api/admin/permissions/update-administrative-permission-forGroup-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(permissionUpdateResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/http%3A%2F%2Frdfh.ch%2Fpermissions%2F00FF%2FbuxHAlz8SHuu0FuiLN_tKQ/group");
expect(request.method).toEqual("PUT");
var payload = require("../../../../test/data/api/admin/permissions/update-administrative-permission-forGroup-request.json");
expect(request.data()).toEqual(payload);
});
});
describe("Method getDefaultObjectAccessPermissions", function () {
it("should return all default project access permissions", function (done) {
var projectIri = "http://rdfh.ch/projects/00FF";
knoraApiConnection.admin.permissionsEndpoint.getDefaultObjectAccessPermissions(projectIri).subscribe(function (response) {
expect(response.body.defaultObjectAccessPermissions.length).toBe(3);
expect(response.body.defaultObjectAccessPermissions[0].forProject).toBe("http://rdfh.ch/projects/00FF");
expect(response.body.defaultObjectAccessPermissions[0].forGroup).toBe("http://www.knora.org/ontology/knora-admin#KnownUser");
expect(response.body.defaultObjectAccessPermissions[0].id).toBe("http://rdfh.ch/permissions/00FF/9XTMKHm_ScmwtgDXbF6Onw");
expect(response.body.defaultObjectAccessPermissions[0].hasPermissions.length).toBe(3);
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var defaultObjectAccessPermissionsResponse = require("../../../../test/data/api/admin/permissions/get-defaultObjectAccess-permissions-for-project-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(defaultObjectAccessPermissionsResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/doap/http%3A%2F%2Frdfh.ch%2Fprojects%2F00FF");
expect(request.method).toEqual("GET");
});
});
describe("Method createDefaultObjectAccessPermission", function () {
it("should create a default object access permission", function (done) {
var permission = new CreatePermission();
permission.name = "D";
permission.permissionCode = 7;
permission.additionalInformation = "http://www.knora.org/ontology/knora-admin#ProjectMember";
var groupIri = "http://rdfh.ch/groups/0001/thing-searcher";
var projectIri = "http://rdfh.ch/projects/0001";
var defObjAccPermission = new CreateDefaultObjectAccessPermission();
defObjAccPermission.forGroup = groupIri;
defObjAccPermission.forProject = projectIri;
defObjAccPermission.hasPermissions = [permission];
knoraApiConnection.admin.permissionsEndpoint.createDefaultObjectAccessPermission(defObjAccPermission).subscribe(function (response) {
expect(response.body.defaultObjectAccessPermission.forGroup).toEqual("http://rdfh.ch/groups/0001/thing-searcher");
expect(response.body.defaultObjectAccessPermission.forProject).toEqual("http://rdfh.ch/projects/0001");
// TODO: remove this bad hack once test data is stable
expect(response.body.defaultObjectAccessPermission.id).toBeDefined(); //.toEqual("http://rdfh.ch/permissions/0001/7fKkJ8DKTdew5x0139W78g");
expect(response.body.defaultObjectAccessPermission.hasPermissions.length).toBe(1);
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var permissionCreationResponse = require("../../../../test/data/api/admin/permissions/create-defaultObjectAccess-permission-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(permissionCreationResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/doap");
expect(request.method).toEqual("POST");
var payload = require("../../../../test/data/api/admin/permissions/create-defaultObjectAccess-permission-request.json");
expect(request.data()).toEqual(payload);
});
it("should attempt to create a default object access permission without a project property", function () {
var permission = new CreatePermission();
permission.name = "D";
permission.permissionCode = 7;
permission.additionalInformation = "http://www.knora.org/ontology/knora-admin#ProjectMember";
var groupIri = "http://rdfh.ch/groups/0001/thing-searcher";
var defObjAccPermission = new CreateDefaultObjectAccessPermission();
defObjAccPermission.forGroup = groupIri;
defObjAccPermission.hasPermissions = [permission];
expect(function () {
return knoraApiConnection.admin.permissionsEndpoint.createDefaultObjectAccessPermission(defObjAccPermission);
}).toThrow(new Error("Project is required when creating a new default object access permission."));
});
it("should attempt to create a default object access permission submitting a group and a property", function () {
var permission = new CreatePermission();
permission.name = "D";
permission.permissionCode = 7;
permission.additionalInformation = "http://www.knora.org/ontology/knora-admin#ProjectMember";
var groupIri = "http://rdfh.ch/groups/0001/thing-searcher";
var projectIri = "http://rdfh.ch/projects/0001";
var defObjAccPermission = new CreateDefaultObjectAccessPermission();
defObjAccPermission.forGroup = groupIri;
defObjAccPermission.forProject = projectIri;
defObjAccPermission.forProperty = "myProp";
defObjAccPermission.hasPermissions = [permission];
expect(function () {
return knoraApiConnection.admin.permissionsEndpoint.createDefaultObjectAccessPermission(defObjAccPermission);
}).toThrow(new Error("Invalid combination of properties for creation of new default object access permission."));
});
it("should attempt to create a default object access permission submitting a group and a resource class", function () {
var permission = new CreatePermission();
permission.name = "D";
permission.permissionCode = 7;
permission.additionalInformation = "http://www.knora.org/ontology/knora-admin#ProjectMember";
var groupIri = "http://rdfh.ch/groups/0001/thing-searcher";
var projectIri = "http://rdfh.ch/projects/0001";
var defObjAccPermission = new CreateDefaultObjectAccessPermission();
defObjAccPermission.forGroup = groupIri;
defObjAccPermission.forProject = projectIri;
defObjAccPermission.forResourceClass = "myResclass";
defObjAccPermission.hasPermissions = [permission];
expect(function () {
return knoraApiConnection.admin.permissionsEndpoint.createDefaultObjectAccessPermission(defObjAccPermission);
}).toThrow(new Error("Invalid combination of properties for creation of new default object access permission."));
});
it("should create an default object access permission with a custom Iri", function (done) {
var permission = new CreatePermission();
permission.name = "D";
permission.permissionCode = 7;
permission.additionalInformation = "http://www.knora.org/ontology/knora-admin#ProjectMember";
var projectIri = "http://rdfh.ch/projects/00FF";
var defObjAccPermission = new CreateDefaultObjectAccessPermission();
defObjAccPermission.forProject = projectIri;
defObjAccPermission.forResourceClass = "http://www.knora.org/ontology/00FF/images#bild";
defObjAccPermission.id = "http://rdfh.ch/permissions/00FF/zTOK3HlWTLGgTO8ZWVnotg";
defObjAccPermission.hasPermissions = [permission];
knoraApiConnection.admin.permissionsEndpoint.createDefaultObjectAccessPermission(defObjAccPermission).subscribe(function (response) {
expect(response.body.defaultObjectAccessPermission.forProject).toEqual("http://rdfh.ch/projects/00FF");
expect(response.body.defaultObjectAccessPermission.id).toEqual("http://rdfh.ch/permissions/00FF/zTOK3HlWTLGgTO8ZWVnotg");
expect(response.body.defaultObjectAccessPermission.hasPermissions.length).toBe(1);
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var permissionCreationResponse = require("../../../../test/data/api/admin/permissions/create-defaultObjectAccess-permission-withCustomIRI-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(permissionCreationResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/doap");
expect(request.method).toEqual("POST");
var payload = require("../../../../test/data/api/admin/permissions/create-defaultObjectAccess-permission-withCustomIRI-request.json");
expect(request.data()).toEqual(payload);
});
});
describe("Method updateDefaultObjectAccessPermission", function () {
it("should update a default object access permission", function (done) {
var updateDefaultObjectAccessPermission = new UpdateDefaultObjectAccessPermission();
var perm = new UpdatePermission();
perm.additionalInformation = "http://www.knora.org/ontology/knora-admin#ProjectMember";
perm.name = "D";
perm.permissionCode = 7;
updateDefaultObjectAccessPermission.hasPermissions = [perm];
knoraApiConnection.admin.permissionsEndpoint.updateDefaultObjectAccessPermission("http://rdfh.ch/permissions/00FF/Q3OMWyFqStGYK8EXmC7KhQ", updateDefaultObjectAccessPermission).subscribe(function (res) {
expect(res.body.defaultObjectAccessPermission.id).toEqual("http://rdfh.ch/permissions/00FF/Q3OMWyFqStGYK8EXmC7KhQ");
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var permissionUpdateResponse = require("../../../../test/data/api/admin/permissions/update-defaultObjectAccess-permission-hasPermissions-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(permissionUpdateResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/http%3A%2F%2Frdfh.ch%2Fpermissions%2F00FF%2FQ3OMWyFqStGYK8EXmC7KhQ/hasPermissions");
expect(request.method).toEqual("PUT");
var payload = require("../../../../test/data/api/admin/permissions/update-defaultObjectAccess-permission-hasPermissions-request.json");
expect(request.data()).toEqual(payload);
});
});
describe("Method updateDefaultObjectAccessPermissionGroup", function () {
it("should update a default object access permission's group", function (done) {
var updateDOAPGroup = new UpdateDefaultObjectAccessPermissionGroup();
updateDOAPGroup.forGroup = "http://rdfh.ch/groups/00FF/images-reviewer";
knoraApiConnection.admin.permissionsEndpoint.updateDefaultObjectAccessPermissionGroup("http://rdfh.ch/permissions/00FF/sdHG20U6RoiwSu8MeAT1vA", updateDOAPGroup).subscribe(function (res) {
expect(res.body.defaultObjectAccessPermission.id).toEqual("http://rdfh.ch/permissions/00FF/sdHG20U6RoiwSu8MeAT1vA");
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var permissionUpdateResponse = require("../../../../test/data/api/admin/permissions/update-defaultObjectAccess-permission-forGroup-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(permissionUpdateResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/http%3A%2F%2Frdfh.ch%2Fpermissions%2F00FF%2FsdHG20U6RoiwSu8MeAT1vA/group");
expect(request.method).toEqual("PUT");
var payload = require("../../../../test/data/api/admin/permissions/update-defaultObjectAccess-permission-forGroup-request.json");
expect(request.data()).toEqual(payload);
});
});
describe("Method updateDefaultObjectAccessPermissionResourceClass", function () {
it("should update a default object access permission's resource class", function (done) {
var updateDOAPResClass = new UpdateDefaultObjectAccessPermissionResourceClass();
updateDOAPResClass.forResourceClass = "http://www.knora.org/ontology/0803/incunabula#book";
knoraApiConnection.admin.permissionsEndpoint.updateDefaultObjectAccessPermissionResourceClass("http://rdfh.ch/permissions/00FF/Q3OMWyFqStGYK8EXmC7KhQ", updateDOAPResClass).subscribe(function (res) {
expect(res.body.defaultObjectAccessPermission.id).toEqual("http://rdfh.ch/permissions/00FF/Q3OMWyFqStGYK8EXmC7KhQ");
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var permissionUpdateResponse = require("../../../../test/data/api/admin/permissions/update-defaultObjectAccess-permission-forResourceClass-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(permissionUpdateResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/http%3A%2F%2Frdfh.ch%2Fpermissions%2F00FF%2FQ3OMWyFqStGYK8EXmC7KhQ/resourceClass");
expect(request.method).toEqual("PUT");
var payload = require("../../../../test/data/api/admin/permissions/update-defaultObjectAccess-permission-forResourceClass-request.json");
expect(request.data()).toEqual(payload);
});
});
describe("Method updateDefaultObjectAccessPermissionProperty", function () {
it("should update a default object access permission's property", function (done) {
var updateDOAPProperty = new UpdateDefaultObjectAccessPermissionProperty();
updateDOAPProperty.forProperty = "http://www.knora.org/ontology/00FF/images#titel";
knoraApiConnection.admin.permissionsEndpoint.updateDefaultObjectAccessPermissionProperty("http://rdfh.ch/permissions/00FF/Mck2xJDjQ_Oimi_9z4aFaA", updateDOAPProperty).subscribe(function (res) {
expect(res.body.defaultObjectAccessPermission.id).toEqual("http://rdfh.ch/permissions/00FF/Mck2xJDjQ_Oimi_9z4aFaA");
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var permissionUpdateResponse = require("../../../../test/data/api/admin/permissions/update-defaultObjectAccess-permission-forProperty-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(permissionUpdateResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/http%3A%2F%2Frdfh.ch%2Fpermissions%2F00FF%2FMck2xJDjQ_Oimi_9z4aFaA/property");
expect(request.method).toEqual("PUT");
var payload = require("../../../../test/data/api/admin/permissions/update-defaultObjectAccess-permission-forProperty-request.json");
expect(request.data()).toEqual(payload);
});
});
describe("Method deletePermission", function () {
it("should delete an admin permission", function (done) {
knoraApiConnection.admin.permissionsEndpoint.deletePermission("http://rdfh.ch/permissions/00FF/a2").subscribe(function (response) {
expect(response.body.deleted).toBeTrue();
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var deleteAdminPermissionResponse = require("../../../../test/data/api/admin/permissions/delete-administrative-permission-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(deleteAdminPermissionResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/http%3A%2F%2Frdfh.ch%2Fpermissions%2F00FF%2Fa2");
expect(request.method).toEqual("DELETE");
});
it("should delete an DOA permission", function (done) {
knoraApiConnection.admin.permissionsEndpoint.deletePermission("http://rdfh.ch/permissions/00FF/DOAP-with-customIri").subscribe(function (response) {
expect(response.body.deleted).toBeTrue();
done();
});
var request = jasmine.Ajax.requests.mostRecent();
var deleteDOAPermissionResponse = require("../../../../test/data/api/admin/permissions/delete-defaultObjectAccess-permission-response.json");
request.respondWith(MockAjaxCall.mockResponse(JSON.stringify(deleteDOAPermissionResponse)));
expect(request.url).toBe("http://localhost:3333/admin/permissions/http%3A%2F%2Frdfh.ch%2Fpermissions%2F00FF%2FDOAP-with-customIri");
expect(request.method).toEqual("DELETE");
});
});
});
//# sourceMappingURL=permissions-endpoint.spec.js.map