| 
									
										
										
										
											2016-12-27 15:23:49 -08: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
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-20 15:04:20 -07:00
										 |  |  | import {Component, Directive, Input} from '@angular/core'; | 
					
						
							| 
									
										
										
										
											2016-12-27 15:23:49 -08:00
										 |  |  | import {ComponentFixture, TestBed, async} from '@angular/core/testing'; | 
					
						
							|  |  |  | import {By} from '@angular/platform-browser/src/dom/debug/by'; | 
					
						
							| 
									
										
										
										
											2017-04-13 10:37:45 -07:00
										 |  |  | import {browserDetection} from '@angular/platform-browser/testing/src/browser_util'; | 
					
						
							| 
									
										
										
										
											2017-03-02 12:12:46 -08:00
										 |  |  | import {expect} from '@angular/platform-browser/testing/src/matchers'; | 
					
						
							| 
									
										
										
										
											2016-12-27 15:23:49 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | export function main() { | 
					
						
							|  |  |  |   describe('integration tests', () => { | 
					
						
							|  |  |  |     let fixture: ComponentFixture<TestComponent>; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-13 10:37:45 -07:00
										 |  |  |     describe('directives', () => { | 
					
						
							| 
									
										
										
										
											2016-12-27 15:23:49 -08:00
										 |  |  |       it('should support dotted selectors', async(() => { | 
					
						
							|  |  |  |            @Directive({selector: '[dot.name]'}) | 
					
						
							|  |  |  |            class MyDir { | 
					
						
							|  |  |  |              @Input('dot.name') value: string; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            TestBed.configureTestingModule({ | 
					
						
							|  |  |  |              declarations: [ | 
					
						
							|  |  |  |                MyDir, | 
					
						
							|  |  |  |                TestComponent, | 
					
						
							|  |  |  |              ], | 
					
						
							|  |  |  |            }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            const template = `<div [dot.name]="'foo'"></div>`; | 
					
						
							|  |  |  |            fixture = createTestComponent(template); | 
					
						
							|  |  |  |            fixture.detectChanges(); | 
					
						
							|  |  |  |            const myDir = fixture.debugElement.query(By.directive(MyDir)).injector.get(MyDir); | 
					
						
							|  |  |  |            expect(myDir.value).toEqual('foo'); | 
					
						
							|  |  |  |          })); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-13 10:37:45 -07:00
										 |  |  |     describe('ng-container', () => { | 
					
						
							|  |  |  |       if (browserDetection.isChromeDesktop) { | 
					
						
							|  |  |  |         it('should work regardless the namespace', async(() => { | 
					
						
							|  |  |  |              @Component({ | 
					
						
							|  |  |  |                selector: 'comp', | 
					
						
							|  |  |  |                template: | 
					
						
							|  |  |  |                    '<svg><ng-container *ngIf="1"><rect x="10" y="10" width="30" height="30"></rect></ng-container></svg>', | 
					
						
							|  |  |  |              }) | 
					
						
							|  |  |  |              class MyCmp { | 
					
						
							|  |  |  |              } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |              const f = | 
					
						
							|  |  |  |                  TestBed.configureTestingModule({declarations: [MyCmp]}).createComponent(MyCmp); | 
					
						
							|  |  |  |              f.detectChanges(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |              expect(f.nativeElement.children[0].children[0].tagName).toEqual('rect'); | 
					
						
							|  |  |  |            })); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2016-12-27 15:23:49 -08:00
										 |  |  |   }); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @Component({selector: 'test-cmp', template: ''}) | 
					
						
							|  |  |  | class TestComponent { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function createTestComponent(template: string): ComponentFixture<TestComponent> { | 
					
						
							|  |  |  |   return TestBed.overrideComponent(TestComponent, {set: {template: template}}) | 
					
						
							|  |  |  |       .createComponent(TestComponent); | 
					
						
							|  |  |  | } |