You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by br...@apache.org on 2013/03/04 23:38:07 UTC
spec commit: Add auto tests for readAsBinaryString and
readAsArrayBuffer
Updated Branches:
refs/heads/master 6c5e49f8f -> 59b4c56c8
Add auto tests for readAsBinaryString and readAsArrayBuffer
Project: http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/commit/59b4c56c
Tree: http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/tree/59b4c56c
Diff: http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/diff/59b4c56c
Branch: refs/heads/master
Commit: 59b4c56c8ddf2c5b1a2135ae021eb9fc508d166b
Parents: 6c5e49f
Author: Braden Shepherdson <br...@gmail.com>
Authored: Mon Mar 4 15:10:50 2013 -0500
Committer: Braden Shepherdson <br...@gmail.com>
Committed: Mon Mar 4 15:10:50 2013 -0500
----------------------------------------------------------------------
autotest/tests/file.tests.js | 90 +++++++++++++++++++++++++++++++++++++
1 files changed, 90 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/blob/59b4c56c/autotest/tests/file.tests.js
----------------------------------------------------------------------
diff --git a/autotest/tests/file.tests.js b/autotest/tests/file.tests.js
index 8055f44..b13fa81 100644
--- a/autotest/tests/file.tests.js
+++ b/autotest/tests/file.tests.js
@@ -3085,6 +3085,96 @@ describe('File API', function() {
expect(verifier).toHaveBeenCalled();
});
});
+ it("should read file properly, readAsBinaryString", function() {
+ // path of file
+ var fileName = "reader.txt",
+ filePath = root.fullPath + '/' + fileName,
+ fail = createFail('FileReader'),
+ // file content
+ rule = "There is an exception to every rule. Except this one.",
+ // creates a FileWriter object
+ create_writer = function(fileEntry) {
+ fileEntry.createWriter(write_file, fail);
+ },
+ // writes file and reads it back in
+ write_file = function(writer) {
+ writer.onwriteend = read_file;
+ writer.write(rule);
+ },
+ verifier = jasmine.createSpy().andCallFake(function(evt) {
+ expect(evt).toBeDefined();
+ expect(evt.target.result).toBe(rule);
+ }),
+ // reads file and compares content to what was written
+ read_file = function(evt) {
+ var reader = new FileReader();
+ reader.onloadend = verifier;
+ var myFile = new File();
+ myFile.fullPath = filePath;
+ reader.readAsBinaryString(myFile);
+ };
+
+ // create a file, write to it, and read it in again
+ runs(function() {
+ root.getFile(fileName, {create: true}, create_writer, fail);
+ });
+
+ waitsFor(function() { return verifier.wasCalled; }, "verifier never called", Tests.TEST_TIMEOUT);
+
+ runs(function() {
+ expect(fail).not.toHaveBeenCalled();
+ expect(verifier).toHaveBeenCalled();
+ });
+ });
+ it("should read file properly, readAsArrayBuffer", function() {
+ // path of file
+ var fileName = "reader.txt",
+ filePath = root.fullPath + '/' + fileName,
+ fail = createFail('FileReader'),
+ // file content
+ rule = "There is an exception to every rule. Except this one.",
+ // creates a FileWriter object
+ create_writer = function(fileEntry) {
+ fileEntry.createWriter(write_file, fail);
+ },
+ // writes file and reads it back in
+ write_file = function(writer) {
+ writer.onwriteend = read_file;
+ writer.write(rule);
+ },
+ verifier = jasmine.createSpy().andCallFake(function(evt) {
+ expect(evt).toBeDefined();
+
+ var buf = new Uint8Array(evt.target.result);
+ var match = buf.length == rule.length;
+
+ for (var i = 0; match && i < buf.length; i++) {
+ match = buf[i] == rule.charCodeAt(i);
+ }
+
+ expect(match).toBe(true);
+ }),
+ // reads file and compares content to what was written
+ read_file = function(evt) {
+ var reader = new FileReader();
+ reader.onloadend = verifier;
+ var myFile = new File();
+ myFile.fullPath = filePath;
+ reader.readAsArrayBuffer(myFile);
+ };
+
+ // create a file, write to it, and read it in again
+ runs(function() {
+ root.getFile(fileName, {create: true}, create_writer, fail);
+ });
+
+ waitsFor(function() { return verifier.wasCalled; }, "verifier never called", Tests.TEST_TIMEOUT);
+
+ runs(function() {
+ expect(fail).not.toHaveBeenCalled();
+ expect(verifier).toHaveBeenCalled();
+ });
+ });
it("should properly slice files, reading text", function() {
// path of file
var fileName = "reader.txt",