@@ -157,4 +157,137 @@ describe("Map.TouchZoom", function () {
157
157
. down ( ) . moveBy ( - 200 , 0 , 500 ) . up ( 100 ) ;
158
158
} ) ;
159
159
160
+ it . skipIfNotTouch ( "Layer is rendered correctly while pinch zoom when zoomAnim is true" , function ( done ) {
161
+ if ( L . Browser . ie ) {
162
+ // getBoundingClientRect doesn't return valid values in IE
163
+ done ( ) ;
164
+ return ;
165
+ }
166
+ map . remove ( ) ;
167
+
168
+ map = new L . Map ( container , {
169
+ touchZoom : true ,
170
+ inertia : false ,
171
+ zoomAnimation : true
172
+ } ) ;
173
+
174
+ map . setView ( [ 0 , 0 ] , 8 ) ;
175
+
176
+ var polygon = L . polygon ( [
177
+ [ 0 , 0 ] ,
178
+ [ 0 , 1 ] ,
179
+ [ 1 , 1 ] ,
180
+ [ 1 , 0 ]
181
+ ] ) . addTo ( map ) ;
182
+
183
+ var alreadyCalled = false ;
184
+ var hand = new Hand ( {
185
+ timing : 'fastframe' ,
186
+ onStop : function ( ) {
187
+ setTimeout ( function ( ) {
188
+ if ( alreadyCalled ) {
189
+ return ; // Will recursivly call itself otherwise
190
+ }
191
+ alreadyCalled = true ;
192
+
193
+ var renderedRect = polygon . _path . getBoundingClientRect ( ) ;
194
+
195
+ var width = renderedRect . width ;
196
+ var height = renderedRect . height ;
197
+
198
+ expect ( height < 50 ) . to . be ( true ) ;
199
+ expect ( width < 50 ) . to . be ( true ) ;
200
+ expect ( height + width > 0 ) . to . be ( true ) ;
201
+
202
+ var x = renderedRect . x ;
203
+ var y = renderedRect . y ;
204
+
205
+ expect ( x ) . to . be . within ( 299 , 301 ) ;
206
+ expect ( y ) . to . be . within ( 270 , 280 ) ;
207
+
208
+ // Fingers lifted after expects as bug goes away when lifted
209
+ hand . _fingers [ 0 ] . up ( ) ;
210
+ hand . _fingers [ 1 ] . up ( ) ;
211
+
212
+ done ( ) ;
213
+ } , 100 ) ;
214
+ }
215
+ } ) ;
216
+
217
+ var f1 = hand . growFinger ( touchEventType ) ;
218
+ var f2 = hand . growFinger ( touchEventType ) ;
219
+
220
+ hand . sync ( 5 ) ;
221
+ f1 . wait ( 100 ) . moveTo ( 75 , 300 , 0 )
222
+ . down ( ) . moveBy ( 200 , 0 , 500 ) ;
223
+ f2 . wait ( 100 ) . moveTo ( 525 , 300 , 0 )
224
+ . down ( ) . moveBy ( - 200 , 0 , 500 ) ;
225
+ } ) ;
226
+
227
+ it . skipIfNotTouch ( "Layer is rendered correctly while pinch zoom when zoomAnim is false" , function ( done ) {
228
+ if ( L . Browser . ie ) {
229
+ // getBoundingClientRect doesn't return valid values in IE
230
+ done ( ) ;
231
+ return ;
232
+ }
233
+ map . remove ( ) ;
234
+
235
+ map = new L . Map ( container , {
236
+ touchZoom : true ,
237
+ inertia : false ,
238
+ zoomAnimation : false
239
+ } ) ;
240
+
241
+ map . setView ( [ 0 , 0 ] , 8 ) ;
242
+
243
+ var polygon = L . polygon ( [
244
+ [ 0 , 0 ] ,
245
+ [ 0 , 1 ] ,
246
+ [ 1 , 1 ] ,
247
+ [ 1 , 0 ]
248
+ ] ) . addTo ( map ) ;
249
+
250
+ var alreadyCalled = false ;
251
+ var hand = new Hand ( {
252
+ timing : 'fastframe' ,
253
+ onStop : function ( ) {
254
+ setTimeout ( function ( ) {
255
+ if ( alreadyCalled ) {
256
+ return ; // Will recursivly call itself otherwise
257
+ }
258
+ alreadyCalled = true ;
259
+
260
+ var renderedRect = polygon . _path . getBoundingClientRect ( ) ;
261
+
262
+ var width = renderedRect . width ;
263
+ var height = renderedRect . height ;
264
+
265
+ expect ( height < 50 ) . to . be ( true ) ;
266
+ expect ( width < 50 ) . to . be ( true ) ;
267
+ expect ( height + width > 0 ) . to . be ( true ) ;
268
+
269
+ var x = renderedRect . x ;
270
+ var y = renderedRect . y ;
271
+
272
+ expect ( x ) . to . be . within ( 299 , 301 ) ;
273
+ expect ( y ) . to . be . within ( 270 , 280 ) ;
274
+
275
+ // Fingers lifted after expects as bug goes away when lifted
276
+ hand . _fingers [ 0 ] . up ( ) ;
277
+ hand . _fingers [ 1 ] . up ( ) ;
278
+
279
+ done ( ) ;
280
+ } , 100 ) ;
281
+ }
282
+ } ) ;
283
+
284
+ var f1 = hand . growFinger ( touchEventType ) ;
285
+ var f2 = hand . growFinger ( touchEventType ) ;
286
+
287
+ hand . sync ( 5 ) ;
288
+ f1 . wait ( 100 ) . moveTo ( 75 , 300 , 0 )
289
+ . down ( ) . moveBy ( 200 , 0 , 500 ) ;
290
+ f2 . wait ( 100 ) . moveTo ( 525 , 300 , 0 )
291
+ . down ( ) . moveBy ( - 200 , 0 , 500 ) ;
292
+ } ) ;
160
293
} ) ;
0 commit comments