diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/testing/fs/filewriter_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/testing/fs/filewriter_test.html | 325 |
1 files changed, 0 insertions, 325 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/testing/fs/filewriter_test.html b/contexts/data/lib/closure-library/closure/goog/testing/fs/filewriter_test.html deleted file mode 100644 index 7d841b6..0000000 --- a/contexts/data/lib/closure-library/closure/goog/testing/fs/filewriter_test.html +++ /dev/null @@ -1,325 +0,0 @@ -<!DOCTYPE html> -<html> -<!-- -Copyright 2011 The Closure Library Authors. All Rights Reserved. - -Use of this source code is governed by the Apache License, Version 2.0. -See the COPYING file for details. ---> -<!-- ---> -<head> -<title>Closure Unit Tests - goog.testing.fs.FileWriter</title> -<script src="../../base.js"></script> -<script> -goog.require('goog.fs.DirectoryEntry.Behavior'); -goog.require('goog.fs.FileSaver.EventType'); -goog.require('goog.testing.AsyncTestCase'); -goog.require('goog.testing.MockClock'); -goog.require('goog.testing.fs.FileSystem'); -goog.require('goog.testing.fs.Blob'); -goog.require('goog.testing.jsunit'); -</script> -</head> -<body> -<script> - -var asyncTestCase = goog.testing.AsyncTestCase.createAndInstall(); -var file, deferredWriter, mockClock; - -function setUp() { - mockClock = new goog.testing.MockClock(true); - - var fs = new goog.testing.fs.FileSystem(); - var fileEntry = fs.getRoot().createDirectorySync('foo').createFileSync('bar'); - - deferredWriter = fileEntry.createWriter(); - file = fileEntry.fileSync(); - file.setDataInternal(''); -} - -function tearDown() { - mockClock.uninstall(); -} - -function testWrite() { - deferredWriter. - addCallback(goog.partial(checkReadyState, - goog.fs.FileSaver.ReadyState.INIT)). - addCallback(goog.partial(checkPositionAndLength, 0, 0)). - addCallback(goog.partial(checkLastModified, 0)). - addCallback(goog.partial(tick, 3)). - addCallback(goog.partial(writeString, 'hello')). - addCallback(goog.partial(checkPositionAndLength, 0, 0)). - addCallback(goog.partial(checkReadyState, - goog.fs.FileSaver.ReadyState.WRITING)). - addCallback(goog.partial(checkLastModified, 0)). - addCallback(goog.partial(waitForEvent, - goog.fs.FileSaver.EventType.WRITE_START)). - addCallback(goog.partial(checkLastModified, 0)). - addCallback(goog.partial(checkPositionAndLength, 0, 0)). - addCallback(goog.partial(waitForEvent, - goog.fs.FileSaver.EventType.WRITE)). - addCallback(function() { assertEquals('hello', file.toString()); }). - addCallback(goog.partial(checkPositionAndLength, 5, 5)). - addCallback(goog.partial(checkLastModified, 3)). - addCallback(tick). - addCallback(goog.partial(checkReadyState, - goog.fs.FileSaver.ReadyState.WRITING)). - addCallback(goog.partial(checkLastModified, 3)). - addCallback(goog.partial(waitForEvent, - goog.fs.FileSaver.EventType.WRITE_END)). - addCallback(goog.partial(checkLastModified, 3)). - addCallback(goog.partial(checkReadyState, - goog.fs.FileSaver.ReadyState.DONE)). - addCallback(goog.partial(checkLastModified, 3)). - addCallback(goog.partial(writeString, ' world')). - addCallback(goog.partial(checkPositionAndLength, 5, 5)). - addCallback(goog.partial(waitForEvent, - goog.fs.FileSaver.EventType.WRITE)). - addCallback(function() { assertEquals('hello world', file.toString()); }). - addCallback(goog.partial(checkPositionAndLength, 11, 11)). - addCallback(goog.partial(checkLastModified, 4)). - addBoth(continueTesting); - waitForAsync('testWrite'); -} - -function testSeek() { - deferredWriter. - addCallback(goog.partial(tick, 17)). - addCallback(goog.partial(writeAndWait, 'hello world')). - addCallback(tick). - addCallback(goog.partial(checkPositionAndLength, 11, 11)). - - addCallback(function(writer) { writer.seek(6); }). - addCallback(goog.partial(checkPositionAndLength, 6, 11)). - addCallback(goog.partial(checkLastModified, 17)). - addCallback(goog.partial(writeAndWait, 'universe')). - addCallback(tick). - addCallback(function() { - assertEquals('hello universe', file.toString()); - }). - addCallback(goog.partial(checkPositionAndLength, 14, 14)). - - addCallback(function(writer) { writer.seek(500); }). - addCallback(goog.partial(checkPositionAndLength, 14, 14)). - addCallback(goog.partial(writeAndWait, '!')). - addCallback(tick). - addCallback(function() { - assertEquals('hello universe!',file.toString()); - }). - addCallback(goog.partial(checkPositionAndLength, 15, 15)). - - addCallback(function(writer) { writer.seek(-9); }). - addCallback(goog.partial(checkPositionAndLength, 6, 15)). - addCallback(goog.partial(writeAndWait, 'foo')). - addCallback(tick). - addCallback(function() { - assertEquals('hello fooverse!', file.toString()); - }). - addCallback(goog.partial(checkPositionAndLength, 9, 15)). - - addCallback(function(writer) { writer.seek(-500); }). - addCallback(goog.partial(checkPositionAndLength, 0, 15)). - addCallback(goog.partial(writeAndWait, 'bye-o')). - addCallback(tick). - addCallback(function() { - assertEquals('bye-o fooverse!', file.toString()); - }). - addCallback(goog.partial(checkPositionAndLength, 5, 15)). - addCallback(goog.partial(checkLastModified, 21)). - addBoth(continueTesting); - waitForAsync('testSeek'); -} - -function testAbort() { - deferredWriter. - addCallback(goog.partial(tick, 13)). - addCallback(goog.partial(writeString, 'hello world')). - addCallback(function(writer) { writer.abort(); }). - addCallback(goog.partial(checkReadyState, - goog.fs.FileSaver.ReadyState.WRITING)). - addCallback(goog.partial(waitForError, goog.fs.Error.ErrorCode.ABORT)). - addCallback(goog.partial(checkReadyState, - goog.fs.FileSaver.ReadyState.WRITING)). - addCallback(goog.partial(waitForEvent, - goog.fs.FileSaver.EventType.ABORT)). - addCallback(goog.partial(checkReadyState, - goog.fs.FileSaver.ReadyState.WRITING)). - addCallback(goog.partial(waitForEvent, - goog.fs.FileSaver.EventType.WRITE_END)). - addCallback(goog.partial(checkReadyState, - goog.fs.FileSaver.ReadyState.DONE)). - addCallback(goog.partial(checkPositionAndLength, 0, 0)). - addCallback(goog.partial(checkLastModified, 0)). - addCallback(function() { assertEquals('', file.toString()); }). - addBoth(continueTesting); - waitForAsync('testAbort'); -} - -function testTruncate() { - deferredWriter. - addCallback(goog.partial(writeAndWait, 'hello world')). - addCallback(goog.partial(checkPositionAndLength, 11, 11)). - addCallback(function(writer) { writer.truncate(5); }). - addCallback(goog.partial(checkPositionAndLength, 11, 11)). - addCallback(goog.partial(checkReadyState, - goog.fs.FileSaver.ReadyState.WRITING)). - addCallback(goog.partial(waitForEvent, - goog.fs.FileSaver.EventType.WRITE_START)). - addCallback(goog.partial(tick, 7)). - addCallback(goog.partial(checkPositionAndLength, 11, 11)). - addCallback(goog.partial(checkLastModified, 0)). - addCallback(goog.partial(waitForEvent, - goog.fs.FileSaver.EventType.WRITE)). - addCallback(goog.partial(checkLastModified, 7)). - addCallback(tick). - addCallback(goog.partial(checkReadyState, - goog.fs.FileSaver.ReadyState.WRITING)). - addCallback(goog.partial(checkPositionAndLength, 5, 5)). - addCallback(function() { assertEquals('hello', file.toString()); }). - addCallback(goog.partial(waitForEvent, - goog.fs.FileSaver.EventType.WRITE_END)). - addCallback(goog.partial(checkReadyState, - goog.fs.FileSaver.ReadyState.DONE)). - - addCallback(function(writer) { writer.truncate(10); }). - addCallback(goog.partial(waitForEvent, - goog.fs.FileSaver.EventType.WRITE_END)). - addCallback(goog.partial(checkPositionAndLength, 5, 10)). - addCallback(goog.partial(checkLastModified, 8)). - addCallback(function() { - assertEquals('hello\0\0\0\0\0', file.toString()); - }). - addBoth(continueTesting); - waitForAsync('testTruncate'); -} - -function testAbortBeforeWrite() { - deferredWriter. - addCallback(function(writer) { writer.abort(); }). - addErrback(function(err) { - assertEquals(goog.fs.Error.ErrorCode.INVALID_STATE, err.code); - return true; - }). - addCallback(function(calledErrback) { - assertTrue(calledErrback); - }). - addBoth(continueTesting); - waitForAsync('testAbortBeforeWrite'); -} - -function testAbortAfterWrite() { - deferredWriter. - addCallback(goog.partial(writeAndWait, 'hello world')). - addCallback(function(writer) { writer.abort(); }). - addErrback(function(err) { - assertEquals(goog.fs.Error.ErrorCode.INVALID_STATE, err.code); - return true; - }). - addCallback(assertTrue). - addBoth(continueTesting); - waitForAsync('testAbortAfterWrite'); -} - -function testWriteDuringWrite() { - deferredWriter. - addCallback(goog.partial(writeString, 'hello world')). - addCallback(goog.partial(writeString, 'hello world')). - addErrback(function(err) { - assertEquals(goog.fs.Error.ErrorCode.INVALID_STATE, err.code); - return true; - }). - addCallback(assertTrue). - addBoth(continueTesting); - waitForAsync('testWriteDuringWrite'); -} - -function testSeekDuringWrite() { - deferredWriter. - addCallback(goog.partial(writeString, 'hello world')). - addCallback(function(writer) { writer.seek(5); }). - addErrback(function(err) { - assertEquals(goog.fs.Error.ErrorCode.INVALID_STATE, err.code); - return true; - }). - addCallback(assertTrue). - addBoth(continueTesting); - waitForAsync('testSeekDuringWrite'); -} - -function testTruncateDuringWrite() { - deferredWriter. - addCallback(goog.partial(writeString, 'hello world')). - addCallback(function(writer) { writer.truncate(5); }). - addErrback(function(err) { - assertEquals(goog.fs.Error.ErrorCode.INVALID_STATE, err.code); - return true; - }). - addCallback(assertTrue). - addBoth(continueTesting); - waitForAsync('testTruncateDuringWrite'); -} - - -function tick(opt_tickCount) { - mockClock.tick(opt_tickCount); -} - -function continueTesting(result) { - asyncTestCase.continueTesting(); - if (result instanceof Error) { - throw result; - } - mockClock.tick(); -} - -function waitForAsync(msg) { - asyncTestCase.waitForAsync(msg); - - // The mock clock must be advanced far enough that all timeouts added during - // callbacks will be triggered. 1000ms is much more than enough. - mockClock.tick(1000); -} - -function waitForEvent(type, target) { - var d = new goog.async.Deferred(); - goog.events.listenOnce(target, type, goog.bind(d.callback, d, target)); - return d; -} - -function waitForError(type, target) { - var d = new goog.async.Deferred(); - goog.events.listenOnce( - target, goog.fs.FileSaver.EventType.ERROR, function(e) { - assertEquals(type, target.getError().code); - d.callback(target); - }); - return d; -} - -function checkReadyState(expectedState, writer) { - assertEquals(expectedState, writer.getReadyState()); -} - -function checkPositionAndLength(expectedPosition, expectedLength, writer) { - assertEquals(expectedPosition, writer.getPosition()); - assertEquals(expectedLength, writer.getLength()); -} - -function checkLastModified(expectedTime) { - assertEquals(expectedTime, file.lastModifiedDate.getTime()); -} - -function writeString(str, writer) { - writer.write(new goog.testing.fs.Blob(str)); -} - -function writeAndWait(str, writer) { - writeString(str, writer); - return waitForEvent(goog.fs.FileSaver.EventType.WRITE_END, writer); -} - -</script> -</body> -</html> |