With providers split into bundles, the test injector is now able to
use providers for a given bundle. Suggested provider lists for tests are
available in `angular2/platform/testing/<platform>`.
Change the providers for a test suite using `setBaseTestProviders`. This
should be done once at the start of the test suite, before any test cases
run.
BREAKING CHANGE: Tests are now required to use `setBaseTestProviders`
to set up. Assuming your tests are run on a browser, setup would change
as follows.
Before:
```js
// Somewhere in test setup
import {BrowserDomAdapter} from 'angular2/src/platform/browser/browser_adapter';
BrowserDomAdapter.makeCurrent
```
After:
```js
// Somewhere in the test setup
import {setBaseTestProviders} from 'angular2/testing';
import {
  TEST_BROWSER_PLATFORM_PROVIDERS,
  TEST_BROWSER_APPLICATION_PROVIDERS
} from 'angular2/platform/testing/browser';
setBaseTestProviders(TEST_BROWSER_PLATFORM_PROVIDERS,
                     TEST_BROWSER_APPLICATION_PROVIDERS);
```
Closes #5351, Closes #5585
Closes #5975
		
	
			
		
			
				
	
	
		
			91 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {
 | 
						|
  APP_ID,
 | 
						|
  DirectiveResolver,
 | 
						|
  NgZone,
 | 
						|
  Provider,
 | 
						|
  ViewResolver,
 | 
						|
  PLATFORM_COMMON_PROVIDERS,
 | 
						|
  PLATFORM_INITIALIZER,
 | 
						|
  APPLICATION_COMMON_PROVIDERS,
 | 
						|
  Renderer
 | 
						|
} from 'angular2/core';
 | 
						|
import {Parse5DomAdapter} from 'angular2/src/platform/server/parse5_adapter';
 | 
						|
 | 
						|
import {AnimationBuilder} from 'angular2/src/animate/animation_builder';
 | 
						|
import {MockAnimationBuilder} from 'angular2/src/mock/animation_builder_mock';
 | 
						|
import {MockDirectiveResolver} from 'angular2/src/mock/directive_resolver_mock';
 | 
						|
import {MockViewResolver} from 'angular2/src/mock/view_resolver_mock';
 | 
						|
import {MockLocationStrategy} from 'angular2/src/mock/mock_location_strategy';
 | 
						|
import {LocationStrategy} from 'angular2/src/router/location_strategy';
 | 
						|
import {MockNgZone} from 'angular2/src/mock/ng_zone_mock';
 | 
						|
 | 
						|
import {TestComponentBuilder} from 'angular2/src/testing/test_component_builder';
 | 
						|
import {XHR} from 'angular2/src/compiler/xhr';
 | 
						|
import {BrowserDetection} from 'angular2/src/testing/utils';
 | 
						|
 | 
						|
import {COMPILER_PROVIDERS} from 'angular2/src/compiler/compiler';
 | 
						|
import {DOCUMENT} from 'angular2/src/platform/dom/dom_tokens';
 | 
						|
import {DOM} from 'angular2/src/platform/dom/dom_adapter';
 | 
						|
import {RootRenderer} from 'angular2/src/core/render/api';
 | 
						|
import {DomRootRenderer, DomRootRenderer_} from 'angular2/src/platform/dom/dom_renderer';
 | 
						|
import {DomSharedStylesHost} from 'angular2/src/platform/dom/shared_styles_host';
 | 
						|
 | 
						|
import {
 | 
						|
  EventManager,
 | 
						|
  EVENT_MANAGER_PLUGINS,
 | 
						|
  ELEMENT_PROBE_PROVIDERS
 | 
						|
} from 'angular2/platform/common_dom';
 | 
						|
import {DomEventsPlugin} from 'angular2/src/platform/dom/events/dom_events';
 | 
						|
 | 
						|
import {CONST_EXPR} from 'angular2/src/facade/lang';
 | 
						|
 | 
						|
import {Log} from 'angular2/src/testing/utils';
 | 
						|
 | 
						|
function initServerTests() {
 | 
						|
  Parse5DomAdapter.makeCurrent();
 | 
						|
  BrowserDetection.setup();
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Default patform providers for testing.
 | 
						|
 */
 | 
						|
export const TEST_SERVER_PLATFORM_PROVIDERS: Array<any /*Type | Provider | any[]*/> = CONST_EXPR([
 | 
						|
  PLATFORM_COMMON_PROVIDERS,
 | 
						|
  new Provider(PLATFORM_INITIALIZER, {useValue: initServerTests, multi: true})
 | 
						|
]);
 | 
						|
 | 
						|
function appDoc() {
 | 
						|
  try {
 | 
						|
    return DOM.defaultDoc();
 | 
						|
  } catch (e) {
 | 
						|
    return null;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Default application providers for testing.
 | 
						|
 */
 | 
						|
export const TEST_SERVER_APPLICATION_PROVIDERS: Array<any /*Type | Provider | any[]*/> =
 | 
						|
    CONST_EXPR([
 | 
						|
      // TODO(julie): when angular2/platform/server is available, use that instead of making our own
 | 
						|
      // list here.
 | 
						|
      APPLICATION_COMMON_PROVIDERS,
 | 
						|
      COMPILER_PROVIDERS,
 | 
						|
      new Provider(DOCUMENT, {useFactory: appDoc}),
 | 
						|
      new Provider(DomRootRenderer, {useClass: DomRootRenderer_}),
 | 
						|
      new Provider(RootRenderer, {useExisting: DomRootRenderer}),
 | 
						|
      EventManager,
 | 
						|
      new Provider(EVENT_MANAGER_PLUGINS, {useClass: DomEventsPlugin, multi: true}),
 | 
						|
      new Provider(XHR, {useClass: XHR}),
 | 
						|
      new Provider(APP_ID, {useValue: 'a'}),
 | 
						|
      DomSharedStylesHost,
 | 
						|
      ELEMENT_PROBE_PROVIDERS,
 | 
						|
      new Provider(DirectiveResolver, {useClass: MockDirectiveResolver}),
 | 
						|
      new Provider(ViewResolver, {useClass: MockViewResolver}),
 | 
						|
      Log,
 | 
						|
      TestComponentBuilder,
 | 
						|
      new Provider(NgZone, {useClass: MockNgZone}),
 | 
						|
      new Provider(LocationStrategy, {useClass: MockLocationStrategy}),
 | 
						|
      new Provider(AnimationBuilder, {useClass: MockAnimationBuilder}),
 | 
						|
    ]);
 |