@@ -4,7 +4,7 @@ const {Readable, Writable} = require("stream");
4
4
const resourceFactory = require ( "@ui5/fs" ) . resourceFactory ;
5
5
const serveResourcesMiddleware = require ( "../../../../lib/middleware/serveResources" ) ;
6
6
const MiddlewareUtil = require ( "../../../../lib/middleware/MiddlewareUtil" ) ;
7
- const writeResource = function ( writer , path , size , stringContent , project ) {
7
+ const writeResource = function ( writer , path , size , stringContent , stringEncoding , project ) {
8
8
const statInfo = {
9
9
ino : 0 ,
10
10
ctime : new Date ( ) ,
@@ -16,7 +16,7 @@ const writeResource = function(writer, path, size, stringContent, project) {
16
16
} ;
17
17
const resource = resourceFactory . createResource ( {
18
18
path,
19
- buffer : Buffer . from ( stringContent , "latin1" ) ,
19
+ buffer : Buffer . from ( stringContent , stringEncoding ) ,
20
20
statInfo,
21
21
project
22
22
} ) ;
@@ -51,7 +51,7 @@ test.serial("Check if properties file is served properly", (t) => {
51
51
}
52
52
} ;
53
53
54
- return writeResource ( readerWriter , "/myFile3.properties" , 1024 * 1024 , "key=titel\nfame=straße" , project )
54
+ return writeResource ( readerWriter , "/myFile3.properties" , 1024 * 1024 , "key=titel\nfame=straße" , "latin1" , project )
55
55
. then ( ( resource ) => {
56
56
const setStringSpy = sinon . spy ( resource , "setString" ) ;
57
57
const middleware = serveResourcesMiddleware ( {
@@ -95,7 +95,7 @@ test.serial("Check if properties file is served properly with UTF-8", (t) => {
95
95
}
96
96
} ;
97
97
98
- return writeResource ( readerWriter , "/myFile3.properties" , 1024 * 1024 , "key=titel\nfame=straße" , project )
98
+ return writeResource ( readerWriter , "/myFile3.properties" , 1024 * 1024 , "key=titel\nfame=straße" , "utf8" , project )
99
99
. then ( ( resource ) => {
100
100
const setStringSpy = sinon . spy ( resource , "setString" ) ;
101
101
const middleware = serveResourcesMiddleware ( {
@@ -119,7 +119,7 @@ test.serial("Check if properties file is served properly with UTF-8", (t) => {
119
119
return resource . getString ( ) ;
120
120
} ) . then ( ( content ) => {
121
121
t . is ( content , `key=titel
122
- fame=stra\\ufffde ` ) ;
122
+ fame=stra\\u00dfe ` ) ;
123
123
t . is ( setHeaderSpy . callCount , 2 ) ;
124
124
t . is ( setStringSpy . callCount , 1 ) ;
125
125
t . is ( setHeaderSpy . getCall ( 0 ) . lastArg , "application/octet-stream" ) ;
@@ -132,7 +132,83 @@ test.serial("Check if properties file is served properly without property settin
132
132
133
133
const readerWriter = resourceFactory . createAdapter ( { virBasePath : "/" } ) ;
134
134
135
- return writeResource ( readerWriter , "/myFile3.properties" , 1024 * 1024 , "key=titel\nfame=straße" ) . then ( ( resource ) => {
135
+ return writeResource ( readerWriter , "/myFile3.properties" , 1024 * 1024 , "key=titel\nfame=straße" , "utf8" ) . then ( ( resource ) => {
136
+ const setStringSpy = sinon . spy ( resource , "setString" ) ;
137
+ const middleware = serveResourcesMiddleware ( {
138
+ middlewareUtil : new MiddlewareUtil ( ) ,
139
+ resources : {
140
+ all : readerWriter
141
+ }
142
+ } ) ;
143
+
144
+ const response = fakeResponse ;
145
+
146
+ const setHeaderSpy = sinon . spy ( response , "setHeader" ) ;
147
+ const req = {
148
+ url : "/myFile3.properties" ,
149
+ headers : { }
150
+ } ;
151
+ const next = function ( err ) {
152
+ throw new Error ( `Next callback called with error: ${ err . stack } ` ) ;
153
+ } ;
154
+ return middleware ( req , response , next ) . then ( ( o ) => {
155
+ return resource . getString ( ) ;
156
+ } ) . then ( ( content ) => {
157
+ t . is ( content , `key=titel
158
+ fame=stra\\u00dfe` ) ;
159
+ t . is ( setHeaderSpy . callCount , 2 ) ;
160
+ t . is ( setStringSpy . callCount , 1 ) ;
161
+ t . is ( setHeaderSpy . getCall ( 0 ) . lastArg , "application/octet-stream" ) ;
162
+ } ) ;
163
+ } ) ;
164
+ } ) ;
165
+
166
+ test . serial ( "Check if properties file is served properly without property setting but legacy spec version" , ( t ) => {
167
+ t . plan ( 4 ) ;
168
+
169
+ const readerWriter = resourceFactory . createAdapter ( { virBasePath : "/" } ) ;
170
+ const project = {
171
+ specVersion : "1.1"
172
+ } ;
173
+ return writeResource ( readerWriter , "/myFile3.properties" , 1024 * 1024 , "key=titel\nfame=straße" , "latin1" , project ) . then ( ( resource ) => {
174
+ const setStringSpy = sinon . spy ( resource , "setString" ) ;
175
+ const middleware = serveResourcesMiddleware ( {
176
+ middlewareUtil : new MiddlewareUtil ( ) ,
177
+ resources : {
178
+ all : readerWriter
179
+ }
180
+ } ) ;
181
+
182
+ const response = fakeResponse ;
183
+
184
+ const setHeaderSpy = sinon . spy ( response , "setHeader" ) ;
185
+ const req = {
186
+ url : "/myFile3.properties" ,
187
+ headers : { }
188
+ } ;
189
+ const next = function ( err ) {
190
+ throw new Error ( `Next callback called with error: ${ err . stack } ` ) ;
191
+ } ;
192
+ return middleware ( req , response , next ) . then ( ( o ) => {
193
+ return resource . getString ( ) ;
194
+ } ) . then ( ( content ) => {
195
+ t . is ( content , `key=titel
196
+ fame=stra\\u00dfe` ) ;
197
+ t . is ( setHeaderSpy . callCount , 2 ) ;
198
+ t . is ( setStringSpy . callCount , 1 ) ;
199
+ t . is ( setHeaderSpy . getCall ( 0 ) . lastArg , "application/octet-stream" ) ;
200
+ } ) ;
201
+ } ) ;
202
+ } ) ;
203
+
204
+ test . serial ( "Check if properties file is served properly without property setting but spec version" , ( t ) => {
205
+ t . plan ( 4 ) ;
206
+
207
+ const readerWriter = resourceFactory . createAdapter ( { virBasePath : "/" } ) ;
208
+ const project = {
209
+ specVersion : "2.0"
210
+ } ;
211
+ return writeResource ( readerWriter , "/myFile3.properties" , 1024 * 1024 , "key=titel\nfame=straße" , "utf8" , project ) . then ( ( resource ) => {
136
212
const setStringSpy = sinon . spy ( resource , "setString" ) ;
137
213
const middleware = serveResourcesMiddleware ( {
138
214
middlewareUtil : new MiddlewareUtil ( ) ,
0 commit comments