| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  | import { | 
					
						
							|  |  |  |   AsyncTestCompleter, | 
					
						
							|  |  |  |   beforeEach, | 
					
						
							|  |  |  |   ddescribe, | 
					
						
							|  |  |  |   describe, | 
					
						
							|  |  |  |   el, | 
					
						
							|  |  |  |   expect, | 
					
						
							|  |  |  |   iit, | 
					
						
							|  |  |  |   inject, | 
					
						
							|  |  |  |   it, | 
					
						
							|  |  |  |   xit, | 
					
						
							|  |  |  |   TestComponentBuilder | 
					
						
							|  |  |  | } from 'angular2/testing_internal'; | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  | import { | 
					
						
							|  |  |  |   CompileDirectiveMetadata, | 
					
						
							|  |  |  |   CompileTypeMetadata, | 
					
						
							|  |  |  |   CompileTemplateMetadata, | 
					
						
							|  |  |  |   CompileProviderMetadata, | 
					
						
							|  |  |  |   CompileDiDependencyMetadata, | 
					
						
							|  |  |  |   CompileQueryMetadata, | 
					
						
							|  |  |  |   CompileIdentifierMetadata, | 
					
						
							|  |  |  |   CompileFactoryMetadata | 
					
						
							|  |  |  | } from 'angular2/src/compiler/directive_metadata'; | 
					
						
							| 
									
										
										
										
											2015-10-05 10:10:07 -07:00
										 |  |  | import {ViewEncapsulation} from 'angular2/src/core/metadata/view'; | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  | import {ChangeDetectionStrategy} from 'angular2/src/core/change_detection'; | 
					
						
							| 
									
										
										
										
											2015-10-02 07:37:23 -07:00
										 |  |  | import {LifecycleHooks} from 'angular2/src/core/linker/interfaces'; | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | export function main() { | 
					
						
							| 
									
										
										
										
											2015-09-14 15:59:09 -07:00
										 |  |  |   describe('DirectiveMetadata', () => { | 
					
						
							| 
									
										
										
										
											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, | 
					
						
							|  |  |  |         token: 'someToken', | 
					
						
							|  |  |  |         query: new CompileQueryMetadata( | 
					
						
							|  |  |  |             {selectors: ['one'], descendants: true, first: true, propertyName: 'one'}), | 
					
						
							|  |  |  |         viewQuery: new CompileQueryMetadata( | 
					
						
							|  |  |  |             {selectors: ['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'], | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |         ngContentSelectors: ['*'] | 
					
						
							|  |  |  |       }); | 
					
						
							| 
									
										
										
										
											2015-09-18 10:33:23 -07:00
										 |  |  |       fullDirectiveMeta = CompileDirectiveMetadata.create({ | 
					
						
							| 
									
										
										
										
											2015-09-11 13:35:46 -07:00
										 |  |  |         selector: 'someSelector', | 
					
						
							|  |  |  |         isComponent: true, | 
					
						
							| 
									
										
										
										
											2015-09-14 15:59:09 -07:00
										 |  |  |         dynamicLoadable: 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-04-12 09:40:37 -07:00
										 |  |  |         providers: [ | 
					
						
							|  |  |  |           new CompileProviderMetadata({ | 
					
						
							|  |  |  |             token: 'token', | 
					
						
							|  |  |  |             useClass: fullTypeMeta, | 
					
						
							|  |  |  |             useExisting: new CompileIdentifierMetadata({name: 'someName'}), | 
					
						
							|  |  |  |             useFactory: new CompileFactoryMetadata({name: 'someName', diDeps: [diDep]}), | 
					
						
							|  |  |  |             useValue: 'someValue', | 
					
						
							|  |  |  |           }) | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |         viewProviders: [ | 
					
						
							|  |  |  |           new CompileProviderMetadata({ | 
					
						
							|  |  |  |             token: 'token', | 
					
						
							|  |  |  |             useClass: fullTypeMeta, | 
					
						
							|  |  |  |             useExisting: new CompileIdentifierMetadata({name: 'someName'}), | 
					
						
							|  |  |  |             useFactory: new CompileFactoryMetadata({name: 'someName', diDeps: [diDep]}), | 
					
						
							|  |  |  |             useValue: 'someValue', | 
					
						
							|  |  |  |           }) | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |         queries: [ | 
					
						
							|  |  |  |           new CompileQueryMetadata( | 
					
						
							|  |  |  |               {selectors: ['selector'], descendants: true, first: false, propertyName: 'prop'}) | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |         viewQueries: [ | 
					
						
							|  |  |  |           new CompileQueryMetadata( | 
					
						
							|  |  |  |               {selectors: ['selector'], descendants: true, first: false, propertyName: 'prop'}) | 
					
						
							|  |  |  |         ] | 
					
						
							| 
									
										
										
										
											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( | 
					
						
							|  |  |  |             {name: 'name', moduleUrl: 'module', constConstructor: true, value: ['one', ['two']]}); | 
					
						
							|  |  |  |         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
										 |  |  |       it('should use ViewEncapsulation.Emulated by default', () => { | 
					
						
							|  |  |  |         expect(new CompileTemplateMetadata({encapsulation: null}).encapsulation) | 
					
						
							|  |  |  |             .toBe(ViewEncapsulation.Emulated); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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
										 |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2015-10-02 07:37:23 -07:00
										 |  |  | } |