types(selenium): update selenium-webdriver to 2.53.1

- update from selenium-webdriver 2.44 to 2.53.1
- remove dependencies for selenium-webdriver 2.44:
  - protractor
  - protractor-helpers
  - protractor-http-mock
This commit is contained in:
Craig Nishina
2016-09-14 16:12:30 -07:00
parent 1016595ec4
commit 4cf3256fe8
11 changed files with 2726 additions and 4841 deletions

View File

@@ -1,111 +0,0 @@
// Type definitions for protractor-helpers v1.0.0
// Project: https://github.com/wix/protractor-helpers
// Definitions by: John Cant <https://github.com/johncant/>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference types="jasmine" />
/// <reference types="selenium-webdriver" />
// ElementArrayFinder
declare namespace protractor {
interface ElementArrayFinder {
getByText(text: string) : protractor.ElementFinder;
$$data(hook: string) : protractor.ElementArrayFinder;
}
interface ElementFinder {
$data(hook: string) : protractor.ElementFinder;
}
}
// Globals
declare function $data(hook: string) : protractor.ElementFinder;
declare function $$data(hook: string) : protractor.ElementArrayFinder;
// Locators
// TODO - find out about result of querySelector and querySelector all.
// Are they Locator s?
declare namespace protractor {
interface IProtractorLocatorStrategy {
dataHook(hook: string, optParentElement?: protractor.ElementFinder, optRootSelector?: string) : webdriver.Locator;
dataHookAll(hook: string, optParentElement?: protractor.ElementFinder, optRootSelector?: string) : webdriver.Locator;
}
}
// Matchers
// TODO - Typescript doesn't really help much here
// we don't know what type is being tested.
// Fixing this would require modifying the
// jasmine d.ts.
declare namespace jasmine {
interface Matchers {
toBePresent() : boolean;
toBeDisplayed() : boolean;
toHaveCountOf(expectedCount : number) : boolean;
toHaveText(expectedText : string) : boolean;
toMatchRegex(regex : RegExp) : boolean;
toMatchMoney(expectedValue : number, currencySymbol? : string) : boolean;
toMatchMoneyWithFraction(expectedValue : number, currencySymbol?: string) : boolean;
toHaveValue(actual: string | number) : boolean;
toHaveClass(className : string) : boolean;
toHaveUrl(url : string) : boolean;
toBeDisabled() : boolean;
toBeChecked() : boolean;
toBeValid() : boolean;
toBeInvalid() : boolean;
toBeInvalidRequired() : boolean;
// Copied definitions from angular-translate.
toMatchTranslated(translationId : string, interpolateParams? : any) : boolean;
toMatchTranslated(translationId : string[], interpolateParams? : any) : boolean;
}
}
declare module "protractor-helpers" {
function not(arg: webdriver.promise.IThenable<any>) : webdriver.promise.IThenable<boolean>;
// Copied definitions from angular-translate.
function translate(translationId: string, interpolateParams?: any): webdriver.promise.IThenable<string>;
function translate(translationId: string[], interpolateParams?: any): webdriver.promise.IThenable<{ [key: string]: string }>;
function safeGet(url: string) : void;
function maximizeWindow(width?: number, height?: number) : void; // TODO
function resetPosition() : void;
function moveToElement(hook: string) : void;
function displayHover(element: protractor.ElementFinder) : void;
function waitForElement(element: protractor.ElementFinder, timeout?: number) : void;
function waitForElementToDisappear(element: protractor.ElementFinder, timeout?: number) : void;
function selectOptionByText(select: protractor.ElementFinder, text: string) : void;
function selectOptionByIndex(select: protractor.ElementFinder, index: number) : void;
function selectOption(option: protractor.ElementFinder) : void
function isFirefox() : boolean;
function isIE() : boolean;
function createMessage(actual : string, message : string, isNot : any) : string; // isNot : boolean too inflexible
function createMessage(actual : protractor.ElementFinder, message : string, isNot : any) : string; // isNot : boolean too inflexible
function createMessage(actual : protractor.ElementArrayFinder, message : string, isNot : any) : string; // isNot : boolean too inflexible
function clearAndSetValue(input : protractor.ElementFinder, value : string) : void; // TODO - sendKeys(value)
function hasClass(element: protractor.ElementFinder, className: string) : webdriver.promise.IThenable<boolean>;
function hasValue(element: protractor.ElementFinder, expectedValue: string) : webdriver.promise.IThenable<boolean>;
function hasValue(element: protractor.ElementFinder, expectedValue: number) : webdriver.promise.IThenable<boolean>;
function hasLink(element: protractor.ElementFinder, url: string) : webdriver.promise.IThenable<boolean>;
function isDisabled(element: protractor.ElementFinder) : webdriver.promise.IThenable<boolean>;
function isChecked(element: protractor.ElementFinder) : webdriver.promise.IThenable<boolean>;
function getFilteredConsoleErrors() : webdriver.promise.IThenable<string[]>; // TODO - discuss handling in IE
}

View File

@@ -1,116 +0,0 @@
import helpers = require('protractor-helpers');
declare var $$: any, $: any, by: any, element: any; // ??
function testElementArrayFinder() {
var single1 : protractor.ElementFinder = $$('.foo').getByText('Hello');
var multiple : protractor.ElementArrayFinder = $$('.foo').$$data('Hello');
}
function testElementFinder () {
var single2 : protractor.ElementFinder = $('.foo').$data('Hello');
}
function testGlobals() {
var single : protractor.ElementFinder = $data('Hello');
var multiple : protractor.ElementArrayFinder = $$data('Hello');
}
function testHelpers() {
var q0 : webdriver.promise.IThenable<boolean> = helpers.not($('.foo').isDisplayed());
// TODO - Check impl
var q1 : webdriver.promise.IThenable<{[key: string]:string}> = helpers.translate(["foo", "bar"]);
var q2 : webdriver.promise.IThenable<{[key: string]:string}> = helpers.translate(["foo", "bar"], {name: 'foo'});
var q3 : webdriver.promise.IThenable<string> = helpers.translate("foo");
var q4 : webdriver.promise.IThenable<string> = helpers.translate("foo", {name: 'foo'});
helpers.safeGet('https://foo/');
helpers.maximizeWindow(500, 500);
helpers.maximizeWindow(500);
helpers.maximizeWindow(undefined, 500);
helpers.maximizeWindow();
helpers.resetPosition();
helpers.moveToElement(".foo"); // TODO - ?
helpers.displayHover($('.foo'));
helpers.waitForElement($('.foo'));
helpers.waitForElement($('.foo'), 1000);
helpers.waitForElementToDisappear($('.foo'));;
helpers.waitForElementToDisappear($('.foo'), 1000);
helpers.selectOptionByText($('select'), "GB");
helpers.selectOptionByIndex($('select'), 1);
helpers.selectOption($$('select option').first());
var ff : boolean = helpers.isFirefox();
var ie : boolean = helpers.isIE();
var msg : string = helpers.createMessage("actual", "message", true);
var msg : string = helpers.createMessage($('.foo'), "message", true);
var msg : string = helpers.createMessage($$('.foo'), "message", true);
helpers.clearAndSetValue($('input'), 'Foo');
var hc : webdriver.promise.IThenable<boolean> = helpers.hasClass($('.foo'), 'foo');
var hv : webdriver.promise.IThenable<boolean> = helpers.hasValue($('input[type=text]'), 'foo');
var hv1 : webdriver.promise.IThenable<boolean> = helpers.hasValue($('input[type=numeric]'), 12);
var hl : webdriver.promise.IThenable<boolean> = helpers.hasLink($('div'), 'http://foo.com');
var disabled : webdriver.promise.IThenable<boolean> = helpers.isDisabled($('foo'));
var checked : webdriver.promise.IThenable<boolean> = helpers.isChecked($('foo'));
var q5 : webdriver.promise.IThenable<string[]> = helpers.getFilteredConsoleErrors();
}
function testLocators() {
element(by.dataHook("foo"));
element(by.dataHook("foo", $('.parentfoo')));
element(by.dataHook("foo", undefined , ".foo"));
element(by.dataHook("foo", $('.parentfoo'), ".foo")); // TODO - This might not make much sense, but can technically be used in working code. Opinions welcome
element.all(by.dataHook("foo"));
element.all(by.dataHook("foo", $('parentfoo')));
element.all(by.dataHook("foo", undefined , ".foo"));
element.all(by.dataHook("foo", $('parentfoo'), ".foo")); // TODO - This might not make much sense, but can technically be used in working code. Opinions welcome
}
function testMatchers() {
var expectResult : boolean;
expectResult = expect($('.foo')).toBePresent();
expectResult = expect($('.foo')).toBeDisplayed();
expectResult = expect($$('.foo').count()).toHaveCountOf(1);
expectResult = expect($('.foo')).toHaveText("bla");
expectResult = expect($('.foo')).toMatchRegex(/bla/);
expectResult = expect($('.foo').getText()).toMatchMoney(123, "£");
expectResult = expect($('.foo').getText()).toMatchMoneyWithFraction(123.45, "£");
expectResult = expect($('input')).toHaveValue(12);
expectResult = expect($('input')).toHaveValue("bla");
expectResult = expect($('.foo')).toHaveClass("foo");
expectResult = expect($('.foo')).toHaveUrl('https://foo.com');
expectResult = expect($('.foo')).toBeDisabled();
expectResult = expect($('.foo')).toBeChecked();
expectResult = expect($('.foo')).toBeValid();
expectResult = expect($('.foo')).toBeInvalid();
expectResult = expect($('.foo')).toBeInvalidRequired();
expectResult = expect($('.foo')).toMatchTranslated("foo");
expectResult = expect($('.foo')).toMatchTranslated("foo", {foo: "bar"});
expectResult = expect($('.foo')).toMatchTranslated(["foo"]);
expectResult = expect($('.foo')).toMatchTranslated(["foo", "bla"], {foo: "bar"});
}

View File

@@ -1,19 +0,0 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"noImplicitAny": true,
"strictNullChecks": false,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"protractor-helpers-tests.ts"
]
}

View File

@@ -1,284 +0,0 @@
// Type definitions for protractor-http-mock
// Project: https://github.com/atecarlos/protractor-http-mock
// Definitions by: Crevil <https://github.com/Crevil>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference types="selenium-webdriver" />
declare namespace mock {
interface ProtractorHttpMock {
/**
* Instantiate mock module. This must be done before the browser connects.
*
* @param mocks An array of mock modules to load into the application.
* @param plugins An array of Plugin objects.
* @param skipDefaults Set true to skip loading of default mocks.
*/
<TResponse, TPayload>(mocks?: Array<requests.AllRequests<TResponse, TPayload>>, plugins?: Array<Plugin>, skipDefaults?: boolean): ProtractorHttpMock;
/**
* Instantiate mock module. This must be done before the browser connects.
*
* @param mocks An array of mock modules to load into the application.
* @param plugins An array of NPM modules as strings.
* @param skipDefaults Set true to skip loading of default mocks.
*/
<TResponse, TPayload>(mocks?: Array<requests.AllRequests<TResponse, TPayload>>, plugins?: Array<string>, skipDefaults?: boolean): ProtractorHttpMock;
/**
* Instantiate mock modules from files. This must be done before the browser connects.
*
* @param mocks An array of mock module names relative to the rootDirectory configuration.
* @param plugins An array of Plugin objects.
* @param skipDefaults Set true to skip loading of default mocks.
*/
(mocks: Array<string>, plugins?: Array<Plugin>, skipDefaults?: boolean): ProtractorHttpMock;
/**
* Instantiate mock modules from files. This must be done before the browser connects.
*
* @param mocks An array of mock module names relative to the rootDirectory configuration.
* @param plugins An array of NPM modules as strings.
* @param skipDefaults Set true to skip loading of default mocks.
*/
(mocks: Array<string>, plugins?: Array<string>, skipDefaults?: boolean): ProtractorHttpMock;
/**
* Clean up.
* Typically done in the afterEach call to ensure the teardown
* is executed regardless of what happens in the test execution.
*/
teardown(): void;
/**
* Returns a promise that will be resolved with an array of
* all matched HTTP requests.
*/
requestsMade(): webdriver.promise.Promise<Array<ReceivedRequest>>;
/**
* Returns a promise that will be resolved with a true boolean
* when all matched HTTP requests are cleared.
*/
clearRequests(): webdriver.promise.Promise<boolean>;
/**
* Module configuration to setup
*/
config: {
/**
* Mocks directory where mock files are located.
* Default: process.cwd()
*/
rootDirectory?: string;
/**
* Path to protractor configuration file.
* Default: protractor.conf
*/
protractorConfig?: string;
};
/**
* Add mocks during test execution.
* Returns a promise that will be resolved with a true boolean
* when mocks are added.
*
* @param mocks An array of mock modules to load into the application.
*/
add<T1, T2>(mocks: Array<requests.AllRequests<T1, T2>>): webdriver.promise.Promise<boolean>;
/**
* Remove mocks during test execution.
* Returns a promise that will be resolved with a true boolean
* when the supplied mocks are removed.
*
* @param mocks An array of mock modules to remove from the application.
*/
remove<T1, T2>(mocks: Array<requests.AllRequests<T1, T2>>): webdriver.promise.Promise<boolean>;
}
/**
* Matched request.
*/
interface ReceivedRequest {
url: string;
method: requests.Method;
}
/**
* Plugin for custom matching logic.
*/
interface Plugin {
/**
* Match function.
* Return a truthy value to indicate successfull match.
*
* @param mockRequest The mock to compare request with.
* @param requestConfig The request object to compare mock with.
*/
match<T1, T2>(mockRequest: requests.AllRequests<T1, T2>, requestConfig: requests.AllRequests<T1, T2>): boolean;
}
/**
* Plugin for custom matching logic.
*/
interface Plugin {
/**
* Match function.
* Return a truthy value to indicate successfull match.
*
* @param mockRequest The mock to compare request with.
* @param requestConfig The request object to compare mock with.
*/
match<T1, T2>(mockRequest: requests.AllRequests<T1, T2>, requestConfig: requests.AllRequests<T1, T2>): boolean;
}
namespace requests {
/**
* Request methods type
*/
type Method = "GET" | "POST" | "DELETE" | "PUT" | "HEAD" | "PATCH" | "JSONP";
/**
* All available request types.
*/
type AllRequests<T1, T2> = Get<T1> |
PostData<T1, T2> |
Post<T1> |
Head<T1> |
Delete<T1> |
Put<T1> |
Patch<T1> |
Jsonp<T1>;
/**
* GET request mock.
*/
interface Get<TResponse> {
request: {
method: Method;
path: string;
regex?: boolean;
params?: Object;
queryString?: Object;
headers?: Object;
interceptedRequest?: boolean;
interceptedAnonymousRequest?: boolean;
};
response: {
status?: number;
data: TResponse;
};
}
/**
* POST request mock with payload.
*/
interface PostData<TResponse, TPayload> {
request: {
method: Method;
path: string;
regex?: boolean;
data: TPayload;
};
response: {
status?: number;
data: TResponse;
};
}
/**
* POST request mock.
*/
interface Post<TResponse> {
request: {
method: Method;
path: string;
regex?: boolean;
};
response: {
status?: number;
data: TResponse;
};
}
/**
* HEAD request mock.
*/
interface Head<TResponse> {
request: {
method: Method;
path: string;
regex?: boolean;
};
response: {
status?: number;
data: TResponse;
};
}
/**
* HTTP Delete request mock.
*/
interface Delete<TResponse> {
request: {
method: Method;
path: string;
regex?: boolean;
};
response: {
status?: number;
data: TResponse;
};
}
/**
* PUT request mock.
*/
interface Put<TResponse> {
request: {
method: Method;
path: string;
regex?: boolean;
};
response: {
status?: number;
data: TResponse;
};
}
/**
* PATCH request mock.
*/
interface Patch<TResponse> {
request: {
method: Method;
path: string;
regex?: boolean;
};
response: {
status?: number;
data: TResponse;
};
}
/**
* JSONP request mock.
*/
interface Jsonp<TResponse> {
request: {
method: Method;
path: string;
regex?: boolean;
};
response: {
status?: number;
data: TResponse;
};
}
}
}
declare var mock: mock.ProtractorHttpMock;
export = mock;

View File

@@ -1,302 +0,0 @@
import mock = require("protractor-http-mock");
function TestConfig() {
mock.config = {
rootDirectory: "root",
protractorConfig: "protractor.conf.js"
};
}
function TestCtorOverloads() {
let del: mock.requests.Delete<number> = {
request: {
path: 'path',
method: 'DELETE'
},
response: {
status: 400,
data: 1
}
};
let put: mock.requests.Put<number> = {
request: {
path: 'path',
method: 'PUT'
},
response: {
status: 400,
data: 1
}
};
let plugin: mock.Plugin = {
match: (mockRequest: mock.requests.Delete<number>, requestConfig: mock.requests.AllRequests<number, number>) => {
if (requestConfig.request.method && mockRequest.request.method) {
return true;
}
return false;
}
};
let noParam: mock.ProtractorHttpMock = mock();
let emptyArray: mock.ProtractorHttpMock = mock([]);
let mockFiles: mock.ProtractorHttpMock = mock(['mock1', 'mock2']);
let mocks: mock.ProtractorHttpMock = mock([del, put]);
let mockFilesNpmPlugins: mock.ProtractorHttpMock = mock(['mock1'], ['plugin']);
let mocksWithNpmPlugins: mock.ProtractorHttpMock = mock([del, put], ['plugin']);
let pluginMocks: mock.ProtractorHttpMock = mock([del, put], [plugin]);
let mockFilesNpmPluginsSkipDefaults: mock.ProtractorHttpMock = mock(['mock1'], ['plugin'], true);
let skipDefaults: mock.ProtractorHttpMock = mock([del, put], [plugin], true);
}
function TestTeardown() {
mock.teardown();
}
function TestRequestsMade() {
let values: Array<mock.ReceivedRequest>;
mock.requestsMade().then(v => values = v);
}
function TestClearRequests() {
let promiseValue: boolean;
mock.clearRequests().then(value => {
promiseValue = value;
});
}
function TestDynamicAdd() {
let put: mock.requests.Put<number> = {
request: {
path: "path",
method: "PUT"
},
response: {
status: 400,
data: 1
}
};
let resolved: boolean;
mock.add([put]).then(r => resolved = r);
}
function TestDyanmicRemove() {
let put: mock.requests.Put<number> = {
request: {
path: "path",
method: "PUT"
},
response: {
status: 400,
data: 1
}
};
let resolved: boolean;
mock.remove([put]).then(r => resolved = r);
}
function TestGetRequestDefinitions() {
let getMinium: mock.requests.Get<number> = {
request: {
path: 'path',
method: 'GET',
regex: true
},
response: {
data: 1,
status: 500
}
};
let getParams: mock.requests.Get<number> = {
request: {
path: 'path',
method: 'GET',
regex: true,
params: {
param1: 'param1',
param2: 2
}
},
response: {
data: 1,
status: 500
}
};
let post: mock.requests.Post<number> = {
request: {
path: 'path',
method: 'POST',
regex: true
},
response: {
data: 1,
status: 500
}
};
let getQueryString: mock.requests.Get<number> = {
request: {
path: 'path',
method: 'GET',
regex: true,
queryString: {
query1: 'query1',
query2: 2
}
},
response: {
data: 1,
status: 500
}
};
let getHeaders: mock.requests.Get<number> = {
request: {
path: 'path',
method: 'GET',
regex: true,
headers: {
head1: 'head1',
head2: 'head2'
}
},
response: {
data: 1,
status: 500
}
};
}
function TestPostRequestDefinitions() {
let post: mock.requests.Post<number> = {
request: {
path: 'path',
method: 'POST',
regex: true
},
response: {
data: 1,
status: 500
}
};
let postData: mock.requests.PostData<number, string> = {
request: {
path: 'path',
method: 'POST',
data: 'data',
regex: true
},
response: {
data: 1,
status: 500
}
};
}
function TestHeadRequestDefinitions() {
let head: mock.requests.Head<number> = {
request: {
path: 'path',
method: 'HEAD',
regex: true
},
response: {
status: 500,
data: 1
}
};
}
function TestDeleteRequestDefinitions() {
let del: mock.requests.Delete<number> = {
request: {
path: 'path',
method: 'DELETE',
regex: true
},
response: {
status: 500,
data: 1
}
};
}
function TestPutRequestDefinitions() {
let put: mock.requests.Put<number> = {
request: {
path: 'path',
method: 'PUT',
regex: true
},
response: {
status: 500,
data: 1
}
};
}
function TestPatchRequestDefinitions() {
let patch: mock.requests.Patch<number> = {
request: {
path: 'path',
method: 'PATCH',
regex: true
},
response: {
status: 500,
data: 1
}
};
}
function TestJsonpRequestDefinitions() {
let jsonp: mock.requests.Jsonp<number> = {
request: {
path: 'path',
method: 'JSONP',
regex: true
},
response: {
status: 500,
data: 1
}
};
}
function TestRuntimeMocks() {
mock.add([{
request: {
path: '/users',
method: 'GET',
params: {
name: 'Charlie'
}
},
response: {
data: {
name: 'Override'
}
}
}]);
mock.remove([{
request: {
path: '/users',
method: 'GET',
params: {
name: 'Charlie'
}
},
response: {
data: {
name: 'Override'
}
}
}]);
}

View File

@@ -1,19 +0,0 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"noImplicitAny": true,
"strictNullChecks": false,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"protractor-http-mock-tests.ts"
]
}

View File

