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/01/08 00:12:03 UTC
spec commit: Add tests for reading sliced files.
Updated Branches:
refs/heads/master 3c4a01cbd -> f9186feea
Add tests for reading sliced files.
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/f9186fee
Tree: http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/tree/f9186fee
Diff: http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/diff/f9186fee
Branch: refs/heads/master
Commit: f9186feea751a9592f079f84462567a6eee9197a
Parents: 3c4a01c
Author: Braden Shepherdson <br...@chromium.org>
Authored: Mon Jan 7 18:11:12 2013 -0500
Committer: Braden Shepherdson <br...@chromium.org>
Committed: Mon Jan 7 18:11:12 2013 -0500
----------------------------------------------------------------------
autotest/tests/file.tests.js | 92 +++++++++++++++++++++++++++++++++++++
1 files changed, 92 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/blob/f9186fee/autotest/tests/file.tests.js
----------------------------------------------------------------------
diff --git a/autotest/tests/file.tests.js b/autotest/tests/file.tests.js
index c9a4016..9a540da 100644
--- a/autotest/tests/file.tests.js
+++ b/autotest/tests/file.tests.js
@@ -3052,6 +3052,98 @@ describe('File API', function() {
expect(verifier).toHaveBeenCalled();
});
});
+ it("should properly slice files, reading text", function() {
+ // path of file
+ var fileName = "reader.txt",
+ // file content
+ rule = "There is an exception to every rule. Except this one.",
+ verifier = jasmine.createSpy().andCallFake(function(evt) {
+ expect(evt).toBeDefined();
+ expect(evt.target.result).toBe("exception to every rule");
+ }),
+ fail = createFail('FileReader'),
+ filePath = root.fullPath + '/' + fileName,
+ // 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);
+ },
+ // 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;
+ myFile.size = 54;
+ myFile.end = 54;
+ var sliced = myFile.slice(10, 40); // "n exception to every rule. Ex"
+ var sliced2 = sliced.slice(2, -5); // "exception to every rule"
+ reader.readAsText(sliced2);
+ };
+
+ // 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 data URLs", function() {
+ // path of file
+ var fileName = "reader.txt",
+ // file content
+ rule = "There is an exception to every rule. Except this one.",
+ verifier = jasmine.createSpy().andCallFake(function(evt) {
+ expect(evt).toBeDefined();
+ expect(evt.target.result).toBe("data:text/plain;base64,ZXhjZXB0aW9uIHRvIGV2ZXJ5IHJ1bGU=");
+ }),
+ fail = createFail('FileReader'),
+ filePath = root.fullPath + '/' + fileName,
+ // 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);
+ },
+ // 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;
+ myFile.size = 54;
+ myFile.end = 54;
+ var sliced = myFile.slice(10, 40); // "n exception to every rule. Ex"
+ var sliced2 = sliced.slice(2, -5); // "exception to every rule"
+ reader.readAsDataURL(sliced2);
+ };
+
+ // 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();
+ });
+ });
});
describe('FileWriter', function(){