Skip to content

Commit ccf12fc

Browse files
committed
refactor(cdk/testing): rename WebDriverHarnessEnvironment to
`SeleniumWebDriverHarnessEnvironment`
1 parent 382b1b7 commit ccf12fc

File tree

11 files changed

+31
-30
lines changed

11 files changed

+31
-30
lines changed

src/cdk/config.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ CDK_ENTRYPOINTS = [
2121
"testing",
2222
"testing/protractor",
2323
"testing/testbed",
24-
"testing/webdriver",
24+
"testing/selenium-webdriver",
2525
]
2626

2727
# List of all entry-point targets of the Angular Material package.

src/cdk/testing/webdriver/BUILD.bazel renamed to src/cdk/testing/selenium-webdriver/BUILD.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ load("//tools:defaults.bzl", "ts_library")
33
package(default_visibility = ["//visibility:public"])
44

55
ts_library(
6-
name = "webdriver",
6+
name = "selenium-webdriver",
77
srcs = glob(
88
["**/*.ts"],
99
exclude = ["**/*.spec.ts"],
1010
),
11-
module_name = "@angular/cdk/testing/webdriver",
11+
module_name = "@angular/cdk/testing/selenium-webdriver",
1212
deps = [
1313
"//src/cdk/testing",
1414
"@npm//@types/selenium-webdriver",

src/cdk/testing/webdriver/public-api.ts renamed to src/cdk/testing/selenium-webdriver/public-api.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
export * from './webdriver-element';
10-
export * from './webdriver-harness-environment';
9+
export * from './selenium-web-driver-element';
10+
export * from './selenium-web-driver-harness-environment';

src/cdk/testing/webdriver/webdriver-element.ts renamed to src/cdk/testing/selenium-webdriver/selenium-web-driver-element.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ import {
1616
TextOptions
1717
} from '@angular/cdk/testing';
1818
import * as webdriver from 'selenium-webdriver';
19-
import {getWebDriverModifierKeys, webDriverKeyMap} from './webdriver-keys';
19+
import {getSeleniumWebDriverModifierKeys, seleniumWebDriverKeyMap} from './selenium-webdriver-keys';
2020

2121
/** A `TestElement` implementation for WebDriver. */
22-
export class WebDriverElement implements TestElement {
22+
export class SeleniumWebDriverElement implements TestElement {
2323
constructor(
2424
readonly element: () => webdriver.WebElement,
2525
private _stabilize: () => Promise<void>) {}
@@ -116,8 +116,8 @@ export class WebDriverElement implements TestElement {
116116
rest = modifiersAndKeys;
117117
}
118118

119-
const modifierKeys = getWebDriverModifierKeys(modifiers);
120-
const keys = rest.map(k => typeof k === 'string' ? k.split('') : [webDriverKeyMap[k]])
119+
const modifierKeys = getSeleniumWebDriverModifierKeys(modifiers);
120+
const keys = rest.map(k => typeof k === 'string' ? k.split('') : [seleniumWebDriverKeyMap[k]])
121121
.reduce((arr, k) => arr.concat(k), [])
122122
// webdriver.Key.chord doesn't work well with geckodriver (mozilla/geckodriver#1502),
123123
// so avoid it if no modifier keys are required.
@@ -246,7 +246,7 @@ export class WebDriverElement implements TestElement {
246246
if (args.length && typeof args[args.length - 1] === 'object') {
247247
modifiers = args.pop() as ModifierKeys;
248248
}
249-
const modifierKeys = getWebDriverModifierKeys(modifiers);
249+
const modifierKeys = getSeleniumWebDriverModifierKeys(modifiers);
250250

251251
// Omitting the offset argument to mouseMove results in clicking the center.
252252
// This is the default behavior we want, so we use an empty array of offsetArgs if

src/cdk/testing/webdriver/webdriver-harness-environment.ts renamed to src/cdk/testing/selenium-webdriver/selenium-web-driver-harness-environment.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import {HarnessEnvironment, HarnessLoader, TestElement} from '@angular/cdk/testing';
1010
import * as webdriver from 'selenium-webdriver';
11-
import {WebDriverElement} from './webdriver-element';
11+
import {SeleniumWebDriverElement} from './selenium-web-driver-element';
1212

1313
/**
1414
* An Angular framework stabilizer function that takes a callback and calls it when the application
@@ -67,7 +67,8 @@ export async function waitForAngularReady(wd: webdriver.WebDriver) {
6767
}
6868

6969
/** A `HarnessEnvironment` implementation for WebDriver. */
70-
export class WebDriverHarnessEnvironment extends HarnessEnvironment<() => webdriver.WebElement> {
70+
export class SeleniumWebDriverHarnessEnvironment extends
71+
HarnessEnvironment<() => webdriver.WebElement> {
7172
/** The options for this environment. */
7273
private _options: WebDriverHarnessEnvironmentOptions;
7374

@@ -79,7 +80,7 @@ export class WebDriverHarnessEnvironment extends HarnessEnvironment<() => webdri
7980

8081
/** Gets the ElementFinder corresponding to the given TestElement. */
8182
static getNativeElement(el: TestElement): webdriver.WebElement {
82-
if (el instanceof WebDriverElement) {
83+
if (el instanceof SeleniumWebDriverElement) {
8384
return el.element();
8485
}
8586
throw Error('This TestElement was not created by the WebDriverHarnessEnvironment');
@@ -88,7 +89,7 @@ export class WebDriverHarnessEnvironment extends HarnessEnvironment<() => webdri
8889
/** Creates a `HarnessLoader` rooted at the document root. */
8990
static loader(driver: webdriver.WebDriver, options?: WebDriverHarnessEnvironmentOptions):
9091
HarnessLoader {
91-
return new WebDriverHarnessEnvironment(
92+
return new SeleniumWebDriverHarnessEnvironment(
9293
() => driver.findElement(webdriver.By.css('body')), options);
9394
}
9495

@@ -114,13 +115,13 @@ export class WebDriverHarnessEnvironment extends HarnessEnvironment<() => webdri
114115

115116
/** Creates a `TestElement` from a raw element. */
116117
protected createTestElement(element: () => webdriver.WebElement): TestElement {
117-
return new WebDriverElement(element, () => this.forceStabilize());
118+
return new SeleniumWebDriverElement(element, () => this.forceStabilize());
118119
}
119120

120121
/** Creates a `HarnessLoader` rooted at the given raw element. */
121122
protected createEnvironment(element: () => webdriver.WebElement):
122123
HarnessEnvironment<() => webdriver.WebElement> {
123-
return new WebDriverHarnessEnvironment(element, this._options);
124+
return new SeleniumWebDriverHarnessEnvironment(element, this._options);
124125
}
125126

126127
// Note: This seems to be working, though we may need to re-evaluate if we encounter issues with

src/cdk/testing/webdriver/webdriver-keys.ts renamed to src/cdk/testing/selenium-webdriver/selenium-webdriver-keys.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import * as webdriver from 'selenium-webdriver';
1313
* Maps the `TestKey` constants to WebDriver's `webdriver.Key` constants.
1414
* See https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/webdriver/key.js#L29
1515
*/
16-
export const webDriverKeyMap = {
16+
export const seleniumWebDriverKeyMap = {
1717
[TestKey.BACKSPACE]: webdriver.Key.BACK_SPACE,
1818
[TestKey.TAB]: webdriver.Key.TAB,
1919
[TestKey.ENTER]: webdriver.Key.ENTER,
@@ -47,7 +47,7 @@ export const webDriverKeyMap = {
4747
};
4848

4949
/** Gets a list of WebDriver `Key`s for the given `ModifierKeys`. */
50-
export function getWebDriverModifierKeys(modifiers: ModifierKeys): string[] {
50+
export function getSeleniumWebDriverModifierKeys(modifiers: ModifierKeys): string[] {
5151
const result: string[] = [];
5252
if (modifiers.control) {
5353
result.push(webdriver.Key.CONTROL);

src/cdk/testing/tests/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ ts_library(
8686
":cross_environment_specs",
8787
":test_harnesses",
8888
"//src/cdk/testing",
89-
"//src/cdk/testing/webdriver",
89+
"//src/cdk/testing/selenium-webdriver",
9090
"@npm//@bazel/runfiles",
9191
"@npm//@types/jasmine",
9292
"@npm//@types/node",

src/cdk/testing/tests/webdriver.e2e.spec.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {runfiles} from '@bazel/runfiles';
22
import {HarnessLoader, parallel} from '@angular/cdk/testing';
3-
import {waitForAngularReady, WebDriverHarnessEnvironment} from '@angular/cdk/testing/webdriver';
3+
import {waitForAngularReady, SeleniumWebDriverHarnessEnvironment} from '@angular/cdk/testing/selenium-webdriver';
44
import * as webdriver from 'selenium-webdriver';
55
import {crossEnvironmentSpecs} from './cross-environment.spec';
66
import {MainComponentHarness} from './harnesses/main-component-harness';
@@ -70,7 +70,7 @@ describe('WebDriverHarnessEnvironment', () => {
7070
let loader: HarnessLoader;
7171

7272
beforeEach(() => {
73-
loader = WebDriverHarnessEnvironment.loader(wd);
73+
loader = SeleniumWebDriverHarnessEnvironment.loader(wd);
7474
});
7575

7676
it('should create HarnessLoader from WebDriverHarnessEnvironment', () => {
@@ -82,7 +82,7 @@ describe('WebDriverHarnessEnvironment', () => {
8282
let harness: MainComponentHarness;
8383

8484
beforeEach(async () => {
85-
harness = await WebDriverHarnessEnvironment.loader(wd).getHarness(MainComponentHarness);
85+
harness = await SeleniumWebDriverHarnessEnvironment.loader(wd).getHarness(MainComponentHarness);
8686
});
8787

8888
it('can get elements outside of host', async () => {
@@ -99,20 +99,20 @@ describe('WebDriverHarnessEnvironment', () => {
9999
});
100100

101101
it('should be able to retrieve the WebElement from a WebDriverElement', async () => {
102-
const element = WebDriverHarnessEnvironment.getNativeElement(await harness.host());
102+
const element = SeleniumWebDriverHarnessEnvironment.getNativeElement(await harness.host());
103103
expect(await element.getTagName()).toBe('test-main');
104104
});
105105
});
106106

107107
describe('shadow DOM interaction', () => {
108108
it('should not pierce shadow boundary by default', async () => {
109-
const harness = await WebDriverHarnessEnvironment.loader(wd)
109+
const harness = await SeleniumWebDriverHarnessEnvironment.loader(wd)
110110
.getHarness(MainComponentHarness);
111111
expect(await harness.shadows()).toEqual([]);
112112
});
113113

114114
it('should pierce shadow boundary when using piercing query', async () => {
115-
const harness = await WebDriverHarnessEnvironment.loader(wd, {queryFn: piercingQueryFn})
115+
const harness = await SeleniumWebDriverHarnessEnvironment.loader(wd, {queryFn: piercingQueryFn})
116116
.getHarness(MainComponentHarness);
117117
const shadows = await harness.shadows();
118118
expect(await parallel(() => {
@@ -121,16 +121,16 @@ describe('WebDriverHarnessEnvironment', () => {
121121
});
122122

123123
it('should allow querying across shadow boundary', async () => {
124-
const harness = await WebDriverHarnessEnvironment.loader(wd, {queryFn: piercingQueryFn})
124+
const harness = await SeleniumWebDriverHarnessEnvironment.loader(wd, {queryFn: piercingQueryFn})
125125
.getHarness(MainComponentHarness);
126126
expect(await (await harness.deepShadow()).text()).toBe('Shadow 2');
127127
});
128128
});
129129
});
130130

131131
describe('environment independent', () => crossEnvironmentSpecs(
132-
() => WebDriverHarnessEnvironment.loader(wd),
133-
() => WebDriverHarnessEnvironment.loader(wd).getHarness(MainComponentHarness),
132+
() => SeleniumWebDriverHarnessEnvironment.loader(wd),
133+
() => SeleniumWebDriverHarnessEnvironment.loader(wd).getHarness(MainComponentHarness),
134134
async () => (await activeElement()).getAttribute('id'),
135135
));
136136
});

src/cdk/tsconfig-tests.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"exclude": [
2828
"testing/protractor/**.ts",
2929
"testing/private/e2e/**.ts",
30-
"testing/webdriver/**.ts",
30+
"testing/selenium-webdriver/**.ts",
3131
"**/schematics/**/*.ts",
3232
"**/*.e2e.spec.ts"
3333
]

tools/public_api_guard/generate-guard-tests.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def generate_test_targets(golden_files):
3131
],
3232
golden = "angular_material/tools/public_api_guard/%s" % golden_file,
3333
use_angular_tag_rules = False,
34-
# Required for the `youtube-player`, `google-maps`, and `cdk/testing/webdriver`
34+
# Required for the `youtube-player`, `google-maps`, and `cdk/testing/selenium-webdriver`
3535
# packages. "i0" is generated by ngtsc for creating directive, module definitions.
3636
allow_module_identifiers = ["YT", "google", "i0", "webdriver"],
3737
)

0 commit comments

Comments
 (0)