How to use configureApp method in Appium Xcuitest Driver

Best JavaScript code snippet using appium-xcuitest-driver

helpers-e2e-specs.js

Source:helpers-e2e-specs.js Github

copy

Full Screen

...15}16describe('app download and configuration', function () {17  describe('configureApp', function () {18    it('should get the path for a local .app', async function () {19      let newAppPath = await configureApp(getFixture('FakeIOSApp.app'), '.app');20      newAppPath.should.contain('FakeIOSApp.app');21      let contents = await fs.readFile(newAppPath, 'utf8');22      contents.should.eql('this is not really an app\n');23    });24    it('should get the path for a local .apk', async function () {25      let newAppPath = await configureApp(getFixture('FakeAndroidApp.apk'), '.apk');26      newAppPath.should.contain('FakeAndroidApp.apk');27      let contents = await fs.readFile(newAppPath, 'utf8');28      contents.should.eql('this is not really an apk\n');29    });30    it('should unzip and get the path for a local .app.zip', async function () {31      let newAppPath = await configureApp(getFixture('FakeIOSApp.app.zip'), '.app');32      newAppPath.should.contain('FakeIOSApp.app');33      let contents = await fs.readFile(newAppPath, 'utf8');34      contents.should.eql('this is not really an app\n');35    });36    it('should unzip and get the path for a local .ipa', async function () {37      let newAppPath = await configureApp(getFixture('FakeIOSApp.ipa'), '.app');38      newAppPath.should.contain('FakeIOSApp.app');39      let contents = await fs.readFile(newAppPath, 'utf8');40      contents.should.eql('this is not really an app\n');41    });42    it('should fail for a bad zip file', async function () {43      await configureApp(getFixture('BadZippedApp.zip'), '.app')44        .should.be.rejectedWith(/PK/);45    });46    it('should fail if extensions do not match', async function () {47      await configureApp(getFixture('FakeIOSApp.app'), '.wrong')48        .should.be.rejectedWith(/did not have extension/);49    });50    it('should fail if zip file does not contain an app whose extension matches', async function () {51      await configureApp(getFixture('FakeIOSApp.app.zip'), '.wrong')52        .should.be.rejectedWith(/did not have extension/);53    });54    describe('should download an app from the web', function () {55      const port = 8000;56      const serverUrl = `http://localhost:${port}`;57      describe('server not available', function () {58        it('should handle server not available', async function () {59          await configureApp(`${serverUrl}/FakeIOSApp.app.zip`, '.app')60            .should.eventually.be.rejectedWith(/ECONNREFUSED/);61        });62      });63      describe('server available', function () {64        // use a local server so there is no dependency on the internet65        let server;66        before(function () {67          const dir = path.resolve(__dirname, '..', '..', '..', 'test', 'basedriver', 'fixtures');68          const serve = serveStatic(dir, {69            index: false,70            setHeaders: (res, path) => {71              res.setHeader('Content-Disposition', contentDisposition(path));72            },73          });74          server = http.createServer(function (req, res) {75            if (req.url.indexOf('missing') !== -1) {76              res.writeHead(404);77              res.end();78              return;79            }80            // for testing zip file content types81            if (req.url.indexOf('mime-zip') !== -1) {82              res.setHeader('content-type', 'application/zip');83            } else if (req.url.indexOf('mime-bip') !== 1) {84              res.setHeader('content-type', 'application/bip');85            }86            serve(req, res, finalhandler(req, res));87          });88          const close = server.close.bind(server);89          server.close = async function () {90            // pause a moment or we get ECONRESET errors91            await B.delay(1000);92            return await new B((resolve, reject) => {93              server.on('close', resolve);94              close((err) => {95                if (err) reject(err); // eslint-disable-line curly96              });97            });98          };99          server.listen(port);100        });101        after(async function () {102          await server.close();103        });104        it('should download zip file', async function () {105          let newAppPath = await configureApp(`${serverUrl}/FakeIOSApp.app.zip`, '.app');106          newAppPath.should.contain('FakeIOSApp.app');107          let contents = await fs.readFile(newAppPath, 'utf8');108          contents.should.eql('this is not really an app\n');109        });110        it('should download zip file with query string', async function () {111          let newAppPath = await configureApp(`${serverUrl}/FakeIOSApp.app.zip?sv=abc&sr=def`, '.app');112          newAppPath.should.contain('.app');113          let contents = await fs.readFile(newAppPath, 'utf8');114          contents.should.eql('this is not really an app\n');115        });116        it('should download an app file', async function () {117          let newAppPath = await configureApp(`${serverUrl}/FakeIOSApp.app`, '.app');118          newAppPath.should.contain('.app');119          let contents = await fs.readFile(newAppPath, 'utf8');120          contents.should.eql('this is not really an app\n');121        });122        it('should accept multiple extensions', async function () {123          let newAppPath = await configureApp(`${serverUrl}/FakeIOSApp.app.zip`, ['.app', '.aab']);124          newAppPath.should.contain('FakeIOSApp.app');125          let contents = await fs.readFile(newAppPath, 'utf8');126          contents.should.eql('this is not really an app\n');127        });128        it('should download an apk file', async function () {129          let newAppPath = await configureApp(`${serverUrl}/FakeAndroidApp.apk`, '.apk');130          newAppPath.should.contain('.apk');131          let contents = await fs.readFile(newAppPath, 'utf8');132          contents.should.eql('this is not really an apk\n');133        });134        it('should handle zip file that cannot be downloaded', async function () {135          await configureApp(`${serverUrl}/missing/FakeIOSApp.app.zip`, '.app')136            .should.eventually.be.rejectedWith(/Problem downloading app from url/);137        });138        it('should handle invalid protocol', async function () {139          await configureApp('file://C:/missing/FakeIOSApp.app.zip', '.app')140            .should.eventually.be.rejectedWith(/is not supported/);141          await configureApp('ftp://localhost:8000/missing/FakeIOSApp.app.zip', '.app')142            .should.eventually.be.rejectedWith(/is not supported/);143        });144        it('should handle missing file in Windows path format', async function () {145          await configureApp('C:\\missing\\FakeIOSApp.app.zip', '.app')146            .should.eventually.be.rejectedWith(/does not exist or is not accessible/);147        });148        it('should recognize zip mime types and unzip the downloaded file', async function () {149          let newAppPath = await configureApp(`${serverUrl}/FakeAndroidApp.asd?mime-zip`, '.apk');150          newAppPath.should.contain('FakeAndroidApp.apk');151          newAppPath.should.not.contain('.asd');152          let contents = await fs.readFile(newAppPath, 'utf8');153          contents.should.eql('this is not really an apk\n');154        });155        it('should recognize zip mime types and unzip the downloaded file with query string', async function () {156          let newAppPath = await configureApp(`${serverUrl}/FakeAndroidApp.asd?mime-zip&sv=abc&sr=def`, '.apk');157          newAppPath.should.contain('FakeAndroidApp.apk');158          newAppPath.should.not.contain('.asd');159          let contents = await fs.readFile(newAppPath, 'utf8');160          contents.should.eql('this is not really an apk\n');161        });162        it('should treat an unknown mime type as an app', async function () {163          let newAppPath = await configureApp(`${serverUrl}/FakeAndroidApp.apk?mime-bip`, '.apk');164          newAppPath.should.contain('.apk');165          let contents = await fs.readFile(newAppPath, 'utf8');166          contents.should.eql('this is not really an apk\n');167        });168      });169    });170  });...

Full Screen

Full Screen

configure.js

Source:configure.js Github

copy

Full Screen

1var configureApp = angular.module("configureApp", []);2configureApp.controller("configureController", ['$scope', '$http', '$interval', function ($scope, $http, $interval) {3    $scope.csvCols = [];4    $scope.firstColumn = "";5    $scope.modelObject = {};6    $scope.inProgress = false;7    $scope.emailSentCount = 113;8    $scope.isFormInvalid = function () {9        return $scope.frmConfigure.$invalid || $scope.firstColNotValid();10    };11    $scope.firstColNotValid = function () {12        return $scope.firstColumn != "" && $scope.firstColumn.toLowerCase() != "email"13    };14    $scope.submitForm = function (authToken) {15        var sendData = {16            from_email: $scope.modelObject.fromEmail,17            from_name: $scope.modelObject.fromName,18            subject: $scope.modelObject.subject,19            template_id: $scope.modelObject.templateId,20            notify_email: $scope.modelObject.notifyEmail21        };22        var fd = new FormData();23        fd.append("authenticity_token", authToken);24        fd.append("csv_file", $scope.modelObject.csvFile);25        fd.append("data", JSON.stringify(sendData));26        $scope.inProgress = true;27        $("#processingModal").modal({28            keyboard: false,29            backdrop: 'static'30        });31        $http.post("/email/send", fd, {32            headers: {33                'Content-Type': undefined34            },35            transformRequest: angular.identity36        }).success(function (data) {37            $scope.inProgress = false;38            $scope.emailSentCount = data.sent_count;39        }).error(function (data) {40            $scope.inProgress = false;41            $scope.emailSentCount = 0;42            console.log(data);43        });44        //$interval(function(){45        //    $scope.getStatus(authToken);46        //}, 2000);47    };48    $scope.updateNotify = function () {49        if ($scope.modelObject.notifyEmail != "") {50            $http.post("/email/update_notify", {email: $scope.modelObject.notifyEmail})51                .success(function (data) {52                    console.log(data);53                })54                .error(function (data) {55                    console.log(data);56                });57            $scope.notify = true;58        }59    };60    //$scope.getStatus = function(authToken){61    //    $http.get("/email/get_progress", {authenticity_token: authToken})62    //        .success(function(data){63    //            console.log(data);64    //        })65    //        .error(function(data){66    //            console.log(data);67    //        })68    //};69}]);70configureApp.directive("fileread", [function () {71    return {72        link: function (scope, element, attributes) {73            element.bind("change", function (changeEvent) {74                var reader = new FileReader();75                reader.onload = function (loadEvent) {76                    scope.$apply(function () {77                        //debugger;78                        //scope.modelObject.csvFile = loadEvent.target.result;79                        var fileText = loadEvent.target.result;80                        var lines = fileText.split(/\r\n|\n/);81                        //scope.csvCols = lines[0].split(",");82                        var headers = lines[0].split(",");83                        scope.firstColumn = headers[0].toLowerCase();84                    });85                };86                scope.modelObject.csvFile = changeEvent.target.files[0];87                if (scope.modelObject.csvFile) {88                    reader.readAsText(changeEvent.target.files[0]);89                }90            });91        }92    }...

Full Screen

Full Screen

app.js

Source:app.js Github

copy

Full Screen

...12  .configure(authentication({ storage }));13export const socket = io('', { path: host('/ws'), autoConnect: false });14export function createApp(req) {15  if (req === 'rest') {16    return configureApp(rest(host('/api')).axios(axios));17  }18  if (__SERVER__ && req) {19    const app = configureApp(20      rest(host('/api')).axios(21        axios.create({22          headers: {23            Cookie: req.get('cookie'),24            authorization: req.header('authorization') || ''25          }26        })27      )28    );29    const accessToken = req.header('authorization') || (req.cookies && req.cookies['feathers-jwt']);30    app.set('accessToken', accessToken);31    return app;32  }33  return configureApp(socketio(socket));...

Full Screen

Full Screen

server.js

Source:server.js Github

copy

Full Screen

...8  .command('start', { isDefault: true })9  .description('Starts the server')10  .option('-m, --migrate', 'Run migrations before starting', false)11  .action(async ({ migrate }) => {12    const app = configureApp(getConfig(process.env))13    if (migrate) await app.migrateUp()14    const close = await app.start()15    function shutdown () {16      close()17        .then(() => process.exit())18        .catch(err => {19          console.error(err)20          process.exit(1)21        })22    }23    process.on('SIGINT', shutdown)24    process.on('SIGTERM', shutdown)25    process.on('SIGUSR2', shutdown)26  })27program28  .command('migrate:up')29  .description('Run migrations')30  .action(async () => {31    const app = configureApp(getConfig(process.env))32    await app.migrateUp()33  })34program35  .command('migrate:down')36  .description('Roll back the latest set of migrations')37  .action(async () => {38    const app = configureApp(getConfig(process.env))39    await app.migrateDown()40  })...

Full Screen

Full Screen

signin.js

Source:signin.js Github

copy

Full Screen

...5import configureApp from 'configureApp';6import signinModules from './modules/signinModules';7require(__MARKUP_LOGIN__);8const mountNode = document.getElementById('root');9const { stores, routes, history } = configureApp(signinModules);...

Full Screen

Full Screen

index.js

Source:index.js Github

copy

Full Screen

...5import configureApp from 'configureApp';6import indexModules from './modules/indexModules';7require(__MARKUP_KASSA__);8const mountNode = document.getElementById('root');9const { stores, routes } = configureApp(indexModules);...

Full Screen

Full Screen

app.config.js

Source:app.config.js Github

copy

Full Screen

...3    angular4        .module('testScriptOrganizer')5        .config(configureApp);6    configureApp.$inject = ['$resourceProvider'];7    function configureApp($resourceProvider) {8        $resourceProvider.defaults.stripTrailingSlashes = false;9    }...

Full Screen

Full Screen

setupProxy.js

Source:setupProxy.js Github

copy

Full Screen

1const configureApp = require('../server-config').configureApp;2module.exports = function (app) {3  configureApp(app);...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1const { configureApp } = require('appium-xcuitest-driver');2const { configureApp } = require('appium-xcuitest-driver');3const appPath = '/path/to/App.app';4const appPath = '/path/to/App.app';5const app = await configureApp(appPath, {6const app = await configureApp(appPath, {7});8const { configureApp } = require('appium-xcuitest-driver');9const appPath = '/path/to/App.app';10const app = await configureApp(appPath, {11});12const { configureApp } = require('appium-xcuitest-driver');13const appPath = '/path/to/App.app';14const app = await configureApp(appPath, {15});16const { configureApp } = require('appium-xcuitest-driver');17const appPath = '/path/to/App.app';18const app = await configureApp(appPath, {19});20const { configureApp } = require('appium-xcuitest-driver');21const appPath = '/path/to/App.app';22const app = await configureApp(appPath, {23});

Full Screen

Using AI Code Generation

copy

Full Screen

1const XCUITestDriver = require('appium-xcuitest-driver');2const {configureApp} = XCUITestDriver;3const path = require('path');4const app = configureApp(path.resolve(__dirname, 'test.app'), 'iOS', '12.0');5console.log(app);6const XCUITestDriver = require('appium-xcuitest-driver');7const {configureApp} = XCUITestDriver;8const path = require('path');9const app = configureApp(path.resolve(__dirname, 'test.app'), 'iOS', '12.0');10console.log(app);11const XCUITestDriver = require('appium-xcuitest-driver');12const {configureApp} = XCUITestDriver;13const path = require('path');14const app = configureApp(path.resolve(__dirname, 'test.app'), 'iOS', '12.0');15console.log(app);

Full Screen

Using AI Code Generation

copy

Full Screen

1const { configureApp } = require('appium-xcuitest-driver');2const { getDriver } = require('./driver');3const { getCapabilities } = require('./capabilities');4const { getTestAppPath } = require('./utils');5const { getTestAppPlistPath } = require('./utils');6const testAppPath = getTestAppPath();7const testAppPlistPath = getTestAppPlistPath();8const capabilities = getCapabilities();9const driver = getDriver();10describe('Test App', () => {11  before(async () => {12    await driver.init(capabilities);13  });14  after(async () => {15    await driver.quit();16  });17  it('should be able to launch the app', async () => {18    await driver.launchApp();19  });20  it('should be able to configure the app', async () => {21    await configureApp(driver, testAppPath, testAppPlistPath);22  });23});24const { initDriver } = require('appium-xcuitest-driver');25const { getCapabilities } = require('./capabilities');26const capabilities = getCapabilities();27const getDriver = () => {28  const driver = initDriver(capabilities);29  return driver;30};31module.exports = {32};33const { getTestAppPath } = require('./utils');34const { getTestAppPlistPath } = require('./utils');35const testAppPath = getTestAppPath();36const testAppPlistPath = getTestAppPlistPath();37const getCapabilities = () => {38  const capabilities = {

Full Screen

Using AI Code Generation

copy

Full Screen

1const { configureApp } = require('appium-xcuitest-driver');2const app = configureApp("path/to/app", {some: 'options'});3const { configureApp } = require('appium-xcuitest-driver');4const app = configureApp("path/to/app", {some: 'options'});5const { configureApp } = require('appium-xcuitest-driver');6const app = configureApp("path/to/app", {some: 'options'});7const { configureApp } = require('appium-xcuitest-driver');8const app = configureApp("path/to/app", {some: 'options'});9const { configureApp } = require('appium-xcuitest-driver');10const app = configureApp("path/to/app", {some: 'options'});11const { configureApp } = require('appium-xcuitest-driver');12const app = configureApp("path/to/app", {some: 'options'});13const { configureApp } = require('appium-xcuitest-driver');14const app = configureApp("path/to/app", {some: 'options'});15const { configureApp } = require('appium-xcuitest-driver');16const app = configureApp("path/to/app", {some: 'options'});17const { configureApp } = require('appium-xcuitest-driver');18const app = configureApp("path/to/app", {some: 'options'});19const { configureApp } = require('app

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Appium Xcuitest Driver automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Sign up Free
_

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful