You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ia...@apache.org on 2014/04/14 21:33:45 UTC

spec commit: CB-6413: Fix feature detection of ArrayBuffer/Blob support on Sony Android 2.3.7

Repository: cordova-mobile-spec
Updated Branches:
  refs/heads/master 75a86b17b -> 9c6d91aa7


CB-6413: Fix feature detection of ArrayBuffer/Blob support on Sony Android 2.3.7


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/9c6d91aa
Tree: http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/tree/9c6d91aa
Diff: http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/diff/9c6d91aa

Branch: refs/heads/master
Commit: 9c6d91aa79f6f3ff552b12c1ac8fa3ebd78138f8
Parents: 75a86b1
Author: Ian Clelland <ic...@chromium.org>
Authored: Mon Apr 14 14:36:35 2014 -0400
Committer: Ian Clelland <ic...@chromium.org>
Committed: Mon Apr 14 14:36:35 2014 -0400

----------------------------------------------------------------------
 autotest/tests/file.tests.js | 61 ++++++++++++++++++++++-----------------
 1 file changed, 34 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-mobile-spec/blob/9c6d91aa/autotest/tests/file.tests.js
----------------------------------------------------------------------
diff --git a/autotest/tests/file.tests.js b/autotest/tests/file.tests.js
index 4ca47f0..aa933e2 100644
--- a/autotest/tests/file.tests.js
+++ b/autotest/tests/file.tests.js
@@ -3643,7 +3643,9 @@ describe('File API', function() {
         });
         it("file.spec.105 should be able to write binary data from a Blob", function() {
             // Skip test if Blobs are not supported (e.g.: Android 2.3).
-            if (typeof window.Blob == 'undefined' || typeof window.ArrayBuffer == 'undefined') {
+            if ( (typeof window.Blob != 'function' &&
+                  typeof window.WebKitBlobBuilder == 'undefined') ||
+                typeof window.ArrayBuffer == 'undefined') {
                 return;
             }
             var fileName = "blobwriter.bin",
@@ -3676,12 +3678,12 @@ describe('File API', function() {
             }
             try {
                 // Mobile Safari: Use Blob constructor
-                blob = new Blob([data], {"type": "application/octet-stream"})
+                blob = new Blob([data], {"type": "application/octet-stream"});
             } catch(e) {
                 if (window.WebKitBlobBuilder) {
                     // Android Browser: Use deprecated BlobBuilder
-                    var builder = new WebKitBlobBuilder()
-                    builder.append(data)
+                    var builder = new WebKitBlobBuilder();
+                    builder.append(data);
                     blob = builder.getBlob('application/octet-stream');
                 } else {
                     // We have no way defined to create a Blob, so fail
@@ -3689,17 +3691,18 @@ describe('File API', function() {
                 }
             }
 
-            // creates file, then write content
-            runs(function() {
-                createFile(fileName, write_file);
-            });
+            if (typeof blob !== 'undefined') {// creates file, then write content
+                runs(function() {
+                    createFile(fileName, write_file);
+                });
 
-            waitsFor(function() { return verifier.wasCalled; }, "verifier", Tests.TEST_TIMEOUT);
+                waitsFor(function() { return verifier.wasCalled; }, "verifier", Tests.TEST_TIMEOUT);
 
-            runs(function() {
-                expect(verifier).toHaveBeenCalled();
-                expect(fail).not.toHaveBeenCalled();
-            });
+                runs(function() {
+                    expect(verifier).toHaveBeenCalled();
+                    expect(fail).not.toHaveBeenCalled();
+                });
+            }
         });
         it("file.spec.106 should be able to write a File to a FileWriter", function() {
             var dummyFileName = 'dummy.txt',
@@ -3809,7 +3812,9 @@ describe('File API', function() {
         });
         it("file.spec.108 should be able to write binary data from a File", function() {
             // Skip test if Blobs are not supported (e.g.: Android 2.3).
-            if (typeof window.Blob == 'undefined' || typeof window.ArrayBuffer == 'undefined') {
+            if ( (typeof window.Blob != 'function' &&
+                  typeof window.WebKitBlobBuilder == 'undefined') ||
+                typeof window.ArrayBuffer == 'undefined') {
                 return;
             }
             var dummyFileName = "blobwriter.bin",
@@ -3861,12 +3866,12 @@ describe('File API', function() {
             }
             try {
                 // Mobile Safari: Use Blob constructor
-                blob = new Blob([data], {"type": "application/octet-stream"})
+                blob = new Blob([data], {"type": "application/octet-stream"});
             } catch(e) {
                 if (window.WebKitBlobBuilder) {
                     // Android Browser: Use deprecated BlobBuilder
-                    var builder = new WebKitBlobBuilder()
-                    builder.append(data)
+                    var builder = new WebKitBlobBuilder();
+                    builder.append(data);
                     blob = builder.getBlob('application/octet-stream');
                 } else {
                     // We have no way defined to create a Blob, so fail
@@ -3874,19 +3879,21 @@ describe('File API', function() {
                 }
             }
 
-            runs(function() {
-                writeFile(dummyFileName, blob, function(dummyFileWriter) {
-                    openFile(dummyFileName, function(file) {
-                        writeFile(outputFileName, file, verifier);
+            if (typeof blob !== 'undefined') {// creates file, then write content
+                runs(function() {
+                    writeFile(dummyFileName, blob, function(dummyFileWriter) {
+                        openFile(dummyFileName, function(file) {
+                            writeFile(outputFileName, file, verifier);
+                        });
                     });
                 });
-            });
-            waitsFor(function() { return (verifier.wasCalled || fail.wasCalled); }, "callbacks never called", Tests.TEST_TIMEOUT);
+                waitsFor(function() { return (verifier.wasCalled || fail.wasCalled); }, "callbacks never called", Tests.TEST_TIMEOUT);
 
-            runs(function() {
-                expect(verifier).toHaveBeenCalled();
-                expect(fail).not.toHaveBeenCalled();
-            });
+                runs(function() {
+                    expect(verifier).toHaveBeenCalled();
+                    expect(fail).not.toHaveBeenCalled();
+                });
+            }
         });
     });
     describe('Backwards compatibility', function() {