diff --git a/modules/distribution/pom.xml b/modules/distribution/pom.xml index 6d9ddcce..3f0f6dc2 100644 --- a/modules/distribution/pom.xml +++ b/modules/distribution/pom.xml @@ -673,36 +673,17 @@ - - - - - - - - - - - - - - - - - - - @@ -718,25 +699,16 @@ - - - - - - - - - @@ -764,24 +736,16 @@ - - - - - - - - diff --git a/modules/distribution/src/assembly/bin.xml b/modules/distribution/src/assembly/bin.xml index 3cf301e7..e9ab4f3f 100755 --- a/modules/distribution/src/assembly/bin.xml +++ b/modules/distribution/src/assembly/bin.xml @@ -1485,20 +1485,6 @@ 755 - - target/webapp-temp/api-application-registration.war - - ${pom.artifactId}-${pom.version}/repository/deployment/server/webapps - - 755 - - - target/webapp-temp/api#scep-mgt#v1.0.war - - ${pom.artifactId}-${pom.version}/repository/deployment/server/webapps - - 755 - target/webapp-temp/client-registration#v0.11.war @@ -1506,20 +1492,6 @@ 755 - - target/webapp-temp/secured-websocket.war - - ${pom.artifactId}-${pom.version}/repository/deployment/server/webapps - - 755 - - - target/webapp-temp/api#certificate-mgt#v1.0.war - - ${pom.artifactId}-${pom.version}/repository/deployment/server/webapps - - 755 - target/webapp-temp/api#identity#entitlement.war diff --git a/modules/distribution/src/core/plugins/plugins-deployer.xml b/modules/distribution/src/core/plugins/plugins-deployer.xml index e4a8534d..0324d334 100644 --- a/modules/distribution/src/core/plugins/plugins-deployer.xml +++ b/modules/distribution/src/core/plugins/plugins-deployer.xml @@ -207,6 +207,6 @@ - 3.0.27 + 3.0.28 diff --git a/modules/distribution/src/core/resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml b/modules/distribution/src/core/resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml deleted file mode 100644 index 8facd4b1..00000000 --- a/modules/distribution/src/core/resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - Certificate-Webapp - - JAX-WS/JAX-RS Certificate Management Endpoint - JAX-WS/JAX-RS Servlet - CXFServlet - - org.apache.cxf.transport.servlet.CXFServlet - - - swagger.security.filter - ApiAuthorizationFilterImpl - - 1 - - - CXFServlet - /* - - - 60 - - - - isAdminService - false - - - doAuthentication - true - - - - - managed-api-enabled - true - - - managed-api-owner - admin - - - - - CertificateMgt-Admin - /* - - - CONFIDENTIAL - - - - - ApiOriginFilter - org.wso2.carbon.certificate.mgt.cert.jaxrs.api.util.ApiOriginFilter - - - - HttpHeaderSecurityFilter - org.apache.catalina.filters.HttpHeaderSecurityFilter - - hstsEnabled - false - - - - - ContentTypeBasedCachePreventionFilter - org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter - - patterns - text/html" ,application/json" ,text/plain - - - filterAction - enforce - - - httpHeaders - Cache-Control: no-store, no-cache, must-revalidate, private - - - - - HttpHeaderSecurityFilter - /* - - - - ContentTypeBasedCachePreventionFilter - /* - - - - ApiOriginFilter - /* - - - - diff --git a/modules/distribution/src/core/resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml b/modules/distribution/src/core/resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml deleted file mode 100644 index 0dfb469c..00000000 --- a/modules/distribution/src/core/resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - Certificate-Webapp - - JAX-WS/JAX-RS Certificate Management Endpoint - JAX-WS/JAX-RS Servlet - CXFServlet - - org.apache.cxf.transport.servlet.CXFServlet - - - - CXFServlet - /* - - - 60 - - - - isAdminService - false - - - doAuthentication - true - - - - - managed-api-enabled - true - - - managed-api-owner - admin - - - - HttpHeaderSecurityFilter - org.apache.catalina.filters.HttpHeaderSecurityFilter - - hstsEnabled - false - - - - - ContentTypeBasedCachePreventionFilter - org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter - - patterns - text/html" ,application/json" ,text/plain - - - filterAction - enforce - - - httpHeaders - Cache-Control: no-store, no-cache, must-revalidate, private - - - - - HttpHeaderSecurityFilter - /* - - - - ContentTypeBasedCachePreventionFilter - /* - - - diff --git a/modules/distribution/src/core/resources/web-apps/web-xml/api-application-registration/web.xml b/modules/distribution/src/core/resources/web-apps/web-xml/api-application-registration/web.xml deleted file mode 100644 index 0e2a3b23..00000000 --- a/modules/distribution/src/core/resources/web-apps/web-xml/api-application-registration/web.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - - WSO2 IoT Server - WSO2 IoT Server - - - CXFServlet - org.apache.cxf.transport.servlet.CXFServlet - 1 - - - - CXFServlet - /* - - - isAdminService - false - - - doAuthentication - true - - - - - managed-api-enabled - true - - - managed-api-owner - admin - - - - ApiPermissionFilter - org.wso2.carbon.apimgt.application.extension.api.filter.ApiPermissionFilter - - - - HttpHeaderSecurityFilter - org.apache.catalina.filters.HttpHeaderSecurityFilter - - hstsEnabled - false - - - - - ContentTypeBasedCachePreventionFilter - org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter - - patterns - text/html" ,application/json" ,text/plain - - - filterAction - enforce - - - httpHeaders - Cache-Control: no-store, no-cache, must-revalidate, private - - - - - HttpHeaderSecurityFilter - /* - - - - ContentTypeBasedCachePreventionFilter - /* - - - - ApiPermissionFilter - /* - - - diff --git a/modules/distribution/src/core/resources/web-apps/web-xml/secured-websocket/web.xml b/modules/distribution/src/core/resources/web-apps/web-xml/secured-websocket/web.xml deleted file mode 100644 index ce51b848..00000000 --- a/modules/distribution/src/core/resources/web-apps/web-xml/secured-websocket/web.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - Output WebSocket - - - HttpHeaderSecurityFilter - org.apache.catalina.filters.HttpHeaderSecurityFilter - - hstsEnabled - false - - - - - ContentTypeBasedCachePreventionFilter - org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter - - patterns - text/html" ,application/json" ,text/plain - - - filterAction - enforce - - - httpHeaders - Cache-Control: no-store, no-cache, must-revalidate, private - - - - - HttpHeaderSecurityFilter - /* - - - - ContentTypeBasedCachePreventionFilter - /* - - - diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/NotificationManagementAPIJMeterTestCase.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/NotificationManagementAPIJMeterTestCase.java new file mode 100644 index 00000000..89025317 --- /dev/null +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/NotificationManagementAPIJMeterTestCase.java @@ -0,0 +1,28 @@ +package org.wso2.iot.integration.jmeter; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.testng.annotations.Test; +import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException; +import org.wso2.carbon.automation.extensions.jmeter.JMeterTest; +import org.wso2.carbon.automation.extensions.jmeter.JMeterTestManager; + +import java.io.File; +import java.net.URL; + +/** + * This class tests the Notification Management APIs + */ +public class NotificationManagementAPIJMeterTestCase { + private static Log log = LogFactory.getLog(NotificationManagementAPIJMeterTestCase.class); + + @Test(description = "This test case tests the Notification Management APIs") + public void NotificationManagementTest() throws AutomationFrameworkException { + URL url = Thread.currentThread().getContextClassLoader() + .getResource("jmeter-scripts" + File.separator + "NotificationManagementAPI.jmx"); + JMeterTest script = new JMeterTest(new File(url.getPath())); + JMeterTestManager manager = new JMeterTestManager(); + log.info("Running notification management api test cases using jmeter scripts"); + manager.runTest(script); + } +} diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagement.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagement.java index 8cb8bb60..395c7a26 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagement.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagement.java @@ -53,7 +53,7 @@ public class MobileDeviceManagement extends TestBase { @Test(description = "Test getting devices") public void testViewDevices() throws Exception { - int expectedCount = this.userMode == TestUserMode.TENANT_ADMIN ? 1 : 23; + int expectedCount = this.userMode == TestUserMode.TENANT_ADMIN ? 3 : 23; HttpResponse response = client.get(Constants.MobileDeviceManagement.GET_ALL_DEVICES_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getResponseCode()); JsonObject devices = new JsonParser().parse(response.getData()).getAsJsonObject(); @@ -62,7 +62,7 @@ public class MobileDeviceManagement extends TestBase { @Test(description = "Test getting devices") public void testGetUserDevices() throws Exception { - int expectedCount = this.userMode == TestUserMode.TENANT_ADMIN ? 1 : 13; + int expectedCount = this.userMode == TestUserMode.TENANT_ADMIN ? 3 : 13; HttpResponse response = client.get(Constants.MobileDeviceManagement.GET_ALL_DEVICES_ENDPOINT + Constants.MobileDeviceManagement.USER_DEVICE_ENDPOINT); Assert.assertEquals(HttpStatus.SC_OK, response.getResponseCode()); diff --git a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx index 7324ba2e..cac784a5 100644 --- a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx +++ b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx @@ -116,7 +116,7 @@ createdDate - 2013-02-22T08:22:35+)5:30 + 2013-02-22T08:22:35+05:30 Created Date = @@ -217,7 +217,7 @@ false - + @@ -1968,6 +1968,1965 @@ vars.put("base64encodedId",new String(encryptedId)); + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/admin/groups + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + false + groupCount + "count":(.+?) + $1$ + 0 + 1 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/admin/groups/count + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + ${groupCount} + + Assertion.response_data + false + 8 + + + + + true + + + + false + [{"id":"${DeviceIdentifier}", "type":"android"}] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId}/devices/remove + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 8 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId} + DELETE + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 8 + + + + 1000 + + + + + + tenant_user_name,domain_name,password + false + import org.apache.commons.codec.binary.Base64; + +String tenant_user= vars.get("tenant_user_name") + "@" + vars.get("domain_name") ; +String password= vars.get("password"); +String toEncode = tenant_user + ":" + password; + +byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes()); +vars.put("encodedUserPassword","Basic " + new String(encryptedId)); + + + + true + + + + false + { + "applicationName":"app_hello", + "isAllowedToAllDomains":false, + "tags":["android", "device_management"], + "isMappingAnExistingOAuthApp":false +} + = + + + + ${host} + ${https_port} + + + https + + /api-application-registration/register + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + ${encodedUserPassword} + + + Host + localhost:9763 + + + Content-Type + application/json + + + + + + false + clientId + "client_id":"(.+?)" + $1$ + 0 + 1 + + + + false + clientSecret + "client_secret":"(.+?)" + $1$ + 0 + 1 + + + + + + clientId,clientSecret + false + import org.apache.commons.codec.binary.Base64; + +String clientId= vars.get("clientId"); +String clientSecret = vars.get("clientSecret"); +String toEncode = clientId + ":" + clientSecret; + +byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes()); +vars.put("base64encodedId",new String(encryptedId)); + + + + + + + false + ${tenant_user_name}@${domain_name} + = + true + username + + + false + ${password} + = + true + password + + + false + password + = + true + grant_type + + + false + perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications + = + true + scope + + + false + + = + true + + + + + ${host} + ${https_port} + + + https + + /token + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Basic ${base64encodedId} + + + Content-Type + application/x-www-form-urlencoded + + + + + + false + access_token + "access_token":"(.+?)" + $1$ + no_token + 1 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/count + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + 0 + + Assertion.response_data + false + 16 + + + + + true + + + + false + + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "count":0 + + Assertion.response_data + false + 2 + + + + + true + + + + false + { + "id" : 2, + "description" : "This is a test group", + "name" : "${group_name}" + } + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + true + + + + false + { + "id" : 2, + "description" : "This is a test group", + "name" : "${group_name}" + } + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 409 + + Assertion.response_code + true + 2 + + + + + true + + + + false + + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "name":"Group 2" + + Assertion.response_data + false + 16 + + + + + "count":1 + + Assertion.response_data + false + 16 + + + + false + groupId + "id":(.+?) + $1$ + no_token + 1 + + + + + + + + false + false_group + = + true + name + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "deviceGroups":[] + + Assertion.response_data + false + 16 + + + + + + + + false + admin + = + true + owner + + + true + Group 2 + = + true + name + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "name":"Group 2" + + Assertion.response_data + false + 16 + + + + + "count":1 + + Assertion.response_data + false + 16 + + + + + + + + false + admin + = + true + owner + + + false + dadad + = + true + name + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "deviceGroups":[] + + Assertion.response_data + false + 16 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/count + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + 1 + + Assertion.response_data + false + 16 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId} + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "description":"This is a test group" + + Assertion.response_data + false + 2 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/3333 + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 404 + + Assertion.response_code + true + 2 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/hello + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 404 + + Assertion.response_code + true + 2 + + + + + true + + + + false + { + "id" : "${groupId}", + "description" : "This is a new test group", + "name" : "${group_name}" + } + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/v1.0/groups/id/10000 + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 409 + + Assertion.response_code + true + 2 + + + + + true + + + + false + { + "id" : "${groupId}", + "description" : "This is a new test group", + "name" : "${new_group_name}" + } + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/v1.0/groups/id/${groupId} + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId} + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "description":"This is a new test group" + + Assertion.response_data + false + 2 + + + + + true + + + + false + { + "roleName": "${role_name}", + "users" : ["admin"] +} + + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/roles + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + true + + + + false + ["${role_name}"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId}/share + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId}/roles + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "count":1 + + Assertion.response_data + false + 2 + + + + + "${role_name}" + + Assertion.response_data + false + 2 + + + + + true + + + + false + { + "id":1000${DeviceID}, + "name":"androiddevice${DeviceID}", + "type":"android", + "description":"this is an android device", + "deviceIdentifier":"${DeviceIdentifier}", + "enrolmentInfo":{ + "id":1000${DeviceID}, + "device":{ + + }, + "dateOfEnrolment":0, + "dateOfLastUpdate":0, + "ownership":"BYOD", + "status":"CREATED", + "owner":"admin" + }, + "features":[ + { + "id":10, + "code":"aaaa1111", + "name":"newfeature1", + "description":"this is the new feature 1", + "deviceType":"android", + "metadataEntries":[ + { + "id":10, + "value":{ + + } + } + ] + } + ], + "properties":[ + { + "name":"property1", + "value":"value1" + } + ], + "deviceInfo":{ + "deviceModel":"S6", + "vendor":"SAMSUNG", + "osVersion":"5.1", + "batteryLevel":1, + "internalTotalMemory":32, + "internalAvailableMemory":24, + "externalTotalMemory":64, + "externalAvailableMemory":60, + "operator":"dialog", + "connectionType":"GSM", + "mobileSignalStrength":1, + "ssid":"picassowifi", + "cpuUsage":0, + "totalRAMMemory":2, + "availableRAMMemory":1, + "pluggedIn":false, + "location":{ + "deviceId":0, + "deviceIdentifier":{ + "id":"string", + "type":"string" + }, + "latitude":0, + "longitude":0, + "street1":"string", + "street2":"string", + "city":"string", + "state":"string", + "zip":"string", + "country":"string" + }, + "deviceDetailsMap":{ + + }, + "imei":"string", + "imsi":"string" + }, + "applications":[ + { + "id":0, + "platform":"string", + "category":"string", + "name":"string", + "locationUrl":"string", + "imageUrl":"string", + "version":"string", + "type":"string", + "appProperties":{ + + }, + "applicationIdentifier":"string", + "memoryUsage":0 + } + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/devices + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + true + + + + false + [{"id":"${DeviceIdentifier}", "type":"android"}] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId}/devices/add + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + true + + + + false + + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId}/devices/ + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "count":1 + + Assertion.response_data + false + 2 + + + + + true + + + + false + + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId}/devices/count + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + 1 + + Assertion.response_data + false + 8 + + + + + + + + false + ${DeviceIdentifier} + = + true + deviceId + + + false + android + = + true + deviceType + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/device + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "${new_group_name}" + + Assertion.response_data + false + 2 + + + + + true + + + + false + { + "deviceGroupIds" : [${groupId}], + "deviceIdentifier" : {"id":"${DeviceIdentifier}", "type":"android"} +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/device/assign + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 8 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/admin/groups + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + false + groupCount + "count":(.+?) + $1$ + 0 + 1 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/admin/groups/count + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + ${groupCount} + + Assertion.response_data + false + 8 + + + true diff --git a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/NewAndroidDeviceManagementAPI.jmx b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/NewAndroidDeviceManagementAPI.jmx index 7d04c655..1bc60a8e 100644 --- a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/NewAndroidDeviceManagementAPI.jmx +++ b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/NewAndroidDeviceManagementAPI.jmx @@ -63,9 +63,253 @@ 8280 = + + tenant_user_name + admin + Name of Tenant + = + + + domain_name + wso2.com + Name of Domain + = + + + password + admin + Password + = + + + email + abc@wso2.com + Email + = + + + firstName + firstName + First Name + = + + + lastName + lastName + Last Name + = + + + usagePlan + Demo + Usage Plan + = + + + createdDate + 2013-02-22T08:22:35+05:30 + Created Date + = + + + management_https_port + 9443 + Port for carbon management console + = + + + continue + + false + 1 + + 1 + + 1342532280000 + 1342532280000 + false + + + + + + + false + rfc2109 + + + + + + + https://${host}:${management_https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org"> + <soapenv:Header/> + <soapenv:Body> + <aut:login> + <!--Optional:--> + <aut:username>admin</aut:username> + <!--Optional:--> + <aut:password>admin</aut:password> + <!--Optional:--> + <aut:remoteAddress>127.0.0.1</aut:remoteAddress> + </aut:login> + </soapenv:Body> +</soapenv:Envelope> + + urn:login + true + false + + + + + + + https://${host}:${management_https_port}/services/TenantMgtAdminService.TenantMgtAdminServiceHttpsSoap11Endpoint/ + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org"> + <soapenv:Header/> + <soapenv:Body> + <ser:getTenant> + <!--Optional:--> + <ser:tenantDomain>${domain_name}</ser:tenantDomain> + </ser:getTenant> + </soapenv:Body> +</soapenv:Envelope> + + urn:getTenant + true + false + + + + undefined + tenant_exists + //*[local-name()='active']/text() + false + false + true + tenant_exists + + + + false + true + true + false + + + + + ${tenant_exists}==false + false + + + + + + + https://${host}:${management_https_port}/services/TenantMgtAdminService.TenantMgtAdminServiceHttpsSoap11Endpoint/ + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org" xmlns:xsd="http://beans.common.stratos.carbon.wso2.org/xsd"> + <soapenv:Header/> + <soapenv:Body> + <ser:addTenant> + <!--Optional:--> + <ser:tenantInfoBean> + <!--Optional:--> + <xsd:active>1</xsd:active> + <!--Optional:--> + <xsd:admin>${tenant_user_name}</xsd:admin> + <!--Optional:--> + <xsd:adminPassword>${password}</xsd:adminPassword> + <!--Optional:--> + <xsd:createdDate>${createdDate}</xsd:createdDate> + <!--Optional:--> + <xsd:email>${email}</xsd:email> + <!--Optional:--> + <xsd:firstname>${firstName}</xsd:firstname> + <!--Optional:--> + <xsd:lastname>${lastName}</xsd:lastname> + <!--Optional:--> + <xsd:tenantDomain>${domain_name}</xsd:tenantDomain> + <!--Optional:--> + <xsd:tenantId>0</xsd:tenantId> + <!--Optional:--> + <xsd:usagePlan>${usagePlan}</xsd:usagePlan> + </ser:tenantInfoBean> + </ser:addTenant> + </soapenv:Body> +</soapenv:Envelope> + + urn:addTenant + true + false + + + + + + + + https://${host}:${management_https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org"> + <soapenv:Header/> + <soapenv:Body> + <aut:logout/> + </soapenv:Body> +</soapenv:Envelope> + + urn:logout + true + false + + + + + 202 + + Assertion.response_code + false + 1 + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + true + false + false + false + false + false + 0 + true + + + /home/ace/Desktop/results_multi_user_multi_tenancy.jtl + + + continue @@ -667,6 +911,85 @@ GEL4ZNjZ+jnwSkzwBU5vh/QS", + + true + + + + false + { + "serial": "qwe12-23fdf-2s332-53fv3-sfs33", + "pem": " +MIIEXjCCA0agAwIBAgIJAPocSteC87XUMA0GCSqGSIb3DQEBBQUAMHwxCzAJBgNV +BAYTAlNMMRAwDgYDVQQIEwdDb2xvbWJvMRAwDgYDVQQHEwdDb2xvbWJvMRIwEAYD +VQQKEwlXU08yIEluYy4xHzAdBgkqhkiG9w0BCQEWEHRlY2hvcHNAd3NvMi5jb20x +FDASBgNVBAMTC1dTTzIgUmFkaXVzMB4XDTEzMDYyNzAzMzA0NFoXDTIzMDYyNTAz +MzA0NFowfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgTB0NvbG9tYm8xEDAOBgNVBAcT +B0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEfMB0GCSqGSIb3DQEJARYQdGVj +aG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBSYWRpdXMwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDNmhw12cF0H2UGE/XtWVt238oGxn19+n/HkM2B +cDNQgnStqI+g/K2HBtjmvVPBh17Mt+dU2BIathn06amza+LI+hHgeLUSv30jutv4 +L5zD2laAU9A/I0Wtrxu5FlsevRPSiY7buLjTbjP7IMn9vdwb+9nBQCGxVpO6AK2A +gsFJ5udnp7L+jNsHmHFt36AYZouihgD+/RGVLBAhtPoU6XFB1JoGFM+4qxklJLPh +k86WollG4cFvHXSbO1P95n6Jb/V3hfM0PvwFZswRPVnW8ngqm889C/JEk5rK4FHy +xk9MgeFRW6zA+3rVnyPdhy6/q4EerBLMfBEWpzFHyHDKMGanAgMBAAGjgeIwgd8w +HQYDVR0OBBYEFKRxtF0CWPwL7jRvA4NSIzploUgrMIGvBgNVHSMEgacwgaSAFKRx +tF0CWPwL7jRvA4NSIzploUgroYGApH4wfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgT +B0NvbG9tYm8xEDAOBgNVBAcTB0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEf +MB0GCSqGSIb3DQEJARYQdGVjaG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBS +YWRpdXOCCQD6HErXgvO11DAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IB +AQCDQV9wy8rfuFp4uByqYhnrQjzBN75VbNcgpdYocOxQPLnjWRM5qdJHELrt4FEl +rDMGd1BpP7QMAEYJUIcpDHPbs9HVCeEV6hdOrLgGxNDB0YVa2Fr5k2U8gsNIgKZo +fKxscx0w5OM71IQbuppAgIHK29DBVBVppO+zduIbVtSoBo/gcVIqVGXQXf8TFtoV +xyfGUTYdBDP4fT4p8uLASXmdaFyegQOhkjSuchVPGSJOZD6TvOjE6ZvBu9eC7sqh +oTPY56Ld0GscWJmAuj+8vmWGu0md8MnM2DE0SIYE3bo/sPp3yEIbCAnHmcveG8hn +GEL4ZNjZ+jnwSkzwBU5vh/QS", + "tenantId": 0 + } + = + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates/verify/android + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + "invalid" + + Assertion.response_data + false + 16 + + + @@ -4243,6 +4566,4275 @@ GEL4ZNjZ+jnwSkzwBU5vh/QS", 1000 + + + tenant_user_name,domain_name,password + false + import org.apache.commons.codec.binary.Base64; + +String tenant_user= vars.get("tenant_user_name") + "@" + vars.get("domain_name"); +String password= vars.get("password"); +String toEncode = tenant_user + ":" + password; + +byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes()); +vars.put("encodedUserPassword","Basic " + new String(encryptedId)); + + + + true + + + + false + { + "applicationName":"app_${randAppNum}", + "isAllowedToAllDomains":false, + "tags":["android", "device_management"], + "isMappingAnExistingOAuthApp":false +} + = + + + + ${host} + ${https_port} + + + https + + /api-application-registration/register + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + ${encodedUserPassword} + + + Host + localhost:9763 + + + Content-Type + application/json + + + + + + false + clientId + "client_id":"(.+?)" + $1$ + 0 + 1 + + + + false + clientSecret + "client_secret":"(.+?)" + $1$ + 0 + 1 + + + + + + clientId,clientSecret + false + import org.apache.commons.codec.binary.Base64; + +String clientId= vars.get("clientId"); +String clientSecret = vars.get("clientSecret"); +String toEncode = clientId + ":" + clientSecret; + +byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes()); +vars.put("base64encodedId",new String(encryptedId)); + + + + + + + false + ${tenant_user_name}@${domain_name} + = + true + username + + + false + ${password} + = + true + password + + + false + password + = + true + grant_type + + + false + perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications + = + true + scope + + + false + + = + true + + + + + ${host} + ${https_port} + + + https + + /token + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Basic ${base64encodedId} + + + Content-Type + application/x-www-form-urlencoded + + + + + + false + access_token + "access_token":"(.+?)" + $1$ + no_token + 1 + + + + + true + + + + false + { + "id":10${DeviceID}, + "name":"androiddevice${DeviceID}", + "type":"android", + "description":"this is an android device", + "deviceIdentifier":"d24f870f390352a4${DeviceID}", + "enrolmentInfo":{ + "id":10${DeviceID}, + "device":{ + + }, + "dateOfEnrolment":0, + "dateOfLastUpdate":0, + "ownership":"BYOD", + "status":"CREATED", + "owner":"admin" + }, + "features":[ + { + "id":10, + "code":"aaaa1111", + "name":"newfeature1", + "description":"this is the new feature 1", + "deviceType":"android", + "metadataEntries":[ + { + "id":10, + "value":{ + + } + } + ] + } + ], + "properties":[ + { + "name":"property1", + "value":"value1" + } + ], + "deviceInfo":{ + "deviceModel":"S6", + "vendor":"SAMSUNG", + "osVersion":"5.1", + "batteryLevel":1, + "internalTotalMemory":32, + "internalAvailableMemory":24, + "externalTotalMemory":64, + "externalAvailableMemory":60, + "operator":"dialog", + "connectionType":"GSM", + "mobileSignalStrength":1, + "ssid":"picassowifi", + "cpuUsage":0, + "totalRAMMemory":2, + "availableRAMMemory":1, + "pluggedIn":false, + "location":{ + "deviceId":0, + "deviceIdentifier":{ + "id":"string", + "type":"string" + }, + "latitude":0, + "longitude":0, + "street1":"string", + "street2":"string", + "city":"string", + "state":"string", + "zip":"string", + "country":"string" + }, + "deviceDetailsMap":{ + + }, + "imei":"string", + "imsi":"string" + }, + "applications":[ + { + "id":0, + "platform":"string", + "category":"string", + "name":"string", + "locationUrl":"string", + "imageUrl":"string", + "version":"string", + "type":"string", + "appProperties":{ + + }, + "applicationIdentifier":"string", + "memoryUsage":0 + } + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/devices + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + false + 0 + = + true + offset + + + false + 1 + = + true + limit + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + [ + { + "serial": "qwe12-23fdf-2s332-53fv3-sfs33", + "pem": " +MIIEXjCCA0agAwIBAgIJAPocSteC87XUMA0GCSqGSIb3DQEBBQUAMHwxCzAJBgNV +BAYTAlNMMRAwDgYDVQQIEwdDb2xvbWJvMRAwDgYDVQQHEwdDb2xvbWJvMRIwEAYD +VQQKEwlXU08yIEluYy4xHzAdBgkqhkiG9w0BCQEWEHRlY2hvcHNAd3NvMi5jb20x +FDASBgNVBAMTC1dTTzIgUmFkaXVzMB4XDTEzMDYyNzAzMzA0NFoXDTIzMDYyNTAz +MzA0NFowfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgTB0NvbG9tYm8xEDAOBgNVBAcT +B0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEfMB0GCSqGSIb3DQEJARYQdGVj +aG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBSYWRpdXMwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDNmhw12cF0H2UGE/XtWVt238oGxn19+n/HkM2B +cDNQgnStqI+g/K2HBtjmvVPBh17Mt+dU2BIathn06amza+LI+hHgeLUSv30jutv4 +L5zD2laAU9A/I0Wtrxu5FlsevRPSiY7buLjTbjP7IMn9vdwb+9nBQCGxVpO6AK2A +gsFJ5udnp7L+jNsHmHFt36AYZouihgD+/RGVLBAhtPoU6XFB1JoGFM+4qxklJLPh +k86WollG4cFvHXSbO1P95n6Jb/V3hfM0PvwFZswRPVnW8ngqm889C/JEk5rK4FHy +xk9MgeFRW6zA+3rVnyPdhy6/q4EerBLMfBEWpzFHyHDKMGanAgMBAAGjgeIwgd8w +HQYDVR0OBBYEFKRxtF0CWPwL7jRvA4NSIzploUgrMIGvBgNVHSMEgacwgaSAFKRx +tF0CWPwL7jRvA4NSIzploUgroYGApH4wfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgT +B0NvbG9tYm8xEDAOBgNVBAcTB0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEf +MB0GCSqGSIb3DQEJARYQdGVjaG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBS +YWRpdXOCCQD6HErXgvO11DAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IB +AQCDQV9wy8rfuFp4uByqYhnrQjzBN75VbNcgpdYocOxQPLnjWRM5qdJHELrt4FEl +rDMGd1BpP7QMAEYJUIcpDHPbs9HVCeEV6hdOrLgGxNDB0YVa2Fr5k2U8gsNIgKZo +fKxscx0w5OM71IQbuppAgIHK29DBVBVppO+zduIbVtSoBo/gcVIqVGXQXf8TFtoV +xyfGUTYdBDP4fT4p8uLASXmdaFyegQOhkjSuchVPGSJOZD6TvOjE6ZvBu9eC7sqh +oTPY56Ld0GscWJmAuj+8vmWGu0md8MnM2DE0SIYE3bo/sPp3yEIbCAnHmcveG8hn +GEL4ZNjZ+jnwSkzwBU5vh/QS", + "tenantId": 0 + } +] + = + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + false + 0 + = + true + offset + + + false + 1 + = + true + limit + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates/18022362098305316308 + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "serial": "qwe12-23fdf-2s332-53fv3-sfs33", + "pem": " +MIIEXjCCA0agAwIBAgIJAPocSteC87XUMA0GCSqGSIb3DQEBBQUAMHwxCzAJBgNV +BAYTAlNMMRAwDgYDVQQIEwdDb2xvbWJvMRAwDgYDVQQHEwdDb2xvbWJvMRIwEAYD +VQQKEwlXU08yIEluYy4xHzAdBgkqhkiG9w0BCQEWEHRlY2hvcHNAd3NvMi5jb20x +FDASBgNVBAMTC1dTTzIgUmFkaXVzMB4XDTEzMDYyNzAzMzA0NFoXDTIzMDYyNTAz +MzA0NFowfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgTB0NvbG9tYm8xEDAOBgNVBAcT +B0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEfMB0GCSqGSIb3DQEJARYQdGVj +aG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBSYWRpdXMwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDNmhw12cF0H2UGE/XtWVt238oGxn19+n/HkM2B +cDNQgnStqI+g/K2HBtjmvVPBh17Mt+dU2BIathn06amza+LI+hHgeLUSv30jutv4 +L5zD2laAU9A/I0Wtrxu5FlsevRPSiY7buLjTbjP7IMn9vdwb+9nBQCGxVpO6AK2A +gsFJ5udnp7L+jNsHmHFt36AYZouihgD+/RGVLBAhtPoU6XFB1JoGFM+4qxklJLPh +k86WollG4cFvHXSbO1P95n6Jb/V3hfM0PvwFZswRPVnW8ngqm889C/JEk5rK4FHy +xk9MgeFRW6zA+3rVnyPdhy6/q4EerBLMfBEWpzFHyHDKMGanAgMBAAGjgeIwgd8w +HQYDVR0OBBYEFKRxtF0CWPwL7jRvA4NSIzploUgrMIGvBgNVHSMEgacwgaSAFKRx +tF0CWPwL7jRvA4NSIzploUgroYGApH4wfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgT +B0NvbG9tYm8xEDAOBgNVBAcTB0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEf +MB0GCSqGSIb3DQEJARYQdGVjaG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBS +YWRpdXOCCQD6HErXgvO11DAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IB +AQCDQV9wy8rfuFp4uByqYhnrQjzBN75VbNcgpdYocOxQPLnjWRM5qdJHELrt4FEl +rDMGd1BpP7QMAEYJUIcpDHPbs9HVCeEV6hdOrLgGxNDB0YVa2Fr5k2U8gsNIgKZo +fKxscx0w5OM71IQbuppAgIHK29DBVBVppO+zduIbVtSoBo/gcVIqVGXQXf8TFtoV +xyfGUTYdBDP4fT4p8uLASXmdaFyegQOhkjSuchVPGSJOZD6TvOjE6ZvBu9eC7sqh +oTPY56Ld0GscWJmAuj+8vmWGu0md8MnM2DE0SIYE3bo/sPp3yEIbCAnHmcveG8hn +GEL4ZNjZ+jnwSkzwBU5vh/QS", + "tenantId": 0 + } + = + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates/verify/android + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + "invalid" + + Assertion.response_data + false + 16 + + + + + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates/18022362098305316308 + DELETE + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/configuration + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "type": "android", + "configuration": [ + { + "name": "notifierType", + "value": "1", + "contentType": "text" + }, + { + "name": "notifierFrequency", + "value": "500000", + "contentType": "text" + }, + { + "name": "androidEula", + "value": "This End User License Agreement is Eula.", + "contentType": "text" + } + ] + } + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/v1.0/configuration + PUT + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/configuration + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/devices + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "conditions": [ + { + "key": "deviceIdentifier", + "value": "d24f870f390352a4${DeviceID}", + "operator": "=", + "state": "AND" + } + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/devices/search-devices + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/devices/android/d24f870f390352a4${DeviceID} + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/devices/android/d24f870f390352a4${DeviceID}/applications + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/devices/android/d24f870f390352a4${DeviceID}/effective-policy + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/devices/android/d24f870f390352a4${DeviceID}/features + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + false + admin + = + true + owner + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/devices/android/d24f870f390352a4${DeviceID}/operations + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/devices/android/d24f870f390352a4${DeviceID}/compliance-data + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/devices/user-devices + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/activities + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + false + activityId + "activityId":"(.+?)" + $1$ + 1 + 1 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/activities/${activityId} + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/admin/devices + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + 401 + + Assertion.response_code + true + 8 + + + + + "Current logged in user is not authorized to perform this operation" + + Assertion.response_data + true + 16 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/device-types + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/configuration + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "type": "android", + "configuration": [ + { + "name": "SampleConfiguration", + "contentType": "text", + "value": "This is a sample Configuration" + } + ] +} + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/configuration + PUT + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/configuration/license + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "id":1000${DeviceID}, + "name":"androiddevice1000${DeviceID}", + "type":"android", + "description":"this is an android device", + "deviceIdentifier":"d24f870f390352a41000${DeviceID}", + "enrolmentInfo":{ + "id":1000${DeviceID}, + "device":{ + + }, + "dateOfEnrolment":0, + "dateOfLastUpdate":0, + "ownership":"BYOD", + "status":"CREATED", + "owner":"admin" + }, + "features":[ + { + "id":10, + "code":"aaaa1111", + "name":"newfeature1", + "description":"this is the new feature 1", + "deviceType":"android", + "metadataEntries":[ + { + "id":10, + "value":{ + + } + } + ] + } + ], + "properties":[ + { + "name":"property1", + "value":"value1" + } + ], + "deviceInfo":{ + "deviceModel":"S6", + "vendor":"SAMSUNG", + "osVersion":"5.1", + "batteryLevel":1, + "internalTotalMemory":32, + "internalAvailableMemory":24, + "externalTotalMemory":64, + "externalAvailableMemory":60, + "operator":"dialog", + "connectionType":"GSM", + "mobileSignalStrength":1, + "ssid":"picassowifi", + "cpuUsage":0, + "totalRAMMemory":2, + "availableRAMMemory":1, + "pluggedIn":false, + "location":{ + "deviceId":0, + "deviceIdentifier":{ + "id":"string", + "type":"string" + }, + "latitude":0, + "longitude":0, + "street1":"string", + "street2":"string", + "city":"string", + "state":"string", + "zip":"string", + "country":"string" + }, + "deviceDetailsMap":{ + + }, + "imei":"string", + "imsi":"string" + }, + "applications":[ + { + "id":0, + "platform":"string", + "category":"string", + "name":"string", + "locationUrl":"string", + "imageUrl":"string", + "version":"string", + "type":"string", + "appProperties":{ + + }, + "applicationIdentifier":"string", + "memoryUsage":0 + } + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/devices + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "id":1000${DeviceID}, + "name":"androiddevice1000${DeviceID}", + "type":"android", + "description":"this is an android device", + "deviceIdentifier":"d24f870f390352a41000${DeviceID}", + "enrolmentInfo":{ + "id":1000${DeviceID}, + "device":{ + + }, + "dateOfEnrolment":0, + "dateOfLastUpdate":0, + "ownership":"BYOD", + "status":"CREATED", + "owner":"admin" + }, + "features":[ + { + "id":10, + "code":"aaaa1111", + "name":"newfeature2", + "description":"this is the new feature 2", + "deviceType":"android", + "metadataEntries":[ + { + "id":10, + "value":{ + + } + } + ] + } + ], + "properties":[ + { + "name":"property1", + "value":"value1" + } + ], + "deviceInfo":{ + "deviceModel":"S6", + "vendor":"SAMSUNG", + "osVersion":"5.1", + "batteryLevel":1, + "internalTotalMemory":32, + "internalAvailableMemory":24, + "externalTotalMemory":64, + "externalAvailableMemory":60, + "operator":"dialog", + "connectionType":"GSM", + "mobileSignalStrength":1, + "ssid":"picassowifi", + "cpuUsage":0, + "totalRAMMemory":2, + "availableRAMMemory":1, + "pluggedIn":false, + "location":{ + "deviceId":0, + "deviceIdentifier":{ + "id":"string", + "type":"string" + }, + "latitude":0, + "longitude":0, + "street1":"string", + "street2":"string", + "city":"string", + "state":"string", + "zip":"string", + "country":"string" + }, + "deviceDetailsMap":{ + + }, + "imei":"string", + "imsi":"string" + }, + "applications":[ + { + "id":0, + "platform":"string", + "category":"string", + "name":"string", + "locationUrl":"string", + "imageUrl":"string", + "version":"string", + "type":"string", + "appProperties":{ + + }, + "applicationIdentifier":"string", + "memoryUsage":0 + } + ] +} + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a41000${DeviceID} + PUT + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [ + { + "id": 10, + "platform": "android", + "category": "Business", + "name": "Graphical", + "locationUrl": "string", + "imageUrl": "string", + "version": "1.0.0", + "type": "string", + "appProperties": {}, + "applicationIdentifier": "string", + "memoryUsage": 0 + } +] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a41000${DeviceID}/applications + PUT + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [ + { + "code": "aaa", + "properties": {}, + "type": "CONFIG", + "id": 0, + "status": "IN_PROGRESS", + "control": "REPEAT", + "receivedTimeStamp": "string", + "createdTimeStamp": "string", + "payLoad": {}, + "operationResponse": "string", + "activityId": "string", + "responses": [ + { + "response": "string", + "receivedTimeStamp": "string" + } + ], + "enabled": false + } +] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a41000${DeviceID}/pending-operations + PUT + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/devices/d24f870f390352a41000${DeviceID}/status + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f870f390352a4${DeviceID}"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/applications + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"enabled":false,"code":"APPLICATION_LIST","type":"COMMAND","id":1,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:01:57.915","isEnabled":false}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "operation": { + "appIdentifier": [ + "ANGRYBIRD" + ] + }, + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/blacklist-applications + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "lockCode": "0000" + }, + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/change-lock-code + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"code":"CHANGE_LOCK_CODE","type":"PROFILE","id":2,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:14:19.718","isEnabled":true,"payLoad":"{\"lockCode\":\"0000\"}"}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + ["d24f870f390352a4${DeviceID}"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/clear-password + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"enabled":false,"code":"CLEAR_PASSWORD","type":"COMMAND","id":3,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:18:40.233","isEnabled":false}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "operation": { + "serverAddress": "231.168.10.1", + "serverPort": "1701", + "sharedSecret": "YWRtaW4=", + "dnsServer": "8.8.8.8" + }, + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/configure-vpn + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "ssid": "string", + "password": "string" + }, + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/configure-wifi + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"code":"WIFI","type":"PROFILE","id":4,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:24:20.315","isEnabled":true,"payLoad":"{\"ssid\":\"string\",\"password\":\"string\"}"}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "operation": { + "enabled": false + }, + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/control-camera + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"enabled":false,"code":"CAMERA","type":"COMMAND","id":5,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:28:02.864","isEnabled":false}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "operation": { + "encrypted": false + }, + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/encrypt-storage + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"enabled":false,"code":"ENCRYPT_STORAGE","type":"COMMAND","id":6,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:31:15.288","isEnabled":false}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + ["d24f870f390352a4${DeviceID}"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/enterprise-wipe + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"enabled":false,"code":"ENTERPRISE_WIPE","type":"COMMAND","id":7,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:42:12.406","isEnabled":false}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ], + "operation": { + "appIdentifier": "string", + "type": "enterprise", + "url": "https://www.youtube.com", + "name": "youtube" + } +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/install-application + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"code":"INSTALL_APPLICATION","type":"PROFILE","id":8,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:55:15.452","isEnabled":true,"payLoad":"{\"appIdentifier\":\"string\",\"type\":\"string\",\"url\":\"string\"}"}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + ["d24f870f390352a4${DeviceID}"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/location + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"enabled":false,"code":"DEVICE_LOCATION","type":"COMMAND","id":9,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:59:05.927","isEnabled":false}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ], + "operation": { + "message": "string", + "hardLockEnabled": false + } +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/lock-devices + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"code":"DEVICE_LOCK","type":"PROFILE","id":10,"status":"COMPLETED","createdTimeStamp":"2016-08-03 13:53:28.008","isEnabled":true,"payLoad":"{\"message\":\"string\",\"isHardLockEnabled\":false}"}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + ["d24f870f390352a4${DeviceID}"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/mute + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"enabled":true,"code":"DEVICE_MUTE","type":"COMMAND","id":11,"status":"COMPLETED","createdTimeStamp":"2016-08-03 13:56:54.703","isEnabled":false}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + ["d24f870f390352a4${DeviceID}"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/reboot + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"enabled":false,"code":"REBOOT","type":"COMMAND","id":12,"status":"COMPLETED","createdTimeStamp":"2016-08-03 13:59:03.554","isEnabled":false}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + ["d24f870f390352a4${DeviceID}"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/ring + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"enabled":false,"code":"DEVICE_RING","type":"COMMAND","id":13,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:00:54.603","isEnabled":false}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ], + "operation": { + "messageText": "string", + "messageTitle": "string" + } +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/send-notification + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"code":"NOTIFICATION","type":"PROFILE","id":14,"status":"IN_PROGRESS","createdTimeStamp":"2016-08-03 14:02:55.003","isEnabled":true,"payLoad":"{\"messageText\":\"string\",\"messageTitle\":\"string\"}"}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + [{"code":"NOTIFICATION","type":"PROFILE","id":14,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:02:55.003","isEnabled":true,"payLoad":"{\"messageText\":\"string\",\"messageTitle\":\"string\"}"}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "operation": { + "maxFailedAttempts": 0, + "minLength": 0, + "pinHistory": 0, + "minComplexChars": 0, + "maxPINAgeInDays": 0, + "requireAlphanumeric": false, + "allowSimple": false + }, + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/set-password-policy + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"code":"PASSCODE_POLICY","type":"PROFILE","id":15,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:07:01.2","isEnabled":true,"payLoad":"{\"maxFailedAttempts\":0,\"minLength\":0,\"pinHistory\":0,\"minComplexChars\":0,\"maxPINAgeInDays\":0,\"requireAlphanumeric\":false,\"allowSimple\":false}"}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "operation": { + "identity": "string", + "title": "string", + "type": "string" + }, + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/set-webclip + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"code":"WEBCLIP","type":"PROFILE","id":16,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:26:04.822","isEnabled":true,"payLoad":"{\"identity\":\"string\",\"title\":\"string\",\"type\":\"string\"}"}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ], + "operation": { + "appIdentifier": "string", + "type": "enterprise", + "url": "string", + "name": "string" + } +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/uninstall-application + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"code":"UNINSTALL_APPLICATION","type":"PROFILE","id":17,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:28:26.049","isEnabled":true,"payLoad":"{\"appIdentifier\":\"string\",\"type\":\"string\",\"url\":\"string\",\"name\":\"string\"}"}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + ["d24f870f390352a4${DeviceID}"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/unlock-devices + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"enabled":true,"code":"DEVICE_UNLOCK","type":"COMMAND","id":18,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:35:07.994","isEnabled":false}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ], + "operation": { + "appIdentifier": "string", + "type": "enterprise", + "url": "https://www.youtube.com", + "name": "youtube", + "schedule": "" + } +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/update-application + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"code":"UPDATE_APPLICATION","type":"PROFILE","id":19,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:39:32.714","isEnabled":true,"payLoad":"{\"appIdentifier\":\"string\",\"type\":\"string\",\"url\":\"string\",\"schedule\":\"string\"}"}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ], + "operation": { + "schedule": "", + "server": "string" + } +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/upgrade-firmware + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"code":"UPGRADE_FIRMWARE","type":"PROFILE","id":20,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:43:25.406","isEnabled":true,"payLoad":"{\"schedule\":\"string\",\"server\":\"string\"}"}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + { + "operation": { + "pin": "string" + }, + "deviceIDs": [ + "d24f870f390352a4${DeviceID}" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/wipe + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"code":"WIPE_DATA","type":"PROFILE","id":21,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:45:49.198","isEnabled":true,"payLoad":"{\"pin\":\"string\"}"}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + ["d24f870f390352a4${DeviceID}"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/applications + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"enabled":false,"code":"APPLICATION_LIST","type":"COMMAND","id":22,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:55:18.118","isEnabled":false}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/activities + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f870f390352a4${DeviceID}"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/info + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"enabled":false,"code":"DEVICE_INFO","type":"COMMAND","id":23,"status":"COMPLETED","createdTimeStamp":"2016-08-03 15:30:16.779","isEnabled":false, "operationResponse" : '{ "id": 101234, "name": "androiddevice1234","type": "android", "description": "this is an android device","deviceIdentifier": "d24f870f390352a4${DeviceID}","enrolmentInfo": {"id": 101234,"device": {},"dateOfEnrolment": 0,"dateOfLastUpdate": 0,"ownership": "BYOD","status": "CREATED","owner": "admin"},"features": [{"id": 10,"code": "aaaa1111","name": "newfeature1","description": "this is the new feature 1","deviceType": "android","metadataEntries": [{"id": 10,"value": {}}]}],"properties": [{"name": "DEVICE_MODEL","value": "S6"},{"name" : "VENDOR","value" : "SAMSUNG"}],"applications": [ {"id": 0,"platform": "string","category": "string","name": "string","locationUrl": "string","imageUrl": "string","version": "string","type": "string","appProperties": {},"applicationIdentifier": "string","memoryUsage": 0}]}'}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + false diff --git a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/NotificationManagementAPI.jmx b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/NotificationManagementAPI.jmx new file mode 100644 index 00000000..ced0e6a2 --- /dev/null +++ b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/NotificationManagementAPI.jmx @@ -0,0 +1,1693 @@ + + + + + + false + false + + + + + + + + 9999 + 100 + + false + + randAppNum + + + + + + host + localhost + = + + + https_port + 8243 + = + + + http_port + 8280 + = + + + token_ep_host + localhost + = + + + token_ep_port + 8280 + = + + + group_name + Group 2 + = + + + new_group_name + New Group + = + + + role_name + group_sharing + = + + + DeviceID + 20 + = + + + DeviceIdentifier + notifiction_device + = + + + tenant_user_name + admin + Name of Tenant + = + + + domain_name + wso2.com + Name of Domain + = + + + password + admin + Password + = + + + email + abc@wso2.com + Email + = + + + firstName + firstName + First Name + = + + + lastName + lastName + Last Name + = + + + usagePlan + Demo + Usage Plan + = + + + createdDate + 2013-02-22T08:22:35+05:30 + Created Date + = + + + management_https_port + 9443 + Port for carbon management console + = + + + + + + continue + + false + 1 + + 1 + + 1342532280000 + 1342532280000 + false + + + + + + + false + rfc2109 + + + + + + + https://${host}:${management_https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org"> + <soapenv:Header/> + <soapenv:Body> + <aut:login> + <!--Optional:--> + <aut:username>admin</aut:username> + <!--Optional:--> + <aut:password>admin</aut:password> + <!--Optional:--> + <aut:remoteAddress>127.0.0.1</aut:remoteAddress> + </aut:login> + </soapenv:Body> +</soapenv:Envelope> + + urn:login + true + false + + + + + + + https://${host}:${management_https_port}/services/TenantMgtAdminService.TenantMgtAdminServiceHttpsSoap11Endpoint/ + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org"> + <soapenv:Header/> + <soapenv:Body> + <ser:getTenant> + <!--Optional:--> + <ser:tenantDomain>${domain_name}</ser:tenantDomain> + </ser:getTenant> + </soapenv:Body> +</soapenv:Envelope> + + urn:getTenant + true + false + + + + undefined + tenant_exists + //*[local-name()='active']/text() + false + false + true + tenant_exists + + + + false + true + true + false + + + + + ${tenant_exists}==false + false + + + + + + + https://${host}:${management_https_port}/services/TenantMgtAdminService.TenantMgtAdminServiceHttpsSoap11Endpoint/ + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org" xmlns:xsd="http://beans.common.stratos.carbon.wso2.org/xsd"> + <soapenv:Header/> + <soapenv:Body> + <ser:addTenant> + <!--Optional:--> + <ser:tenantInfoBean> + <!--Optional:--> + <xsd:active>1</xsd:active> + <!--Optional:--> + <xsd:admin>${tenant_user_name}</xsd:admin> + <!--Optional:--> + <xsd:adminPassword>${password}</xsd:adminPassword> + <!--Optional:--> + <xsd:createdDate>${createdDate}</xsd:createdDate> + <!--Optional:--> + <xsd:email>${email}</xsd:email> + <!--Optional:--> + <xsd:firstname>${firstName}</xsd:firstname> + <!--Optional:--> + <xsd:lastname>${lastName}</xsd:lastname> + <!--Optional:--> + <xsd:tenantDomain>${domain_name}</xsd:tenantDomain> + <!--Optional:--> + <xsd:tenantId>0</xsd:tenantId> + <!--Optional:--> + <xsd:usagePlan>${usagePlan}</xsd:usagePlan> + </ser:tenantInfoBean> + </ser:addTenant> + </soapenv:Body> +</soapenv:Envelope> + + urn:addTenant + true + false + + + + + + + + https://${host}:${management_https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org"> + <soapenv:Header/> + <soapenv:Body> + <aut:logout/> + </soapenv:Body> +</soapenv:Envelope> + + urn:logout + true + false + + + + + 202 + + Assertion.response_code + false + 1 + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + true + false + false + false + false + false + 0 + true + + + /home/ace/Desktop/results_multi_user_multi_tenancy.jtl + + + + + continue + + false + 1 + + 1 + 1 + 1465464058000 + 1465464058000 + false + + + + + + true + + + + false + { + "applicationName":"app_${randAppNum}", + "isAllowedToAllDomains":false, + "tags":["android", "device_management"], + "isMappingAnExistingOAuthApp":false +} + = + + + + ${host} + ${https_port} + + + https + + /api-application-registration/register + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Basic YWRtaW46YWRtaW4= + + + Host + localhost:9763 + + + Content-Type + application/json + + + + + + false + clientId + "client_id":"(.+?)" + $1$ + 0 + 1 + + + + false + clientSecret + "client_secret":"(.+?)" + $1$ + 0 + 1 + + + + + + clientId,clientSecret + false + import org.apache.commons.codec.binary.Base64; + +String clientId= vars.get("clientId"); +String clientSecret = vars.get("clientSecret"); +String toEncode = clientId + ":" + clientSecret; + +byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes()); +vars.put("base64encodedId",new String(encryptedId)); + + + + + + + false + admin + = + true + username + + + false + admin + = + true + password + + + false + password + = + true + grant_type + + + false + perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications + = + true + scope + + + false + + = + true + + + + + ${host} + ${https_port} + + + https + + /token + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Basic ${base64encodedId} + + + Content-Type + application/x-www-form-urlencoded + + + + + + false + access_token + "access_token":"(.+?)" + $1$ + no_token + 1 + + + + + true + + + + false + { + "id":1000${DeviceID}, + "name":"androiddevice${DeviceID}", + "type":"android", + "description":"this is an android device", + "deviceIdentifier":"${DeviceIdentifier}", + "enrolmentInfo":{ + "id":1000${DeviceID}, + "device":{ + + }, + "dateOfEnrolment":0, + "dateOfLastUpdate":0, + "ownership":"BYOD", + "status":"CREATED", + "owner":"admin" + }, + "features":[ + { + "id":10, + "code":"aaaa1111", + "name":"newfeature1", + "description":"this is the new feature 1", + "deviceType":"android", + "metadataEntries":[ + { + "id":10, + "value":{ + + } + } + ] + } + ], + "properties":[ + { + "name":"property1", + "value":"value1" + } + ], + "deviceInfo":{ + "deviceModel":"S6", + "vendor":"SAMSUNG", + "osVersion":"5.1", + "batteryLevel":1, + "internalTotalMemory":32, + "internalAvailableMemory":24, + "externalTotalMemory":64, + "externalAvailableMemory":60, + "operator":"dialog", + "connectionType":"GSM", + "mobileSignalStrength":1, + "ssid":"picassowifi", + "cpuUsage":0, + "totalRAMMemory":2, + "availableRAMMemory":1, + "pluggedIn":false, + "location":{ + "deviceId":0, + "deviceIdentifier":{ + "id":"string", + "type":"string" + }, + "latitude":0, + "longitude":0, + "street1":"string", + "street2":"string", + "city":"string", + "state":"string", + "zip":"string", + "country":"string" + }, + "deviceDetailsMap":{ + + }, + "imei":"string", + "imsi":"string" + }, + "applications":[ + { + "id":0, + "platform":"string", + "category":"string", + "name":"string", + "locationUrl":"string", + "imageUrl":"string", + "version":"string", + "type":"string", + "appProperties":{ + + }, + "applicationIdentifier":"string", + "memoryUsage":0 + } + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/devices + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + true + + + + false + ["${DeviceIdentifier}"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/location + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"enabled":false,"code":"DEVICE_LOCATION","type":"COMMAND","id":1,"status":"ERROR","createdTimeStamp":"2016-08-03 12:59:05.927","isEnabled":false}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/${DeviceIdentifier}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/notifications + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "DEVICE_LOCATION operation did fail to execute on device androiddevice${DeviceID} with identifier notifiction_device" + + Assertion.response_data + false + 16 + + + + false + notificationId + "id":(.+?) + $1$ + 0 + 1 + + + + + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/v1.0/notifications/${notificationId}/mark-checked + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "NEW" + + Assertion.response_data + false + 20 + + + + + "CHECKED" + + Assertion.response_data + false + 2 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/notifications + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "CHECKED" + + Assertion.response_data + false + 2 + + + + + + tenant_user_name,domain_name,password + false + import org.apache.commons.codec.binary.Base64; + +String tenant_user= vars.get("tenant_user_name") + "@" + vars.get("domain_name") ; +String password= vars.get("password"); +String toEncode = tenant_user + ":" + password; + +byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes()); +vars.put("encodedUserPassword","Basic " + new String(encryptedId)); + + + + true + + + + false + { + "applicationName":"app_hello", + "isAllowedToAllDomains":false, + "tags":["android", "device_management"], + "isMappingAnExistingOAuthApp":false +} + = + + + + ${host} + ${https_port} + + + https + + /api-application-registration/register + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + ${encodedUserPassword} + + + Host + localhost:9763 + + + Content-Type + application/json + + + + + + false + clientId + "client_id":"(.+?)" + $1$ + 0 + 1 + + + + false + clientSecret + "client_secret":"(.+?)" + $1$ + 0 + 1 + + + + + + clientId,clientSecret + false + import org.apache.commons.codec.binary.Base64; + +String clientId= vars.get("clientId"); +String clientSecret = vars.get("clientSecret"); +String toEncode = clientId + ":" + clientSecret; + +byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes()); +vars.put("base64encodedId",new String(encryptedId)); + + + + + + + false + ${tenant_user_name}@${domain_name} + = + true + username + + + false + ${password} + = + true + password + + + false + password + = + true + grant_type + + + false + perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications + = + true + scope + + + false + + = + true + + + + + ${host} + ${https_port} + + + https + + /token + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Basic ${base64encodedId} + + + Content-Type + application/x-www-form-urlencoded + + + + + + false + access_token + "access_token":"(.+?)" + $1$ + no_token + 1 + + + + + true + + + + false + { + "id":1000${DeviceID}, + "name":"androiddevice${DeviceID}", + "type":"android", + "description":"this is an android device", + "deviceIdentifier":"${DeviceIdentifier}", + "enrolmentInfo":{ + "id":1000${DeviceID}, + "device":{ + + }, + "dateOfEnrolment":0, + "dateOfLastUpdate":0, + "ownership":"BYOD", + "status":"CREATED", + "owner":"admin" + }, + "features":[ + { + "id":10, + "code":"aaaa1111", + "name":"newfeature1", + "description":"this is the new feature 1", + "deviceType":"android", + "metadataEntries":[ + { + "id":10, + "value":{ + + } + } + ] + } + ], + "properties":[ + { + "name":"property1", + "value":"value1" + } + ], + "deviceInfo":{ + "deviceModel":"S6", + "vendor":"SAMSUNG", + "osVersion":"5.1", + "batteryLevel":1, + "internalTotalMemory":32, + "internalAvailableMemory":24, + "externalTotalMemory":64, + "externalAvailableMemory":60, + "operator":"dialog", + "connectionType":"GSM", + "mobileSignalStrength":1, + "ssid":"picassowifi", + "cpuUsage":0, + "totalRAMMemory":2, + "availableRAMMemory":1, + "pluggedIn":false, + "location":{ + "deviceId":0, + "deviceIdentifier":{ + "id":"string", + "type":"string" + }, + "latitude":0, + "longitude":0, + "street1":"string", + "street2":"string", + "city":"string", + "state":"string", + "zip":"string", + "country":"string" + }, + "deviceDetailsMap":{ + + }, + "imei":"string", + "imsi":"string" + }, + "applications":[ + { + "id":0, + "platform":"string", + "category":"string", + "name":"string", + "locationUrl":"string", + "imageUrl":"string", + "version":"string", + "type":"string", + "appProperties":{ + + }, + "applicationIdentifier":"string", + "memoryUsage":0 + } + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/devices + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + true + + + + false + ["${DeviceIdentifier}"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/location + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [{"enabled":false,"code":"DEVICE_LOCATION","type":"COMMAND","id":1,"status":"ERROR","createdTimeStamp":"2016-08-03 12:59:05.927","isEnabled":false}] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/${DeviceIdentifier}/pending-operations + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/notifications + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "DEVICE_LOCATION operation did fail to execute on device androiddevice${DeviceID} with identifier notifiction_device" + + Assertion.response_data + false + 16 + + + + false + notificationId + "id":(.+?) + $1$ + 0 + 1 + + + + + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/v1.0/notifications/${notificationId}/mark-checked + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "NEW" + + Assertion.response_data + false + 20 + + + + + "CHECKED" + + Assertion.response_data + false + 2 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/notifications + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "CHECKED" + + Assertion.response_data + false + 2 + + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + + + + Results + true + false + true + false + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + + + + + diff --git a/modules/integration/tests-integration/src/test/resources/testng.xml b/modules/integration/tests-integration/src/test/resources/testng.xml index 2d8e6ec9..07db3e63 100644 --- a/modules/integration/tests-integration/src/test/resources/testng.xml +++ b/modules/integration/tests-integration/src/test/resources/testng.xml @@ -114,6 +114,11 @@ + + + + + diff --git a/pom.xml b/pom.xml index 48687e44..2bcd276e 100644 --- a/pom.xml +++ b/pom.xml @@ -1513,7 +1513,7 @@ - 2.0.49 + 2.0.53 [2.0.0, 3.0.0) @@ -1521,7 +1521,7 @@ - 3.0.27 + 3.0.29 6.1.80