angular2
Version:
Angular 2 - a web framework for modern web apps
1 lines • 10.6 kB
Source Map (JSON)
{"version":3,"sources":["test_bed.js"],"names":[],"mappings":"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","file":"angular2/src/test_lib/test_bed.js","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"]}