mirror of
https://github.com/appium/appium.git
synced 2026-02-11 12:29:48 -06:00
87 lines
2.8 KiB
JavaScript
87 lines
2.8 KiB
JavaScript
"use strict";
|
|
|
|
var Capabilities = require('../../lib/server/capabilities.js')
|
|
, loggerjs = require('../../lib/server/logger')
|
|
, logger = loggerjs.get('appium')
|
|
, sinon = require('sinon')
|
|
, chai = require('chai')
|
|
, should = chai.should()
|
|
, _ = require('underscore');
|
|
|
|
describe('capabilities', function () {
|
|
describe('#new', function () {
|
|
it('should convert object caps to strings', function () {
|
|
var c = new Capabilities({app: {some: 'object'}, platformVersion: 'hi'});
|
|
c.app.should.equal('{"some":"object"}');
|
|
});
|
|
it('should leave undefined, null, numbers alone', function () {
|
|
var c = new Capabilities({appPackage: null, bob: undefined, platformVersion: 7.0});
|
|
should.not.exist(c.appPackage);
|
|
(typeof c.appPackage).should.equal("object");
|
|
(typeof c.bob).should.equal("undefined");
|
|
c.platformVersion.should.equal(7.0);
|
|
(typeof c.platformVersion).should.equal("number");
|
|
});
|
|
describe('with pre-mjsonwp capabilities', function () {
|
|
var capabilityConversion = [
|
|
['device', 'platformName']
|
|
, ['version', 'platformVersion']
|
|
];
|
|
|
|
beforeEach(function () {
|
|
sinon.spy(logger, "warn");
|
|
});
|
|
afterEach(function () {
|
|
logger.warn.restore();
|
|
});
|
|
|
|
_.each(capabilityConversion, function (item) {
|
|
var specName = "Should return a deprecation warning when given the " +
|
|
JSON.stringify(item[0]) + " capability";
|
|
it(specName, function () {
|
|
var expected = "[DEPRECATED] The " + item[0] + " capability has " +
|
|
"been deprecated and will be removed. Please use " +
|
|
"the " + item[1] + " capability instead.";
|
|
var fakeCaps = {};
|
|
fakeCaps[item[0]] = 'dontcare';
|
|
new Capabilities(fakeCaps);
|
|
(logger.warn.args[0][0]).should.equal(expected);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('with mjsonwp capabilities', function () {
|
|
describe('deprecation warnings', function () {
|
|
var newCapabilities = [
|
|
'platformName',
|
|
'platformVersion'
|
|
];
|
|
|
|
beforeEach(function () {
|
|
sinon.spy(logger, "warn");
|
|
});
|
|
afterEach(function () {
|
|
logger.warn.restore();
|
|
});
|
|
|
|
_.each(newCapabilities, function (item) {
|
|
var specName = "Should not be thrown for " + item;
|
|
it(specName, function () {
|
|
var fakeCaps = {};
|
|
fakeCaps[item] = 'dontcare';
|
|
new Capabilities(fakeCaps);
|
|
(logger.warn.called).should.be.false;
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('platformVersion', function () {
|
|
it('is accessible from #version', function () {
|
|
var capabilities = new Capabilities({platformVersion: 32});
|
|
capabilities.version.should.equal(32);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|