| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 chrome.test.runTests(function() { | 5 chrome.test.runTests(function() { |
| 6 'use strict'; | 6 'use strict'; |
| 7 | 7 |
| 8 class StubElement { | 8 class StubElement { |
| 9 constructor() { | 9 constructor() { |
| 10 this.listeners = new Map([ | 10 this.listeners = new Map([ |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 chrome.test.assertEq(null, pinchListener.lastEvent); | 175 chrome.test.assertEq(null, pinchListener.lastEvent); |
| 176 | 176 |
| 177 chrome.test.succeed(); | 177 chrome.test.succeed(); |
| 178 }, | 178 }, |
| 179 | 179 |
| 180 function testPreventNativePinchZoom() { | 180 function testPreventNativePinchZoom() { |
| 181 let stubElement = new StubElement(); | 181 let stubElement = new StubElement(); |
| 182 let gestureDetector = new GestureDetector(stubElement); | 182 let gestureDetector = new GestureDetector(stubElement); |
| 183 let pinchListener = new PinchListener(gestureDetector); | 183 let pinchListener = new PinchListener(gestureDetector); |
| 184 | 184 |
| 185 // Ensure that the touchstart listener is not passive, otherwise the | 185 // Ensure that the touchmove listener is not passive, otherwise the |
| 186 // call to preventDefault will be ignored. Since listeners could default | 186 // call to preventDefault will be ignored. Since listeners could default |
| 187 // to being passive, we must set the value explicitly | 187 // to being passive, we must set the value explicitly |
| 188 // (see crbug.com/675730). | 188 // (see crbug.com/675730). |
| 189 for (let l of stubElement.listeners.get('touchstart')) { | 189 for (let l of stubElement.listeners.get('touchmove')) { |
| 190 let options = stubElement.listenerOptions.get(l); | 190 let options = stubElement.listenerOptions.get(l); |
| 191 chrome.test.assertTrue(!!options && | 191 chrome.test.assertTrue(!!options && |
| 192 typeof(options.passive) == 'boolean'); | 192 typeof(options.passive) == 'boolean'); |
| 193 chrome.test.assertFalse(options.passive); | 193 chrome.test.assertFalse(options.passive); |
| 194 } | 194 } |
| 195 | 195 |
| 196 // We should not preventDefault the touchstart for 2 fingers, since this |
| 197 // could just be a 2 finger tap. |
| 196 let pinchStartEvent = new MockTouchEvent('touchstart', [ | 198 let pinchStartEvent = new MockTouchEvent('touchstart', [ |
| 197 {clientX: 0, clientY: 0}, | 199 {clientX: 0, clientY: 0}, |
| 198 {clientX: 0, clientY: 2} | 200 {clientX: 0, clientY: 2} |
| 199 ]); | 201 ]); |
| 200 stubElement.sendEvent(pinchStartEvent); | 202 stubElement.sendEvent(pinchStartEvent); |
| 201 chrome.test.assertEq('pinchstart', pinchListener.lastEvent.type); | 203 chrome.test.assertEq('pinchstart', pinchListener.lastEvent.type); |
| 202 chrome.test.assertTrue(pinchStartEvent.defaultPrevented); | 204 chrome.test.assertFalse(pinchStartEvent.defaultPrevented); |
| 205 |
| 206 let pinchUpdateEvent = new MockTouchEvent('touchmove', [ |
| 207 {clientX: 0, clientY: 0}, |
| 208 {clientX: 0, clientY: 4} |
| 209 ]); |
| 210 stubElement.sendEvent(pinchUpdateEvent); |
| 211 chrome.test.assertEq('pinchupdate', pinchListener.lastEvent.type); |
| 212 chrome.test.assertTrue(pinchUpdateEvent.defaultPrevented); |
| 203 | 213 |
| 204 chrome.test.succeed(); | 214 chrome.test.succeed(); |
| 205 } | 215 } |
| 206 ]; | 216 ]; |
| 207 }()); | 217 }()); |
| OLD | NEW |