41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /**
 | |
|  * @license
 | |
|  * Copyright Google Inc. All Rights Reserved.
 | |
|  *
 | |
|  * 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
 | |
|  */
 | |
| 
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * @license
 | |
|  * Copyright Google Inc. All Rights Reserved.
 | |
|  *
 | |
|  * 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 {describe, expect, it} from '@angular/core/testing/src/testing_internal';
 | |
| import {BrowserViewportScroller, ViewportScroller} from '../src/viewport_scroller';
 | |
| 
 | |
| {
 | |
|   describe('BrowserViewportScroller', () => {
 | |
|     let scroller: ViewportScroller;
 | |
|     let documentSpy: any;
 | |
|     beforeEach(() => {
 | |
|       documentSpy = jasmine.createSpyObj('document', ['querySelector']);
 | |
|       scroller = new BrowserViewportScroller(documentSpy, {scrollTo: 1}, null!);
 | |
|     });
 | |
|     it('escapes invalid characters selectors', () => {
 | |
|       const invalidSelectorChars = `"' :.[],=`;
 | |
|       // Double escaped to make sure we match the actual value passed to `querySelector`
 | |
|       const escapedInvalids = `\\"\\' \\:\\.\\[\\]\\,\\=`;
 | |
|       scroller.scrollToAnchor(`specials=${invalidSelectorChars}`);
 | |
|       expect(documentSpy.querySelector).toHaveBeenCalledWith(`#specials\\=${escapedInvalids}`);
 | |
|       expect(documentSpy.querySelector)
 | |
|           .toHaveBeenCalledWith(`[name='specials\\=${escapedInvalids}']`);
 | |
|     });
 | |
|   });
 | |
| }
 |