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",