| 
									
										
										
										
											2020-12-15 13:00:29 -08:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @license | 
					
						
							|  |  |  |  * Copyright Google LLC 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 {escapeCommentText} from '@angular/core/src/util/dom'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe('comment node text escaping', () => { | 
					
						
							|  |  |  |   describe('escapeCommentText', () => { | 
					
						
							|  |  |  |     it('should not change anything on basic text', () => { | 
					
						
							|  |  |  |       expect(escapeCommentText('text')).toEqual('text'); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-22 10:05:17 -08:00
										 |  |  |     it('should escape "<" or ">"', () => { | 
					
						
							|  |  |  |       expect(escapeCommentText('<!--')).toEqual('\u200b<\u200b!--'); | 
					
						
							|  |  |  |       expect(escapeCommentText('<!--<!--')).toEqual('\u200b<\u200b!--\u200b<\u200b!--'); | 
					
						
							|  |  |  |       expect(escapeCommentText('>')).toEqual('\u200b>\u200b'); | 
					
						
							|  |  |  |       expect(escapeCommentText('>-->')).toEqual('\u200b>\u200b--\u200b>\u200b'); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-15 13:00:29 -08:00
										 |  |  |     it('should escape end marker', () => { | 
					
						
							| 
									
										
										
										
											2021-01-22 10:05:17 -08:00
										 |  |  |       expect(escapeCommentText('before-->after')).toEqual('before--\u200b>\u200bafter'); | 
					
						
							| 
									
										
										
										
											2020-12-15 13:00:29 -08:00
										 |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it('should escape multiple markers', () => { | 
					
						
							|  |  |  |       expect(escapeCommentText('before-->inline-->after')) | 
					
						
							| 
									
										
										
										
											2021-01-22 10:05:17 -08:00
										 |  |  |           .toEqual('before--\u200b>\u200binline--\u200b>\u200bafter'); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it('should caver the spec', () => { | 
					
						
							|  |  |  |       // https://html.spec.whatwg.org/multipage/syntax.html#comments
 | 
					
						
							|  |  |  |       expect(escapeCommentText('>')).toEqual('\u200b>\u200b'); | 
					
						
							|  |  |  |       expect(escapeCommentText('->')).toEqual('-\u200b>\u200b'); | 
					
						
							|  |  |  |       expect(escapeCommentText('<!--')).toEqual('\u200b<\u200b!--'); | 
					
						
							|  |  |  |       expect(escapeCommentText('-->')).toEqual('--\u200b>\u200b'); | 
					
						
							|  |  |  |       expect(escapeCommentText('--!>')).toEqual('--!\u200b>\u200b'); | 
					
						
							|  |  |  |       expect(escapeCommentText('<!-')).toEqual('\u200b<\u200b!-'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       // Things which are OK
 | 
					
						
							|  |  |  |       expect(escapeCommentText('.>')).toEqual('.>'); | 
					
						
							|  |  |  |       expect(escapeCommentText('.->')).toEqual('.->'); | 
					
						
							|  |  |  |       expect(escapeCommentText('<!-.')).toEqual('<!-.'); | 
					
						
							| 
									
										
										
										
											2020-12-15 13:00:29 -08:00
										 |  |  |     }); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | }); |