| 
									
										
										
										
											2015-05-23 09:51:40 -07:00
										 |  |  | // Tun on full stack traces in errors to help debugging
 | 
					
						
							|  |  |  | Error.stackTraceLimit=Infinity; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-15 05:14:03 +00:00
										 |  |  | jasmine.DEFAULT_TIMEOUT_INTERVAL = 100; | 
					
						
							| 
									
										
										
										
											2014-10-06 17:35:00 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | // Cancel Karma's synchronous start,
 | 
					
						
							|  |  |  | // we will call `__karma__.start()` later, once all the specs are loaded.
 | 
					
						
							|  |  |  | __karma__.loaded = function() {}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-14 15:05:56 -07:00
										 |  |  | System.config({ | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |   baseURL: '/base', | 
					
						
							| 
									
										
										
										
											2015-08-14 15:05:56 -07:00
										 |  |  |   defaultJSExtensions: true, | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |   map: { | 
					
						
							| 
									
										
										
										
											2015-08-14 15:05:56 -07:00
										 |  |  |     'benchpress/*': 'dist/js/dev/es5/benchpress/*.js', | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |     '@angular': 'dist/all/@angular', | 
					
						
							|  |  |  |     'rxjs': 'node_modules/rxjs', | 
					
						
							|  |  |  |     'parse5/index': 'dist/all/empty.js', | 
					
						
							|  |  |  |     '@angular/platform-server/src/parse5_adapter': 'dist/all/empty.js', | 
					
						
							|  |  |  |     'angular2/*': 'dist/all/angular2/*.js', | 
					
						
							| 
									
										
										
										
											2016-05-02 10:36:58 -07:00
										 |  |  |     'angular2/src/alt_router/router_testing_providers': 'dist/all/angular2/src/alt_router/router_testing_providers.js' | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |   }, | 
					
						
							|  |  |  |   packages: { | 
					
						
							| 
									
										
										
										
											2016-08-30 18:07:40 -07:00
										 |  |  |     '@angular/core/testing': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |     '@angular/core': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-08-30 18:07:40 -07:00
										 |  |  |     '@angular/compiler/testing': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |     '@angular/compiler': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-08-30 18:07:40 -07:00
										 |  |  |     '@angular/common/testing': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |     '@angular/common': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-06-14 18:23:40 -07:00
										 |  |  |     '@angular/forms': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |     // remove after all tests imports are fixed
 | 
					
						
							|  |  |  |     '@angular/facade': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-08-30 18:07:40 -07:00
										 |  |  |     '@angular/router/testing': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-08-09 15:18:55 -07:00
										 |  |  |     '@angular/router': { | 
					
						
							| 
									
										
										
										
											2016-05-02 10:36:58 -07:00
										 |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-08-30 18:07:40 -07:00
										 |  |  |     '@angular/http/testing': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |     '@angular/http': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     '@angular/upgrade': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-08-30 18:07:40 -07:00
										 |  |  |     '@angular/platform-browser/testing': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |     '@angular/platform-browser': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-08-30 18:07:40 -07:00
										 |  |  |     '@angular/platform-browser-dynamic/testing': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-06-10 10:21:53 -07:00
										 |  |  |     '@angular/platform-browser-dynamic': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-08-30 18:07:40 -07:00
										 |  |  |     '@angular/platform-server/testing': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |     '@angular/platform-server': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							| 
									
										
										
										
											2016-08-30 11:15:25 -07:00
										 |  |  |     }, | 
					
						
							|  |  |  |     '@angular/platform-webworker': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     '@angular/platform-webworker-dynamic': { | 
					
						
							|  |  |  |       main: 'index.js', | 
					
						
							|  |  |  |       defaultExtension: 'js' | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-08-14 15:05:56 -07:00
										 |  |  |   } | 
					
						
							|  |  |  | }); | 
					
						
							| 
									
										
										
										
											2014-10-06 17:35:00 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-15 16:38:27 -08:00
										 |  |  | // Set up the test injector, then import all the specs, execute their `main()`
 | 
					
						
							|  |  |  | // method and kick off Karma (Jasmine).
 | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | System.import('@angular/core/testing') | 
					
						
							|  |  |  |   .then(function(coreTesting){ | 
					
						
							| 
									
										
										
										
											2016-06-10 10:21:53 -07:00
										 |  |  |     return System.import('@angular/platform-browser-dynamic/testing') | 
					
						
							| 
									
										
											  
											
												feat(testing): add implicit test module
Every test now has an implicit module. It can be configured via `configureModule` (from @angular/core/testing)
to add providers, directives, pipes, ...
The compiler now has to be configured separately via `configureCompiler` (from @angular/core/testing)
to add providers or define whether to use jit.
BREAKING CHANGE:
- Application providers can no longer inject compiler internals (i.e. everything
  from `@angular/compiler). Inject `Compiler` instead. This reflects the
  changes to `bootstrap` for module support (3f55aa609f60f130f1d69188ed057214b1267cb3).
- Compiler providers can no longer be added via `addProviders` / `withProviders`.
  Use the new method `configureCompiler` instead.
- Platform directives / pipes need to be provided via
  `configureModule` and can no longer be provided via the
  `PLATFORM_PIPES` / `PLATFORM_DIRECTIVES` tokens.
- `setBaseTestProviders()` was renamed into `initTestEnvironment` and 
  now takes a `PlatformRef` and a factory for a
  `Compiler`.
- E.g. for the browser platform:
  
  BEFORE:
  ```
  import {setBaseTestProviders} from ‘@angular/core/testing’;
  import {TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,
      TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS} from ‘@angular/platform-browser-dynamic/testing’;
  
  setBaseTestProviders(TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,
      TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS);   
  ```
  AFTER:
  ```
  import {setBaseTestProviders} from ‘@angular/core/testing’;
  import {browserTestCompiler, browserDynamicTestPlatform,
      BrowserDynamicTestModule} from ‘@angular/platform-browser-dynamic/testing’;
  
  initTestEnvironment(
      browserTestCompiler,
      browserDynamicTestPlatform(),
      BrowserDynamicTestModule);
  ```
- E.g. for the server platform:
  
  BEFORE:
  ```
  import {setBaseTestProviders} from ‘@angular/core/testing’;
  import {TEST_SERVER_PLATFORM_PROVIDERS,
      TEST_SERVER_APPLICATION_PROVIDERS} from ‘@angular/platform-server/testing/server’;
  
  setBaseTestProviders(TEST_SERVER_PLATFORM_PROVIDERS,
      TEST_SERVER_APPLICATION_PROVIDERS);   
  ```
  AFTER:
  ```
  import {setBaseTestProviders} from ‘@angular/core/testing’;
  import {serverTestCompiler, serverTestPlatform,
      ServerTestModule} from ‘@angular/platform-browser-dynamic/testing’;
  
  initTestEnvironment(
      serverTestCompiler,
      serverTestPlatform(),
      ServerTestModule);
  ```
Related to #9726
Closes #9846
											
										 
											2016-07-04 09:37:30 -07:00
										 |  |  |       .then(function(browserTesting) { | 
					
						
							| 
									
										
										
										
											2016-07-28 04:54:49 -07:00
										 |  |  |          coreTesting.TestBed.initTestEnvironment( | 
					
						
							| 
									
										
										
										
											2016-07-18 03:50:31 -07:00
										 |  |  |            browserTesting.BrowserDynamicTestingModule, | 
					
						
							| 
									
										
										
										
											2016-07-27 02:59:40 -07:00
										 |  |  |            browserTesting.platformBrowserDynamicTesting()); | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  |       }); | 
					
						
							|  |  |  |   }) | 
					
						
							|  |  |  | .then(function() { | 
					
						
							| 
									
										
										
										
											2015-02-27 14:50:06 -08:00
										 |  |  |   return Promise.all( | 
					
						
							|  |  |  |     Object.keys(window.__karma__.files) // All files served by Karma.
 | 
					
						
							|  |  |  |     .filter(onlySpecFiles) | 
					
						
							|  |  |  |     .map(window.file2moduleName)        // Normalize paths to module names.
 | 
					
						
							|  |  |  |     .map(function(path) { | 
					
						
							|  |  |  |       return System.import(path).then(function(module) { | 
					
						
							|  |  |  |         if (module.hasOwnProperty('main')) { | 
					
						
							| 
									
										
										
										
											2015-04-01 15:30:46 +02:00
										 |  |  |           module.main(); | 
					
						
							| 
									
										
										
										
											2015-02-27 14:50:06 -08:00
										 |  |  |         } else { | 
					
						
							|  |  |  |           throw new Error('Module ' + path + ' does not implement main() method.'); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       }); | 
					
						
							| 
									
										
										
										
											2015-04-01 15:30:46 +02:00
										 |  |  |     })); | 
					
						
							| 
									
										
										
										
											2015-02-27 14:50:06 -08:00
										 |  |  | }) | 
					
						
							|  |  |  | .then(function() { | 
					
						
							| 
									
										
										
										
											2014-10-06 17:35:00 -07:00
										 |  |  |   __karma__.start(); | 
					
						
							|  |  |  | }, function(error) { | 
					
						
							| 
									
										
										
										
											2015-08-26 11:45:30 +01:00
										 |  |  |   __karma__.error(error.stack || error); | 
					
						
							| 
									
										
										
										
											2014-09-25 14:04:46 -07:00
										 |  |  | }); | 
					
						
							| 
									
										
										
										
											2014-10-06 17:35:00 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function onlySpecFiles(path) { | 
					
						
							|  |  |  |   return /_spec\.js$/.test(path); | 
					
						
							|  |  |  | } |