@@ -154,7 +154,6 @@ describe('EditFeaturesService', () => {
154154
155155 // 删除要素
156156 it ( 'successEvent:deleteFeature' , ( done ) => {
157- var deleteFailedEventArgsSystem = null , deleteSuccessEventArgsSystem = null ;
158157 var deleteFeaturesFailed = ( deleteFailedEventArgsSystem ) => {
159158 expect ( deleteFailedEventArgsSystem ) . toBeNull ( ) ;
160159 } ;
@@ -200,9 +199,108 @@ describe('EditFeaturesService', () => {
200199 deleteFeaturesService . processAsync ( deleteFeaturesParams ) ;
201200 } ) ;
202201
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+
203302 // 失败事件
204303 it ( 'failEvent:addFeatures_noParameters' , ( done ) => {
205- var noParamsFailedEventArgsSystem = null , noParamsSuccessEventArgsSystem = null ;
206304 var noParamsFailed = ( noParamsFailedEventArgsSystem ) => {
207305 try {
208306
0 commit comments