[ https://issues.apache.org/jira/browse/CB-4504?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13745663#comment-13745663 ]
Peter commented on CB-4504: --------------------------- The purpose of the test is to verify that the FileWriter's *onerror* callback gets called if the user attempts an illegal write. Because _"You can't write to the android_assets"_ is an example of an illegal write we expected onerror callback to be called. > Attempt to write file to file:///android_asset folder crashes > ------------------------------------------------------------- > > Key: CB-4504 > URL: https://issues.apache.org/jira/browse/CB-4504 > Project: Apache Cordova > Issue Type: Bug > Components: Android > Affects Versions: 2.9.0 > Environment: Android v4.3 emulator > Reporter: Peter > Assignee: Joe Bowser > Priority: Minor > > I wrote a Jasmine test case which attempts to write to the *android_assets* > folder. > The test expects the FileWriter.onerror callback will be called with some > appropriate error code. Instead, Cordova fails internally. > It appears that FileHelper.getRealPath returns null, which the > FileUtils.write is not coping with, and when the null is passed to > FileOutputStream that throws NPE, which nobody is handling... > Test code fragment: > {code} > it("onerror is called if write to file:///android_asset", function() { > var theWriter, > filePath = "file:///android_asset/jumpyfox.txt", > // file content > fox = "The quick brown fox"; > // callbacks > var onerrorCB = jasmine.createSpy().andCallFake(function(a) { > > expect(theWriter.error.code).toBe(FileError.NO_MODIFICATION_ALLOWED_ERR); > > expect(a.target.error.code).toBe(FileError.NO_MODIFICATION_ALLOWED_ERR); > }); > // writes initial file content > var write_file = function(file) { > theWriter = new FileWriter(file); > theWriter.onerror = onerrorCB; > theWriter.write(fox); > }; > // create file, then write to it > runs(function() { > var file = new File(); > file.fullPath = filePath; > write_file(file); > }); > waitsFor(function() { return onerrorCB.wasCalled; }, "onerrorCB never > called", Tests.TEST_TIMEOUT); > }); > {code} > Maybe other scenarios which call FileHelper.getRealPath could have similar > consequences if it returns null. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira