55
66import * as fs from 'async-file' ;
77import * as chai from 'chai' ;
8- import * as util from '../../../src/common' ;
98import { EventStream } from '../../../src/EventStream' ;
109import { DownloadFile } from '../../../src/packageManager/FileDownloader' ;
1110import NetworkSettings from '../../../src/NetworkSettings' ;
12- import { TmpAsset , CreateTmpFile } from '../../../src/CreateTmpAsset' ;
1311import { BaseEvent , DownloadStart , DownloadSizeObtained , DownloadProgress , DownloadSuccess , DownloadFallBack , DownloadFailure } from '../../../src/omnisharp/loggingEvents' ;
1412import { getRequestHandler } from '../testAssets/MockHttpServerRequestHandler' ;
1513
@@ -48,7 +46,6 @@ suite("FileDownloader", () => {
4846
4947 let server : any ;
5048 let httpsServerUrl : string ;
51- let tmpFile : TmpAsset ;
5249
5350 suiteSetup ( async ( ) => {
5451 let port = await getPort ( ) ;
@@ -66,8 +63,6 @@ suite("FileDownloader", () => {
6663
6764 setup ( async ( ) => {
6865 await new Promise ( resolve => server . start ( resolve ) ) ;
69- tmpFile = await CreateTmpFile ( ) ;
70- util . setExtensionPath ( tmpFile . name ) ;
7166 eventBus = [ ] ;
7267 server . on ( getRequestHandler ( 'GET' , correctUrlPath , 200 , { "content-type" : "text/plain" } , "Test content" ) ) ;
7368 server . on ( getRequestHandler ( 'GET' , errorUrlPath , 404 ) ) ;
@@ -92,15 +87,13 @@ suite("FileDownloader", () => {
9287 ] . forEach ( ( elem ) => {
9388 suite ( elem . description , ( ) => {
9489 test ( 'File is downloaded' , async ( ) => {
95- await DownloadFile ( tmpFile . fd , fileDescription , eventStream , networkSettingsProvider , getURL ( elem . urlPath ) , getURL ( elem . fallBackUrlPath ) ) ;
96- const stats = await fs . stat ( tmpFile . name ) ;
97- expect ( stats . size ) . to . not . equal ( 0 ) ;
98- let text = await fs . readFile ( tmpFile . name , 'utf8' ) ;
90+ let buffer = await DownloadFile ( fileDescription , eventStream , networkSettingsProvider , getURL ( elem . urlPath ) , getURL ( elem . fallBackUrlPath ) ) ;
91+ let text = buffer . toString ( 'utf8' ) ;
9992 expect ( text ) . to . be . equal ( "Test content" ) ;
10093 } ) ;
10194
10295 test ( 'Events are created in the correct order' , async ( ) => {
103- await DownloadFile ( tmpFile . fd , fileDescription , eventStream , networkSettingsProvider , getURL ( elem . urlPath ) , getURL ( elem . fallBackUrlPath ) ) ;
96+ await DownloadFile ( fileDescription , eventStream , networkSettingsProvider , getURL ( elem . urlPath ) , getURL ( elem . fallBackUrlPath ) ) ;
10497 expect ( eventBus ) . to . be . deep . equal ( elem . getEventSequence ( ) ) ;
10598 } ) ;
10699 } ) ;
@@ -109,17 +102,15 @@ suite("FileDownloader", () => {
109102
110103 suite ( 'If the response status Code is 301, redirect occurs and the download succeeds' , ( ) => {
111104 test ( 'File is downloaded from the redirect url' , async ( ) => {
112- await DownloadFile ( tmpFile . fd , fileDescription , eventStream , networkSettingsProvider , getURL ( redirectUrlPath ) ) ;
113- const stats = await fs . stat ( tmpFile . name ) ;
114- expect ( stats . size ) . to . not . equal ( 0 ) ;
115- let text = await fs . readFile ( tmpFile . name , "utf8" ) ;
105+ let buffer = await DownloadFile ( fileDescription , eventStream , networkSettingsProvider , getURL ( redirectUrlPath ) ) ;
106+ let text = buffer . toString ( 'utf8' ) ;
116107 expect ( text ) . to . be . equal ( "Test content" ) ;
117108 } ) ;
118109 } ) ;
119110
120111 suite ( 'If the response status code is not 301, 302 or 200 then the download fails' , ( ) => {
121112 test ( 'Error is thrown' , async ( ) => {
122- expect ( DownloadFile ( tmpFile . fd , fileDescription , eventStream , networkSettingsProvider , getURL ( errorUrlPath ) ) ) . be . rejected ;
113+ expect ( DownloadFile ( fileDescription , eventStream , networkSettingsProvider , getURL ( errorUrlPath ) ) ) . be . rejected ;
123114 } ) ;
124115
125116 test ( 'Download Start and Download Failure events are created' , async ( ) => {
@@ -128,24 +119,16 @@ suite("FileDownloader", () => {
128119 new DownloadFailure ( "failed (error code '404')" )
129120 ] ;
130121 try {
131- await DownloadFile ( tmpFile . fd , fileDescription , eventStream , networkSettingsProvider , getURL ( errorUrlPath ) ) ;
122+ await DownloadFile ( fileDescription , eventStream , networkSettingsProvider , getURL ( errorUrlPath ) ) ;
132123 }
133124 catch ( error ) {
134125 expect ( eventBus ) . to . be . deep . equal ( eventsSequence ) ;
135126 }
136127 } ) ;
137128 } ) ;
138129
139- test ( 'Error is thrown on invalid input file' , async ( ) => {
140- //fd=0 means there is no file
141- expect ( DownloadFile ( 0 , fileDescription , eventStream , networkSettingsProvider , getURL ( errorUrlPath ) ) ) . to . be . rejected ;
142- } ) ;
143-
144130 teardown ( async ( ) => {
145131 await new Promise ( ( resolve , reject ) => server . stop ( resolve ) ) ;
146- if ( tmpFile ) {
147- tmpFile . dispose ( ) ;
148- }
149132 } ) ;
150133
151134 function getURL ( urlPath : string ) {
0 commit comments