@@ -1,483 +0,0 @@
function TestWebDriverExports() {
var button: number = protractor.Button.LEFT;
var key: string = protractor.Key.ADD;
var chord: string = protractor.Key.chord(protractor.Key.NUMPAD0, protractor.Key.NUMPAD1);
var driver: protractor.WebDriver = new protractor.Builder().
withCapabilities(protractor.Capabilities.chrome()).
build();
var baseDriver: webdriver.WebDriver = driver;
var action: protractor.ActionSequence = new protractor.ActionSequence(driver);
var baseAction: webdriver.ActionSequence = action;
var browser: string = protractor.Browser.ANDROID;
var builder: protractor.Builder = new protractor.Builder();
var baseBuilder: webdriver.Builder = builder;
var capability: string = protractor.Capability.BROWSER_NAME;
var capabilities: protractor.Capabilities = protractor.Capabilities.chrome();
var baseCapabilities: webdriver.Capabilities = capabilities;
var commandName: string = protractor.CommandName.CLICK_ELEMENT;
var command: protractor.Command = new protractor.Command(protractor.CommandName.CLICK);
var baseCommand: webdriver.Command = command;
var eventEmitter: protractor.EventEmitter = new protractor.EventEmitter();
var baseEventEmitter: webdriver.EventEmitter = eventEmitter;
var webElement: protractor.WebElement = new protractor.WebElement(driver, new protractor.promise.Promise());
var baseWebElement: webdriver.WebElement = webElement;
var locator: webdriver.Locator = by.id('abc');
var session: protractor.Session = new protractor.Session('ABC', webdriver.Capabilities.android());
var baseSession: webdriver.Session = session;
locator = protractor.By.name('name');
var driver: protractor.WebDriver = new protractor.WebDriver(session, <webdriver.CommandExecutor><any>{});
driver = new protractor.WebDriver(session, <webdriver.CommandExecutor><any>{}, new webdriver.promise.ControlFlow());
var baseDriver: webdriver.WebDriver = driver;
var webElement: protractor.WebElement = new protractor.WebElement(driver, { ELEMENT: 'abc' });
var baseWebElement: webdriver.WebElement = webElement;
var webElementPromise: protractor.WebElementPromise = new protractor.WebElementPromise(driver, { ELEMENT: 'abc' });
var baseWebElementPromise: webdriver.WebElementPromise = webElementPromise;
}
function TestWebDriverErrorModule() {
var errorCode: number = protractor.error.ErrorCode.ELEMENT_NOT_VISIBLE;
var error: protractor.error.Error = new protractor.error.Error(protractor.error.ErrorCode.ELEMENT_NOT_VISIBLE);
var baseError: webdriver.error.Error = error;
}
function TestWebDriverLoggingModule() {
var levelName: string = protractor.logging.Level.ALL.name;
var loggingType: string = protractor.logging.Type.CLIENT;
var level: webdriver.logging.ILevel = protractor.logging.Level.ALL;
var entry: protractor.logging.Entry = new protractor.logging.Entry(protractor.logging.Level.ALL, 'Message');
var baseEntry: webdriver.logging.Entry = entry;
level = protractor.logging.getLevel('DEBUG');
var prefs: protractor.logging.Preferences = new protractor.logging.Preferences();
}
function TestWebDriverPromiseModule() {
var cancelError: protractor.promise.CancellationError = new protractor.promise.CancellationError();
cancelError = new protractor.promise.CancellationError('message');
var baseCancelError: webdriver.promise.CancellationError = cancelError;
var thenable: protractor.promise.Thenable<any> = new protractor.promise.Thenable();
var baseThenable: webdriver.promise.Thenable<any> = thenable;
var promise: protractor.promise.Promise<any> = new protractor.promise.Promise();
var basePromise: webdriver.promise.Promise<any> = promise;
var deferred: protractor.promise.Deferred<any> = new protractor.promise.Deferred();
var baseDeferred: webdriver.promise.Deferred<any> = deferred;
var flow: protractor.promise.ControlFlow = new protractor.promise.ControlFlow();
var baseFlow: webdriver.promise.ControlFlow = flow;
var arrayPromise: protractor.promise.Promise<any[]> = protractor.promise.all([new protractor.promise.Promise<number>(), new protractor.promise.Promise<string>()]);
protractor.promise.asap(promise, function (value: any) { return true; });
protractor.promise.asap(promise, function (value: any) { }, function (err: any) { return 'ABC'; });
promise = protractor.promise.checkedNodeCall(function (err: any, value: any) { return 123; });
promise = protractor.promise.consume(function () {
return 5;
});
promise = protractor.promise.consume(function () {
return 5;
}, this);
promise = protractor.promise.consume(function () {
return 5;
}, this, 1, 2, 3);
flow = protractor.promise.controlFlow();
promise = protractor.promise.createFlow(function (newFlow: webdriver.promise.ControlFlow) { });
deferred = protractor.promise.defer();
promise = protractor.promise.delayed(123);
var numbersPromise: protractor.promise.Promise<number[]> = protractor.promise.filter([1, 2, 3], function (el: number, index: number, arr: number[]) {
return true;
});
numbersPromise = protractor.promise.filter([1, 2, 3], function (el: number, index: number, arr: number[]) {
return true;
}, this);
numbersPromise = protractor.promise.filter(numbersPromise, function (el: number, index: number, arr: number[]) {
return true;
});
numbersPromise = protractor.promise.filter(numbersPromise, function (el: number, index: number, arr: number[]) {
return true;
}, this);
numbersPromise = protractor.promise.map([1, 2, 3], function (el: number, index: number, arr: number[]) {
return true;
});
numbersPromise = protractor.promise.map([1, 2, 3], function (el: number, index: number, arr: number[]) {
return true;
}, this);
numbersPromise = protractor.promise.map(numbersPromise, function (el: number, index: number, arr: number[]) {
return true;
});
numbersPromise = protractor.promise.map(numbersPromise, function (el: number, index: number, arr: number[]) {
return true;
}, this);
promise = protractor.promise.fulfilled();
promise = protractor.promise.fulfilled({ a: 123 });
promise = protractor.promise.fullyResolved({ a: 123 });
var bool: boolean = protractor.promise.isGenerator(function () { });
var bool: boolean = protractor.promise.isPromise('ABC');
promise = protractor.promise.rejected({ a: 123 });
protractor.promise.setDefaultFlow(new webdriver.promise.ControlFlow());
promise = protractor.promise.when(promise, function (value: any) { return 123; }, function (err: Error) { return 123; });
}
function TestWebDriverStacktraceModule() {
var bool: boolean = protractor.stacktrace.BROWSER_SUPPORTED;
var frame: protractor.stacktrace.Frame = new protractor.stacktrace.Frame();
var baseFrame: webdriver.stacktrace.Frame = frame;
var snapshot: protractor.stacktrace.Snapshot = new protractor.stacktrace.Snapshot();
var baseSnapshot: webdriver.stacktrace.Snapshot = snapshot;
var err: Error = protractor.stacktrace.format(new Error("Error"));
var frames: protractor.stacktrace.Frame[] = protractor.stacktrace.get();
}
function TestWebDriverUntilModule() {
var conditionB: protractor.until.Condition<boolean> = new protractor.until.Condition<boolean>('message', function (driver: webdriver.WebDriver) { return true; });
var conditionBBase: webdriver.until.Condition<boolean> = conditionB;
var conditionWebElement: protractor.until.Condition<webdriver.IWebElement>;
var conditionWebElements: protractor.until.Condition<webdriver.IWebElement[]>;
conditionB = protractor.until.ableToSwitchToFrame(5);
var conditionAlert: protractor.until.Condition<webdriver.Alert> = protractor.until.alertIsPresent();
var el: protractor.ElementFinder = element(by.id('id'));
conditionB = protractor.until.elementIsDisabled(el);
conditionB = protractor.until.elementIsEnabled(el);
conditionB = protractor.until.elementIsNotSelected(el);
conditionB = protractor.until.elementIsNotVisible(el);
conditionB = protractor.until.elementIsSelected(el);
conditionB = protractor.until.elementIsVisible(el);
conditionB = protractor.until.elementTextContains(el, 'text');
conditionB = protractor.until.elementTextIs(el, 'text');
conditionB = protractor.until.elementTextMatches(el, /text/);
conditionB = protractor.until.stalenessOf(el);
conditionB = protractor.until.titleContains('text');
conditionB = protractor.until.titleIs('text');
conditionB = protractor.until.titleMatches(/text/);
conditionWebElement = protractor.until.elementLocated(by.id('id'));
conditionWebElements = protractor.until.elementsLocated(by.className('class'));
}
function TestWebDriverExpectedConditionsModule() {
var conditionB: protractor.until.Condition<boolean>;
var el: protractor.ElementFinder = element(by.id('id'));
conditionB = protractor.ExpectedConditions.alertIsPresent();
conditionB = protractor.ExpectedConditions.elementToBeClickable(el);
conditionB = protractor.ExpectedConditions.textToBePresentInElement(el, 'text');
conditionB = protractor.ExpectedConditions.textToBePresentInElementValue(el, 'text');
conditionB = protractor.ExpectedConditions.titleContains('text');
conditionB = protractor.ExpectedConditions.titleIs('text');
conditionB = protractor.ExpectedConditions.presenceOf(el);
conditionB = protractor.ExpectedConditions.stalenessOf(el);
conditionB = protractor.ExpectedConditions.visibilityOf(el);
conditionB = protractor.ExpectedConditions.invisibilityOf(el);
conditionB = protractor.ExpectedConditions.elementToBeSelected(el);
conditionB = protractor.ExpectedConditions.not(protractor.ExpectedConditions.alertIsPresent());
conditionB = protractor.ExpectedConditions.and(protractor.ExpectedConditions.alertIsPresent(), protractor.ExpectedConditions.elementToBeClickable(el));
conditionB = protractor.ExpectedConditions.or(protractor.ExpectedConditions.alertIsPresent(), protractor.ExpectedConditions.elementToBeClickable(el));
}
function TestProtractor() {
var ptor: protractor.Protractor;
var driver: webdriver.WebDriver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).
build();
ptor = protractor.wrapDriver(driver);
ptor = protractor.wrapDriver(driver, 'baseUrl');
ptor = protractor.wrapDriver(driver, 'baseUrl', 'rootElement');
ptor = browser;
var actions: protractor.ActionSequence = ptor.actions();
var promise: protractor.promise.Promise<any> = ptor.call(function () { });
var promise: protractor.promise.Promise<any> = ptor.call(function () { }, this);
var promise: protractor.promise.Promise<any> = ptor.call(function (a: number, b: number, c:number) { }, this, 1, 2,3);
promise = ptor.executeAsyncScript('SomeScript');
promise = ptor.executeAsyncScript('SomeScript', 1, 2, 3);
promise = ptor.executeAsyncScript(function () { });
promise = ptor.executeAsyncScript(function (a: number, b: number, c: number) { }, 1, 2, 3);
promise = ptor.executeScript('SomeScript');
promise = ptor.executeScript('SomeScript', 1, 2, 3);
promise = ptor.executeScript(function () { });
promise = ptor.executeScript(function (a: number, b: number, c: number) { }, 1, 2, 3);
ptor = browser.forkNewDriverInstance();
ptor = browser.forkNewDriverInstance(true);
ptor = browser.forkNewDriverInstance(true, false);
driver = ptor.driver;
var baseUrl: string = ptor.baseUrl;
var rootEl: string = ptor.rootEl;
var ignoreSynchronization: boolean = ptor.ignoreSynchronization;
var params: any = ptor.params;
ptor.resetUrl = "url";
ptor.debugger();
ptor.close();
var controlFlow: protractor.promise.ControlFlow = ptor.controlFlow();
var webElement: protractor.WebElement = ptor.findElement(by.css('.class'));
ptor.findElements(by.css('.class')).then(function (elements: webdriver.WebElement[]) { });
ptor.isElementPresent(by.css('.class')).then(function (present: boolean) { });
ptor.isElementPresent(webElement).then(function (present: boolean) { });
ptor.clearMockModules();
ptor.addMockModule('name', 'script');
ptor.addMockModule('name', function() {});
ptor.removeMockModule('name');
ptor.waitForAngular();
var elementFinder: protractor.ElementFinder;
var elementArrayFinder: protractor.ElementArrayFinder;
elementFinder = ptor.element(by.id('ABC'));
elementFinder = ptor.$('.class');
elementArrayFinder = ptor.$$('.class');
var locationAbsUrl: webdriver.promise.Promise<string> = ptor.getLocationAbsUrl();
ptor.setLocation('webaddress.com');
var voidPromise: webdriver.promise.Promise<void> = ptor.get('webaddress.com');
voidPromise = ptor.get('webdaddress.com', 45);
voidPromise = ptor.quit();
voidPromise = ptor.sleep(5000);
ptor.refresh();
ptor.refresh(45);
var navigation: webdriver.WebDriverNavigation = ptor.navigate();
ptor.pause();
ptor.pause(8080);
ptor.getAllWindowHandles().then(function (handles: string[]) { });
var capabilities: protractor.promise.Promise<protractor.Capabilities> = ptor.getCapabilities();
var stringPromise: webdriver.promise.Promise<string>;
stringPromise = ptor.getCurrentUrl();
stringPromise = ptor.getPageSource();
stringPromise = ptor.getTitle();
stringPromise = ptor.getWindowHandle();
stringPromise = ptor.takeScreenshot();
ptor.getPageTimeout = 5000;
var session: protractor.promise.Promise<protractor.Session> = ptor.getSession();
var options: webdriver.WebDriverOptions = ptor.manage();
promise = ptor.schedule(new protractor.Command(protractor.CommandName.ACCEPT_ALERT), 'asdf');
var targetLocator: webdriver.WebDriverTargetLocator = ptor.switchTo();
ptor.wait(protractor.until.elementLocated(by.id('id')), 5000).then(function (el: webdriver.IWebElement) { });;
ptor.wait(protractor.until.elementLocated(by.id('id')), 5000, 'message').then(function (el: webdriver.IWebElement) { });;
}
function TestElement() {
var elementFinder: protractor.ElementFinder = element(by.id('id'));
var elementArrayFinder: protractor.ElementArrayFinder = element.all(by.className('class'));
}
function TestElementFinder() {
var elementFinder: protractor.ElementFinder = element(by.id('id'));
var voidPromise: webdriver.promise.Promise<void>;
var stringPromise: webdriver.promise.Promise<string>;
var booleanPromise: webdriver.promise.Promise<boolean>;
elementFinder.getId().then(function (id: webdriver.IWebElementId) { });
voidPromise = elementFinder.click();
elementFinder = elementFinder.allowAnimations('string');
voidPromise = elementFinder.sendKeys(protractor.Key.UP, protractor.Key.DOWN);
stringPromise = elementFinder.getTagName();
stringPromise = elementFinder.getCssValue('display');
stringPromise = elementFinder.getAttribute('atribute');
stringPromise = elementFinder.getText();
elementFinder.getSize().then(function (size: webdriver.ISize) { });
elementFinder.getLocation().then(function (location: webdriver.ILocation) { });
booleanPromise = elementFinder.isEnabled();
booleanPromise = elementFinder.isSelected();
voidPromise = elementFinder.submit();
voidPromise = elementFinder.clear();
booleanPromise = elementFinder.isDisplayed();
stringPromise = elementFinder.getOuterHtml();
stringPromise = elementFinder.getInnerHtml();
booleanPromise = elementFinder.isElementPresent(by.id('id'));
elementFinder = elementFinder.$('.class');
var finders: protractor.ElementArrayFinder = elementFinder.$$('.class');
elementFinder = elementFinder.evaluate('expression');
booleanPromise = elementFinder.isPresent();
var webElement: webdriver.WebElement = elementFinder.getWebElement();
finders = elementFinder.all(by.className('class'));
elementFinder = elementFinder.allowAnimations('abc');
elementFinder = elementFinder.clone();
elementFinder = elementFinder.element(by.id('id'));
var b: boolean = elementFinder.isPending();
var locator: webdriver.Locator = elementFinder.locator();
}
function TestElementArrayFinder() {
var elementArrayFinder: protractor.ElementArrayFinder = element.all(by.id('id'));
var voidPromise: webdriver.promise.Promise<void>;
var stringPromise: webdriver.promise.Promise<string[]>;
var booleanPromise: webdriver.promise.Promise<boolean[]>;
elementArrayFinder.getId().then(function (id: webdriver.IWebElementId[]) { });
voidPromise = elementArrayFinder.click();
elementArrayFinder = elementArrayFinder.allowAnimations(true);
voidPromise = elementArrayFinder.sendKeys(protractor.Key.UP, protractor.Key.DOWN);
stringPromise = elementArrayFinder.getTagName();
stringPromise = elementArrayFinder.getCssValue('display');
stringPromise = elementArrayFinder.getAttribute('atribute');
stringPromise = elementArrayFinder.getText();
elementArrayFinder.getSize().then(function (size: webdriver.ISize[]) { });
elementArrayFinder.getLocation().then(function (location: webdriver.ILocation[]) { });
booleanPromise = elementArrayFinder.isEnabled();
booleanPromise = elementArrayFinder.isSelected();
voidPromise = elementArrayFinder.submit();
voidPromise = elementArrayFinder.clear();
booleanPromise = elementArrayFinder.isDisplayed();
stringPromise = elementArrayFinder.getOuterHtml();
stringPromise = elementArrayFinder.getInnerHtml();
var finders: protractor.ElementArrayFinder = elementArrayFinder.$$('.class');
elementArrayFinder = elementArrayFinder.evaluate('expression');
finders = elementArrayFinder.all(by.className('class'));
elementArrayFinder = elementArrayFinder.clone();
var b: boolean = elementArrayFinder.isPending();
var locator: webdriver.Locator = elementArrayFinder.locator();
var findersArrayPromise: protractor.promise.Promise<protractor.ElementFinder[]> = elementArrayFinder.asElementFinders_();
var driverElementArray: webdriver.WebElement[] = elementArrayFinder.getWebElements();
var elementFinder: protractor.ElementFinder = elementArrayFinder.get(42);
elementFinder = elementArrayFinder.first();
elementFinder = elementArrayFinder.last();
elementFinder = elementArrayFinder.toElementFinder_()
var numberPromise: protractor.promise.Promise<number> = elementArrayFinder.count();
elementArrayFinder.each(function(element: protractor.ElementFinder){
// nothing
});
stringPromise = elementArrayFinder.map(function(element: protractor.ElementFinder, index: number){
return 'abc';
});
stringPromise = elementArrayFinder.map<string>(function(element: protractor.ElementFinder, index: number): string {
return 'abc';
});
stringPromise = elementArrayFinder.map<string, webdriver.promise.Promise<string>>(function(element: protractor.ElementFinder, index: number): webdriver.promise.Promise<string> {
return element.getText();
});
elementArrayFinder = elementArrayFinder.filter(function(element: protractor.ElementFinder, index: number){
return element.getText().then((text: string) => {
return text === "foo";
});
});
elementArrayFinder.reduce(function (accumulator: string, element: protractor.ElementFinder) {
return element.getText().then((text: string) => {
return accumulator + ',' + text;
});
}, '').then(function (result: string) { });
elementArrayFinder.reduce(function(accumulator: string, element: protractor.ElementFinder, index: number, array: protractor.ElementFinder[]){
return element.getText().then((text: string) => {
return accumulator + ',' + text;
});
}, '').then(function (result: string) { });
elementArrayFinder.then(function(underlyingElementFinders: protractor.ElementFinder[]){
//nothing
});
}
// This function tests the locator strategies.
function TestLocatorStrategies() {
var ptor: protractor.Protractor = browser;
var webElement: webdriver.WebElement;
protractor.By.addLocator('customLocator', 'script');
protractor.By.addLocator('customLocator2', function(){
// nothing
});
// Angular specific locators.
webElement = ptor.findElement(protractor.By.binding('binding'));
webElement = ptor.findElement(protractor.By.exactBinding('exactBinding'));
webElement = ptor.findElement(protractor.By.model('model'));
webElement = ptor.findElement(protractor.By.repeater('repeater'));
webElement = ptor.findElement(protractor.By.repeater('repeater').column(0));
webElement = ptor.findElement(protractor.By.repeater('repeater').row(0));
webElement = ptor.findElement(protractor.By.repeater('repeater').row(0).column(0));
webElement = ptor.findElement(protractor.By.buttonText('buttonText'));
webElement = ptor.findElement(protractor.By.partialButtonText('partialButtonText'));
webElement = ptor.findElement(protractor.By.cssContainingText('cssSelector', 'search text'));
webElement = ptor.findElement(protractor.By.options('options'));
// One standard locator for good measure.
webElement = ptor.findElement(protractor.By.id('id'));
var el: protractor.ElementFinder;
// Angular specific locators.
el = element(by.binding('binding'));
el = element(by.exactBinding('exactBinding'));
el = element(by.model('model'));
el = element(by.repeater('repeater'));
el = element(by.repeater('repeater').column(0));
el = element(by.repeater('repeater').row(0));
el = element(by.repeater('repeater').row(0).column(0));
el = element(by.buttonText('buttonText'));
el = element(by.partialButtonText('partialButtonText'));
el = element(by.cssContainingText('cssSelector', 'search text'));
el = element(by.options('options'));
// One standard locator for good measure.
el = element(by.id('id'));
}

