@theia/playwright 1.34.3 → 1.34.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +641 -641
- package/README.md +54 -54
- package/lib/index.d.ts +25 -25
- package/lib/index.js +52 -52
- package/lib/tests/fixtures/theia-fixture.d.ts +3 -3
- package/lib/tests/fixtures/theia-fixture.js +23 -23
- package/lib/tests/theia-app.test.d.ts +1 -1
- package/lib/tests/theia-app.test.js +29 -29
- package/lib/tests/theia-explorer-view.test.d.ts +1 -1
- package/lib/tests/theia-explorer-view.test.js +109 -109
- package/lib/tests/theia-main-menu.test.d.ts +1 -1
- package/lib/tests/theia-main-menu.test.js +73 -73
- package/lib/tests/theia-preference-view.test.d.ts +1 -1
- package/lib/tests/theia-preference-view.test.js +99 -99
- package/lib/tests/theia-problems-view.test.d.ts +1 -1
- package/lib/tests/theia-problems-view.test.js +52 -52
- package/lib/tests/theia-quick-command.test.d.ts +1 -1
- package/lib/tests/theia-quick-command.test.js +53 -53
- package/lib/tests/theia-sample-app.test.d.ts +1 -1
- package/lib/tests/theia-sample-app.test.js +80 -80
- package/lib/tests/theia-status-bar.test.d.ts +1 -1
- package/lib/tests/theia-status-bar.test.js +41 -41
- package/lib/tests/theia-text-editor.test.d.ts +1 -1
- package/lib/tests/theia-text-editor.test.js +152 -152
- package/lib/tests/theia-workspace.test.d.ts +1 -1
- package/lib/tests/theia-workspace.test.js +47 -47
- package/lib/theia-about-dialog.d.ts +4 -4
- package/lib/theia-about-dialog.js +26 -26
- package/lib/theia-app.d.ts +43 -43
- package/lib/theia-app.js +135 -135
- package/lib/theia-context-menu.d.ts +8 -8
- package/lib/theia-context-menu.js +37 -37
- package/lib/theia-dialog.d.ts +27 -27
- package/lib/theia-dialog.js +98 -98
- package/lib/theia-editor.d.ts +9 -9
- package/lib/theia-editor.js +68 -68
- package/lib/theia-explorer-view.d.ts +38 -38
- package/lib/theia-explorer-view.js +209 -209
- package/lib/theia-main-menu.d.ts +12 -12
- package/lib/theia-main-menu.js +53 -53
- package/lib/theia-menu-item.d.ts +14 -14
- package/lib/theia-menu-item.js +66 -66
- package/lib/theia-menu.d.ts +16 -16
- package/lib/theia-menu.js +86 -86
- package/lib/theia-notification-indicator.d.ts +7 -7
- package/lib/theia-notification-indicator.js +44 -44
- package/lib/theia-notification-overlay.d.ts +22 -22
- package/lib/theia-notification-overlay.js +79 -79
- package/lib/theia-page-object.d.ts +7 -7
- package/lib/theia-page-object.js +27 -27
- package/lib/theia-preference-view.d.ts +76 -76
- package/lib/theia-preference-view.js +201 -201
- package/lib/theia-problem-indicator.d.ts +8 -8
- package/lib/theia-problem-indicator.js +38 -38
- package/lib/theia-problem-view.d.ts +5 -5
- package/lib/theia-problem-view.js +30 -30
- package/lib/theia-quick-command-palette.d.ts +11 -11
- package/lib/theia-quick-command-palette.js +73 -73
- package/lib/theia-rename-dialog.d.ts +5 -5
- package/lib/theia-rename-dialog.js +35 -35
- package/lib/theia-status-bar.d.ts +13 -13
- package/lib/theia-status-bar.js +39 -39
- package/lib/theia-status-indicator.d.ts +10 -10
- package/lib/theia-status-indicator.js +48 -48
- package/lib/theia-text-editor.d.ts +27 -27
- package/lib/theia-text-editor.js +149 -149
- package/lib/theia-toggle-bottom-indicator.d.ts +4 -4
- package/lib/theia-toggle-bottom-indicator.js +26 -26
- package/lib/theia-tree-node.d.ts +16 -16
- package/lib/theia-tree-node.js +53 -53
- package/lib/theia-view.d.ts +32 -32
- package/lib/theia-view.js +151 -151
- package/lib/theia-workspace.d.ts +18 -18
- package/lib/theia-workspace.js +69 -69
- package/lib/util.d.ts +19 -19
- package/lib/util.js +93 -93
- package/package.json +2 -2
- package/src/index.ts +41 -41
- package/src/tests/fixtures/theia-fixture.ts +25 -25
- package/src/tests/resources/sample-files1/sample.txt +4 -4
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-1/sampleFile1-1-1.txt +1 -1
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-1/sampleFile1-1-2.txt +1 -1
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-2/sampleFile1-2-1.txt +1 -1
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder1/sampleFolder1-2/sampleFile1-2-2.txt +1 -1
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-1/sampleFile2-1-1.txt +1 -1
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-1/sampleFile2-1-2.txt +1 -1
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-2/sampleFile2-2-1.txt +1 -1
- package/src/tests/resources/sample-files1/sampleFolder/sampleFolder2/sampleFolder2-2/sampleFile2-2-2.txt +1 -1
- package/src/tests/resources/sample-files2/another-sample.txt +1 -1
- package/src/tests/theia-app.test.ts +34 -34
- package/src/tests/theia-explorer-view.test.ts +124 -124
- package/src/tests/theia-main-menu.test.ts +89 -89
- package/src/tests/theia-preference-view.test.ts +118 -118
- package/src/tests/theia-problems-view.test.ts +60 -60
- package/src/tests/theia-quick-command.test.ts +61 -61
- package/src/tests/theia-sample-app.test.ts +92 -92
- package/src/tests/theia-status-bar.test.ts +47 -47
- package/src/tests/theia-text-editor.test.ts +182 -182
- package/src/tests/theia-workspace.test.ts +51 -51
- package/src/theia-about-dialog.ts +26 -26
- package/src/theia-app.ts +154 -154
- package/src/theia-context-menu.ts +42 -42
- package/src/theia-dialog.ts +113 -113
- package/src/theia-editor.ts +73 -73
- package/src/theia-explorer-view.ts +234 -234
- package/src/theia-main-menu.ts +54 -54
- package/src/theia-menu-item.ts +75 -75
- package/src/theia-menu.ts +96 -96
- package/src/theia-notification-indicator.ts +44 -44
- package/src/theia-notification-overlay.ts +94 -94
- package/src/theia-page-object.ts +29 -29
- package/src/theia-preference-view.ts +232 -232
- package/src/theia-problem-indicator.ts +37 -37
- package/src/theia-problem-view.ts +30 -30
- package/src/theia-quick-command-palette.ts +75 -75
- package/src/theia-rename-dialog.ts +36 -36
- package/src/theia-status-bar.ts +44 -44
- package/src/theia-status-indicator.ts +50 -50
- package/src/theia-text-editor.ts +172 -172
- package/src/theia-toggle-bottom-indicator.ts +21 -21
- package/src/theia-tree-node.ts +60 -60
- package/src/theia-view.ts +178 -178
- package/src/theia-workspace.ts +76 -76
- package/src/util.ts +91 -91
package/lib/theia-menu-item.js
CHANGED
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// *****************************************************************************
|
|
3
|
-
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
4
|
-
//
|
|
5
|
-
// This program and the accompanying materials are made available under the
|
|
6
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
-
//
|
|
9
|
-
// This Source Code may also be made available under the following Secondary
|
|
10
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
-
// with the GNU Classpath Exception which is available at
|
|
13
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
-
//
|
|
15
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
-
// *****************************************************************************
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.TheiaMenuItem = void 0;
|
|
19
|
-
const util_1 = require("./util");
|
|
20
|
-
class TheiaMenuItem {
|
|
21
|
-
constructor(element) {
|
|
22
|
-
this.element = element;
|
|
23
|
-
}
|
|
24
|
-
labelElementHandle() {
|
|
25
|
-
return this.element.waitForSelector('.p-Menu-itemLabel');
|
|
26
|
-
}
|
|
27
|
-
shortCutElementHandle() {
|
|
28
|
-
return this.element.waitForSelector('.p-Menu-itemShortcut');
|
|
29
|
-
}
|
|
30
|
-
isHidden() {
|
|
31
|
-
return (0, util_1.elementContainsClass)(this.element, 'p-mod-collapsed');
|
|
32
|
-
}
|
|
33
|
-
async label() {
|
|
34
|
-
if (await this.isHidden()) {
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
return (0, util_1.textContent)(this.labelElementHandle());
|
|
38
|
-
}
|
|
39
|
-
async shortCut() {
|
|
40
|
-
if (await this.isHidden()) {
|
|
41
|
-
return undefined;
|
|
42
|
-
}
|
|
43
|
-
return (0, util_1.textContent)(this.shortCutElementHandle());
|
|
44
|
-
}
|
|
45
|
-
async hasSubmenu() {
|
|
46
|
-
if (await this.isHidden()) {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
return (await this.element.getAttribute('data-type')) === 'submenu';
|
|
50
|
-
}
|
|
51
|
-
async isEnabled() {
|
|
52
|
-
const classAttribute = (await this.element.getAttribute('class'));
|
|
53
|
-
if (classAttribute === undefined || classAttribute === null) {
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
return !classAttribute.includes('p-mod-disabled') && !classAttribute.includes('p-mod-collapsed');
|
|
57
|
-
}
|
|
58
|
-
async click() {
|
|
59
|
-
return this.element.waitForSelector('.p-Menu-itemLabel')
|
|
60
|
-
.then(labelElement => labelElement.click({ position: { x: 10, y: 10 } }));
|
|
61
|
-
}
|
|
62
|
-
async hover() {
|
|
63
|
-
return this.element.hover();
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
exports.TheiaMenuItem = TheiaMenuItem;
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaMenuItem = void 0;
|
|
19
|
+
const util_1 = require("./util");
|
|
20
|
+
class TheiaMenuItem {
|
|
21
|
+
constructor(element) {
|
|
22
|
+
this.element = element;
|
|
23
|
+
}
|
|
24
|
+
labelElementHandle() {
|
|
25
|
+
return this.element.waitForSelector('.p-Menu-itemLabel');
|
|
26
|
+
}
|
|
27
|
+
shortCutElementHandle() {
|
|
28
|
+
return this.element.waitForSelector('.p-Menu-itemShortcut');
|
|
29
|
+
}
|
|
30
|
+
isHidden() {
|
|
31
|
+
return (0, util_1.elementContainsClass)(this.element, 'p-mod-collapsed');
|
|
32
|
+
}
|
|
33
|
+
async label() {
|
|
34
|
+
if (await this.isHidden()) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
return (0, util_1.textContent)(this.labelElementHandle());
|
|
38
|
+
}
|
|
39
|
+
async shortCut() {
|
|
40
|
+
if (await this.isHidden()) {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
return (0, util_1.textContent)(this.shortCutElementHandle());
|
|
44
|
+
}
|
|
45
|
+
async hasSubmenu() {
|
|
46
|
+
if (await this.isHidden()) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return (await this.element.getAttribute('data-type')) === 'submenu';
|
|
50
|
+
}
|
|
51
|
+
async isEnabled() {
|
|
52
|
+
const classAttribute = (await this.element.getAttribute('class'));
|
|
53
|
+
if (classAttribute === undefined || classAttribute === null) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
return !classAttribute.includes('p-mod-disabled') && !classAttribute.includes('p-mod-collapsed');
|
|
57
|
+
}
|
|
58
|
+
async click() {
|
|
59
|
+
return this.element.waitForSelector('.p-Menu-itemLabel')
|
|
60
|
+
.then(labelElement => labelElement.click({ position: { x: 10, y: 10 } }));
|
|
61
|
+
}
|
|
62
|
+
async hover() {
|
|
63
|
+
return this.element.hover();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.TheiaMenuItem = TheiaMenuItem;
|
|
67
67
|
//# sourceMappingURL=theia-menu-item.js.map
|
package/lib/theia-menu.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { ElementHandle } from '@playwright/test';
|
|
2
|
-
import { TheiaMenuItem } from './theia-menu-item';
|
|
3
|
-
import { TheiaPageObject } from './theia-page-object';
|
|
4
|
-
export declare class TheiaMenu extends TheiaPageObject {
|
|
5
|
-
selector: string;
|
|
6
|
-
protected menuElementHandle(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
7
|
-
waitForVisible(): Promise<void>;
|
|
8
|
-
isOpen(): Promise<boolean>;
|
|
9
|
-
close(): Promise<void>;
|
|
10
|
-
menuItems(): Promise<TheiaMenuItem[]>;
|
|
11
|
-
clickMenuItem(name: string): Promise<void>;
|
|
12
|
-
menuItemByName(name: string): Promise<TheiaMenuItem | undefined>;
|
|
13
|
-
menuItemByNamePath(...names: string[]): Promise<TheiaMenuItem | undefined>;
|
|
14
|
-
protected menuItemSelector(label?: string): string;
|
|
15
|
-
visibleMenuItems(): Promise<string[]>;
|
|
16
|
-
}
|
|
1
|
+
import { ElementHandle } from '@playwright/test';
|
|
2
|
+
import { TheiaMenuItem } from './theia-menu-item';
|
|
3
|
+
import { TheiaPageObject } from './theia-page-object';
|
|
4
|
+
export declare class TheiaMenu extends TheiaPageObject {
|
|
5
|
+
selector: string;
|
|
6
|
+
protected menuElementHandle(): Promise<ElementHandle<SVGElement | HTMLElement> | null>;
|
|
7
|
+
waitForVisible(): Promise<void>;
|
|
8
|
+
isOpen(): Promise<boolean>;
|
|
9
|
+
close(): Promise<void>;
|
|
10
|
+
menuItems(): Promise<TheiaMenuItem[]>;
|
|
11
|
+
clickMenuItem(name: string): Promise<void>;
|
|
12
|
+
menuItemByName(name: string): Promise<TheiaMenuItem | undefined>;
|
|
13
|
+
menuItemByNamePath(...names: string[]): Promise<TheiaMenuItem | undefined>;
|
|
14
|
+
protected menuItemSelector(label?: string): string;
|
|
15
|
+
visibleMenuItems(): Promise<string[]>;
|
|
16
|
+
}
|
|
17
17
|
//# sourceMappingURL=theia-menu.d.ts.map
|
package/lib/theia-menu.js
CHANGED
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// *****************************************************************************
|
|
3
|
-
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
4
|
-
//
|
|
5
|
-
// This program and the accompanying materials are made available under the
|
|
6
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
-
//
|
|
9
|
-
// This Source Code may also be made available under the following Secondary
|
|
10
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
-
// with the GNU Classpath Exception which is available at
|
|
13
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
-
//
|
|
15
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
-
// *****************************************************************************
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.TheiaMenu = void 0;
|
|
19
|
-
const theia_menu_item_1 = require("./theia-menu-item");
|
|
20
|
-
const theia_page_object_1 = require("./theia-page-object");
|
|
21
|
-
const util_1 = require("./util");
|
|
22
|
-
class TheiaMenu extends theia_page_object_1.TheiaPageObject {
|
|
23
|
-
constructor() {
|
|
24
|
-
super(...arguments);
|
|
25
|
-
this.selector = '.p-Menu';
|
|
26
|
-
}
|
|
27
|
-
async menuElementHandle() {
|
|
28
|
-
return this.page.$(this.selector);
|
|
29
|
-
}
|
|
30
|
-
async waitForVisible() {
|
|
31
|
-
await this.page.waitForSelector(this.selector, { state: 'visible' });
|
|
32
|
-
}
|
|
33
|
-
async isOpen() {
|
|
34
|
-
const menu = await this.menuElementHandle();
|
|
35
|
-
return !!menu && menu.isVisible();
|
|
36
|
-
}
|
|
37
|
-
async close() {
|
|
38
|
-
if (!await this.isOpen()) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
await this.page.mouse.click(0, 0);
|
|
42
|
-
await this.page.waitForSelector(this.selector, { state: 'detached' });
|
|
43
|
-
}
|
|
44
|
-
async menuItems() {
|
|
45
|
-
const menuHandle = await this.menuElementHandle();
|
|
46
|
-
if (!menuHandle) {
|
|
47
|
-
return [];
|
|
48
|
-
}
|
|
49
|
-
const items = await menuHandle.$$('.p-Menu-content .p-Menu-item');
|
|
50
|
-
return items.map(element => new theia_menu_item_1.TheiaMenuItem(element));
|
|
51
|
-
}
|
|
52
|
-
async clickMenuItem(name) {
|
|
53
|
-
return (await this.page.waitForSelector(this.menuItemSelector(name))).click();
|
|
54
|
-
}
|
|
55
|
-
async menuItemByName(name) {
|
|
56
|
-
const menuItems = await this.menuItems();
|
|
57
|
-
for (const item of menuItems) {
|
|
58
|
-
const label = await item.label();
|
|
59
|
-
if (label === name) {
|
|
60
|
-
return item;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return undefined;
|
|
64
|
-
}
|
|
65
|
-
async menuItemByNamePath(...names) {
|
|
66
|
-
let item;
|
|
67
|
-
for (let index = 0; index < names.length; index++) {
|
|
68
|
-
item = await this.page.waitForSelector(this.menuItemSelector(names[index]), { state: 'visible' });
|
|
69
|
-
await item.hover();
|
|
70
|
-
}
|
|
71
|
-
const menuItemHandle = await (item === null || item === void 0 ? void 0 : item.$('xpath=..'));
|
|
72
|
-
if (menuItemHandle) {
|
|
73
|
-
return new theia_menu_item_1.TheiaMenuItem(menuItemHandle);
|
|
74
|
-
}
|
|
75
|
-
return undefined;
|
|
76
|
-
}
|
|
77
|
-
menuItemSelector(label = '') {
|
|
78
|
-
return `.p-Menu-content .p-Menu-itemLabel >> text=${label}`;
|
|
79
|
-
}
|
|
80
|
-
async visibleMenuItems() {
|
|
81
|
-
const menuItems = await this.menuItems();
|
|
82
|
-
const labels = await Promise.all(menuItems.map(item => item.label()));
|
|
83
|
-
return labels.filter(util_1.isDefined);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
exports.TheiaMenu = TheiaMenu;
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaMenu = void 0;
|
|
19
|
+
const theia_menu_item_1 = require("./theia-menu-item");
|
|
20
|
+
const theia_page_object_1 = require("./theia-page-object");
|
|
21
|
+
const util_1 = require("./util");
|
|
22
|
+
class TheiaMenu extends theia_page_object_1.TheiaPageObject {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
this.selector = '.p-Menu';
|
|
26
|
+
}
|
|
27
|
+
async menuElementHandle() {
|
|
28
|
+
return this.page.$(this.selector);
|
|
29
|
+
}
|
|
30
|
+
async waitForVisible() {
|
|
31
|
+
await this.page.waitForSelector(this.selector, { state: 'visible' });
|
|
32
|
+
}
|
|
33
|
+
async isOpen() {
|
|
34
|
+
const menu = await this.menuElementHandle();
|
|
35
|
+
return !!menu && menu.isVisible();
|
|
36
|
+
}
|
|
37
|
+
async close() {
|
|
38
|
+
if (!await this.isOpen()) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
await this.page.mouse.click(0, 0);
|
|
42
|
+
await this.page.waitForSelector(this.selector, { state: 'detached' });
|
|
43
|
+
}
|
|
44
|
+
async menuItems() {
|
|
45
|
+
const menuHandle = await this.menuElementHandle();
|
|
46
|
+
if (!menuHandle) {
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
const items = await menuHandle.$$('.p-Menu-content .p-Menu-item');
|
|
50
|
+
return items.map(element => new theia_menu_item_1.TheiaMenuItem(element));
|
|
51
|
+
}
|
|
52
|
+
async clickMenuItem(name) {
|
|
53
|
+
return (await this.page.waitForSelector(this.menuItemSelector(name))).click();
|
|
54
|
+
}
|
|
55
|
+
async menuItemByName(name) {
|
|
56
|
+
const menuItems = await this.menuItems();
|
|
57
|
+
for (const item of menuItems) {
|
|
58
|
+
const label = await item.label();
|
|
59
|
+
if (label === name) {
|
|
60
|
+
return item;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
async menuItemByNamePath(...names) {
|
|
66
|
+
let item;
|
|
67
|
+
for (let index = 0; index < names.length; index++) {
|
|
68
|
+
item = await this.page.waitForSelector(this.menuItemSelector(names[index]), { state: 'visible' });
|
|
69
|
+
await item.hover();
|
|
70
|
+
}
|
|
71
|
+
const menuItemHandle = await (item === null || item === void 0 ? void 0 : item.$('xpath=..'));
|
|
72
|
+
if (menuItemHandle) {
|
|
73
|
+
return new theia_menu_item_1.TheiaMenuItem(menuItemHandle);
|
|
74
|
+
}
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
menuItemSelector(label = '') {
|
|
78
|
+
return `.p-Menu-content .p-Menu-itemLabel >> text=${label}`;
|
|
79
|
+
}
|
|
80
|
+
async visibleMenuItems() {
|
|
81
|
+
const menuItems = await this.menuItems();
|
|
82
|
+
const labels = await Promise.all(menuItems.map(item => item.label()));
|
|
83
|
+
return labels.filter(util_1.isDefined);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.TheiaMenu = TheiaMenu;
|
|
87
87
|
//# sourceMappingURL=theia-menu.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { TheiaStatusIndicator } from './theia-status-indicator';
|
|
2
|
-
export declare class TheiaNotificationIndicator extends TheiaStatusIndicator {
|
|
3
|
-
id: string;
|
|
4
|
-
hasNotifications(): Promise<boolean>;
|
|
5
|
-
waitForVisible(expectNotifications?: boolean): Promise<void>;
|
|
6
|
-
toggleOverlay(): Promise<void>;
|
|
7
|
-
}
|
|
1
|
+
import { TheiaStatusIndicator } from './theia-status-indicator';
|
|
2
|
+
export declare class TheiaNotificationIndicator extends TheiaStatusIndicator {
|
|
3
|
+
id: string;
|
|
4
|
+
hasNotifications(): Promise<boolean>;
|
|
5
|
+
waitForVisible(expectNotifications?: boolean): Promise<void>;
|
|
6
|
+
toggleOverlay(): Promise<void>;
|
|
7
|
+
}
|
|
8
8
|
//# sourceMappingURL=theia-notification-indicator.d.ts.map
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// *****************************************************************************
|
|
3
|
-
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
4
|
-
//
|
|
5
|
-
// This program and the accompanying materials are made available under the
|
|
6
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
-
//
|
|
9
|
-
// This Source Code may also be made available under the following Secondary
|
|
10
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
-
// with the GNU Classpath Exception which is available at
|
|
13
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
-
//
|
|
15
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
-
// *****************************************************************************
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.TheiaNotificationIndicator = void 0;
|
|
19
|
-
const theia_status_indicator_1 = require("./theia-status-indicator");
|
|
20
|
-
const NOTIFICATION_DOT_ICON = 'codicon-bell-dot';
|
|
21
|
-
class TheiaNotificationIndicator extends theia_status_indicator_1.TheiaStatusIndicator {
|
|
22
|
-
constructor() {
|
|
23
|
-
super(...arguments);
|
|
24
|
-
this.id = 'theia-notification-center';
|
|
25
|
-
}
|
|
26
|
-
async hasNotifications() {
|
|
27
|
-
const container = await this.getElementHandle();
|
|
28
|
-
const bellWithDot = await container.$(`.${NOTIFICATION_DOT_ICON}`);
|
|
29
|
-
return Boolean(bellWithDot === null || bellWithDot === void 0 ? void 0 : bellWithDot.isVisible());
|
|
30
|
-
}
|
|
31
|
-
async waitForVisible(expectNotifications = false) {
|
|
32
|
-
await super.waitForVisible();
|
|
33
|
-
if (expectNotifications && !(await this.hasNotifications())) {
|
|
34
|
-
throw new Error('No notifications when notifications expected.');
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
async toggleOverlay() {
|
|
38
|
-
const element = await this.getElementHandle();
|
|
39
|
-
if (element) {
|
|
40
|
-
await element.click();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.TheiaNotificationIndicator = TheiaNotificationIndicator;
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2021 logi.cals GmbH, EclipseSource and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.TheiaNotificationIndicator = void 0;
|
|
19
|
+
const theia_status_indicator_1 = require("./theia-status-indicator");
|
|
20
|
+
const NOTIFICATION_DOT_ICON = 'codicon-bell-dot';
|
|
21
|
+
class TheiaNotificationIndicator extends theia_status_indicator_1.TheiaStatusIndicator {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.id = 'theia-notification-center';
|
|
25
|
+
}
|
|
26
|
+
async hasNotifications() {
|
|
27
|
+
const container = await this.getElementHandle();
|
|
28
|
+
const bellWithDot = await container.$(`.${NOTIFICATION_DOT_ICON}`);
|
|
29
|
+
return Boolean(bellWithDot === null || bellWithDot === void 0 ? void 0 : bellWithDot.isVisible());
|
|
30
|
+
}
|
|
31
|
+
async waitForVisible(expectNotifications = false) {
|
|
32
|
+
await super.waitForVisible();
|
|
33
|
+
if (expectNotifications && !(await this.hasNotifications())) {
|
|
34
|
+
throw new Error('No notifications when notifications expected.');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async toggleOverlay() {
|
|
38
|
+
const element = await this.getElementHandle();
|
|
39
|
+
if (element) {
|
|
40
|
+
await element.click();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.TheiaNotificationIndicator = TheiaNotificationIndicator;
|
|
45
45
|
//# sourceMappingURL=theia-notification-indicator.js.map
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { TheiaApp } from './theia-app';
|
|
2
|
-
import { TheiaNotificationIndicator } from './theia-notification-indicator';
|
|
3
|
-
import { TheiaPageObject } from './theia-page-object';
|
|
4
|
-
export declare class TheiaNotificationOverlay extends TheiaPageObject {
|
|
5
|
-
protected notificationIndicator: TheiaNotificationIndicator;
|
|
6
|
-
protected readonly HEADER_NOTIFICATIONS = "NOTIFICATIONS";
|
|
7
|
-
protected readonly HEADER_NO_NOTIFICATIONS = "NO NEW NOTIFICATIONS";
|
|
8
|
-
constructor(app: TheiaApp, notificationIndicator: TheiaNotificationIndicator);
|
|
9
|
-
protected get selector(): string;
|
|
10
|
-
protected get containerSelector(): string;
|
|
11
|
-
protected get titleSelector(): string;
|
|
12
|
-
isVisible(): Promise<boolean>;
|
|
13
|
-
waitForVisible(): Promise<void>;
|
|
14
|
-
activate(): Promise<void>;
|
|
15
|
-
toggle(): Promise<void>;
|
|
16
|
-
protected entrySelector(entryText: string): string;
|
|
17
|
-
waitForEntry(entryText: string): Promise<void>;
|
|
18
|
-
waitForEntryDetached(entryText: string): Promise<void>;
|
|
19
|
-
isEntryVisible(entryText: string): Promise<boolean>;
|
|
20
|
-
protected get clearAllButtonSelector(): string;
|
|
21
|
-
clearAllNotifications(): Promise<void>;
|
|
22
|
-
}
|
|
1
|
+
import { TheiaApp } from './theia-app';
|
|
2
|
+
import { TheiaNotificationIndicator } from './theia-notification-indicator';
|
|
3
|
+
import { TheiaPageObject } from './theia-page-object';
|
|
4
|
+
export declare class TheiaNotificationOverlay extends TheiaPageObject {
|
|
5
|
+
protected notificationIndicator: TheiaNotificationIndicator;
|
|
6
|
+
protected readonly HEADER_NOTIFICATIONS = "NOTIFICATIONS";
|
|
7
|
+
protected readonly HEADER_NO_NOTIFICATIONS = "NO NEW NOTIFICATIONS";
|
|
8
|
+
constructor(app: TheiaApp, notificationIndicator: TheiaNotificationIndicator);
|
|
9
|
+
protected get selector(): string;
|
|
10
|
+
protected get containerSelector(): string;
|
|
11
|
+
protected get titleSelector(): string;
|
|
12
|
+
isVisible(): Promise<boolean>;
|
|
13
|
+
waitForVisible(): Promise<void>;
|
|
14
|
+
activate(): Promise<void>;
|
|
15
|
+
toggle(): Promise<void>;
|
|
16
|
+
protected entrySelector(entryText: string): string;
|
|
17
|
+
waitForEntry(entryText: string): Promise<void>;
|
|
18
|
+
waitForEntryDetached(entryText: string): Promise<void>;
|
|
19
|
+
isEntryVisible(entryText: string): Promise<boolean>;
|
|
20
|
+
protected get clearAllButtonSelector(): string;
|
|
21
|
+
clearAllNotifications(): Promise<void>;
|
|
22
|
+
}
|
|
23
23
|
//# sourceMappingURL=theia-notification-overlay.d.ts.map
|