@@ -154,7 +154,6 @@ describe('EditFeaturesService', () => {
154
154
155
155
// 删除要素
156
156
it ( 'successEvent:deleteFeature' , ( done ) => {
157
- var deleteFailedEventArgsSystem = null , deleteSuccessEventArgsSystem = null ;
158
157
var deleteFeaturesFailed = ( deleteFailedEventArgsSystem ) => {
159
158
expect ( deleteFailedEventArgsSystem ) . toBeNull ( ) ;
160
159
} ;
@@ -200,9 +199,108 @@ describe('EditFeaturesService', () => {
200
199
deleteFeaturesService . processAsync ( deleteFeaturesParams ) ;
201
200
} ) ;
202
201
202
+ // 删除要素-url超过长度转post
203
+ it ( 'successEvent:deleteFeature-longurl' , ( done ) => {
204
+ var ids = [ ]
205
+ for ( var i = 0 ; i < 500 ; i ++ ) {
206
+ ids . push ( i )
207
+ }
208
+ var deleteFeaturesFailed = ( deleteFailedEventArgsSystem ) => {
209
+ expect ( deleteFailedEventArgsSystem ) . toBeNull ( ) ;
210
+ } ;
211
+ var deleteFeaturesCompleted = ( deleteSuccessEventArgsSystem ) => {
212
+ try {
213
+ expect ( deleteSuccessEventArgsSystem . type ) . toBe ( "processCompleted" ) ;
214
+ var id = JSON . stringify ( ids ) ;
215
+ expect ( deleteSuccessEventArgsSystem . object . options . data ) . toBe ( id ) ;
216
+ expect ( deleteSuccessEventArgsSystem . object . options . method ) . toBe ( "POST" ) ;
217
+ expect ( deleteSuccessEventArgsSystem . result . succeed ) . toBeTruthy ( ) ;
218
+ deleteFeaturesService . destroy ( ) ;
219
+ deleteFeaturesParams . destroy ( ) ;
220
+ done ( ) ;
221
+ } catch ( exception ) {
222
+ expect ( false ) . toBeTruthy ( ) ;
223
+ console . log ( "deleteFeatures案例失败" + exception . name + ":" + exception . message ) ;
224
+ deleteFeaturesService . destroy ( ) ;
225
+ deleteFeaturesParams . destroy ( ) ;
226
+ done ( ) ;
227
+ }
228
+ } ;
229
+ var deleteFeaturesOptions = {
230
+ eventListeners : {
231
+ 'processCompleted' : deleteFeaturesCompleted ,
232
+ 'processFailed' : deleteFeaturesFailed
233
+ }
234
+ } ;
235
+ var deleteFeaturesParams = new EditFeaturesParameters ( {
236
+ dataSourceName : "Jingjin" ,
237
+ dataSetName : "Landuse_R" ,
238
+ IDs : ids ,
239
+ editType : EditType . DELETE
240
+ } ) ;
241
+ var deleteFeaturesService = new EditFeaturesService ( editServiceURL , deleteFeaturesOptions ) ;
242
+ spyOn ( FetchRequest , 'commit' ) . and . callFake ( ( method , testUrl , params , options ) => {
243
+ expect ( method ) . toBe ( "POST" ) ;
244
+ expect ( testUrl ) . toBe ( editServiceURL + "/features?_method=DELETE" ) ;
245
+ expect ( JSON . parse ( params ) . length ) . toBe ( 500 ) ;
246
+ expect ( options ) . not . toBeNull ( ) ;
247
+ return Promise . resolve ( new Response ( `{"succeed":true}` ) ) ;
248
+ } ) ;
249
+ deleteFeaturesService . processAsync ( deleteFeaturesParams ) ;
250
+ } ) ;
251
+ // 删除要素-url超过长度且原本带有参数
252
+ it ( 'successEvent:deleteFeature-longurl-withParms' , ( done ) => {
253
+ var ids = [ ]
254
+ for ( var i = 0 ; i < 1000 ; i ++ ) {
255
+ ids . push ( i )
256
+ }
257
+ var editServiceURL2 = editServiceURL + "?token=test&key=123"
258
+ var deleteFeaturesFailed = ( deleteFailedEventArgsSystem ) => {
259
+ expect ( deleteFailedEventArgsSystem ) . toBeNull ( ) ;
260
+ } ;
261
+ var deleteFeaturesCompleted = ( deleteSuccessEventArgsSystem ) => {
262
+ try {
263
+ expect ( deleteSuccessEventArgsSystem . type ) . toBe ( "processCompleted" ) ;
264
+ var id = JSON . stringify ( ids ) ;
265
+ expect ( deleteSuccessEventArgsSystem . object . options . data ) . toBe ( id ) ;
266
+ expect ( deleteSuccessEventArgsSystem . object . options . method ) . toBe ( "POST" ) ;
267
+ expect ( deleteSuccessEventArgsSystem . result . succeed ) . toBeTruthy ( ) ;
268
+ deleteFeaturesService . destroy ( ) ;
269
+ deleteFeaturesParams . destroy ( ) ;
270
+ done ( ) ;
271
+ } catch ( exception ) {
272
+ expect ( false ) . toBeTruthy ( ) ;
273
+ console . log ( "deleteFeatures案例失败" + exception . name + ":" + exception . message ) ;
274
+ deleteFeaturesService . destroy ( ) ;
275
+ deleteFeaturesParams . destroy ( ) ;
276
+ done ( ) ;
277
+ }
278
+ } ;
279
+ var deleteFeaturesOptions = {
280
+ eventListeners : {
281
+ 'processCompleted' : deleteFeaturesCompleted ,
282
+ 'processFailed' : deleteFeaturesFailed
283
+ }
284
+ } ;
285
+ var deleteFeaturesParams = new EditFeaturesParameters ( {
286
+ dataSourceName : "Jingjin" ,
287
+ dataSetName : "Landuse_R" ,
288
+ IDs : ids ,
289
+ editType : EditType . DELETE
290
+ } ) ;
291
+ var deleteFeaturesService = new EditFeaturesService ( editServiceURL2 , deleteFeaturesOptions ) ;
292
+ spyOn ( FetchRequest , 'commit' ) . and . callFake ( ( method , testUrl , params , options ) => {
293
+ expect ( method ) . toBe ( "POST" ) ;
294
+ expect ( testUrl ) . toBe ( editServiceURL + "/features?token=test&key=123&_method=DELETE" ) ;
295
+ expect ( JSON . parse ( params ) . length ) . toBe ( 1000 ) ;
296
+ expect ( options ) . not . toBeNull ( ) ;
297
+ return Promise . resolve ( new Response ( `{"succeed":true}` ) ) ;
298
+ } ) ;
299
+ deleteFeaturesService . processAsync ( deleteFeaturesParams ) ;
300
+ } ) ;
301
+
203
302
// 失败事件
204
303
it ( 'failEvent:addFeatures_noParameters' , ( done ) => {
205
- var noParamsFailedEventArgsSystem = null , noParamsSuccessEventArgsSystem = null ;
206
304
var noParamsFailed = ( noParamsFailedEventArgsSystem ) => {
207
305
try {
208
306
0 commit comments