encoding.test.ts 2.3 KB
Newer Older
E
Erich Gamma 已提交
1 2 3 4 5 6 7 8 9 10
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

'use strict';

import assert = require('assert');

import encoding = require('vs/base/node/encoding');
11
import { encodingExists } from 'vs/base/node/encoding';
E
Erich Gamma 已提交
12 13

suite('Encoding', () => {
K
katainaka0503 已提交
14
	test('detectBOM UTF-8', (done: (err?: any) => void) => {
15
		const file = require.toUrl('./fixtures/some_utf8.css');
E
Erich Gamma 已提交
16

17
		encoding.detectEncodingByBOM(file).then((encoding: string) => {
E
Erich Gamma 已提交
18 19
			assert.equal(encoding, 'utf8');
			done();
K
katainaka0503 已提交
20
		}, done);
E
Erich Gamma 已提交
21 22
	});

K
katainaka0503 已提交
23
	test('detectBOM UTF-16 LE', (done: (err?: any) => void) => {
24
		const file = require.toUrl('./fixtures/some_utf16le.css');
E
Erich Gamma 已提交
25

K
katainaka0503 已提交
26
		encoding.detectEncodingByBOM(file).then((encoding: string) => {
E
Erich Gamma 已提交
27 28
			assert.equal(encoding, 'utf16le');
			done();
K
katainaka0503 已提交
29
		}, done);
E
Erich Gamma 已提交
30 31
	});

K
katainaka0503 已提交
32
	test('detectBOM UTF-16 BE', (done: (err?: any) => void) => {
33
		const file = require.toUrl('./fixtures/some_utf16be.css');
E
Erich Gamma 已提交
34

K
katainaka0503 已提交
35
		encoding.detectEncodingByBOM(file).then((encoding: string) => {
E
Erich Gamma 已提交
36 37
			assert.equal(encoding, 'utf16be');
			done();
K
katainaka0503 已提交
38
		}, done);
E
Erich Gamma 已提交
39 40
	});

K
katainaka0503 已提交
41
	test('detectBOM ANSI', function (done: (err?: any) => void) {
42
		const file = require.toUrl('./fixtures/some_ansi.css');
E
Erich Gamma 已提交
43

K
katainaka0503 已提交
44
		encoding.detectEncodingByBOM(file).then((encoding: string) => {
E
Erich Gamma 已提交
45 46
			assert.equal(encoding, null);
			done();
K
katainaka0503 已提交
47
		}, done);
E
Erich Gamma 已提交
48 49
	});

K
katainaka0503 已提交
50
	test('detectBOM ANSI', function (done: (err?: any) => void) {
51
		const file = require.toUrl('./fixtures/empty.txt');
E
Erich Gamma 已提交
52

K
katainaka0503 已提交
53
		encoding.detectEncodingByBOM(file).then((encoding: string) => {
E
Erich Gamma 已提交
54 55
			assert.equal(encoding, null);
			done();
K
katainaka0503 已提交
56
		}, done);
E
Erich Gamma 已提交
57
	});
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74

	test('resolve terminal encoding (detect)', function (done: (err?: any) => void) {
		encoding.resolveTerminalEncoding().then(encoding => {
			assert.ok(encodingExists(encoding));
			done();
		}, done);
	});

	test('resolve terminal encoding (environment)', function (done: (err?: any) => void) {
		process.env['VSCODE_CLI_ENCODING'] = 'utf16le';

		encoding.resolveTerminalEncoding().then(encoding => {
			assert.ok(encodingExists(encoding));
			assert.equal(encoding, 'utf16le');
			done();
		}, done);
	});
E
Erich Gamma 已提交
75
});