| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  | import {beforeEach, ddescribe, describe, expect, iit, inject, it, xit,} from '@angular/core/testing/testing_internal'; | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  | import {CompileDirectiveMetadata, CompileTypeMetadata, CompileTemplateMetadata, CompileProviderMetadata, CompileDiDependencyMetadata, CompileQueryMetadata, CompileIdentifierMetadata, CompileFactoryMetadata, CompileTokenMetadata, CompileAnimationEntryMetadata, CompileAnimationStyleMetadata, CompileAnimationAnimateMetadata, CompileAnimationSequenceMetadata, CompileAnimationStateTransitionMetadata, CompileAnimationKeyframesSequenceMetadata, CompileAnimationGroupMetadata} from '@angular/compiler/src/compile_metadata'; | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | import {ViewEncapsulation} from '@angular/core/src/metadata/view'; | 
					
						
							|  |  |  | import {ChangeDetectionStrategy} from '@angular/core/src/change_detection'; | 
					
						
							|  |  |  | import {LifecycleHooks} from '@angular/core/src/metadata/lifecycle_hooks'; | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | export function main() { | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  |   describe('CompileMetadata', () => { | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |     var fullTypeMeta: CompileTypeMetadata; | 
					
						
							|  |  |  |     var fullTemplateMeta: CompileTemplateMetadata; | 
					
						
							|  |  |  |     var fullDirectiveMeta: CompileDirectiveMetadata; | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     beforeEach(() => { | 
					
						
							| 
									
										
										
										
											2016-04-10 19:36:16 -07:00
										 |  |  |       var diDep = new CompileDiDependencyMetadata({ | 
					
						
							|  |  |  |         isAttribute: true, | 
					
						
							|  |  |  |         isSelf: true, | 
					
						
							| 
									
										
										
										
											2016-02-26 12:43:38 -08:00
										 |  |  |         isHost: true, | 
					
						
							| 
									
										
										
										
											2016-04-10 19:36:16 -07:00
										 |  |  |         isSkipSelf: true, | 
					
						
							|  |  |  |         isOptional: true, | 
					
						
							| 
									
										
										
										
											2016-01-06 14:13:44 -08:00
										 |  |  |         token: new CompileTokenMetadata({value: 'someToken'}), | 
					
						
							|  |  |  |         query: new CompileQueryMetadata({ | 
					
						
							|  |  |  |           selectors: [new CompileTokenMetadata({value: 'one'})], | 
					
						
							|  |  |  |           descendants: true, | 
					
						
							|  |  |  |           first: true, | 
					
						
							|  |  |  |           propertyName: 'one' | 
					
						
							|  |  |  |         }), | 
					
						
							|  |  |  |         viewQuery: new CompileQueryMetadata({ | 
					
						
							|  |  |  |           selectors: [new CompileTokenMetadata({value: 'one'})], | 
					
						
							|  |  |  |           descendants: true, | 
					
						
							|  |  |  |           first: true, | 
					
						
							|  |  |  |           propertyName: 'one' | 
					
						
							|  |  |  |         }) | 
					
						
							| 
									
										
										
										
											2016-02-26 12:43:38 -08:00
										 |  |  |       }); | 
					
						
							| 
									
										
										
										
											2016-04-10 19:36:16 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |       fullTypeMeta = new CompileTypeMetadata( | 
					
						
							|  |  |  |           {name: 'SomeType', moduleUrl: 'someUrl', isHost: true, diDeps: [diDep]}); | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |       fullTemplateMeta = new CompileTemplateMetadata({ | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |         encapsulation: ViewEncapsulation.Emulated, | 
					
						
							|  |  |  |         template: '<a></a>', | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |         templateUrl: 'someTemplateUrl', | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |         styles: ['someStyle'], | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |         styleUrls: ['someStyleUrl'], | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  |         animations: [new CompileAnimationEntryMetadata( | 
					
						
							|  |  |  |             'animation', | 
					
						
							|  |  |  |             [new CompileAnimationStateTransitionMetadata( | 
					
						
							|  |  |  |                 '* => *', new CompileAnimationSequenceMetadata([ | 
					
						
							|  |  |  |                   new CompileAnimationStyleMetadata(0, [{'opacity': 0}]), | 
					
						
							|  |  |  |                   new CompileAnimationAnimateMetadata( | 
					
						
							|  |  |  |                       1000, new CompileAnimationStyleMetadata(0, [{'opacity': 1}])) | 
					
						
							|  |  |  |                 ]))])], | 
					
						
							| 
									
										
										
										
											2016-06-20 09:52:41 -07:00
										 |  |  |         ngContentSelectors: ['*'], | 
					
						
							|  |  |  |         interpolation: ['{{', '}}'] | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |       }); | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |       fullDirectiveMeta = CompileDirectiveMetadata.create({ | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |         selector: 'someSelector', | 
					
						
							|  |  |  |         isComponent: true, | 
					
						
							| 
									
										
										
										
											2015-10-28 08:59:19 +01:00
										 |  |  |         type: fullTypeMeta, | 
					
						
							|  |  |  |         template: fullTemplateMeta, | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |         changeDetection: ChangeDetectionStrategy.Default, | 
					
						
							| 
									
										
										
										
											2015-09-30 20:59:23 -07:00
										 |  |  |         inputs: ['someProp'], | 
					
						
							|  |  |  |         outputs: ['someEvent'], | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |         host: {'(event1)': 'handler1', '[prop1]': 'expr1', 'attr1': 'attrValue2'}, | 
					
						
							| 
									
										
										
										
											2016-02-26 08:01:07 -08:00
										 |  |  |         lifecycleHooks: [LifecycleHooks.OnChanges], | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  |         providers: [new CompileProviderMetadata({ | 
					
						
							|  |  |  |           token: new CompileTokenMetadata({value: 'token'}), | 
					
						
							|  |  |  |           multi: true, | 
					
						
							|  |  |  |           useClass: fullTypeMeta, | 
					
						
							|  |  |  |           useExisting: new CompileTokenMetadata({ | 
					
						
							|  |  |  |             identifier: new CompileIdentifierMetadata({name: 'someName'}), | 
					
						
							|  |  |  |             identifierIsInstance: true | 
					
						
							|  |  |  |           }), | 
					
						
							|  |  |  |           useFactory: new CompileFactoryMetadata({name: 'someName', diDeps: [diDep]}), | 
					
						
							|  |  |  |           useValue: 'someValue', | 
					
						
							|  |  |  |         })], | 
					
						
							|  |  |  |         viewProviders: [new CompileProviderMetadata({ | 
					
						
							|  |  |  |           token: new CompileTokenMetadata({value: 'token'}), | 
					
						
							|  |  |  |           useClass: fullTypeMeta, | 
					
						
							|  |  |  |           useExisting: new CompileTokenMetadata( | 
					
						
							|  |  |  |               {identifier: new CompileIdentifierMetadata({name: 'someName'})}), | 
					
						
							|  |  |  |           useFactory: new CompileFactoryMetadata({name: 'someName', diDeps: [diDep]}), | 
					
						
							|  |  |  |           useValue: 'someValue' | 
					
						
							|  |  |  |         })], | 
					
						
							|  |  |  |         queries: [new CompileQueryMetadata({ | 
					
						
							|  |  |  |           selectors: [new CompileTokenMetadata({value: 'selector'})], | 
					
						
							|  |  |  |           descendants: true, | 
					
						
							|  |  |  |           first: false, | 
					
						
							|  |  |  |           propertyName: 'prop', | 
					
						
							|  |  |  |           read: new CompileTokenMetadata({value: 'readToken'}) | 
					
						
							|  |  |  |         })], | 
					
						
							|  |  |  |         viewQueries: [new CompileQueryMetadata({ | 
					
						
							|  |  |  |           selectors: [new CompileTokenMetadata({value: 'selector'})], | 
					
						
							|  |  |  |           descendants: true, | 
					
						
							|  |  |  |           first: false, | 
					
						
							|  |  |  |           propertyName: 'prop', | 
					
						
							|  |  |  |           read: new CompileTokenMetadata({value: 'readToken'}) | 
					
						
							|  |  |  |         })] | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-10 19:36:16 -07:00
										 |  |  |     describe('CompileIdentifierMetadata', () => { | 
					
						
							|  |  |  |       it('should serialize with full data', () => { | 
					
						
							|  |  |  |         let full = new CompileIdentifierMetadata( | 
					
						
							| 
									
										
										
										
											2016-01-06 14:13:44 -08:00
										 |  |  |             {name: 'name', moduleUrl: 'module', value: ['one', ['two']]}); | 
					
						
							| 
									
										
										
										
											2016-04-10 19:36:16 -07:00
										 |  |  |         expect(CompileIdentifierMetadata.fromJson(full.toJson())).toEqual(full); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should serialize with no data', () => { | 
					
						
							|  |  |  |         let empty = new CompileIdentifierMetadata(); | 
					
						
							|  |  |  |         expect(CompileIdentifierMetadata.fromJson(empty.toJson())).toEqual(empty); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |     describe('DirectiveMetadata', () => { | 
					
						
							|  |  |  |       it('should serialize with full data', () => { | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |         expect(CompileDirectiveMetadata.fromJson(fullDirectiveMeta.toJson())) | 
					
						
							| 
									
										
										
										
											2015-09-14 15:59:09 -07:00
										 |  |  |             .toEqual(fullDirectiveMeta); | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should serialize with no data', () => { | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |         var empty = CompileDirectiveMetadata.create(); | 
					
						
							|  |  |  |         expect(CompileDirectiveMetadata.fromJson(empty.toJson())).toEqual(empty); | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe('TypeMetadata', () => { | 
					
						
							|  |  |  |       it('should serialize with full data', () => { | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |         expect(CompileTypeMetadata.fromJson(fullTypeMeta.toJson())).toEqual(fullTypeMeta); | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should serialize with no data', () => { | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |         var empty = new CompileTypeMetadata(); | 
					
						
							|  |  |  |         expect(CompileTypeMetadata.fromJson(empty.toJson())).toEqual(empty); | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |     describe('TemplateMetadata', () => { | 
					
						
							| 
									
										
										
										
											2015-10-05 09:49:05 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |       it('should serialize with full data', () => { | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |         expect(CompileTemplateMetadata.fromJson(fullTemplateMeta.toJson())) | 
					
						
							|  |  |  |             .toEqual(fullTemplateMeta); | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should serialize with no data', () => { | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |         var empty = new CompileTemplateMetadata(); | 
					
						
							|  |  |  |         expect(CompileTemplateMetadata.fromJson(empty.toJson())).toEqual(empty); | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |       }); | 
					
						
							| 
									
										
										
										
											2016-06-20 09:52:41 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |       it('should throw an error with invalid interpolation symbols', () => { | 
					
						
							|  |  |  |         expect(() => new CompileTemplateMetadata(<any>{interpolation: ['{{']})) | 
					
						
							|  |  |  |             .toThrowError(`'interpolation' should have a start and an end symbol.`); | 
					
						
							|  |  |  |       }); | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |     }); | 
					
						
							| 
									
										
										
										
											2016-05-25 12:46:22 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     describe('CompileAnimationStyleMetadata', () => { | 
					
						
							|  |  |  |       it('should serialize with full data', () => { | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  |         let full = new CompileAnimationStyleMetadata(0, [{'opacity': 0, 'color': 'red'}]); | 
					
						
							| 
									
										
										
										
											2016-05-25 12:46:22 -07:00
										 |  |  |         expect(CompileAnimationStyleMetadata.fromJson(full.toJson())).toEqual(full); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should serialize with no data', () => { | 
					
						
							|  |  |  |         let empty = new CompileAnimationStyleMetadata(0, []); | 
					
						
							|  |  |  |         expect(CompileAnimationStyleMetadata.fromJson(empty.toJson())).toEqual(empty); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe('CompileAnimationAnimateMetadata', () => { | 
					
						
							|  |  |  |       it('should serialize with full data', () => { | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  |         let full = new CompileAnimationAnimateMetadata( | 
					
						
							|  |  |  |             '1s linear', new CompileAnimationStyleMetadata(0, [{'opacity': 0.5, 'color': 'blue'}])) | 
					
						
							| 
									
										
										
										
											2016-05-25 12:46:22 -07:00
										 |  |  |         expect(CompileAnimationAnimateMetadata.fromJson(full.toJson())).toEqual(full); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should serialize with no data', () => { | 
					
						
							|  |  |  |         let empty = new CompileAnimationAnimateMetadata(); | 
					
						
							|  |  |  |         expect(CompileAnimationAnimateMetadata.fromJson(empty.toJson())).toEqual(empty); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe('CompileAnimationSequenceMetadata', () => { | 
					
						
							|  |  |  |       it('should serialize with full data', () => { | 
					
						
							|  |  |  |         let full = new CompileAnimationSequenceMetadata([ | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  |           new CompileAnimationStyleMetadata(0, [{'opacity': 0.5, 'width': 100}]), | 
					
						
							|  |  |  |           new CompileAnimationAnimateMetadata( | 
					
						
							|  |  |  |               1000, new CompileAnimationStyleMetadata(0, [{'opacity': 1, 'width': 0}])) | 
					
						
							| 
									
										
										
										
											2016-05-25 12:46:22 -07:00
										 |  |  |         ]); | 
					
						
							|  |  |  |         expect(CompileAnimationSequenceMetadata.fromJson(full.toJson())).toEqual(full); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should serialize with no data', () => { | 
					
						
							|  |  |  |         let empty = new CompileAnimationSequenceMetadata(); | 
					
						
							|  |  |  |         expect(CompileAnimationSequenceMetadata.fromJson(empty.toJson())).toEqual(empty); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe('CompileAnimationGroupMetadata', () => { | 
					
						
							|  |  |  |       it('should serialize with full data', () => { | 
					
						
							|  |  |  |         let full = new CompileAnimationGroupMetadata([ | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  |           new CompileAnimationStyleMetadata(0, [{'width': 100, 'border': '1px solid red'}]), | 
					
						
							|  |  |  |           new CompileAnimationAnimateMetadata( | 
					
						
							|  |  |  |               1000, new CompileAnimationStyleMetadata( | 
					
						
							|  |  |  |                         0, [{'width': 900, 'border': '10px solid blue'}])) | 
					
						
							| 
									
										
										
										
											2016-05-25 12:46:22 -07:00
										 |  |  |         ]); | 
					
						
							|  |  |  |         expect(CompileAnimationGroupMetadata.fromJson(full.toJson())).toEqual(full); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should serialize with no data', () => { | 
					
						
							|  |  |  |         let empty = new CompileAnimationGroupMetadata(); | 
					
						
							|  |  |  |         expect(CompileAnimationGroupMetadata.fromJson(empty.toJson())).toEqual(empty); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe('CompileAnimationKeyframesSequenceMetadata', () => { | 
					
						
							|  |  |  |       it('should serialize with full data', () => { | 
					
						
							|  |  |  |         let full = new CompileAnimationKeyframesSequenceMetadata([ | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  |           new CompileAnimationStyleMetadata(0, [{'width': 0}]), | 
					
						
							|  |  |  |           new CompileAnimationStyleMetadata(0.5, [{'width': 100}]), | 
					
						
							|  |  |  |           new CompileAnimationStyleMetadata(1, [{'width': 200}]), | 
					
						
							| 
									
										
										
										
											2016-05-25 12:46:22 -07:00
										 |  |  |         ]); | 
					
						
							|  |  |  |         expect(CompileAnimationKeyframesSequenceMetadata.fromJson(full.toJson())).toEqual(full); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should serialize with no data', () => { | 
					
						
							|  |  |  |         let empty = new CompileAnimationKeyframesSequenceMetadata(); | 
					
						
							|  |  |  |         expect(CompileAnimationKeyframesSequenceMetadata.fromJson(empty.toJson())).toEqual(empty); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe('CompileAnimationEntryMetadata', () => { | 
					
						
							|  |  |  |       it('should serialize with full data', () => { | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  |         let full = new CompileAnimationEntryMetadata( | 
					
						
							|  |  |  |             'name', [new CompileAnimationStateTransitionMetadata( | 
					
						
							|  |  |  |                         'key => value', new CompileAnimationSequenceMetadata([ | 
					
						
							|  |  |  |                           new CompileAnimationStyleMetadata(0, [{'color': 'red'}]), | 
					
						
							|  |  |  |                           new CompileAnimationAnimateMetadata( | 
					
						
							|  |  |  |                               1000, new CompileAnimationStyleMetadata(0, [{'color': 'blue'}])) | 
					
						
							|  |  |  |                         ]))]); | 
					
						
							| 
									
										
										
										
											2016-05-25 12:46:22 -07:00
										 |  |  |         expect(CompileAnimationEntryMetadata.fromJson(full.toJson())).toEqual(full); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should serialize with no data', () => { | 
					
						
							|  |  |  |         let empty = new CompileAnimationEntryMetadata(); | 
					
						
							|  |  |  |         expect(CompileAnimationEntryMetadata.fromJson(empty.toJson())).toEqual(empty); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |   }); | 
					
						
							| 
									
										
										
										
											2015-10-02 07:37:23 -07:00
										 |  |  | } |