test('untitled file', function (done: () => void) { service.backupResource(untitledFile, createTextBufferFactory('test').create(DefaultEndOfLine.LF).createSnapshot(false)).then(() => { assert.equal(fs.readdirSync(path.join(workspaceBackupPath, 'untitled')).length, 1); assert.equal(fs.existsSync(untitledBackupPath), true); assert.equal(fs.readFileSync(untitledBackupPath), `${untitledFile.toString()}\ntest`); done(); }); });
return service.getWorkspaceFileBackups().then(textFiles => { assert.deepEqual(textFiles.map(f => f.fsPath), [fooFile.fsPath]); return service.backupResource(barFile, createTextBufferFactory('test').create(DefaultEndOfLine.LF).createSnapshot(false)).then(() => { return service.getWorkspaceFileBackups().then(textFiles => { assert.deepEqual(textFiles.map(f => f.fsPath), [fooFile.fsPath, barFile.fsPath]); }); }); });
test('("untitled") - untitled file', done => { service.backupResource(untitledFile, createTextBufferFactory('test').create(DefaultEndOfLine.LF).createSnapshot(false)).then(() => { service.getWorkspaceFileBackups().then(textFiles => { assert.deepEqual(textFiles.map(f => f.fsPath), ['Untitled-1']); done(); }); }); });
test('should restore the original contents (untitled file)', () => { const contents = 'test\nand more stuff'; service.backupResource(untitledFile, createTextBufferFactory(contents).create(DefaultEndOfLine.LF).createSnapshot(false)).then(() => { service.resolveBackupContent(service.toBackupResource(untitledFile)).then(factory => { assert.equal(contents, snapshotToString(factory!.create(platform.isWindows ? DefaultEndOfLine.CRLF : DefaultEndOfLine.LF).createSnapshot(true))); }); }); });
test('untitled file', function () { return service.backupResource(untitledFile, createTextBufferFactory('test').create(DefaultEndOfLine.LF).createSnapshot(false)).then(() => { assert.equal(fs.readdirSync(path.join(workspaceBackupPath, 'untitled')).length, 1); return service.discardAllWorkspaceBackups().then(() => { assert.equal(fs.existsSync(untitledBackupPath), false); assert.equal(fs.existsSync(path.join(workspaceBackupPath, 'untitled')), false); }); }); });
test('text file', function (done: () => void) { service.backupResource(fooFile, createTextBufferFactory('test').create(DefaultEndOfLine.LF).createSnapshot(false)).then(() => { assert.equal(fs.readdirSync(path.join(workspaceBackupPath, 'file')).length, 1); service.discardResourceBackup(fooFile).then(() => { assert.equal(fs.existsSync(fooBackupPath), false); assert.equal(fs.readdirSync(path.join(workspaceBackupPath, 'file')).length, 0); done(); }); }); });
return service.backupResource(fooFile, createTextBufferFactory('test').create(DefaultEndOfLine.LF).createSnapshot(false)).then(() => { assert.equal(fs.readdirSync(path.join(workspaceBackupPath, 'file')).length, 1); return service.backupResource(barFile, createTextBufferFactory('test').create(DefaultEndOfLine.LF).createSnapshot(false)).then(() => { assert.equal(fs.readdirSync(path.join(workspaceBackupPath, 'file')).length, 2); return service.discardAllWorkspaceBackups().then(() => { assert.equal(fs.existsSync(fooBackupPath), false); assert.equal(fs.existsSync(barBackupPath), false); assert.equal(fs.existsSync(path.join(workspaceBackupPath, 'file')), false); }); }); });
test('BaseTextEditorModel', async () => { let modelService = stubModelService(instantiationService); let m = new MyTextEditorModel(modelService, modeService); const model = await m.load() as MyTextEditorModel; assert(model === m); model.createTextEditorModel(createTextBufferFactory('foo'), null!, 'text/plain'); assert.strictEqual(m.isResolved(), true); m.dispose(); });
test('should restore the original contents (text file)', () => { const contents = [ 'Lorem ipsum ', 'dolor öäü sit amet ', 'consectetur ', 'adipiscing ßß elit', ].join(''); service.backupResource(fooFile, createTextBufferFactory(contents).create(DefaultEndOfLine.LF).createSnapshot(false)).then(() => { service.resolveBackupContent(service.toBackupResource(untitledFile)).then(factory => { assert.equal(contents, snapshotToString(factory!.create(platform.isWindows ? DefaultEndOfLine.CRLF : DefaultEndOfLine.LF).createSnapshot(true))); }); }); });
async function testResolveBackup(resource: URI, contents: string, meta?: IBackupTestMetaData, expectedMeta?: IBackupTestMetaData | null) { if (typeof expectedMeta === 'undefined') { expectedMeta = meta; } await service.backupResource(resource, createTextBufferFactory(contents).create(DefaultEndOfLine.LF).createSnapshot(false), 1, meta); assert.ok(await service.loadBackupResource(resource)); const backup = await service.resolveBackupContent<IBackupTestMetaData>(service.toBackupResource(resource)); assert.equal(contents, snapshotToString(backup.value.create(platform.isWindows ? DefaultEndOfLine.CRLF : DefaultEndOfLine.LF).createSnapshot(true))); if (expectedMeta) { assert.equal(backup.meta!.etag, expectedMeta.etag); assert.equal(backup.meta!.size, expectedMeta.size); assert.equal(backup.meta!.mtime, expectedMeta.mtime); assert.equal(backup.meta!.orphaned, expectedMeta.orphaned); } else { assert.ok(!backup.meta); } }