From 245d6092d4091cc3380bfc9306653c69f45c596f Mon Sep 17 00:00:00 2001 From: pkupczyk <pkupczyk> Date: Thu, 21 Mar 2013 17:07:48 +0000 Subject: [PATCH] SP-571 / BIS-372: Meta projects: OBSERVERs can have meta projects, INSTANCE_OBSERVERs can get them for specified users - add new methods to the openbis.js facade and test them with qunit SVN: 28670 --- .../openbis/public/resources/js/openbis.js | 28 +++++++++++ .../webapps/openbis-test/html/openbis-test.js | 48 +++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/js/openbis.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/js/openbis.js index 2f5ebb65ef3..f66cb59c561 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/js/openbis.js +++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/js/openbis.js @@ -911,6 +911,20 @@ openbis.prototype.listMetaprojects = function(action) { }); } +/** + * @see IGeneralInformationService.listMetaprojectsOnBehalfOfUser(String, String) + * @method + */ +openbis.prototype.listMetaprojectsOnBehalfOfUser = function(userId, action) { + this._internal.ajaxRequest({ + url: this._internal.generalInfoServiceUrl, + data: { "method" : "listMetaprojectsOnBehalfOfUser", + "params" : [ this.getSession(), userId ] + }, + success: action + }); +} + /** * @see IGeneralInformationService.getMetaproject(String, IMetaprojectId) * @method @@ -925,6 +939,20 @@ openbis.prototype.getMetaproject = function(metaprojectId, action) { }); } +/** + * @see IGeneralInformationService.getMetaprojectOnBehalfOfUser(String, IMetaprojectId, String) + * @method + */ +openbis.prototype.getMetaprojectOnBehalfOfUser = function(metaprojectId, userId, action) { + this._internal.ajaxRequest({ + url: this._internal.generalInfoServiceUrl, + data: { "method" : "getMetaprojectOnBehalfOfUser", + "params" : [ this.getSession(), metaprojectId, userId ] + }, + success: action + }); +} + /** * @see IGeneralInformationService.listAttachmentsForProject(String, IProjectId, boolean) * @method diff --git a/screening/sourceTest/core-plugins/JsTests/1/as/webapps/openbis-test/html/openbis-test.js b/screening/sourceTest/core-plugins/JsTests/1/as/webapps/openbis-test/html/openbis-test.js index 32ebbbe57f0..0de5a32211e 100644 --- a/screening/sourceTest/core-plugins/JsTests/1/as/webapps/openbis-test/html/openbis-test.js +++ b/screening/sourceTest/core-plugins/JsTests/1/as/webapps/openbis-test/html/openbis-test.js @@ -872,6 +872,30 @@ test("createMetaproject(), listMetaprojects()", function(){ }); }); +test("createMetaproject(), listMetaprojectsOnBehalfOfUser()", function(){ + var powerUserId = "power_user"; + var powerUserPassword = "password"; + + createFacadeAndLoginForUserAndPassword(powerUserId, powerUserPassword, function(facadePowerUser){ + var powerUserMetaprojectIdentifier = "/" + powerUserId + "/JS_TEST_METAPROJECT_POWER_USER" + createNewMetaproject(facadePowerUser, powerUserMetaprojectIdentifier, function(response){ + + createFacadeAndLoginForUserAndPassword(testUserId, testUserPassword, function(facadeTestUser){ + var testUserMetaprojectIdentifier = "/" + testUserId + "/JS_TEST_METAPROJECT"; + createNewMetaproject(facadeTestUser, testUserMetaprojectIdentifier, function(response){ + + facadeTestUser.listMetaprojectsOnBehalfOfUser(powerUserId, function(response){ + assertObjectsCount(response.result, 1); + assertObjectsWithValues(response.result, 'name', ['JS_TEST_METAPROJECT_POWER_USER']); + facadePowerUser.close(); + facadeTestUser.close(); + }); + }); + }, testUrl); + }) + }, testUrl); +}); + test("createMetaproject(), getMetaproject()", function(){ createFacadeAndLogin(function(facade){ var metaprojectIdentifier = "/" + testUserId + "/JS_TEST_METAPROJECT"; @@ -887,6 +911,30 @@ test("createMetaproject(), getMetaproject()", function(){ }); }); +test("createMetaproject(), getMetaprojectOnBehalfOfUser()", function(){ + var powerUserId = "power_user"; + var powerUserPassword = "password"; + + createFacadeAndLoginForUserAndPassword(powerUserId, powerUserPassword, function(facadePowerUser){ + var powerUserMetaprojectIdentifier = "/" + powerUserId + "/JS_TEST_METAPROJECT_POWER_USER"; + var powerUserMetaprojectId = createMetaprojectIdentifierId(powerUserMetaprojectIdentifier); + createNewMetaproject(facadePowerUser, powerUserMetaprojectIdentifier, function(response){ + + createFacadeAndLoginForUserAndPassword(testUserId, testUserPassword, function(facadeTestUser){ + var testUserMetaprojectIdentifier = "/" + testUserId + "/JS_TEST_METAPROJECT"; + createNewMetaproject(facadeTestUser, testUserMetaprojectIdentifier, function(response){ + + facadeTestUser.getMetaprojectOnBehalfOfUser(powerUserMetaprojectId, powerUserId, function(response){ + equal(response.result.metaproject.identifier, powerUserMetaprojectIdentifier, 'Metaproject identifier is correct'); + facadePowerUser.close(); + facadeTestUser.close(); + }); + }); + }, testUrl); + }) + }, testUrl); +}); + test("createMetaproject(), updateMetaproject()", function(){ createFacadeAndLogin(function(facade){ var metaprojectIdentifier = "/" + testUserId + "/JS_TEST_METAPROJECT"; -- GitLab