@theia/playwright 1.25.0-next.41 → 1.25.0-next.44

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=theia-sample-app.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theia-sample-app.test.d.ts","sourceRoot":"","sources":["../../src/tests/theia-sample-app.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2022 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
+ const theia_app_1 = require("../theia-app");
19
+ const test_1 = require("@playwright/test");
20
+ const theia_fixture_1 = require("./fixtures/theia-fixture");
21
+ const theia_page_object_1 = require("../theia-page-object");
22
+ class TheiaSampleToolbar extends theia_page_object_1.TheiaPageObject {
23
+ constructor() {
24
+ super(...arguments);
25
+ this.selector = '#main-toolbar';
26
+ }
27
+ async show() {
28
+ if (!await this.isShown()) {
29
+ await this.toggle();
30
+ }
31
+ }
32
+ async toggle() {
33
+ const isShown = await this.isShown();
34
+ const viewMenu = await this.app.menuBar.openMenu('View');
35
+ await viewMenu.clickMenuItem('Toggle Toolbar');
36
+ isShown ? await this.waitUntilHidden() : await this.waitUntilShown();
37
+ }
38
+ async waitUntilHidden() {
39
+ await this.page.waitForSelector(this.selector, { state: 'hidden' });
40
+ }
41
+ async waitUntilShown() {
42
+ await this.page.waitForSelector(this.selector, { state: 'visible' });
43
+ }
44
+ async isShown() {
45
+ const toolbar = await this.page.$(this.selector);
46
+ return !!toolbar && toolbar.isVisible();
47
+ }
48
+ }
49
+ class TheiaSampleApp extends theia_app_1.TheiaApp {
50
+ constructor() {
51
+ super(...arguments);
52
+ this.toolbar = new TheiaSampleToolbar(this);
53
+ }
54
+ async waitForInitialized() {
55
+ await this.toolbar.show();
56
+ }
57
+ async toggleToolbar() {
58
+ await this.toolbar.toggle();
59
+ }
60
+ async isToolbarVisible() {
61
+ return this.toolbar.isShown();
62
+ }
63
+ }
64
+ let app;
65
+ theia_fixture_1.default.describe('Theia Sample Application', () => {
66
+ (0, theia_fixture_1.default)('should load', async () => {
67
+ app = await theia_app_1.TheiaApp.loadApp(theia_fixture_1.page, TheiaSampleApp);
68
+ });
69
+ (0, theia_fixture_1.default)('should start with visible toolbar', async () => {
70
+ (0, test_1.expect)(await app.isToolbarVisible()).toBe(true);
71
+ });
72
+ (0, theia_fixture_1.default)('should toggle toolbar', async () => {
73
+ await app.toggleToolbar();
74
+ (0, test_1.expect)(await app.isToolbarVisible()).toBe(false);
75
+ await app.toggleToolbar();
76
+ (0, test_1.expect)(await app.isToolbarVisible()).toBe(true);
77
+ await app.toggleToolbar();
78
+ (0, test_1.expect)(await app.isToolbarVisible()).toBe(false);
79
+ });
80
+ });
81
+ //# sourceMappingURL=theia-sample-app.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theia-sample-app.test.js","sourceRoot":"","sources":["../../src/tests/theia-sample-app.test.ts"],"names":[],"mappings":"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"}
@@ -6,15 +6,25 @@ import { TheiaQuickCommandPalette } from './theia-quick-command-palette';
6
6
  import { TheiaStatusBar } from './theia-status-bar';
7
7
  import { TheiaView } from './theia-view';
8
8
  import { TheiaWorkspace } from './theia-workspace';
9
+ export interface TheiaAppData {
10
+ loadingSelector: string;
11
+ shellSelector: string;
12
+ }
13
+ export declare const DefaultTheiaAppData: TheiaAppData;
9
14
  export declare class TheiaApp {
10
15
  page: Page;
16
+ protected appData: TheiaAppData;
11
17
  readonly statusBar: TheiaStatusBar;
12
18
  readonly quickCommandPalette: TheiaQuickCommandPalette;
13
19
  readonly menuBar: TheiaMenuBar;
14
20
  workspace: TheiaWorkspace;
15
21
  static load(page: Page, initialWorkspace?: TheiaWorkspace): Promise<TheiaApp>;
16
- protected static loadOrReload(page: Page, url: string): Promise<void>;
17
- protected constructor(page: Page, initialWorkspace?: TheiaWorkspace);
22
+ static loadApp<T extends TheiaApp>(page: Page, appFactory: {
23
+ new (page: Page, initialWorkspace?: TheiaWorkspace): T;
24
+ }, initialWorkspace?: TheiaWorkspace): Promise<T>;
25
+ constructor(page: Page, initialWorkspace?: TheiaWorkspace, appData?: TheiaAppData);
26
+ protected load(): Promise<void>;
27
+ protected loadOrReload(page: Page, url: string): Promise<void>;
18
28
  isMainContentPanelVisible(): Promise<boolean>;
19
29
  openPreferences(viewFactory: {
20
30
  new (app: TheiaApp): TheiaPreferenceView;
@@ -1 +1 @@
1
- {"version":3,"file":"theia-app.d.ts","sourceRoot":"","sources":["../src/theia-app.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,QAAQ;IA8BY,IAAI,EAAE,IAAI;IA5BvC,QAAQ,CAAC,SAAS,iBAA4B;IAC9C,QAAQ,CAAC,mBAAmB,2BAAsC;IAClE,QAAQ,CAAC,OAAO,eAA0B;IACnC,SAAS,EAAE,cAAc,CAAC;WAEb,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;qBASnE,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3E,SAAS,aAAoB,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAAE,cAAc;IAKpE,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC;IAK7C,eAAe,CAAC,WAAW,EAAE;QAAE,KAAI,GAAG,EAAE,QAAQ,GAAG,mBAAmB,CAAA;KAAE,EAAE,eAAe,uBAAiC,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAUzJ,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,WAAW,EAAE;QAAE,KAAI,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAUjF,UAAU,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE;QAAE,KAAI,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAA;KAAE,EAChH,UAAU,CAAC,EAAE,MAAM,EAAE,eAAe,UAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAiCtD,sBAAsB,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE;QAAE,KAAI,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAU7I,qEAAqE;IAC/D,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5C"}
1
+ {"version":3,"file":"theia-app.d.ts","sourceRoot":"","sources":["../src/theia-app.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,YAAY;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,mBAAmB,EAAE,YAGjC,CAAC;AAEF,qBAAa,QAAQ;IAiBS,IAAI,EAAE,IAAI;IAAqC,SAAS,CAAC,OAAO;IAf1F,QAAQ,CAAC,SAAS,iBAA4B;IAC9C,QAAQ,CAAC,mBAAmB,2BAAsC;IAClE,QAAQ,CAAC,OAAO,eAA0B;IACnC,SAAS,EAAE,cAAc,CAAC;WAEpB,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;WAItE,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;QAAE,KAAI,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAAE,cAAc,GAAG,CAAC,CAAA;KAAE,EAAE,gBAAgB,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;gBAMhJ,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAAE,cAAc,EAAY,OAAO,eAAsB;cAKhG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;cAOrB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9D,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC;IAK7C,eAAe,CAAC,WAAW,EAAE;QAAE,KAAI,GAAG,EAAE,QAAQ,GAAG,mBAAmB,CAAA;KAAE,EAAE,eAAe,uBAAiC,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAUzJ,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,WAAW,EAAE;QAAE,KAAI,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAUjF,UAAU,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE;QAAE,KAAI,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAA;KAAE,EAChH,UAAU,CAAC,EAAE,MAAM,EAAE,eAAe,UAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAiCtD,sBAAsB,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE;QAAE,KAAI,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAU7I,qEAAqE;IAC/D,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5C"}
package/lib/theia-app.js CHANGED
@@ -15,16 +15,22 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.TheiaApp = void 0;
18
+ exports.TheiaApp = exports.DefaultTheiaAppData = void 0;
19
19
  const theia_explorer_view_1 = require("./theia-explorer-view");
20
20
  const theia_main_menu_1 = require("./theia-main-menu");
21
21
  const theia_preference_view_1 = require("./theia-preference-view");
22
22
  const theia_quick_command_palette_1 = require("./theia-quick-command-palette");
23
23
  const theia_status_bar_1 = require("./theia-status-bar");
24
24
  const theia_workspace_1 = require("./theia-workspace");
25
+ ;
26
+ exports.DefaultTheiaAppData = {
27
+ loadingSelector: '.theia-preload',
28
+ shellSelector: '.theia-ApplicationShell'
29
+ };
25
30
  class TheiaApp {
26
- constructor(page, initialWorkspace) {
31
+ constructor(page, initialWorkspace, appData = exports.DefaultTheiaAppData) {
27
32
  this.page = page;
33
+ this.appData = appData;
28
34
  this.statusBar = new theia_status_bar_1.TheiaStatusBar(this);
29
35
  this.quickCommandPalette = new theia_quick_command_palette_1.TheiaQuickCommandPalette(this);
30
36
  this.menuBar = new theia_main_menu_1.TheiaMenuBar(this);
@@ -32,19 +38,25 @@ class TheiaApp {
32
38
  this.workspace.initialize();
33
39
  }
34
40
  static async load(page, initialWorkspace) {
35
- const app = new TheiaApp(page, initialWorkspace);
36
- await TheiaApp.loadOrReload(page, '/#' + app.workspace.urlEncodedPath);
37
- await page.waitForSelector('.theia-preload', { state: 'detached' });
38
- await page.waitForSelector('.theia-ApplicationShell');
39
- await app.waitForInitialized();
40
- return Promise.resolve(app);
41
+ return this.loadApp(page, TheiaApp, initialWorkspace);
41
42
  }
42
- static async loadOrReload(page, url) {
43
+ static async loadApp(page, appFactory, initialWorkspace) {
44
+ const app = new appFactory(page, initialWorkspace);
45
+ await app.load();
46
+ return app;
47
+ }
48
+ async load() {
49
+ await this.loadOrReload(this.page, '/#' + this.workspace.urlEncodedPath);
50
+ await this.page.waitForSelector(this.appData.loadingSelector, { state: 'detached' });
51
+ await this.page.waitForSelector(this.appData.shellSelector);
52
+ await this.waitForInitialized();
53
+ }
54
+ async loadOrReload(page, url) {
43
55
  if (page.url() === url) {
44
56
  await page.reload();
45
57
  }
46
58
  else {
47
- const wasLoadedAlready = await page.isVisible('.theia-ApplicationShell');
59
+ const wasLoadedAlready = await page.isVisible(this.appData.shellSelector);
48
60
  await page.goto(url);
49
61
  if (wasLoadedAlready) {
50
62
  // Theia doesn't refresh on URL change only
@@ -1 +1 @@
1
- {"version":3,"file":"theia-app.js","sourceRoot":"","sources":["../src/theia-app.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+DAA+D;AAC/D,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAIhF,+DAA4E;AAC5E,uDAAiD;AACjD,mEAAoF;AACpF,+EAAyE;AACzE,yDAAoD;AAEpD,uDAAmD;AAEnD,MAAa,QAAQ;IA8BjB,YAA6B,IAAU,EAAE,gBAAiC;QAA7C,SAAI,GAAJ,IAAI,CAAM;QA5B9B,cAAS,GAAG,IAAI,iCAAc,CAAC,IAAI,CAAC,CAAC;QACrC,wBAAmB,GAAG,IAAI,sDAAwB,CAAC,IAAI,CAAC,CAAC;QACzD,YAAO,GAAG,IAAI,8BAAY,CAAC,IAAI,CAAC,CAAC;QA2BtC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,gCAAc,EAAE,CAAC;QAC5E,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IA1BM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAU,EAAE,gBAAiC;QAClE,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACjD,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACvE,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACpE,MAAM,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC;QACtD,MAAM,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAES,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAU,EAAE,GAAW;QACvD,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,EAAE;YACpB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;SACvB;aAAM;YACH,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;YACzE,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,gBAAgB,EAAE;gBAClB,2CAA2C;gBAC3C,4DAA4D;gBAC5D,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;aACvB;SACJ;IACL,CAAC;IAOD,KAAK,CAAC,yBAAyB;QAC3B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;QACpE,OAAO,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAwD,EAAE,eAAe,GAAG,4CAAoB,CAAC,SAAS;QAC5H,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE;YAC3B,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;SACf;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAsB,WAAsC;QACtE,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE;YAC3B,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;SACf;QACD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,UAAU,CAAwB,QAAgB,EAAE,aAA0D,EAChH,UAAmB,EAAE,eAAe,GAAG,IAAI;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,uCAAiB,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;SACzD;QACD,IAAI,eAAe,EAAE;YACjB,MAAM,gBAAgB,GAAG,MAAM,QAAQ,CAAC,oBAAoB,CAAC,sCAAgB,CAAC,CAAC;YAC/E,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;aAC9C;SACJ;QACD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,IAAI,CAAE,MAAM,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,EAAE,CAAA,EAAE;YACzC,MAAM,KAAK,CAAC,mBAAmB,QAAQ,uCAAuC,CAAC,CAAC;SACnF;QAED,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,CAAC;QACrD,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,IAAI,WAAW,EAAE;YACb,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAChF,IAAI,CAAC,QAAQ,EAAE;gBACX,MAAM,KAAK,CAAC,iBAAiB,UAAU,2CAA2C,CAAC,CAAC;aACvF;YACD,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;SAC1B;aAAM;YACH,MAAM,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;SAC3C;QAED,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAwB,QAAgB,EAAE,aAA0D;QAC5H,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,MAAM,CAAC,YAAY,EAAE,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;SACxE;QACD,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,kBAAkB;QACpB,mBAAmB;IACvB,CAAC;CAEJ;AA7GD,4BA6GC"}
1
+ {"version":3,"file":"theia-app.js","sourceRoot":"","sources":["../src/theia-app.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/playwright",
3
- "version": "1.25.0-next.41+d2c1719d98a",
3
+ "version": "1.25.0-next.44+7f5047fcb21",
4
4
  "description": "System tests for Theia",
5
5
  "license": "EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0",
6
6
  "repository": {
@@ -41,5 +41,5 @@
41
41
  "access": "public"
42
42
  },
43
43
  "main": "lib/index",
44
- "gitHead": "d2c1719d98aff6f5558c90810e468563e079ad72"
44
+ "gitHead": "7f5047fcb21c1415d4ecf9b5ba34f802615e1c05"
45
45
  }
@@ -0,0 +1,92 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2022 EclipseSource and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { TheiaApp } from '../theia-app';
18
+
19
+ import { expect } from '@playwright/test';
20
+ import test, { page } from './fixtures/theia-fixture';
21
+ import { TheiaPageObject } from '../theia-page-object';
22
+
23
+ class TheiaSampleToolbar extends TheiaPageObject {
24
+ protected selector = '#main-toolbar';
25
+
26
+ async show(): Promise<void> {
27
+ if (!await this.isShown()) {
28
+ await this.toggle();
29
+ }
30
+ }
31
+
32
+ async toggle(): Promise<void> {
33
+ const isShown = await this.isShown();
34
+ const viewMenu = await this.app.menuBar.openMenu('View');
35
+ await viewMenu.clickMenuItem('Toggle Toolbar');
36
+ isShown ? await this.waitUntilHidden() : await this.waitUntilShown();
37
+ }
38
+
39
+ async waitUntilHidden(): Promise<void> {
40
+ await this.page.waitForSelector(this.selector, { state: 'hidden' });
41
+ }
42
+
43
+ async waitUntilShown(): Promise<void> {
44
+ await this.page.waitForSelector(this.selector, { state: 'visible' });
45
+ }
46
+
47
+ async isShown(): Promise<boolean> {
48
+ const toolbar = await this.page.$(this.selector);
49
+ return !!toolbar && toolbar.isVisible();
50
+ }
51
+ }
52
+
53
+ class TheiaSampleApp extends TheiaApp {
54
+ protected toolbar = new TheiaSampleToolbar(this);
55
+
56
+ override async waitForInitialized(): Promise<void> {
57
+ await this.toolbar.show();
58
+ }
59
+
60
+ async toggleToolbar(): Promise<void> {
61
+ await this.toolbar.toggle();
62
+ }
63
+
64
+ async isToolbarVisible(): Promise<boolean> {
65
+ return this.toolbar.isShown();
66
+ }
67
+ }
68
+
69
+ let app: TheiaSampleApp;
70
+
71
+ test.describe('Theia Sample Application', () => {
72
+
73
+ test('should load', async () => {
74
+ app = await TheiaApp.loadApp(page, TheiaSampleApp);
75
+ });
76
+
77
+ test('should start with visible toolbar', async () => {
78
+ expect(await app.isToolbarVisible()).toBe(true);
79
+ });
80
+
81
+ test('should toggle toolbar', async () => {
82
+ await app.toggleToolbar();
83
+ expect(await app.isToolbarVisible()).toBe(false);
84
+
85
+ await app.toggleToolbar();
86
+ expect(await app.isToolbarVisible()).toBe(true);
87
+
88
+ await app.toggleToolbar();
89
+ expect(await app.isToolbarVisible()).toBe(false);
90
+ });
91
+
92
+ });
package/src/theia-app.ts CHANGED
@@ -24,6 +24,16 @@ import { TheiaStatusBar } from './theia-status-bar';
24
24
  import { TheiaView } from './theia-view';
25
25
  import { TheiaWorkspace } from './theia-workspace';
26
26
 
27
+ export interface TheiaAppData {
28
+ loadingSelector: string;
29
+ shellSelector: string;
30
+ };
31
+
32
+ export const DefaultTheiaAppData: TheiaAppData = {
33
+ loadingSelector: '.theia-preload',
34
+ shellSelector: '.theia-ApplicationShell'
35
+ };
36
+
27
37
  export class TheiaApp {
28
38
 
29
39
  readonly statusBar = new TheiaStatusBar(this);
@@ -31,20 +41,33 @@ export class TheiaApp {
31
41
  readonly menuBar = new TheiaMenuBar(this);
32
42
  public workspace: TheiaWorkspace;
33
43
 
34
- public static async load(page: Page, initialWorkspace?: TheiaWorkspace): Promise<TheiaApp> {
35
- const app = new TheiaApp(page, initialWorkspace);
36
- await TheiaApp.loadOrReload(page, '/#' + app.workspace.urlEncodedPath);
37
- await page.waitForSelector('.theia-preload', { state: 'detached' });
38
- await page.waitForSelector('.theia-ApplicationShell');
39
- await app.waitForInitialized();
40
- return Promise.resolve(app);
44
+ static async load(page: Page, initialWorkspace?: TheiaWorkspace): Promise<TheiaApp> {
45
+ return this.loadApp(page, TheiaApp, initialWorkspace);
46
+ }
47
+
48
+ static async loadApp<T extends TheiaApp>(page: Page, appFactory: { new(page: Page, initialWorkspace?: TheiaWorkspace): T }, initialWorkspace?: TheiaWorkspace): Promise<T> {
49
+ const app = new appFactory(page, initialWorkspace);
50
+ await app.load();
51
+ return app;
52
+ }
53
+
54
+ public constructor(public page: Page, initialWorkspace?: TheiaWorkspace, protected appData = DefaultTheiaAppData) {
55
+ this.workspace = initialWorkspace ? initialWorkspace : new TheiaWorkspace();
56
+ this.workspace.initialize();
57
+ }
58
+
59
+ protected async load(): Promise<void> {
60
+ await this.loadOrReload(this.page, '/#' + this.workspace.urlEncodedPath);
61
+ await this.page.waitForSelector(this.appData.loadingSelector, { state: 'detached' });
62
+ await this.page.waitForSelector(this.appData.shellSelector);
63
+ await this.waitForInitialized();
41
64
  }
42
65
 
43
- protected static async loadOrReload(page: Page, url: string): Promise<void> {
66
+ protected async loadOrReload(page: Page, url: string): Promise<void> {
44
67
  if (page.url() === url) {
45
68
  await page.reload();
46
69
  } else {
47
- const wasLoadedAlready = await page.isVisible('.theia-ApplicationShell');
70
+ const wasLoadedAlready = await page.isVisible(this.appData.shellSelector);
48
71
  await page.goto(url);
49
72
  if (wasLoadedAlready) {
50
73
  // Theia doesn't refresh on URL change only
@@ -54,11 +77,6 @@ export class TheiaApp {
54
77
  }
55
78
  }
56
79
 
57
- protected constructor(public page: Page, initialWorkspace?: TheiaWorkspace) {
58
- this.workspace = initialWorkspace ? initialWorkspace : new TheiaWorkspace();
59
- this.workspace.initialize();
60
- }
61
-
62
80
  async isMainContentPanelVisible(): Promise<boolean> {
63
81
  const contentPanel = await this.page.$('#theia-main-content-panel');
64
82
  return !!contentPanel && contentPanel.isVisible();