| 
									
										
										
										
											2016-06-23 09:47:54 -07:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @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
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-31 09:15:17 -07:00
										 |  |  | require('reflect-metadata'); | 
					
						
							|  |  |  | require('zone.js/dist/zone-node.js'); | 
					
						
							|  |  |  | require('zone.js/dist/long-stack-trace-zone.js'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import {AnimateCmpNgFactory} from '../src/animate.ngfactory'; | 
					
						
							| 
									
										
										
										
											2016-06-17 14:09:19 -07:00
										 |  |  | import {ReflectiveInjector, DebugElement, getDebugNode, lockRunMode} from '@angular/core'; | 
					
						
							| 
									
										
										
										
											2016-06-14 19:49:25 -07:00
										 |  |  | import {serverPlatform} from '@angular/platform-server'; | 
					
						
							|  |  |  | import {BROWSER_APP_PROVIDERS} from '@angular/platform-browser'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-31 09:15:17 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-17 14:09:19 -07:00
										 |  |  | // Need to lock the mode explicitely as this test is not using Angular's testing framework.
 | 
					
						
							|  |  |  | lockRunMode(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  | describe('template codegen output', () => { | 
					
						
							| 
									
										
										
										
											2016-06-03 17:52:33 -07:00
										 |  |  |   function findTargetElement(elm: DebugElement): DebugElement { | 
					
						
							|  |  |  |     // the open-close-container is a child of the main container
 | 
					
						
							|  |  |  |     // if the template changes then please update the location below
 | 
					
						
							|  |  |  |     return elm.children[4]; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  |   it('should apply the animate states to the element', (done) => { | 
					
						
							| 
									
										
										
										
											2016-06-19 22:27:29 +02:00
										 |  |  |     const appInjector = | 
					
						
							|  |  |  |         ReflectiveInjector.resolveAndCreate(BROWSER_APP_PROVIDERS, serverPlatform().injector); | 
					
						
							| 
									
										
										
										
											2016-05-31 09:15:17 -07:00
										 |  |  |     var comp = AnimateCmpNgFactory.create(appInjector); | 
					
						
							|  |  |  |     var debugElement = <DebugElement>getDebugNode(comp.location.nativeElement); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-03 17:52:33 -07:00
										 |  |  |     var targetDebugElement = findTargetElement(<DebugElement>debugElement); | 
					
						
							| 
									
										
										
										
											2016-05-31 09:15:17 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     comp.instance.setAsOpen(); | 
					
						
							|  |  |  |     comp.changeDetectorRef.detectChanges(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     setTimeout(() => { | 
					
						
							| 
									
										
										
										
											2016-06-03 18:27:34 -07:00
										 |  |  |       expect(targetDebugElement.styles['height']).toEqual(null); | 
					
						
							| 
									
										
										
										
											2016-05-31 09:15:17 -07:00
										 |  |  |       expect(targetDebugElement.styles['borderColor']).toEqual('green'); | 
					
						
							|  |  |  |       expect(targetDebugElement.styles['color']).toEqual('green'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       comp.instance.setAsClosed(); | 
					
						
							|  |  |  |       comp.changeDetectorRef.detectChanges(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       setTimeout(() => { | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  |         expect(targetDebugElement.styles['height']).toEqual('0px'); | 
					
						
							| 
									
										
										
										
											2016-05-31 09:15:17 -07:00
										 |  |  |         expect(targetDebugElement.styles['borderColor']).toEqual('maroon'); | 
					
						
							|  |  |  |         expect(targetDebugElement.styles['color']).toEqual('maroon'); | 
					
						
							|  |  |  |         done(); | 
					
						
							|  |  |  |       }, 0); | 
					
						
							|  |  |  |     }, 0); | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2016-06-03 17:52:33 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 16:38:52 -07:00
										 |  |  |   it('should apply the default animate state to the element', (done) => { | 
					
						
							| 
									
										
										
										
											2016-06-19 22:27:29 +02:00
										 |  |  |     const appInjector = | 
					
						
							|  |  |  |         ReflectiveInjector.resolveAndCreate(BROWSER_APP_PROVIDERS, serverPlatform().injector); | 
					
						
							| 
									
										
										
										
											2016-06-03 17:52:33 -07:00
										 |  |  |     var comp = AnimateCmpNgFactory.create(appInjector); | 
					
						
							|  |  |  |     var debugElement = <DebugElement>getDebugNode(comp.location.nativeElement); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var targetDebugElement = findTargetElement(<DebugElement>debugElement); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     comp.instance.setAsSomethingElse(); | 
					
						
							|  |  |  |     comp.changeDetectorRef.detectChanges(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     setTimeout(() => { | 
					
						
							| 
									
										
										
										
											2016-06-03 18:27:34 -07:00
										 |  |  |       expect(targetDebugElement.styles['height']).toEqual(null); | 
					
						
							| 
									
										
										
										
											2016-06-03 17:52:33 -07:00
										 |  |  |       expect(targetDebugElement.styles['borderColor']).toEqual('black'); | 
					
						
							|  |  |  |       expect(targetDebugElement.styles['color']).toEqual('black'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       comp.instance.setAsClosed(); | 
					
						
							|  |  |  |       comp.changeDetectorRef.detectChanges(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       setTimeout(() => { | 
					
						
							| 
									
										
										
										
											2016-06-03 18:27:34 -07:00
										 |  |  |         expect(targetDebugElement.styles['height']).not.toEqual(null); | 
					
						
							| 
									
										
										
										
											2016-06-03 17:52:33 -07:00
										 |  |  |         expect(targetDebugElement.styles['borderColor']).not.toEqual('grey'); | 
					
						
							|  |  |  |         expect(targetDebugElement.styles['color']).not.toEqual('grey'); | 
					
						
							|  |  |  |         done(); | 
					
						
							|  |  |  |       }, 0); | 
					
						
							|  |  |  |     }, 0); | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2016-05-31 09:15:17 -07:00
										 |  |  | }); |