Files
appium/test/unit/capabilities-specs.js
Dylan Lacey 148336fc04 Use the new capabilities throughout the codebase.
Every entry in `Capabilities.capabilityConversions` is now used to
convert capabilities into the args array.

Change version to versionVersion.
Change device to platformName
Stop aliasing platformVersion to version in Capabilities.js
2014-04-01 16:42:28 -07:00

80 lines
2.6 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;
});
});
});
});
});
});