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/testData/solutions/android.json b/testData/solutions/android.json index 775a3e7be..75d1234b7 100644 --- a/testData/solutions/android.json +++ b/testData/solutions/android.json @@ -3,9 +3,9 @@ "name": "FreeSpeech", "contexts": { "OS": [{ - "id": "android", - "version": ">=0.1" - }] + "id": "android", + "version": ">=0.1" + }] }, "settingsHandlers": { "configuration": { @@ -17,20 +17,22 @@ ] } }, - "start": [ - { - "type": "gpii.androidActivityManager.startFreespeech" - } - ] + "start": [{ + "type": "gpii.androidActivityManager.startFreespeech" + }], + "isInstalled": [{ + "type": "gpii.androidDeviceReporter.findService", + "name": "com.blogspot.tonyatkins.freespeech" + }] }, "com.android.talkback": { "name": "TalkBack Screen Reader", "contexts": { "OS": [{ - "id": "android", - "version": ">=0.1" - }] + "id": "android", + "version": ">=0.1" + }] }, "settingsHandlers": { "configuration": { @@ -52,18 +54,20 @@ { "type": "gpii.androidActivityManager.stopTalkback" } - ] + ], + "isInstalled": [{ + "type": "gpii.androidDeviceReporter.findService", + "name": "com.google.android.marvin.talkback" + }] }, "com.android.persistentConfiguration": { "name": "Android Configuration", "contexts": { - "OS": [ - { - "id": "android", - "version": ">=0.1" - } - ] + "OS": [{ + "id": "android", + "version": ">=0.1" + }] }, "settingsHandlers": { "configuration": { @@ -267,18 +271,20 @@ ], "restore": [ "settings.configuration" - ] + ], + "isInstalled": [{ + "type": "gpii.androidDeviceReporter.findService", + "name": "android" + }] }, "com.android.audioManager": { "name": "Android Audio Manager", "contexts": { - "OS": [ - { - "id": "android", - "version": ">=0.1" - } - ] + "OS": [{ + "id": "android", + "version": ">=0.1" + }] }, "settingsHandlers": { "configuration": { @@ -319,18 +325,20 @@ ], "restore": [ "settings.configuration" - ] + ], + "isInstalled": [{ + "type": "gpii.androidDeviceReporter.findService", + "name": "com.android.providers.media" + }] }, "com.android.settings.system": { "name": "Android UI Settings.System", "contexts": { - "OS": [ - { - "id": "android", - "version": ">=0.1" - } - ] + "OS": [{ + "id": "android", + "version": ">=0.1" + }] }, "settingsHandlers": { "configuration": { @@ -382,18 +390,20 @@ ], "restore": [ "settings.configuration" - ] + ], + "isInstalled": [{ + "type": "gpii.androidDeviceReporter.findService", + "name": "com.android.providers.settings" + }] }, "com.android.settings.secure": { "name": "Android UI Settings Secure", "contexts": { - "OS": [ - { - "id": "android", - "version": ">=0.1" - } - ] + "OS": [{ + "id": "android", + "version": ">=0.1" + }] }, "settingsHandlers": { "configuration": { @@ -466,16 +476,20 @@ ], "restore": [ "settings.configuration" - ] + ], + "isInstalled": [{ + "type": "gpii.androidDeviceReporter.findService", + "name": "com.android.providers.settings" + }] }, "se.omnitor.ecmobile": { "name": "Omnitor eCtouch/eCmobile", "contexts": { - "OS": [{ + "OS": [{ "id": "android", "version": ">=0.1" - }] + }] }, "settingsHandlers": { "configuration": { @@ -524,32 +538,36 @@ "restore": [ "settings.configuration" ], - "start": [ - { - "type": "gpii.androidActivityManager.startActivityByPackageName", - "packageName": "se.omnitor.ecmobile" - } - ], + "start": [{ + "type": "gpii.androidActivityManager.startActivityByPackageName", + "packageName": "se.omnitor.ecmobile" + }], "stop": [ { "type": "gpii.androidActivityManager.stopActivityByPackageName", "packageName": "se.omnitor.ecmobile" - }, - { + }, { "type": "gpii.androidActivityManager.goToHomeScreen" } + ], + "isInstalled": [ + { + "type": "gpii.androidDeviceReporter.findService", + "name": "se.omnitor.ecmobile" + }, { + "type": "gpii.androidDeviceReporter.findService", + "name": "se.omnitor.ectouch" + } ] }, "es.codefactory.android.app.ma": { "name": "Mobile Accessibility", "contexts": { - "OS": [ - { - "id": "android", - "version": ">=0.1" - } - ] + "OS": [{ + "id": "android", + "version": ">=0.1" + }] }, "settingsHandlers": { "configuration": { @@ -600,6 +618,10 @@ "access_commonprefs_capitalization": "http://registry\\.gpii\\.net/common/announceCapitals" } } - } + }, + "isInstalled": [{ + "type": "gpii.androidDeviceReporter.findApplication", + "name": "Mobile Accessibility" + }] } } 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" ];