1849
protractor/index.d.ts vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +0,0 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"noImplicitAny": true,
"strictNullChecks": false,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"angular-protractor-tests.ts"
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@
function TestChromeDriver() {
var driver: chrome.Driver = new chrome.Driver();
driver = new chrome.Driver(webdriver.Capabilities.chrome());
driver = new chrome.Driver(webdriver.Capabilities.chrome(), new webdriver.promise.ControlFlow());
driver = new chrome.Driver(webdriver.Capabilities.chrome(), new remote.DriverService('executable', new chrome.Options()), new webdriver.promise.ControlFlow());
var baseDriver: webdriver.WebDriver = driver;
}
@@ -31,7 +31,6 @@ function TestChromeOptions() {
options = options.setUserPreferences("preferences");
var capabilities: webdriver.Capabilities = options.toCapabilities();
capabilities = options.toCapabilities(webdriver.Capabilities.chrome());
var values: chrome.IOptionsValues = options.toJSON();
}
function TestServiceBuilder() {
@@ -52,7 +51,7 @@ function TestServiceBuilder() {
function TestChromeModule() {
var service: any = chrome.getDefaultService();
chrome.setDefaultService({});
chrome.setDefaultService(new remote.DriverService('executable', new chrome.Options()));
}
function TestBinary() {
@@ -66,8 +65,8 @@ function TestBinary() {
function TestFirefoxDriver() {
var driver: firefox.Driver = new firefox.Driver();
driver = new chrome.Driver(webdriver.Capabilities.firefox());
driver = new chrome.Driver(webdriver.Capabilities.firefox(), new webdriver.promise.ControlFlow());
driver = new firefox.Driver(webdriver.Capabilities.firefox());
driver = new firefox.Driver(webdriver.Capabilities.firefox(), new webdriver.promise.ControlFlow());
var baseDriver: webdriver.WebDriver = driver;
}
@@ -82,7 +81,6 @@ function TestFirefoxOptions() {
options = options.setProfile(new firefox.Profile());
options = options.setProxy({ proxyType: "proxy" });
var capabilities: webdriver.Capabilities = options.toCapabilities();
var capabilities: webdriver.Capabilities = options.toCapabilities({});
}
function TestFirefoxProfile() {
@@ -108,7 +106,7 @@ function TestFirefoxProfile() {
}
function TestExecutors() {
var exec: webdriver.CommandExecutor = executors.createExecutor("url");
var exec: webdriver.Executor = executors.createExecutor("url");
var promise: webdriver.promise.Promise<string>;
exec = executors.createExecutor(promise);
}
@@ -144,7 +142,9 @@ function TestActionSequence() {
build();
var sequence: webdriver.ActionSequence = new webdriver.ActionSequence(driver);
var element: webdriver.WebElement = new webdriver.WebElement(driver, { ELEMENT: 'id' });
var element: webdriver.WebElement = new webdriver.WebElement(driver, 'elementId');
var promise: webdriver.promise.Promise<string>;
element = new webdriver.WebElement(driver, promise);
// Click
sequence = sequence.click();
@@ -187,7 +187,6 @@ function TestActionSequence() {
// SendKeys
sequence = sequence.sendKeys("A", "B", "C");
sequence = sequence.sendKeys(["A", "B", "C"]);
sequence.perform().then(function () { });
}
@@ -196,7 +195,7 @@ function TestTouchSequence() {
var driver: webdriver.WebDriver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).
build();
var element: webdriver.WebElement = new webdriver.WebElement(driver, { ELEMENT: 'id' });
var element: webdriver.WebElement = new webdriver.WebElement(driver, 'elementId');
var sequence: webdriver.TouchSequence = new webdriver.TouchSequence(driver);
@@ -319,9 +318,9 @@ function TestCommand() {
command = command.setParameters({ param: 123 });
}
function TestCommandExecutor() {
var c: webdriver.CommandExecutor = { execute: function (command: webdriver.Command, callback: (error: Error, obj: any) => any) { } };
c.execute(new webdriver.Command('name'), function (error: Error, response: any) { });
function TestDeferredExecutor() {
var promise: webdriver.promise.Promise<webdriver.Executor>;
var executor: webdriver.DeferredExecutor = new webdriver.DeferredExecutor(promise);
}
function TestCommandName() {
@@ -458,7 +457,7 @@ function TestEventEmitter() {
}
function TestKey() {
var key: string;
var key: webdriver.Key;
key = webdriver.Key.ADD;
key = webdriver.Key.ALT;
@@ -520,35 +519,15 @@ function TestKey() {
key = webdriver.Key.SUBTRACT;
key = webdriver.Key.TAB;
key = webdriver.Key.UP;
key = webdriver.Key.chord(webdriver.Key.NUMPAD0, webdriver.Key.NUMPAD1);
}
function TestLocator() {
function TestBy() {
var driver: webdriver.WebDriver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).
build();
var locator: webdriver.Locator = new webdriver.Locator('class name', 'class');
var locator: webdriver.By = new webdriver.By('class name', 'class');
var locatorOrFn: webdriver.Locator|Function;
locatorOrFn = webdriver.Locator.Strategy.className;
locatorOrFn = webdriver.Locator.Strategy.css;
locatorOrFn = webdriver.Locator.Strategy.id;
locatorOrFn = webdriver.Locator.Strategy.js;
locatorOrFn = webdriver.Locator.Strategy.linkText;
locatorOrFn = webdriver.Locator.Strategy.name;
locatorOrFn = webdriver.Locator.Strategy.partialLinkText;
locatorOrFn = webdriver.Locator.Strategy.tagName;
locatorOrFn = webdriver.Locator.Strategy.xpath;
locatorOrFn = webdriver.Locator.checkLocator(locator);
locatorOrFn = webdriver.Locator.checkLocator({ className: 'class' });
locatorOrFn = webdriver.Locator.checkLocator(Error);
var using: string = locator.using;
var value: string = locator.value;
var str: string = locator.toString();
locator = webdriver.By.className('class');
@@ -563,7 +542,7 @@ function TestLocator() {
// Can import "By" without import declarations
var By = webdriver.By;
var locatorHash: webdriver.By.Hash;
var locatorHash: webdriver.ByHash;
locatorHash = { className: 'class' };
locatorHash = { css: 'css' };
locatorHash = { id: 'id' };
@@ -591,9 +570,7 @@ function TestSession() {
function TestUnhandledAlertError() {
var someFunc = function (error: webdriver.UnhandledAlertError) {
var baseError: webdriver.error.Error = error;
var alert: webdriver.Alert = error.getAlert();
var baseError: Error = error;
var str: string = error.getAlertText();
str = error.toString();
}
@@ -614,7 +591,7 @@ function TestWebDriverLogs() {
withCapabilities(webdriver.Capabilities.chrome()).
build();
var logs: webdriver.WebDriverLogs = new webdriver.WebDriver.Logs(driver);
var logs: webdriver.Logs = new webdriver.Logs(driver);
logs.get(webdriver.logging.Type.BROWSER).then(function (entries: webdriver.logging.Entry[]) { });;
logs.getAvailableLogTypes().then(function (types: string[]) { });
@@ -625,7 +602,7 @@ function TestWebDriverNavigation() {
withCapabilities(webdriver.Capabilities.chrome()).
build();
var navigation: webdriver.WebDriverNavigation = new webdriver.WebDriver.Navigation(driver);
var navigation: webdriver.Navigation = new webdriver.Navigation(driver);
navigation.back().then(function () { });
navigation.forward().then(function () { });
@@ -638,7 +615,7 @@ function TestWebDriverOptions() {
withCapabilities(webdriver.Capabilities.chrome()).
build();
var options: webdriver.WebDriverOptions = new webdriver.WebDriver.Options(driver);
var options: webdriver.Options = new webdriver.Options(driver);
var promise: webdriver.promise.Promise<void>;
// Add Cookie
@@ -654,9 +631,9 @@ function TestWebDriverOptions() {
options.getCookie('name').then(function (cookies: webdriver.IWebDriverOptionsCookie) { });
options.getCookies().then(function (cookies: webdriver.IWebDriverOptionsCookie[]) { });
var logs: webdriver.WebDriverLogs = options.logs();
var timeouts: webdriver.WebDriverTimeouts = options.timeouts();
var window: webdriver.WebDriverWindow = options.window();
var logs: webdriver.Logs = options.logs();
var timeouts: webdriver.Timeouts = options.timeouts();
var window: webdriver.Window = options.window();
}
function TestWebDriverTargetLocator() {
@@ -664,13 +641,12 @@ function TestWebDriverTargetLocator() {
withCapabilities(webdriver.Capabilities.chrome()).
build();
var locator: webdriver.WebDriverTargetLocator = new webdriver.WebDriver.TargetLocator(driver);
var locator: webdriver.TargetLocator = new webdriver.TargetLocator(driver);
var promise: webdriver.promise.Promise<void>;
var element: webdriver.WebElement = locator.activeElement();
var alert: webdriver.Alert = locator.alert();
promise = locator.defaultContent();
promise = locator.frame('name');
promise = locator.frame(1);
promise = locator.window('nameOrHandle');
}
@@ -680,7 +656,7 @@ function TestWebDriverTimeouts() {
withCapabilities(webdriver.Capabilities.chrome()).
build();
var timeouts: webdriver.WebDriverTimeouts = new webdriver.WebDriver.Timeouts(driver);
var timeouts: webdriver.Timeouts = new webdriver.Timeouts(driver);
var promise: webdriver.promise.Promise<void>;
promise = timeouts.implicitlyWait(123);
@@ -693,7 +669,7 @@ function TestWebDriverWindow() {
withCapabilities(webdriver.Capabilities.chrome()).
build();
var window: webdriver.WebDriverWindow = new webdriver.WebDriver.Window(driver);
var window: webdriver.Window = new webdriver.Window(driver);
var locationPromise: webdriver.promise.Promise<webdriver.ILocation>;
var sizePromise: webdriver.promise.Promise<webdriver.ISize>;
var voidPromise: webdriver.promise.Promise<void>;
@@ -708,7 +684,7 @@ function TestWebDriverWindow() {
function TestWebDriver() {
var session: webdriver.Session = new webdriver.Session('ABC', webdriver.Capabilities.android());
var sessionPromise: webdriver.promise.Promise<webdriver.Session>;
var executor: webdriver.CommandExecutor = executors.createExecutor("http://someserver");
var executor: webdriver.Executor = executors.createExecutor("http://someserver");
var flow: webdriver.promise.ControlFlow = new webdriver.promise.ControlFlow();
var driver: webdriver.WebDriver = new webdriver.WebDriver(session, executor);
driver = new webdriver.WebDriver(session, executor, flow);
@@ -746,15 +722,11 @@ function TestWebDriver() {
// findElement
var element: webdriver.WebElement;
element = driver.findElement(webdriver.By.id('ABC'));
element = driver.findElement({id: 'ABC'});
element = driver.findElement(webdriver.By.js('function(){}'));
element = driver.findElement({js: 'function(){}'});
// findElements
driver.findElements(webdriver.By.className('ABC')).then(function (elements: webdriver.WebElement[]) { });
driver.findElements({ className: 'ABC' }).then(function (elements: webdriver.WebElement[]) { });
driver.findElements(webdriver.By.js('function(){}')).then(function (elements: webdriver.WebElement[]) { });
driver.findElements({ js: 'function(){}' }).then(function (elements: webdriver.WebElement[]) { });
voidPromise = driver.get('http://www.google.com');
driver.getAllWindowHandles().then(function (handles: string[]) { });
@@ -766,13 +738,11 @@ function TestWebDriver() {
stringPromise = driver.getWindowHandle();
booleanPromise = driver.isElementPresent(webdriver.By.className('ABC'));
booleanPromise = driver.isElementPresent({className: 'ABC'});
booleanPromise = driver.isElementPresent(webdriver.By.js('function(){}'));
booleanPromise = driver.isElementPresent({js: 'function(){}'});
var options: webdriver.WebDriverOptions = driver.manage();
var navigation: webdriver.WebDriverNavigation = driver.navigate();
var locator: webdriver.WebDriverTargetLocator = driver.switchTo();
var options: webdriver.Options = driver.manage();
var navigation: webdriver.Navigation = driver.navigate();
var locator: webdriver.TargetLocator = driver.switchTo();
var fileDetector: webdriver.FileDetector = new webdriver.FileDetector();
driver.setFileDetector(fileDetector);
@@ -795,7 +765,7 @@ function TestWebDriver() {
function TestSerializable() {
var serializable: webdriver.Serializable<string>;
var serial: string|webdriver.promise.Promise<string> = serializable.serialize();
var serial: string|webdriver.promise.IThenable<string> = serializable.serialize();
}
function TestWebElement() {
@@ -803,10 +773,10 @@ function TestWebElement() {
withCapabilities(webdriver.Capabilities.chrome()).
build();
var promise: webdriver.promise.Promise<webdriver.IWebElementId>;
var promise: webdriver.promise.Promise<string>;
var element: webdriver.WebElement;
element = new webdriver.WebElement(driver, { ELEMENT: 'ID' });
element = new webdriver.WebElement(driver, 'elementId');
element = new webdriver.WebElement(driver, promise);
var voidPromise: webdriver.promise.Promise<void>;
@@ -817,13 +787,8 @@ function TestWebElement() {
voidPromise = element.click();
element = element.findElement(webdriver.By.id('ABC'));
element = element.findElement({id: 'ABC'});
element.findElements(webdriver.By.className('ABC')).then(function (elements: webdriver.WebElement[]) { });
element.findElements({ className: 'ABC' }).then(function (elements: webdriver.WebElement[]) { });
booleanPromise = element.isElementPresent(webdriver.By.className('ABC'));
booleanPromise = element.isElementPresent({className: 'ABC'});
stringPromise = element.getAttribute('class');
stringPromise = element.getCssValue('display');
@@ -840,14 +805,11 @@ function TestWebElement() {
voidPromise = element.sendKeys('A', 'B', 'C');
voidPromise = element.sendKeys(stringPromise, stringPromise, stringPromise);
voidPromise = element.submit();
element.getId().then(function (id: typeof webdriver.WebElement.Id) { });
element.getId().then(function (id: string) { });
element.getRawId().then(function (id: string) { });
element.serialize().then(function (id: typeof webdriver.WebElement.Id) { });
element.serialize().then(function (id: webdriver.IWebElementId) { });
booleanPromise = webdriver.WebElement.equals(element, new webdriver.WebElement(driver, { ELEMENT: 'ID2' }));
var id: typeof webdriver.WebElement.Id = webdriver.WebElement.Id;
var key: string = webdriver.WebElement.ELEMENT_KEY;
booleanPromise = webdriver.WebElement.equals(element, new webdriver.WebElement(driver, 'elementId'));
}
function TestWebElementPromise() {
@@ -877,7 +839,7 @@ function TestLogging() {
preferences.setLevel(webdriver.logging.Type.BROWSER, webdriver.logging.Level.ALL);
var prefs: any = preferences.toJSON();
var level: webdriver.logging.ILevel = webdriver.logging.getLevel('OFF');
var level: webdriver.logging.Level = webdriver.logging.getLevel('OFF');
level = webdriver.logging.getLevel(1);
level = webdriver.logging.Level.ALL;
@@ -887,10 +849,10 @@ function TestLogging() {
level = webdriver.logging.Level.SEVERE;
level = webdriver.logging.Level.WARNING;
var name: string = level.name;
var value: number = level.value;
var name: string = level.name();
var value: number = level.value();
var type: string;
var type: webdriver.logging.Type;
type = webdriver.logging.Type.BROWSER;
type = webdriver.logging.Type.CLIENT;
type = webdriver.logging.Type.DRIVER;
@@ -913,9 +875,6 @@ function TestLoggingEntry() {
var message: string = entry.message;
var timestamp: number = entry.timestamp;
var type: string = entry.type;
entry = webdriver.logging.Entry.fromClosureLogRecord({});
entry = webdriver.logging.Entry.fromClosureLogRecord({}, webdriver.logging.Type.DRIVER);
}
function TestPromiseModule() {
@@ -946,29 +905,29 @@ function TestPromiseModule() {
return 5;
}, this, 1, 2, 3).then(function (value: number) { });
var numbersPromise: webdriver.promise.Promise<number[]> = webdriver.promise.filter([1, 2, 3], function (el: number, index: number, arr: number[]) {
var numbersPromise: webdriver.promise.Promise<number[]> = webdriver.promise.filter([1, 2, 3], function (element: number, type: any, index: number, arr: number[]) {
return true;
});
numbersPromise = webdriver.promise.filter([1, 2, 3], function (el: number, index: number, arr: number[]) {
numbersPromise = webdriver.promise.filter([1, 2, 3], function (element: number, type: any, index: number, arr: number[]) {
return true;
}, this);
numbersPromise = webdriver.promise.filter(numbersPromise, function (el: number, index: number, arr: number[]) {
numbersPromise = webdriver.promise.filter(numbersPromise, function (element: number, type: any, index: number, arr: number[]) {
return true;
});
numbersPromise = webdriver.promise.filter(numbersPromise, function (el: number, index: number, arr: number[]) {
numbersPromise = webdriver.promise.filter(numbersPromise, function (element: number, type: any, index: number, arr: number[]) {
return true;
}, this);
numbersPromise = webdriver.promise.map([1, 2, 3], function (el: number, index: number, arr: number[]) {
numbersPromise = webdriver.promise.map([1, 2, 3], function (el: number, type: any, index: number, arr: number[]) {
return true;
});
numbersPromise = webdriver.promise.map([1, 2, 3], function (el: number, index: number, arr: number[]) {
numbersPromise = webdriver.promise.map([1, 2, 3], function (el: number, type: any, index: number, arr: number[]) {
return true;
}, this);
numbersPromise = webdriver.promise.map(numbersPromise, function (el: number, index: number, arr: number[]) {
numbersPromise = webdriver.promise.map(numbersPromise, function (el: number, type: any, index: number, arr: number[]) {
return true;
});
numbersPromise = webdriver.promise.map(numbersPromise, function (el: number, index: number, arr: number[]) {
numbersPromise = webdriver.promise.map(numbersPromise, function (el: number, type: any, index: number, arr: number[]) {
return true;
}, this);
@@ -995,26 +954,13 @@ function TestPromiseModule() {
var bool: boolean = webdriver.promise.isGenerator(function () { });
var isPromise: boolean = webdriver.promise.isPromise('ABC');
voidPromise = webdriver.promise.rejected({a: 123});
stringPromise = webdriver.promise.rejected('{a: 123}');
webdriver.promise.setDefaultFlow(new webdriver.promise.ControlFlow());
numberPromise = webdriver.promise.when('abc', function(value: any) { return 123; }, function(err: Error) { return 123; });
}
function TestStacktraceModule() {
var bool: boolean = webdriver.stacktrace.BROWSER_SUPPORTED;
var frame: webdriver.stacktrace.Frame = new webdriver.stacktrace.Frame();
var baseFrame: webdriver.stacktrace.Frame = frame;
var snapshot: webdriver.stacktrace.Snapshot = new webdriver.stacktrace.Snapshot();
var baseSnapshot: webdriver.stacktrace.Snapshot = snapshot;
var err: Error = webdriver.stacktrace.format(new Error("Error"));
var frames: webdriver.stacktrace.Frame[] = webdriver.stacktrace.get();
}
function TestUntilModule() {
var driver: webdriver.WebDriver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).
@@ -1125,13 +1071,12 @@ function TestPromiseClass() {
}
function TestThenableClass() {
var thenable: webdriver.promise.Thenable<string> = new webdriver.promise.Thenable<string>();
var thenable: webdriver.promise.Promise<string> = new webdriver.promise.Promise<string>();
thenable.cancel('Abort');
var isPending: boolean = thenable.isPending();
thenable = thenable.then();
thenable = thenable.then(function (a: string) { return 'cde'; });
thenable = thenable.then(function (a: string) { return 'cde'; }, function (e: any) { });
thenable = thenable.then(function (a: string) { return 'cde'; }, function (e: any) { return 123; });
@@ -1144,76 +1089,30 @@ function TestThenableClass() {
function TestErrorCode() {
var errorCode: number;
errorCode = webdriver.error.ErrorCode.ELEMENT_NOT_SELECTABLE;
errorCode = webdriver.error.ErrorCode.ELEMENT_NOT_VISIBLE;
errorCode = webdriver.error.ErrorCode.IME_ENGINE_ACTIVATION_FAILED;
errorCode = webdriver.error.ErrorCode.IME_NOT_AVAILABLE;
errorCode = webdriver.error.ErrorCode.INVALID_COOKIE_DOMAIN;
errorCode = webdriver.error.ErrorCode.INVALID_ELEMENT_COORDINATES;
errorCode = webdriver.error.ErrorCode.INVALID_ELEMENT_STATE;
errorCode = webdriver.error.ErrorCode.INVALID_SELECTOR_ERROR;
errorCode = webdriver.error.ErrorCode.INVALID_XPATH_SELECTOR;
errorCode = webdriver.error.ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPE;
errorCode = webdriver.error.ErrorCode.JAVASCRIPT_ERROR;
errorCode = webdriver.error.ErrorCode.METHOD_NOT_ALLOWED;
errorCode = webdriver.error.ErrorCode.MODAL_DIALOG_OPENED;
errorCode = webdriver.error.ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS;
errorCode = webdriver.error.ErrorCode.NO_MODAL_DIALOG_OPEN;
errorCode = webdriver.error.ErrorCode.NO_SUCH_ELEMENT;
errorCode = webdriver.error.ErrorCode.NO_SUCH_FRAME;
errorCode = webdriver.error.ErrorCode.NO_SUCH_WINDOW;
errorCode = webdriver.error.ErrorCode.SCRIPT_TIMEOUT;
errorCode = webdriver.error.ErrorCode.SESSION_NOT_CREATED;
errorCode = webdriver.error.ErrorCode.SQL_DATABASE_ERROR;
errorCode = webdriver.error.ErrorCode.STALE_ELEMENT_REFERENCE;
errorCode = webdriver.error.ErrorCode.SUCCESS;
errorCode = webdriver.error.ErrorCode.TIMEOUT;
errorCode = webdriver.error.ErrorCode.UNABLE_TO_SET_COOKIE;
errorCode = webdriver.error.ErrorCode.UNKNOWN_COMMAND;
errorCode = webdriver.error.ErrorCode.UNKNOWN_ERROR;
errorCode = webdriver.error.ErrorCode.UNSUPPORTED_OPERATION;
errorCode = webdriver.error.ErrorCode.XPATH_LOOKUP_ERROR;
}
function TestError() {
var error: webdriver.error.Error;
error = new webdriver.error.Error(webdriver.error.ErrorCode.ELEMENT_NOT_SELECTABLE);
error = new webdriver.error.Error(webdriver.error.ErrorCode.ELEMENT_NOT_SELECTABLE, 'Message');
var code: number = error.code;
var state: string = error.state;
var message: string = error.message;
var name: string = error.name;
var stack: string = error.stack;
var isAutomationError: boolean = error.isAutomationError;
var errorStr: string = error.toString();
state = webdriver.error.Error.State.ELEMENT_NOT_SELECTABLE
state = webdriver.error.Error.State.ELEMENT_NOT_VISIBLE;
state = webdriver.error.Error.State.IME_ENGINE_ACTIVATION_FAILED;
state = webdriver.error.Error.State.IME_NOT_AVAILABLE;
state = webdriver.error.Error.State.INVALID_COOKIE_DOMAIN;
state = webdriver.error.Error.State.INVALID_ELEMENT_COORDINATES;
state = webdriver.error.Error.State.INVALID_ELEMENT_STATE;
state = webdriver.error.Error.State.INVALID_SELECTOR;
state = webdriver.error.Error.State.JAVASCRIPT_ERROR;
state = webdriver.error.Error.State.MOVE_TARGET_OUT_OF_BOUNDS;
state = webdriver.error.Error.State.NO_SUCH_ALERT;
state = webdriver.error.Error.State.NO_SUCH_DOM
state = webdriver.error.Error.State.NO_SUCH_ELEMENT;
state = webdriver.error.Error.State.NO_SUCH_FRAME;
state = webdriver.error.Error.State.NO_SUCH_WINDOW;
state = webdriver.error.Error.State.SCRIPT_TIMEOUT;
state = webdriver.error.Error.State.SESSION_NOT_CREATED;
state = webdriver.error.Error.State.STALE_ELEMENT_REFERENCE;
state = webdriver.error.Error.State.SUCCESS;
state = webdriver.error.Error.State.TIMEOUT;
state = webdriver.error.Error.State.UNABLE_TO_SET_COOKIE;
state = webdriver.error.Error.State.UNEXPECTED_ALERT_OPEN
state = webdriver.error.Error.State.UNKNOWN_COMMAND;
state = webdriver.error.Error.State.UNKNOWN_ERROR;
state = webdriver.error.Error.State.UNSUPPORTED_OPERATION;
errorCode = new webdriver.error.ElementNotSelectableError().code();
errorCode = new webdriver.error.ElementNotVisibleError().code();
errorCode = new webdriver.error.InvalidArgumentError().code();
errorCode = new webdriver.error.InvalidCookieDomainError().code();
errorCode = new webdriver.error.InvalidElementCoordinatesError().code();
errorCode = new webdriver.error.InvalidElementStateError().code();
errorCode = new webdriver.error.InvalidSelectorError().code();
errorCode = new webdriver.error.NoSuchSessionError().code();
errorCode = new webdriver.error.JavascriptError().code();
errorCode = new webdriver.error.MoveTargetOutOfBoundsError().code();
errorCode = new webdriver.error.NoSuchAlertError().code();
errorCode = new webdriver.error.NoSuchElementError().code();
errorCode = new webdriver.error.NoSuchFrameError().code();
errorCode = new webdriver.error.NoSuchWindowError().code();
errorCode = new webdriver.error.ScriptTimeoutError().code();
errorCode = new webdriver.error.SessionNotCreatedError().code();
errorCode = new webdriver.error.StaleElementReferenceError().code();
errorCode = new webdriver.error.TimeoutError().code();
errorCode = new webdriver.error.UnableToSetCookieError().code();
errorCode = new webdriver.error.UnableToCaptureScreenError().code();
errorCode = new webdriver.error.UnexpectedAlertOpenError().code();
errorCode = new webdriver.error.UnknownCommandError().code();
errorCode = new webdriver.error.UnknownMethodError().code();
errorCode = new webdriver.error.UnsupportedOperationError().code();
}
function TestTestingModule() {