Skip to content

Commit 3963322

Browse files
author
Benjamin Pasero
committed
files2 - add more tests
1 parent 1a377ae commit 3963322

10 files changed

Lines changed: 1753 additions & 8 deletions

File tree

src/vs/workbench/services/textfile/test/fixtures/lorem_big5.txt

Lines changed: 283 additions & 0 deletions
Large diffs are not rendered by default.

src/vs/workbench/services/textfile/test/fixtures/lorem_cp1252.txt

Lines changed: 283 additions & 0 deletions
Large diffs are not rendered by default.

src/vs/workbench/services/textfile/test/fixtures/lorem_cp866.txt

Lines changed: 283 additions & 0 deletions
Large diffs are not rendered by default.

src/vs/workbench/services/textfile/test/fixtures/lorem_gbk.txt

Lines changed: 283 additions & 0 deletions
Large diffs are not rendered by default.

src/vs/workbench/services/textfile/test/fixtures/lorem_shiftjis.txt

Lines changed: 283 additions & 0 deletions
Large diffs are not rendered by default.
Binary file not shown.
Binary file not shown.

src/vs/workbench/services/textfile/test/fixtures/lorem_utf8bom.txt

Lines changed: 283 additions & 0 deletions
Large diffs are not rendered by default.

src/vs/workbench/services/textfile/test/textFileService.io.test.ts

Lines changed: 51 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ suite('Files - TextFileService i/o', () => {
297297
await service.write(resource, content);
298298

299299
const resolved = await service.read(resource);
300-
assert.equal(snapshotToString(resolved.value.create(isWindows ? DefaultEndOfLine.CRLF : DefaultEndOfLine.LF).createSnapshot(false)), content);
300+
assert.equal(resolved.value.getFirstLineText(999999), content);
301301
});
302302

303303
test('write - no encoding - content as snapshot', async () => {
@@ -308,7 +308,7 @@ suite('Files - TextFileService i/o', () => {
308308
await service.write(resource, TextModel.createFromString(content).createSnapshot());
309309

310310
const resolved = await service.read(resource);
311-
assert.equal(snapshotToString(resolved.value.create(isWindows ? DefaultEndOfLine.CRLF : DefaultEndOfLine.LF).createSnapshot(false)), content);
311+
assert.equal(resolved.value.getFirstLineText(999999), content);
312312
});
313313

314314
test('write - encoding preserved (UTF 16 LE) - content as string', async () => {
@@ -426,6 +426,14 @@ suite('Files - TextFileService i/o', () => {
426426
await testReadFile(resource);
427427
});
428428

429+
async function testReadFile(resource: URI): Promise<void> {
430+
const result = await service.read(resource);
431+
432+
assert.equal(result.name, basename(resource.fsPath));
433+
assert.equal(result.size, statSync(resource.fsPath).size);
434+
assert.equal(snapshotToString(result.value.create(DefaultEndOfLine.LF).createSnapshot(false)), snapshotToString(TextModel.createFromString(readFileSync(resource.fsPath).toString()).createSnapshot(false)));
435+
}
436+
429437
test('read - encoding picked up (CP1252)', async () => {
430438
const resource = URI.file(join(testDir, 'some_small_cp1252.txt'));
431439
const encoding = 'windows1252';
@@ -464,12 +472,48 @@ suite('Files - TextFileService i/o', () => {
464472
assert.equal(result.value.getFirstLineText(999999), 'This is some UTF 16 with BOM file.');
465473
});
466474

467-
async function testReadFile(resource: URI): Promise<void> {
468-
const result = await service.read(resource);
475+
test('read - large Big5', async () => {
476+
await testLargeEncoding('big5', '中文abc');
477+
});
469478

470-
assert.equal(result.name, basename(resource.fsPath));
471-
assert.equal(result.size, statSync(resource.fsPath).size);
472-
assert.equal(snapshotToString(result.value.create(DefaultEndOfLine.LF).createSnapshot(false)), snapshotToString(TextModel.createFromString(readFileSync(resource.fsPath).toString()).createSnapshot(false)));
479+
test('read - large CP1252', async () => {
480+
await testLargeEncoding('cp1252', 'öäüß');
481+
});
482+
483+
test('read - large Cyrillic', async () => {
484+
await testLargeEncoding('cp866', 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя');
485+
});
486+
487+
test('read - large GBK', async () => {
488+
await testLargeEncoding('gbk', '中国abc');
489+
});
490+
491+
test('read - large ShiftJS', async () => {
492+
await testLargeEncoding('shiftjis', '中文abc');
493+
});
494+
495+
test('read - large UTF8 BOM', async () => {
496+
await testLargeEncoding('utf8bom', 'öäüß');
497+
});
498+
499+
test('read - large UTF16 LE', async () => {
500+
await testLargeEncoding('utf16le', 'öäüß');
501+
});
502+
503+
test('read - large UTF16 BE', async () => {
504+
await testLargeEncoding('utf16be', 'öäüß');
505+
});
506+
507+
async function testLargeEncoding(encoding: string, needle: string): Promise<void> {
508+
const resource = URI.file(join(testDir, `lorem_${encoding}.txt`));
509+
510+
const result = await service.read(resource, { encoding });
511+
assert.equal(result.encoding, encoding);
512+
513+
const contents = snapshotToString(result.value.create(DefaultEndOfLine.LF).createSnapshot(false));
514+
515+
assert.equal(contents.indexOf(needle), 0);
516+
assert.ok(contents.indexOf(needle, 10) > 0);
473517
}
474518

475519
test('read - FILE_IS_BINARY', async () => {

src/vs/workbench/test/workbenchTestServices.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1009,7 +1009,10 @@ export class TestFileService implements IFileService {
10091009
if (event === 'end') {
10101010
callback();
10111011
}
1012-
}
1012+
},
1013+
resume: () => { },
1014+
pause: () => { },
1015+
destroy: () => { }
10131016
},
10141017
etag: 'index.txt',
10151018
encoding: 'utf8',

0 commit comments

Comments
 (0)