From 348ca13d064f053478ffa2ef94911b3350ce2b3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Hern=C3=A1ndez?= Date: Tue, 17 Jun 2014 11:15:13 +0200 Subject: [PATCH 1/3] GPII-779: Add support in Android for detecting installed solutions --- testData/solutions/android.json | 160 +++++++++++++++++++++----------- 1 file changed, 107 insertions(+), 53 deletions(-) diff --git a/testData/solutions/android.json b/testData/solutions/android.json index 40208d502..8a0de9902 100644 --- a/testData/solutions/android.json +++ b/testData/solutions/android.json @@ -6,7 +6,13 @@ "OS": [{ "id": "android", "version": ">=0.1" - }] + }], + "deviceReporters": [ + { + "type": "gpii.androidDeviceReporter.findService", + "name": "com.blogspot.tonyatkins.freespeech" + } + ] }, "settingsHandlers": [ { @@ -38,7 +44,13 @@ "OS": [{ "id": "android", "version": ">=0.1" - }] + }], + "deviceReporters": [ + { + "type": "gpii.androidDeviceReporter.findService", + "name": "com.google.android.marvin.talkback" + } + ] }, "settingsHandlers": [ { @@ -73,6 +85,12 @@ "id": "android", "version": ">=0.1" } + ], + "deviceReporters": [ + { + "type": "gpii.androidDeviceReporter.findService", + "name": "android" + } ] }, "settingsHandlers": [ @@ -287,6 +305,12 @@ "id": "android", "version": ">=0.1" } + ], + "deviceReporters": [ + { + "type": "gpii.androidDeviceReporter.findService", + "name": "com.android.providers.media" + } ] }, "settingsHandlers": [ @@ -328,6 +352,12 @@ "id": "android", "version": ">=0.1" } + ], + "deviceReporters": [ + { + "type": "gpii.androidDeviceReporter.findService", + "name": "com.android.providers.settings" + } ] }, "settingsHandlers": [ @@ -369,6 +399,12 @@ "id": "android", "version": ">=0.1" } + ], + "deviceReporters": [ + { + "type": "gpii.androidDeviceReporter.findService", + "name": "com.android.providers.settings" + } ] }, "settingsHandlers": [ @@ -437,67 +473,79 @@ "name": "Omnitor eCtouch/eCmobile", "id": "se.omnitor.ecmobile", "contexts": { - "OS": [{ - "id": "android", - "version": ">=0.1" - }] + "OS": [ + { + "id": "android", + "version": ">=0.1" + } + ], + "deviceReporters": [ + { + "type": "gpii.androidDeviceReporter.findService", + "name": "se.omnitor.ecmobile" + }, + { + "type": "gpii.androidDeviceReporter.findService", + "name": "se.omnitor.ectouch" + } + ] }, "settingsHandlers": [ - { - "type": "gpii.settingsHandlers.XMLHandler.set", - "options": { - "filename": "/sdcard/output.xml", - "encoding": "utf-8", - "xml-tag": "", - "rules": { - "map": "map", - "map.string": { - "transform": { - "type": "fluid.transforms.arrayToObject", - "inputPath": "map.string", - "key": "name" + { + "type": "gpii.settingsHandlers.XMLHandler.set", + "options": { + "filename": "/sdcard/output.xml", + "encoding": "utf-8", + "xml-tag": "", + "rules": { + "map": "map", + "map.string": { + "transform": { + "type": "fluid.transforms.arrayToObject", + "inputPath": "map.string", + "key": "name" + } } } - } - }, - "capabilities": [ - "applications.se\\.omnitor\\.ecmobile.id" - ], - "capabilitiesTransformations": { - "map\\.string\\.fontsize\\.$t": { - "transform": { - "type": "fluid.transforms.linearScale", - "valuePath": "display.screenEnhancement.fontSize", - "factor": 2 - } }, - "map\\.string\\.theme\\.$t": { - "transform": { - "type": "fluid.transforms.condition", - "conditionPath": "display.screenEnhancement.-provisional-highContrastEnabled", - "true": "yellow-black", - "truePath": "display.screenEnhancement.-provisional-highContrastTheme", - "false": "none" + "capabilities": [ + "applications.se\\.omnitor\\.ecmobile.id" + ], + "capabilitiesTransformations": { + "map\\.string\\.fontsize\\.$t": { + "transform": { + "type": "fluid.transforms.linearScale", + "valuePath": "display.screenEnhancement.fontSize", + "factor": 2 + } + }, + "map\\.string\\.theme\\.$t": { + "transform": { + "type": "fluid.transforms.condition", + "conditionPath": "display.screenEnhancement.-provisional-highContrastEnabled", + "true": "yellow-black", + "truePath": "display.screenEnhancement.-provisional-highContrastTheme", + "false": "none" + } } } } - } ], "lifecycleManager": { - "start": [ - "setSettings", - { - "type": "gpii.androidActivityManager.startActivityByPackageName", - "packageName": "se.omnitor.ecmobile" - } - ], - "stop": [ - { - "type": "gpii.androidActivityManager.stopActivityByPackageName", - "packageName": "se.omnitor.ecmobile" - }, - "restoreSettings" - ] + "start": [ + "setSettings", + { + "type": "gpii.androidActivityManager.startActivityByPackageName", + "packageName": "se.omnitor.ecmobile" + } + ], + "stop": [ + { + "type": "gpii.androidActivityManager.stopActivityByPackageName", + "packageName": "se.omnitor.ecmobile" + }, + "restoreSettings" + ] } }, { @@ -509,6 +557,12 @@ "id": "android", "version": ">=0.1" } + ], + "deviceReporters": [ + { + "type": "gpii.androidDeviceReporter.findApplication", + "name": "Mobile Accessibility" + } ] }, "settingsHandlers": [ From 52f8f3b8b0709e5d116fd563915554f517e335b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Hern=C3=A1ndez?= Date: Mon, 23 Mar 2015 11:57:57 +0100 Subject: [PATCH 2/3] GPII-779: Updated according to the new solutions entry format The new format can be found in the following pad: http://piratepad.net/ep/pad/view/c4a-arch-29-10-2014/UK4CwimNsN --- testData/solutions/android.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/testData/solutions/android.json b/testData/solutions/android.json index dd360b827..618d1200b 100644 --- a/testData/solutions/android.json +++ b/testData/solutions/android.json @@ -6,7 +6,7 @@ "id": "android", "version": ">=0.1" }], - "deviceReporters": [ + "isInstalled": [ { "type": "gpii.androidDeviceReporter.findService", "name": "com.blogspot.tonyatkins.freespeech" @@ -43,7 +43,7 @@ "id": "android", "version": ">=0.1" }], - "deviceReporters": [ + "isInstalled": [ { "type": "gpii.androidDeviceReporter.findService", "name": "com.google.android.marvin.talkback" @@ -84,7 +84,7 @@ "version": ">=0.1" } ], - "deviceReporters": [ + "isInstalled": [ { "type": "gpii.androidDeviceReporter.findService", "name": "android" @@ -303,7 +303,7 @@ "version": ">=0.1" } ], - "deviceReporters": [ + "isInstalled": [ { "type": "gpii.androidDeviceReporter.findService", "name": "com.android.providers.media" @@ -359,7 +359,7 @@ "version": ">=0.1" } ], - "deviceReporters": [ + "isInstalled": [ { "type": "gpii.androidDeviceReporter.findService", "name": "com.android.providers.settings" @@ -426,7 +426,7 @@ "version": ">=0.1" } ], - "deviceReporters": [ + "isInstalled": [ { "type": "gpii.androidDeviceReporter.findService", "name": "com.android.providers.settings" @@ -514,7 +514,7 @@ "version": ">=0.1" } ], - "deviceReporters": [ + "isInstalled": [ { "type": "gpii.androidDeviceReporter.findService", "name": "se.omnitor.ecmobile" @@ -592,7 +592,7 @@ "version": ">=0.1" } ], - "deviceReporters": [ + "isInstalled": [ { "type": "gpii.androidDeviceReporter.findApplication", "name": "Mobile Accessibility" From 579e6f40a7a64b5d6c8f14cd48794269d0359f15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Hern=C3=A1ndez?= Date: Fri, 30 Oct 2015 01:34:40 +0100 Subject: [PATCH 3/3] GPII-779: Added tests for android's dynamic device reporter --- gpii/node_modules/testing/src/Integration.js | 24 ++++ .../android-dynamicDeviceReporter-testSpec.js | 120 ++++++++++++++++++ ...android-dynamicDeviceReporter-testSpec.txt | 8 ++ .../android-dynamicDeviceReporter-config.json | 6 + .../android-dynamicDeviceReporter-config.txt | 4 + tests/platform/index-android.js | 3 +- 6 files changed, 164 insertions(+), 1 deletion(-) create mode 100644 tests/platform/android/android-dynamicDeviceReporter-testSpec.js create mode 100644 tests/platform/android/android-dynamicDeviceReporter-testSpec.txt create mode 100644 tests/platform/android/configs/android-dynamicDeviceReporter-config.json create mode 100644 tests/platform/android/configs/android-dynamicDeviceReporter-config.txt diff --git a/gpii/node_modules/testing/src/Integration.js b/gpii/node_modules/testing/src/Integration.js index e9bd8c450..3f46fc3d2 100644 --- a/gpii/node_modules/testing/src/Integration.js +++ b/gpii/node_modules/testing/src/Integration.js @@ -448,3 +448,27 @@ fluid.defaults("gpii.test.integration.deviceReporterAware.linux", { } } }); + +fluid.defaults("gpii.test.integration.deviceReporterAware.android", { + gradeNames: ["gpii.test.integration.deviceReporterAware", "autoInit"], + mockDeviceReporters: { + "gpii.androidDeviceReporter.findService": { + mockFunc: "findNameInList", + defaults: { + gradeNames: "fluid.function", + argumentMap: { + name: 0 + } + } + }, + "gpii.androidDeviceReporter.findApplication": { + mockFunc: "findNameInList", + defaults: { + gradeNames: "fluid.function", + argumentMap: { + name: 0 + } + } + } + } +}); diff --git a/tests/platform/android/android-dynamicDeviceReporter-testSpec.js b/tests/platform/android/android-dynamicDeviceReporter-testSpec.js new file mode 100644 index 000000000..72984fd02 --- /dev/null +++ b/tests/platform/android/android-dynamicDeviceReporter-testSpec.js @@ -0,0 +1,120 @@ +/* +GPII Integration and Acceptance Testing + +Copyright 2014, 2015 Emergya + +Licensed under the New BSD license. You may not use this file except in +compliance with this License. + +The research leading to these results has received funding from the European Union's +Seventh Framework Programme (FP7/2007-2013) under grant agreement no. 289016. + +You may obtain a copy of the License at +https://github.com/GPII/universal/blob/master/LICENSE.txt +*/ + +/*global require*/ + +"use strict"; +var fluid = require("universal"), + gpii = fluid.registerNamespace("gpii"); + +fluid.logObjectRenderChars = 8064; + +gpii.loadTestingSupport(); + +fluid.registerNamespace("gpii.tests.deviceReporterAware.android.builtIn"); + +gpii.tests.deviceReporterAware.android.builtIn = [ + { + name: "Testing os_android using Flat matchmaker", + gradeNames: "gpii.test.integration.deviceReporterAware.android", + userToken: "os_android", + settingsHandlers: { + "gpii.androidSettings": { + "some.app.id": [{ + "settings": { + "dim_screen": 1, + "haptic_feedback_enabled": 1, + "accelerometer_rotation": 0, + "user_rotation": 2, + "screen_off_timeout": 10000 + }, + "options": { + "settingType": "System" + } + }] + }, + "gpii.androidAudioManager.volume": { + "some.app.id": [{ + "settings": { + "STREAM_SYSTEM": 7 + } + }] + }, + "gpii.androidPersistentConfiguration": { + "some.app.id": [{ + "settings": { + "fontScale": 1.5, + "locale": "en" + } + }] + } + }, + deviceReporters: { + "gpii.androidDeviceReporter.findService": { + "expectInstalled": [ + "com.android.providers.settings", + "com.android.providers.media", + "android" + ] + }, + "gpii.androidDeviceReporter.findApplication": { + "expectInstalled": null + } + } + }, + { + name: "Testing talkback1 using Flat matchmaker", + userToken: "talkback1", + gradeNames: "gpii.test.integration.deviceReporterAware.android", + settingsHandlers: { + "gpii.androidAudioManager.volume": { + "some.app.id": [ + { + "settings": { + "STREAM_MUSIC": 14 + } + } + ] + }, + "gpii.androidSettings": { + "some.app.id": [ + { + "settings": { + "tts_default_rate": 450, + "tts_default_pitch": 450 + }, + "options": { + "settingType": "Secure" + } + } + ] + } + }, + deviceReporters: { + "gpii.androidDeviceReporter.findService": { + "expectInstalled": [ + "com.android.providers.media", + "com.android.providers.settings" + ] + } + } + } +]; +module.exports = gpii.test.bootstrap({ + testDefs: "gpii.tests.deviceReporterAware.android.builtIn", + configName: "android-dynamicDeviceReporter-config", + configPath: "configs" +}, ["gpii.test.integration.testCaseHolder.android", "gpii.test.integration.deviceReporterAware.android"], + module, require, __dirname); diff --git a/tests/platform/android/android-dynamicDeviceReporter-testSpec.txt b/tests/platform/android/android-dynamicDeviceReporter-testSpec.txt new file mode 100644 index 000000000..157efa223 --- /dev/null +++ b/tests/platform/android/android-dynamicDeviceReporter-testSpec.txt @@ -0,0 +1,8 @@ +android-dynamicDeviceReporter-testSpec.js + +Description: + +This tests the built in functionality of Android settings. +It tests the system using two NP sets: + (1) os_android: application specific android settings + (2) talkback1: application specific talkback settings diff --git a/tests/platform/android/configs/android-dynamicDeviceReporter-config.json b/tests/platform/android/configs/android-dynamicDeviceReporter-config.json new file mode 100644 index 000000000..cf10308ad --- /dev/null +++ b/tests/platform/android/configs/android-dynamicDeviceReporter-config.json @@ -0,0 +1,6 @@ +{ + "typeName": "acceptanceTests.android.dynamicDeviceReporter", + "includes": [ + "${universal}/tests/configs/localInstallWithDynamicDeviceReporter.json" + ] +} diff --git a/tests/platform/android/configs/android-dynamicDeviceReporter-config.txt b/tests/platform/android/configs/android-dynamicDeviceReporter-config.txt new file mode 100644 index 000000000..fad7758d7 --- /dev/null +++ b/tests/platform/android/configs/android-dynamicDeviceReporter-config.txt @@ -0,0 +1,4 @@ +This configuration file is used by the acceptance test: android-dynamicDeviceReporter-config.js. + +This config makes use of dynamic device reporting, so it uses localInstallWithDynamicDeviceReporter +as its base config, which uses the all.development.dr.production gpii's config. diff --git a/tests/platform/index-android.js b/tests/platform/index-android.js index d275c378d..ac5d0d23f 100644 --- a/tests/platform/index-android.js +++ b/tests/platform/index-android.js @@ -23,5 +23,6 @@ https://github.com/GPII/universal/blob/master/LICENSE.txt module.exports = [ "android/android-builtIn-testSpec.js", - "android/android-talkback-testSpec.js" + "android/android-talkback-testSpec.js", + "android/android-dynamicDeviceReporter-testSpec.js" ];