forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* Any copyright is dedicated to the Public Domain.
 | |
|    http://creativecommons.org/publicdomain/zero/1.0/ */
 | |
| 
 | |
| add_task(async function channelname() {
 | |
|   var file = new File(
 | |
|     [new Blob(["test"], { type: "text/plain" })],
 | |
|     "test-name"
 | |
|   );
 | |
|   var url = URL.createObjectURL(file);
 | |
|   var channel = NetUtil.newChannel({
 | |
|     uri: url,
 | |
|     loadUsingSystemPrincipal: true,
 | |
|   });
 | |
| 
 | |
|   let inputStream = channel.open();
 | |
|   ok(inputStream, "Should be able to open channel");
 | |
|   ok(
 | |
|     inputStream.QueryInterface(Ci.nsIAsyncInputStream),
 | |
|     "Stream should support async operations"
 | |
|   );
 | |
| 
 | |
|   await new Promise(resolve => {
 | |
|     inputStream.asyncWait(
 | |
|       () => {
 | |
|         let available = inputStream.available();
 | |
|         ok(available, "There should be data to read");
 | |
|         Assert.equal(
 | |
|           channel.contentDispositionFilename,
 | |
|           "test-name",
 | |
|           "filename matches"
 | |
|         );
 | |
|         resolve();
 | |
|       },
 | |
|       0,
 | |
|       0,
 | |
|       Services.tm.mainThread
 | |
|     );
 | |
|   });
 | |
| 
 | |
|   inputStream.close();
 | |
|   channel.cancel(Cr.NS_ERROR_FAILURE);
 | |
| });
 | 
