Adding android sense test cases

application-manager-new
megala21 8 years ago
parent 246d84cb19
commit 19b06bc8bc

@ -23,7 +23,6 @@ import java.io.File;
* Constants used through out the test suite are defined here. * Constants used through out the test suite are defined here.
*/ */
public final class Constants { public final class Constants {
public static final String DEVICE_ID = "d24f870f390352a41234"; public static final String DEVICE_ID = "d24f870f390352a41234";
public static final String NUMBER_NOT_EQUAL_TO_DEVICE_ID = "1111"; public static final String NUMBER_NOT_EQUAL_TO_DEVICE_ID = "1111";
public static final String DEVICE_IMEI = "123123123"; public static final String DEVICE_IMEI = "123123123";
@ -44,9 +43,7 @@ public final class Constants {
public static final String CONTENT_TYPE = "Content-Type"; public static final String CONTENT_TYPE = "Content-Type";
public static final String APPLICATION_SOAP_XML = "application/soap+xml; charset=utf-8"; public static final String APPLICATION_SOAP_XML = "application/soap+xml; charset=utf-8";
public static final String UTF8 = "UTF-8"; public static final String UTF8 = "UTF-8";
public static final String ZERO = "0"; public static final int HTTPS_ANALYTICS_PORT = 9445;
public static final String NULL = "[]";
public static final String INACTIVE = "INACTIVE";
public static final String HTTPS = "https"; public static final String HTTPS = "https";
public static final String HTTP = "http"; public static final String HTTP = "http";
@ -59,7 +56,10 @@ public final class Constants {
public static final String TOKEN_ENDPOINT = "/token"; public static final String TOKEN_ENDPOINT = "/token";
public static final String MULTI_TENANT_OAUTH_TOKEN_PAYLOAD = "&grant_type=password&scope=perm:android:enroll" public static final String MULTI_TENANT_OAUTH_TOKEN_PAYLOAD = "&grant_type=password&scope=perm:android:enroll"
+ " perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn " + " 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"; + "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 perm:devicetype:deployment perm:android-sense:enroll";
public static final String OAUTH_TOKEN_PAYLOAD = "username=admin&password=admin" + public static final String OAUTH_TOKEN_PAYLOAD = "username=admin&password=admin" +
MULTI_TENANT_OAUTH_TOKEN_PAYLOAD; MULTI_TENANT_OAUTH_TOKEN_PAYLOAD;
@ -71,19 +71,21 @@ public final class Constants {
public static final String PERMISSION_LIST = "default perm:admin-groups:count perm:admin-groups:view " public static final String PERMISSION_LIST = "default perm:admin-groups:count perm:admin-groups:view "
+ "perm:admin-users:view perm:admin:certificates:add perm:admin:certificates:delete " + "perm:admin-users:view perm:admin:certificates:add perm:admin:certificates:delete "
+ "perm:admin:certificates:details perm:admin:certificates:verify perm:admin:certificates:view " + "perm:admin:certificates:details perm:admin:certificates:verify perm:admin:certificates:view "
+ "perm:admin:devices:view perm:android:applications perm:android:blacklist-applications " + "perm:admin:devices:view perm:android-sense:enroll perm:android:applications "
+ "perm:android:change-lock-code perm:android:clear-password perm:android:configure-vpn perm:android:configure-wifi " + "perm:android:blacklist-applications perm:android:change-lock-code perm:android:clear-password "
+ "perm:android:configure-vpn perm:android:configure-wifi "
+ "perm:android:control-camera perm:android:disenroll perm:android:encrypt-storage " + "perm:android:control-camera perm:android:disenroll perm:android:encrypt-storage "
+ "perm:android:enroll perm:android:enterprise-wipe perm:android:info perm:android:install-application " + "perm:android:enroll perm:android:enterprise-wipe perm:android:info perm:android:install-application "
+ "perm:android:location perm:android:lock-devices perm:android:logcat perm:android:manage-configuration " + "perm:android:location perm:android:lock-devices perm:android:logcat perm:android:manage-configuration "
+ "perm:android:mute perm:android:reboot perm:android:ring perm:android:send-notification " + "perm:android:mute perm:android:reboot perm:android:ring perm:android:send-notification "
+ "perm:android:set-password-policy perm:android:set-webclip perm:android:uninstall-application " + "perm:android:set-password-policy perm:android:set-webclip perm:android:uninstall-application "
+ "perm:android:unlock-devices perm:android:update-application perm:android:upgrade-firmware " + "perm:android:unlock-devices perm:android:update-application perm:android:upgrade-firmware "
+ "perm:android:view-configuration perm:android:wipe perm:applications:install perm:applications:uninstall " + "perm:android:view-configuration perm:android:wipe "
+ "perm:device-types:features perm:device-types:types perm:devices:applications " + "perm:applications:install perm:applications:uninstall perm:device-types:features "
+ "perm:devices:compliance-data perm:devices:delete perm:devices:details perm:devices:effective-policy " + "perm:device-types:types perm:devices:applications perm:devices:compliance-data perm:devices:delete "
+ "perm:devices:features perm:devices:operations perm:devices:search perm:devices:update " + "perm:devices:details perm:devices:effective-policy perm:devices:features perm:devices:operations "
+ "perm:devices:view perm:get-activity perm:groups:add perm:groups:assign perm:groups:count " + "perm:devices:search perm:devices:update perm:devices:view perm:devicetype:deployment "
+ "perm:get-activity perm:groups:add perm:groups:assign perm:groups:count "
+ "perm:groups:device perm:groups:devices perm:groups:devices-add perm:groups:devices-count " + "perm:groups:device perm:groups:devices perm:groups:devices-add perm:groups:devices-count "
+ "perm:groups:devices-remove perm:groups:groups perm:groups:groups-view perm:groups:remove " + "perm:groups:devices-remove perm:groups:groups perm:groups:groups-view perm:groups:remove "
+ "perm:groups:roles perm:groups:share perm:groups:update perm:manage-configuration " + "perm:groups:roles perm:groups:share perm:groups:update perm:manage-configuration "
@ -298,8 +300,6 @@ public final class Constants {
public static final String REQUEST_PAYLOAD_FILE_NAME = "mobile-device-mgt-payloads.json"; public static final String REQUEST_PAYLOAD_FILE_NAME = "mobile-device-mgt-payloads.json";
public static final String UPDATE_PAYLOAD_OPERATION = "UPDATE_DEVICE_INFO"; public static final String UPDATE_PAYLOAD_OPERATION = "UPDATE_DEVICE_INFO";
public static final String VIEW_DEVICE_TYPES_ENDPOINT = "/mdm-admin/devices/types"; public static final String VIEW_DEVICE_TYPES_ENDPOINT = "/mdm-admin/devices/types";
public static final String VIEW_DEVICE_RESPONSE_PAYLOAD_FILE_NAME =
"mobile-device-mgt-view-device-types-response-payloads.json";
public static final String NO_DEVICE = "{\"devices\":[],\"count\":0}"; public static final String NO_DEVICE = "{\"devices\":[],\"count\":0}";
private MobileDeviceManagement() { private MobileDeviceManagement() {
@ -391,6 +391,19 @@ public final class Constants {
private NotificationManagement() { private NotificationManagement() {
throw new AssertionError(); throw new AssertionError();
} }
}
public static final class AndroidSenseEnrollment {
public static final String ENROLLMENT_ENDPOINT = "/android_sense/1.0.0/device/";
public static final String RETRIEVER_ENDPOINT = "analytics/tables/";
public static final String ANALYTICS_ARTIFACTS_DEPLOYMENT_ENDPOINT = "/api/device-mgt/v1.0/admin/devicetype/1.0.0/deploy/android_sense";
public static final String ENROLLMENT_PAYLOAD_FILE_NAME = "android-sense-enrollment-payloads.json";
public static final String PUBLISH_DATA_OPERATION = "PUBLISH_DATA";
public static final String BATTERY_STATS_TABLE_NAME = "ORG_WSO2_IOT_ANDROID_BATTERY_STATS";
public static final String IS_TABLE_EXIST_CHECK_URL = "analytics/table_exists";
private AndroidSenseEnrollment() {
throw new AssertionError();
} }
}
} }

@ -35,6 +35,7 @@ public class TestBase {
protected String backendHTTPSURL; protected String backendHTTPSURL;
protected String backendHTTPURL; protected String backendHTTPURL;
protected String accessTokenString; protected String accessTokenString;
protected String accessToken;
protected TestUserMode userMode; protected TestUserMode userMode;
protected void init(TestUserMode userMode) throws Exception { protected void init(TestUserMode userMode) throws Exception {
@ -48,9 +49,9 @@ public class TestBase {
byte[] bytesEncoded = Base64 byte[] bytesEncoded = Base64
.encodeBase64((currentUser.getUserName() + ":" + currentUser.getPassword()).getBytes()); .encodeBase64((currentUser.getUserName() + ":" + currentUser.getPassword()).getBytes());
String encoded = new String(bytesEncoded); String encoded = new String(bytesEncoded);
accessTokenString = "Bearer " + OAuthUtil accessToken = OAuthUtil.getOAuthTokenPair(encoded, backendHTTPSURL, backendHTTPSURL, currentUser.getUserName(),
.getOAuthTokenPair(encoded, backendHTTPSURL, backendHTTPSURL, currentUser.getUserName(),
currentUser.getPassword()); currentUser.getPassword());
accessTokenString = "Bearer " + accessToken;
} }
protected void initPublisher(String productGroupName, String instanceName, protected void initPublisher(String productGroupName, String instanceName,

@ -269,6 +269,10 @@
<groupId>org.wso2.carbon.automation</groupId> <groupId>org.wso2.carbon.automation</groupId>
<artifactId>org.wso2.carbon.automation.extensions</artifactId> <artifactId>org.wso2.carbon.automation.extensions</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
</dependency>
</dependencies> </dependencies>
<properties> <properties>

@ -0,0 +1,146 @@
/*
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.wso2.iot.integration.device.enrollment;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import junit.framework.Assert;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.net.util.Base64;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Factory;
import org.testng.annotations.Test;
import org.wso2.carbon.automation.engine.context.TestUserMode;
import org.wso2.carbon.automation.engine.context.beans.User;
import org.wso2.carbon.automation.test.utils.http.client.HttpResponse;
import org.wso2.iot.integration.common.Constants;
import org.wso2.iot.integration.common.PayloadGenerator;
import org.wso2.iot.integration.common.RestClient;
import org.wso2.iot.integration.common.TestBase;
import java.sql.Timestamp;
/**
* This class tests the android sense enrollment.
*/
public class AndroidSenseEnrollment extends TestBase {
private static Log log = LogFactory.getLog(AndroidSenseEnrollment.class);
private RestClient client;
private String DEVICE_ID = "AS101";
private RestClient analyticsClient;
@Factory(dataProvider = "userModeProvider")
public AndroidSenseEnrollment(TestUserMode userMode) {
this.userMode = userMode;
}
@BeforeClass(alwaysRun = true, groups = { Constants.UserManagement.USER_MANAGEMENT_GROUP})
public void initTest() throws Exception {
super.init(userMode);
User currentUser = getAutomationContext().getContextTenant().getContextUser();
byte[] bytesEncoded = Base64
.encodeBase64((currentUser.getUserName() + ":" + currentUser.getPassword()).getBytes());
String encoded = new String(bytesEncoded);
String auth_string = "Basic " + encoded;
String anaytics_https_url = automationContext.getContextUrls().getWebAppURLHttps()
.replace("9443", String.valueOf(Constants.HTTPS_ANALYTICS_PORT))
.replace("/t/" + automationContext.getContextTenant().getDomain(), "") + "/";
this.client = new RestClient(backendHTTPSURL, Constants.APPLICATION_JSON, accessTokenString);
this.analyticsClient = new RestClient(anaytics_https_url, Constants.APPLICATION_JSON, auth_string);
if (this.userMode == TestUserMode.TENANT_ADMIN) {
HttpResponse response = client
.post(Constants.AndroidSenseEnrollment.ANALYTICS_ARTIFACTS_DEPLOYMENT_ENDPOINT, "");
Assert.assertEquals(HttpStatus.SC_CREATED, response.getResponseCode());
// Time for deploying the carbon apps
Thread.sleep(30000);
}
}
@Test(description = "Test an Android sense device enrollment.")
public void testEnrollment() throws Exception {
HttpResponse response = client.post(Constants.AndroidSenseEnrollment.ENROLLMENT_ENDPOINT + DEVICE_ID
+ "/register?deviceName=android_sense_test", "");
// Time for deploying the carbon apps
Thread.sleep(30000);
Assert.assertEquals(HttpStatus.SC_OK, response.getResponseCode());
JsonElement jsonElement = new JsonParser().parse(response.getData());
JsonObject expectedPayloadObject = jsonElement.getAsJsonObject();
Assert.assertNotNull("Mqtt end-point is returned with the android sense enrollment " + "payload",
expectedPayloadObject.get("mqttEndpoint"));
Assert.assertNotNull("Tenant domain is returned with the android sense enrollment " + "payload",
expectedPayloadObject.get("tenantDomain"));
}
@Test(description = "Test an Android sense device data publishing.", dependsOnMethods = {"testEnrollment"} )
public void testEventPublishing() throws Exception {
String DEVICE_TYPE = "android_sense";
String topic = automationContext.getContextTenant().getDomain() + "/" + DEVICE_TYPE + "/" + DEVICE_ID + "/data";
int qos = 2;
String broker = "tcp://localhost:1886";
String clientId = DEVICE_ID + ":" + DEVICE_TYPE;
MemoryPersistence persistence = new MemoryPersistence();
MqttClient sampleClient = new MqttClient(broker, clientId, persistence);
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setUserName(accessToken);
connOpts.setPassword("".toCharArray());
connOpts.setKeepAliveInterval(120);
connOpts.setCleanSession(true);
log.info("Connecting to broker: " + broker);
sampleClient.connect(connOpts);
log.info("Connected");
MqttMessage message = new MqttMessage(PayloadGenerator
.getJsonArray(Constants.AndroidSenseEnrollment.ENROLLMENT_PAYLOAD_FILE_NAME,
Constants.AndroidSenseEnrollment.PUBLISH_DATA_OPERATION).toString().getBytes());
message.setQos(qos);
sampleClient.publish(topic, message);
log.info("Message is published to Mqtt Client");
Thread.sleep(30000);
HttpResponse response = analyticsClient
.get(Constants.AndroidSenseEnrollment.IS_TABLE_EXIST_CHECK_URL + "?table="
+ Constants.AndroidSenseEnrollment.BATTERY_STATS_TABLE_NAME);
Assert.assertEquals("ORG_WSO2_IOT_ANDROID_BATTERY_STATS table does not exist. Problem with the android sense "
+ "analytics", HttpStatus.SC_OK, response.getResponseCode());
// Allow some time to perform the analytics tasks.
Thread.sleep(30000);
sampleClient.disconnect();
log.info("Mqtt Client is Disconnected");
String url = Constants.AndroidSenseEnrollment.RETRIEVER_ENDPOINT
+ Constants.AndroidSenseEnrollment.BATTERY_STATS_TABLE_NAME + "/";
Timestamp timestamp = new Timestamp(System.currentTimeMillis() - 3600000);
url += timestamp.getTime() + "/" + new Timestamp(System.currentTimeMillis()).getTime() + "/0/100";
response = analyticsClient.get(url);
JsonArray jsonArray = new JsonParser().parse(response.getData()).getAsJsonArray();
Assert.assertEquals(
"Published event for the device with the id " + DEVICE_ID + " is not inserted to analytics table",
HttpStatus.SC_OK, response.getResponseCode());
Assert.assertEquals(
"Published event for the device with the id " + DEVICE_ID + " is not inserted to analytics table", 1,
jsonArray.size());
}
}

@ -35,7 +35,7 @@ public class AppManagerJmeterTestCase {
private static Log log = LogFactory.getLog(AppManagerJmeterTestCase.class); private static Log log = LogFactory.getLog(AppManagerJmeterTestCase.class);
@Test(description = "This test case tests the flow of App Manager mobile-app creation and lifecycle") @Test(description = "This test case tests the flow of App Manager mobile-app creation and lifecycle")
public void GroupManagementTest() throws AutomationFrameworkException { public void AppManagementTest() throws AutomationFrameworkException {
URL url = Thread.currentThread().getContextClassLoader() URL url = Thread.currentThread().getContextClassLoader()
.getResource("jmeter-scripts" + File.separator + "AppManagerTest.jmx"); .getResource("jmeter-scripts" + File.separator + "AppManagerTest.jmx");
JMeterTest script = new JMeterTest(new File(url.getPath())); JMeterTest script = new JMeterTest(new File(url.getPath()));

@ -189,9 +189,9 @@
<platformExecutionManager> <platformExecutionManager>
<extentionClasses> <extentionClasses>
<class> <class>
<!--<name>org.wso2.iot.integration.common.extensions.BrokerServerExtension</name>--> <name>org.wso2.iot.integration.common.extensions.BrokerServerExtension</name>
<name>org.wso2.iot.integration.common.extensions.IOTServerExtension</name> <name>org.wso2.iot.integration.common.extensions.IOTServerExtension</name>
<!--<name>org.wso2.iot.integration.common.extensions.AnalyticsServerExtension</name>--> <name>org.wso2.iot.integration.common.extensions.AnalyticsServerExtension</name>
<name>org.wso2.carbon.integration.common.extensions.usermgt.UserPopulateExtension</name> <name>org.wso2.carbon.integration.common.extensions.usermgt.UserPopulateExtension</name>
</class> </class>
</extentionClasses> </extentionClasses>

@ -776,7 +776,7 @@ vars.put(&quot;base64encodedId&quot;,new String(encryptedId));</stringProp>
<hashTree/> <hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings"> <collectionProp name="Asserion.test_strings">
<stringProp name="313320275">&quot;DEVICE_LOCATION operation did fail to execute on device androiddevice${DeviceID} with identifier notifiction_device&quot;</stringProp> <stringProp name="964408801">DEVICE_LOCATION operation failed to execute on device androiddevice${DeviceID}</stringProp>
</collectionProp> </collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp> <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp> <boolProp name="Assertion.assume_success">false</boolProp>
@ -1364,7 +1364,7 @@ vars.put(&quot;base64encodedId&quot;,new String(encryptedId));</stringProp>
<hashTree/> <hashTree/>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true"> <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings"> <collectionProp name="Asserion.test_strings">
<stringProp name="313320275">&quot;DEVICE_LOCATION operation did fail to execute on device androiddevice${DeviceID} with identifier notifiction_device&quot;</stringProp> <stringProp name="964408801">DEVICE_LOCATION operation failed to execute on device androiddevice${DeviceID}</stringProp>
</collectionProp> </collectionProp>
<stringProp name="Assertion.test_field">Assertion.response_data</stringProp> <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp> <boolProp name="Assertion.assume_success">false</boolProp>

@ -0,0 +1,63 @@
{
"PUBLISH_DATA": [{
"event": {
"metaData": {
"owner": "admin",
"deviceId": "AS101",
"type": "battery",
"timestamp": 1494315475
},
"payloadData": {
"battery": 4,
"battery_state": "abc",
"battery_status": 90,
"battery_temperature": 100,
"gps_lat": 4.504343,
"gps_long": 4.504343,
"accelerometer_x": 6.6,
"accelerometer_y": 2.3,
"accelerometer_z": 4.5,
"speed_limit": 9.8,
"turn_way": "data5",
"magnetic_x": 8.9,
"magnetic_y": 6.6,
"magnetic_z": 6.6,
"gyroscope_x": 6.6,
"gyroscope_y": 8.9,
"gyroscope_z": 9.8,
"light": 2.3,
"pressure": 8.9,
"proximity": 6.6,
"gravity_x": 2.3,
"gravity_y": 6.6,
"gravity_z": 2.3,
"rotation_x": 6.6,
"rotation_y": 4.5,
"rotation_z": 6.6,
"word": "data1",
"word_sessionId": "data2",
"word_status": "data1",
"beacon_major": 70,
"beacon_minor": 45,
"beacon_proximity": "data4",
"beacon_uuid": 4,
"call_number": "data3",
"call_type": "data3",
"call_start_time": 4354643,
"call_end_time": 4354643,
"screen_state": "data1",
"audio_playing": true,
"headset_on": true,
"music_volume": 4,
"activity_type": 50,
"confidence": 45,
"sms_number": "data2",
"application_name": "data1",
"action": "data5",
"data_type": "data3",
"data_sent": 323232,
"data_received": 645565
}
}
}]
}

@ -89,6 +89,11 @@
<class name="org.wso2.iot.integration.jmeter.AppManagerJmeterTestCase"/> <class name="org.wso2.iot.integration.jmeter.AppManagerJmeterTestCase"/>
</classes> </classes>
</test> </test>
<test name="android-sense-enrollment" preserve-order="true" parallel="false">
<classes>
<class name="org.wso2.iot.integration.device.enrollment.AndroidSenseEnrollment"/>
</classes>
</test>
<test name="user-mgt" preserve-order="true" parallel="false"> <test name="user-mgt" preserve-order="true" parallel="false">
<classes> <classes>
<class name="org.wso2.iot.integration.user.UserManagement"/> <class name="org.wso2.iot.integration.user.UserManagement"/>

Loading…
Cancel
Save