cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-4504) Attempt to write file to file:///android_asset folder crashes
Date Wed, 21 Aug 2013 00:27:51 GMT

    [ 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

Mime
View raw message