statusbar.test.ts 4.0 KB
Newer Older
S
Sandeep Somavarapu 已提交
1 2 3 4 5 6 7
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

import * as assert from 'assert';

8
import { SpectronApplication, VSCODE_BUILD } from '../../spectron/application';
S
Sandeep Somavarapu 已提交
9 10 11 12
import { StatusBarElement } from './statusbar';


describe('Statusbar', () => {
13
	let app: SpectronApplication = new SpectronApplication();
J
Joao 已提交
14
	before(() => app.start('Statusbar'));
S
Sandeep Somavarapu 已提交
15
	after(() => app.stop());
J
Joao 已提交
16
	beforeEach(function () { app.screenCapturer.testName = this.currentTest.title; });
S
Sandeep Somavarapu 已提交
17 18

	it('verifies presence of all default status bar elements', async function () {
19 20 21 22 23 24
		await app.workbench.statusbar.waitForStatusbarElement(StatusBarElement.BRANCH_STATUS);
		if (app.build !== VSCODE_BUILD.DEV) {
			await app.workbench.statusbar.waitForStatusbarElement(StatusBarElement.FEEDBACK_ICON);
		}
		await app.workbench.statusbar.waitForStatusbarElement(StatusBarElement.SYNC_STATUS);
		await app.workbench.statusbar.waitForStatusbarElement(StatusBarElement.PROBLEMS_STATUS);
S
Sandeep Somavarapu 已提交
25 26

		await app.workbench.quickopen.openFile('app.js');
27 28 29 30 31
		await app.workbench.statusbar.waitForStatusbarElement(StatusBarElement.ENCODING_STATUS);
		await app.workbench.statusbar.waitForStatusbarElement(StatusBarElement.EOL_STATUS);
		await app.workbench.statusbar.waitForStatusbarElement(StatusBarElement.INDENTATION_STATUS);
		await app.workbench.statusbar.waitForStatusbarElement(StatusBarElement.LANGUAGE_STATUS);
		await app.workbench.statusbar.waitForStatusbarElement(StatusBarElement.SELECTION_STATUS);
S
Sandeep Somavarapu 已提交
32 33 34 35
	});

	it(`verifies that 'quick open' opens when clicking on status bar elements`, async function () {
		await app.workbench.statusbar.clickOn(StatusBarElement.BRANCH_STATUS);
36
		await app.workbench.quickopen.waitForQuickOpenOpened();
S
Sandeep Somavarapu 已提交
37 38 39 40
		await app.workbench.quickopen.closeQuickOpen();

		await app.workbench.quickopen.openFile('app.js');
		await app.workbench.statusbar.clickOn(StatusBarElement.INDENTATION_STATUS);
41
		await app.workbench.quickopen.waitForQuickOpenOpened();
S
Sandeep Somavarapu 已提交
42 43
		await app.workbench.quickopen.closeQuickOpen();
		await app.workbench.statusbar.clickOn(StatusBarElement.ENCODING_STATUS);
44
		await app.workbench.quickopen.waitForQuickOpenOpened();
S
Sandeep Somavarapu 已提交
45 46
		await app.workbench.quickopen.closeQuickOpen();
		await app.workbench.statusbar.clickOn(StatusBarElement.EOL_STATUS);
47
		await app.workbench.quickopen.waitForQuickOpenOpened();
S
Sandeep Somavarapu 已提交
48 49
		await app.workbench.quickopen.closeQuickOpen();
		await app.workbench.statusbar.clickOn(StatusBarElement.LANGUAGE_STATUS);
50
		await app.workbench.quickopen.waitForQuickOpenOpened();
S
Sandeep Somavarapu 已提交
51 52 53 54 55
		await app.workbench.quickopen.closeQuickOpen();
	});

	it(`verifies that 'Problems View' appears when clicking on 'Problems' status element`, async function () {
		await app.workbench.statusbar.clickOn(StatusBarElement.PROBLEMS_STATUS);
56
		await app.workbench.problems.waitForProblemsView();
S
Sandeep Somavarapu 已提交
57 58
	});

59 60 61 62 63 64
	if (app.build !== VSCODE_BUILD.DEV) {
		it(`verifies that 'Tweet us feedback' pop-up appears when clicking on 'Feedback' icon`, async function () {
			await app.workbench.statusbar.clickOn(StatusBarElement.FEEDBACK_ICON);
			assert.ok(!!await app.client.waitForElement('.feedback-form'));
		});
	}
S
Sandeep Somavarapu 已提交
65 66 67 68 69

	it(`checks if 'Go to Line' works if called from the status bar`, async function () {
		await app.workbench.quickopen.openFile('app.js');
		await app.workbench.statusbar.clickOn(StatusBarElement.SELECTION_STATUS);

70
		await app.workbench.quickopen.waitForQuickOpenOpened();
S
Sandeep Somavarapu 已提交
71 72 73 74 75 76 77 78 79

		await app.workbench.quickopen.submit('15');
		await app.workbench.editor.waitForHighlightingLine(15);
	});

	it(`verifies if changing EOL is reflected in the status bar`, async function () {
		await app.workbench.quickopen.openFile('app.js');
		await app.workbench.statusbar.clickOn(StatusBarElement.EOL_STATUS);

80
		await app.workbench.quickopen.waitForQuickOpenOpened();
S
Sandeep Somavarapu 已提交
81

J
Joao Moreno 已提交
82
		await app.workbench.quickopen.selectQuickOpenElement(1);
S
Sandeep Somavarapu 已提交
83 84 85
		await app.workbench.statusbar.waitForEOL('CRLF');
	});
});