| 
									
										
										
										
											2016-01-06 14:13:44 -08:00
										 |  |  | import { | 
					
						
							|  |  |  |   beforeEach, | 
					
						
							|  |  |  |   ddescribe, | 
					
						
							|  |  |  |   describe, | 
					
						
							|  |  |  |   expect, | 
					
						
							|  |  |  |   iit, | 
					
						
							|  |  |  |   inject, | 
					
						
							|  |  |  |   it, | 
					
						
							|  |  |  |   xit, | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | } from '@angular/core/testing/testing_internal'; | 
					
						
							| 
									
										
										
										
											2016-01-06 14:13:44 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | import {getImportModulePath, ImportEnv} from '@angular/compiler/src/output/path_util'; | 
					
						
							| 
									
										
										
										
											2016-01-06 14:13:44 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | export function main() { | 
					
						
							|  |  |  |   describe('PathUtils', () => { | 
					
						
							|  |  |  |     describe('getImportModulePath', () => { | 
					
						
							|  |  |  |       it('should calculate relative paths for JS and Dart', () => { | 
					
						
							|  |  |  |         expect(getImportModulePath('asset:somePkg/lib/modPath', 'asset:somePkg/lib/impPath', | 
					
						
							|  |  |  |                                    ImportEnv.JS)) | 
					
						
							|  |  |  |             .toEqual('./impPath'); | 
					
						
							|  |  |  |         expect(getImportModulePath('asset:somePkg/lib/modPath', 'asset:somePkg/lib/impPath', | 
					
						
							|  |  |  |                                    ImportEnv.Dart)) | 
					
						
							|  |  |  |             .toEqual('impPath'); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should calculate relative paths for different constellations', () => { | 
					
						
							|  |  |  |         expect(getImportModulePath('asset:somePkg/test/modPath', 'asset:somePkg/test/impPath', | 
					
						
							|  |  |  |                                    ImportEnv.JS)) | 
					
						
							|  |  |  |             .toEqual('./impPath'); | 
					
						
							|  |  |  |         expect(getImportModulePath('asset:somePkg/lib/modPath', 'asset:somePkg/lib/dir2/impPath', | 
					
						
							|  |  |  |                                    ImportEnv.JS)) | 
					
						
							|  |  |  |             .toEqual('./dir2/impPath'); | 
					
						
							|  |  |  |         expect(getImportModulePath('asset:somePkg/lib/dir1/modPath', 'asset:somePkg/lib/impPath', | 
					
						
							|  |  |  |                                    ImportEnv.JS)) | 
					
						
							|  |  |  |             .toEqual('../impPath'); | 
					
						
							|  |  |  |         expect(getImportModulePath('asset:somePkg/lib/dir1/modPath', | 
					
						
							|  |  |  |                                    'asset:somePkg/lib/dir2/impPath', ImportEnv.JS)) | 
					
						
							|  |  |  |             .toEqual('../dir2/impPath'); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should calculate absolute paths for JS and Dart', () => { | 
					
						
							|  |  |  |         expect(getImportModulePath('asset:somePkg/lib/modPath', 'asset:someOtherPkg/lib/impPath', | 
					
						
							|  |  |  |                                    ImportEnv.JS)) | 
					
						
							|  |  |  |             .toEqual('someOtherPkg/impPath'); | 
					
						
							|  |  |  |         expect(getImportModulePath('asset:somePkg/lib/modPath', 'asset:someOtherPkg/lib/impPath', | 
					
						
							|  |  |  |                                    ImportEnv.Dart)) | 
					
						
							|  |  |  |             .toEqual('package:someOtherPkg/impPath'); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should not allow absolute imports of non lib modules', () => { | 
					
						
							|  |  |  |         expect(() => getImportModulePath('asset:somePkg/lib/modPath', 'asset:somePkg/test/impPath', | 
					
						
							|  |  |  |                                          ImportEnv.Dart)) | 
					
						
							|  |  |  |             .toThrowError( | 
					
						
							|  |  |  |                 `Can't import url asset:somePkg/test/impPath from asset:somePkg/lib/modPath`); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should not allow non asset urls as base url', () => { | 
					
						
							|  |  |  |         expect(() => getImportModulePath('http:somePkg/lib/modPath', 'asset:somePkg/test/impPath', | 
					
						
							|  |  |  |                                          ImportEnv.Dart)) | 
					
						
							|  |  |  |             .toThrowError(`Url http:somePkg/lib/modPath is not a valid asset: url`); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it('should allow non asset urls as import urls and pass them through', () => { | 
					
						
							|  |  |  |         expect(getImportModulePath('asset:somePkg/lib/modPath', 'dart:html', ImportEnv.Dart)) | 
					
						
							|  |  |  |             .toEqual('dart:html'); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | } |