CB-12622: (android) Appium tests: Bust Android 6 and 7 permission dialogs

This commit is contained in:
Alexander Sorokin 2017-04-20 09:01:54 +03:00
parent 180f7b5510
commit 9badea4c95
2 changed files with 39 additions and 1 deletions

View File

@ -225,6 +225,40 @@ describe('Camera tests Android.', function () {
})
.waitForDeviceReady()
.injectLibraries()
.then(function () {
var options = {
quality: 50,
allowEdit: false,
sourceType: cameraConstants.PictureSourceType.SAVEDPHOTOALBUM,
saveToPhotoAlbum: false,
targetWidth: 210,
targetHeight: 210
};
return driver
.then(function () { return getPicture(options, true); })
.context(CONTEXT_NATIVE_APP)
// case insensitive select, will be handy with Android 7 support
.elementByXPath('//android.widget.Button[translate(@text, "alow", "ALOW")="ALLOW"]')
.click()
.fail(function noAlert() { })
.deviceKeyEvent(BACK_BUTTON)
.sleep(2000)
.elementById('action_bar_title')
.then(function () {
// success means we're still in native app
return driver
.deviceKeyEvent(BACK_BUTTON);
}, function () {
// error means we're already in webview
return driver;
});
})
.then(function () {
// doing it inside a function because otherwise
// it would not hook up to the webviewContext var change
// in the first methods of this chain
return driver.context(webviewContext);
})
.deleteFillerImage(fillerImagePath)
.then(function () {
fillerImagePath = null;
@ -291,6 +325,7 @@ describe('Camera tests Android.', function () {
pending('This test requires a functioning camera on the Android device/emulator, and this test suite\'s functional camera test failed on your target environment.');
}
}
afterAll(function (done) {
checkSession(done);
driver
@ -390,7 +425,7 @@ describe('Camera tests Android.', function () {
return driver
.elementByAndroidUIAutomator('new UiSelector().text("Choose video")')
.fail(function () {
throw 'Couldn\'t find "Choose video" element.';
throw 'Couldn\'t find a "Choose video" element.';
});
})
.deviceKeyEvent(BACK_BUTTON)

View File

@ -169,6 +169,7 @@ module.exports.checkPicture = function (pid, options, cb) {
return;
}
}
try {
if (result.indexOf('file:') === 0 ||
result.indexOf('content:') === 0 ||
@ -184,6 +185,8 @@ module.exports.checkPicture = function (pid, options, cb) {
} else {
verifyFile(entry);
}
}, function (err) {
errorCallback(err);
});
} else {
displayImage(result);