forked from mirrors/gecko-dev
		
	 4a06c925ac
			
		
	
	
		4a06c925ac
		
	
	
	
	
		
			
			# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D36052 --HG-- extra : source : b5be5b4f4b47c256e28a29f665dc754f6407ee7f
		
			
				
	
	
		
			40 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| 
 | |
| const { OS } = ChromeUtils.import("resource://gre/modules/osfile.jsm");
 | |
| 
 | |
| function run_test() {
 | |
|   do_test_pending();
 | |
|   run_next_test();
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Test to ensure that {bytes:} in options to |write| is correctly
 | |
|  * preserved.
 | |
|  */
 | |
| add_task(async function test_bytes() {
 | |
|   let path = OS.Path.join(
 | |
|     OS.Constants.Path.tmpDir,
 | |
|     "test_osfile_async_bytes.tmp"
 | |
|   );
 | |
|   let file = await OS.File.open(path, { trunc: true, read: true, write: true });
 | |
|   try {
 | |
|     try {
 | |
|       // 1. Test write, by supplying {bytes:} options smaller than the actual
 | |
|       // buffer.
 | |
|       await file.write(new Uint8Array(2048), { bytes: 1024 });
 | |
|       Assert.equal((await file.stat()).size, 1024);
 | |
| 
 | |
|       // 2. Test that passing nullish values for |options| still works.
 | |
|       await file.setPosition(0, OS.File.POS_END);
 | |
|       await file.write(new Uint8Array(1024), null);
 | |
|       await file.write(new Uint8Array(1024), undefined);
 | |
|       Assert.equal((await file.stat()).size, 3072);
 | |
|     } finally {
 | |
|       await file.close();
 | |
|     }
 | |
|   } finally {
 | |
|     await OS.File.remove(path);
 | |
|   }
 | |
| });
 | |
| 
 | |
| add_task(do_test_finished);
 |