angular2
Version:
Angular 2 - a web framework for modern web apps
1 lines • 8.94 kB
Source Map (JSON)
{"version":3,"sources":["test_bed.js"],"names":[],"mappings":"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","file":"angular2/src/test_lib/test_bed.es6","sourcesContent":["import {Injector, bind} from 'angular2/di';\n\nimport {Type, isPresent, BaseException} from 'angular2/src/facade/lang';\nimport {Promise} from 'angular2/src/facade/async';\nimport {isBlank} from 'angular2/src/facade/lang';\nimport {List} from 'angular2/src/facade/collection';\n\nimport {View} from 'angular2/src/core/annotations/view';\n\nimport {TemplateResolver} from 'angular2/src/core/compiler/template_resolver';\nimport {Compiler} from 'angular2/src/core/compiler/compiler';\nimport {AppView} from 'angular2/src/core/compiler/view';\nimport {ViewFactory} from 'angular2/src/core/compiler/view_factory';\nimport {AppViewHydrator} from 'angular2/src/core/compiler/view_hydrator';\n\nimport {DirectiveBinding} from 'angular2/src/core/compiler/element_injector';\nimport {DirectiveMetadataReader} from 'angular2/src/core/compiler/directive_metadata_reader';\n\nimport {queryView, viewRootNodes, el} from './utils';\nimport {instantiateType, getTypeOf} from './lang_utils';\n\n/**\n * @exportedAs angular2/test\n */\nexport class TestBed {\n _injector: Injector;\n\n constructor(injector: Injector) {\n this._injector = injector;\n }\n\n /**\n * Overrides the {@link View} of a {@link Component}.\n *\n * @see setInlineTemplate() to only override the html\n *\n * @param {Type} component\n * @param {ViewDefinition} template\n */\n overrideView(component: Type, template: View): void {\n this._injector.get(TemplateResolver).setView(component, template);\n }\n\n /**\n * Overrides only the html of a {@link Component}.\n * All the other propoerties of the component's {@link View} are preserved.\n *\n * @param {Type} component\n * @param {string} html\n */\n setInlineTemplate(component: Type, html: string): void {\n this._injector.get(TemplateResolver).setInlineTemplate(component, html);\n }\n\n /**\n * Overrides the directives from the component {@link View}.\n *\n * @param {Type} component\n * @param {Type} from\n * @param {Type} to\n */\n overrideDirective(component: Type, from: Type, to: Type): void {\n this._injector.get(TemplateResolver).overrideTemplateDirective(component, from, to);\n }\n\n /**\n * Creates an `AppView` for the given component.\n *\n * Only either a component or a context needs to be specified but both can be provided for\n * advanced use cases (ie subclassing the context).\n *\n * @param {Type} component\n * @param {*} context\n * @param {string} html Use as the component template when specified (shortcut for setInlineTemplate)\n * @return {Promise<ViewProxy>}\n */\n createView(component: Type,\n {context = null, html = null}: {context:any, html: string} = {}): Promise<AppView> {\n\n if (isBlank(component) && isBlank(context)) {\n throw new BaseException('You must specified at least a component or a context');\n }\n\n if (isBlank(component)) {\n component = getTypeOf(context);\n } else if (isBlank(context)) {\n context = instantiateType(component);\n }\n\n if (isPresent(html)) {\n this.setInlineTemplate(component, html);\n }\n\n var rootEl = el('<div></div>');\n var metadataReader = this._injector.get(DirectiveMetadataReader);\n var componentBinding = DirectiveBinding.createFromBinding(\n bind(component).toValue(context),\n metadataReader.read(component).annotation\n );\n return this._injector.get(Compiler).compileInHost(componentBinding).then((pv) => {\n var viewFactory = this._injector.get(ViewFactory);\n var viewHydrator = this._injector.get(AppViewHydrator);\n var hostView = viewFactory.getView(pv);\n viewHydrator.hydrateInPlaceHostView(null, rootEl, hostView, this._injector);\n\n return new ViewProxy(this._injector, hostView.componentChildViews[0]);\n });\n }\n}\n\n/**\n * Proxy to `AppView` return by `createView` in {@link TestBed} which offers a high level API for tests.\n */\nexport class ViewProxy {\n _view: AppView;\n _injector: Injector;\n\n constructor(injector: Injector, view: AppView) {\n this._view = view;\n this._injector = injector;\n }\n\n get context(): any {\n return this._view.context;\n }\n\n get rootNodes(): List {\n return viewRootNodes(this._view);\n }\n\n detectChanges(): void {\n this._view.changeDetector.detectChanges();\n }\n\n querySelector(selector) {\n return queryView(this._view, selector);\n }\n\n destroy() {\n var viewHydrator = this._injector.get(AppViewHydrator);\n viewHydrator.dehydrateInPlaceHostView(null, this._view);\n }\n\n /**\n * @returns `AppView` returns the underlying `AppView`.\n *\n * Prefer using the other methods which hide implementation details.\n */\n get rawView(): AppView {\n return this._view;\n }\n}\n"]}