selenium-side-runner
Version:
Run Selenium IDE projects in cli
134 lines • 5.97 kB
JavaScript
"use strict";
// Licensed to the Software Freedom Conservancy (SFC) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The SFC licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const capabilities_1 = __importDefault(require("../capabilities"));
describe('capabilities string parser', () => {
it('should parse capability key', () => {
const capabilities = 'browserName=chrome';
expect(capabilities_1.default.parseString(capabilities)).toEqual({
browserName: 'chrome',
});
});
it('should parse multiple capabilities keys', () => {
const capabilities = 'browserName=chrome platform=MAC unexpectedAlertBehaviour=ignore';
expect(capabilities_1.default.parseString(capabilities)).toEqual({
browserName: 'chrome',
platform: 'MAC',
unexpectedAlertBehaviour: 'ignore',
});
});
it('should parse quoted capability key', () => {
const capabilities = 'browserName="chrome"';
expect(capabilities_1.default.parseString(capabilities)).toEqual({
browserName: 'chrome',
});
});
it('should parse multiword capability key', () => {
const capabilities = 'binary="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"';
expect(capabilities_1.default.parseString(capabilities)).toEqual({
binary: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
});
const capabilities2 = "binary='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'";
expect(capabilities_1.default.parseString(capabilities2)).toEqual({
binary: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
});
});
it('should parse multiple multiword capability keys', () => {
const expected = {
browserName: 'internet explorer',
version: 10,
platform: 'Windows 8.1',
};
const capabilitiesSingleQuotes = "browserName='internet explorer' version=10.0 platform='Windows 8.1'";
expect(capabilities_1.default.parseString(capabilitiesSingleQuotes)).toEqual(expected);
const capabilitiesDoubleQuotes = 'browserName="internet explorer" version=10.0 platform="Windows 8.1"';
expect(capabilities_1.default.parseString(capabilitiesDoubleQuotes)).toEqual(expected);
});
it('should parse boolean capability key', () => {
const capabilities = 'javascriptEnabled=false databaseEnabled=true';
expect(capabilities_1.default.parseString(capabilities)).toEqual({
javascriptEnabled: false,
databaseEnabled: true,
});
});
it('should parse integer capability key', () => {
const capabilities = 'elementScrollBehavior=1';
expect(capabilities_1.default.parseString(capabilities)).toEqual({
elementScrollBehavior: 1,
});
});
it('should parse dot-notation capability key', () => {
const capabilities = 'webdriver.remote.sessionid=someId';
expect(capabilities_1.default.parseString(capabilities)).toEqual({
webdriver: {
remote: {
sessionid: 'someId',
},
},
});
});
it('should parse multiple dot-notation capability key', () => {
const capabilities = `
webdriver.remote.sessionid=someId
webdriver.remote.username=username
`;
expect(capabilities_1.default.parseString(capabilities)).toEqual({
webdriver: {
remote: {
sessionid: 'someId',
username: 'username',
},
},
});
});
it('should parse dot-notation arrays', () => {
const capabilities = 'chromeOptions.args=[disable-infobars, headless]';
expect(capabilities_1.default.parseString(capabilities)).toEqual({
chromeOptions: {
args: ['disable-infobars', 'headless'],
},
});
});
it('should parse space separated capability keys', () => {
const capabilities = 'browserName =chrome platform= MAC unexpectedAlertBehaviour = ignore';
expect(capabilities_1.default.parseString(capabilities)).toEqual({
browserName: 'chrome',
platform: 'MAC',
unexpectedAlertBehaviour: 'ignore',
});
});
it('should trim the capability values', () => {
const capabilities = 'platform=" macOS 10.13 " chromeOptions.args=[ disable-infobars , headless ]';
expect(capabilities_1.default.parseString(capabilities)).toEqual({
platform: 'macOS 10.13',
chromeOptions: {
args: ['disable-infobars', 'headless'],
},
});
});
it('should parse urls in list', () => {
const capabilities = 'bypass=[http://localhost:434, http://localhost:321]';
expect(capabilities_1.default.parseString(capabilities)).toEqual({
bypass: ['http://localhost:434', 'http://localhost:321'],
});
});
});
//# sourceMappingURL=capabilities.spec.js.map