| 
									
										
										
										
											2019-06-01 00:56:07 +09:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @license | 
					
						
							| 
									
										
										
										
											2020-05-19 12:08:49 -07:00
										 |  |  |  * Copyright Google LLC All Rights Reserved. | 
					
						
							| 
									
										
										
										
											2019-06-01 00:56:07 +09:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Use of this source code is governed by an MIT-style license that can be | 
					
						
							|  |  |  |  * found in the LICENSE file at https://angular.io/license
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import {ifEnvSupports} from '../test-util'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function supportsGeolocation() { | 
					
						
							|  |  |  |   return 'geolocation' in navigator; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | (<any>supportsGeolocation).message = 'Geolocation'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe('Geolocation', ifEnvSupports(supportsGeolocation, function() { | 
					
						
							|  |  |  |            const testZone = Zone.current.fork({name: 'geotest'}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            it('should work for getCurrentPosition', function(done) { | 
					
						
							|  |  |  |              testZone.run(function() { | 
					
						
							|  |  |  |                navigator.geolocation.getCurrentPosition(function(pos) { | 
					
						
							|  |  |  |                  expect(Zone.current).toBe(testZone); | 
					
						
							|  |  |  |                  done(); | 
					
						
							|  |  |  |                }); | 
					
						
							|  |  |  |              }); | 
					
						
							|  |  |  |            }, 10000); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            it('should work for watchPosition', function(done) { | 
					
						
							|  |  |  |              testZone.run(function() { | 
					
						
							|  |  |  |                let watchId: number; | 
					
						
							|  |  |  |                watchId = navigator.geolocation.watchPosition(function(pos) { | 
					
						
							|  |  |  |                  expect(Zone.current).toBe(testZone); | 
					
						
							|  |  |  |                  navigator.geolocation.clearWatch(watchId); | 
					
						
							|  |  |  |                  done(); | 
					
						
							|  |  |  |                }); | 
					
						
							|  |  |  |              }); | 
					
						
							|  |  |  |            }, 10000); | 
					
						
							|  |  |  |          })); |