exports.testBufferSaving = function() { source.reset(); var testpr = new Promise(); var root = fs.Filesystem.create({ source: source }); var buffer = editsession.Buffer.create(); var model = buffer.get('model'); model.setValue('foobar'); t.equal(model.getValue(), 'foobar', 'the value stored in ' + 'the model and the string that was just written to it'); var file1 = root.getFile('bar.txt'); file1.exists().then(function(exists) { t.ok(!exists, 'file should not be there now'); buffer.saveAs(file1).then(function() { var request = source.requests.pop(); t.equal(request[0], 'saveContents'); t.equal(request[1][0], 'bar.txt'); t.equal(request[1][1], 'foobar'); file1.exists().then(function(exists) { t.ok(exists, 'file should now exist'); testpr.resolve(); }); }); }); return testpr; };
exports.testBufferFileChange = function() { var root = fs.Filesystem.create({ source: source }); var buffer = editsession.Buffer.create(); t.ok(buffer.get('model') != null, 'Model should be set to a TextStorage by default'); t.ok(buffer.untitled(), 'Buffer should initially be untitled'); var f = root.getFile('atTheTop.js'); buffer.changeFileOnly(f); t.ok(!buffer.untitled(), 'Buffer should no longer be untitled'); t.equal('', buffer.get('model').getValue(), 'Should be empty now'); buffer.changeFileOnly(null); t.ok(buffer.untitled(), 'Buffer should be untitled again'); buffer.set('file', f); var pr = new Promise(); setTimeout(function() { var newtext = buffer.get('model').getValue(); t.equal(newtext, 'the top file', 'Expected file contents to be loaded'); // now we want to reset the buffer. buffer.changeFile(null); t.ok(buffer.untitled(), 'Buffer should be untitled again'); newtext = buffer.get('model').getValue(); t.equal(newtext, '', 'editor text should be empty'); pr.resolve(); }, 1); return pr; };
exports.testBufferFileChangeWithCallback = function() { var root = fs.Filesystem.create({ source: source }); var buffer = editsession.Buffer.create(); var f = root.getFile('atTheTop.js'); var pr = buffer.changeFile(f); var testpr = pr.then(function(b) { t.equal(b, buffer, 'should have gotten the buffer object in'); t.equal(b.get('model').getValue(), 'the top file', 'contents should be loaded'); if (testpr != undefined) { testpr.resolve(); } }); return testpr; };