angular2
Version:
Angular 2 - a web framework for modern web apps
1 lines • 14 kB
Source Map (JSON)
{"version":3,"sources":["test_injector.js"],"names":[],"mappings":"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","file":"angular2/src/test_lib/test_injector.js","sourcesContent":["import {bind} from 'angular2/di';\n\nimport {Compiler, CompilerCache} from 'angular2/src/core/compiler/compiler';\nimport {Reflector, reflector} from 'angular2/src/reflection/reflection';\nimport {Parser, Lexer, ChangeDetection, DynamicChangeDetection,\n PipeRegistry, defaultPipeRegistry} from 'angular2/change_detection';\nimport {ExceptionHandler} from 'angular2/src/core/exception_handler';\nimport {TemplateLoader} from 'angular2/src/render/dom/compiler/template_loader';\nimport {TemplateResolver} from 'angular2/src/core/compiler/template_resolver';\nimport {DirectiveMetadataReader} from 'angular2/src/core/compiler/directive_metadata_reader';\nimport {DynamicComponentLoader} from 'angular2/src/core/compiler/dynamic_component_loader';\nimport {ShadowDomStrategy} from 'angular2/src/render/dom/shadow_dom/shadow_dom_strategy';\nimport {EmulatedUnscopedShadowDomStrategy} from 'angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom_strategy';\nimport {XHR} from 'angular2/src/services/xhr';\nimport {ComponentUrlMapper} from 'angular2/src/core/compiler/component_url_mapper';\nimport {UrlResolver} from 'angular2/src/services/url_resolver';\nimport {StyleUrlResolver} from 'angular2/src/render/dom/shadow_dom/style_url_resolver';\nimport {StyleInliner} from 'angular2/src/render/dom/shadow_dom/style_inliner';\nimport {VmTurnZone} from 'angular2/src/core/zone/vm_turn_zone';\n\nimport {DOM} from 'angular2/src/dom/dom_adapter';\n\nimport {appDocumentToken} from 'angular2/src/core/application_tokens';\n\nimport {EventManager, DomEventsPlugin} from 'angular2/src/render/dom/events/event_manager';\n\nimport {MockTemplateResolver} from 'angular2/src/mock/template_resolver_mock';\nimport {MockXHR} from 'angular2/src/mock/xhr_mock';\nimport {MockVmTurnZone} from 'angular2/src/mock/vm_turn_zone_mock';\n\nimport {TestBed} from './test_bed';\n\nimport {Injector} from 'angular2/di';\n\nimport {List, ListWrapper} from 'angular2/src/facade/collection';\nimport {FunctionWrapper} from 'angular2/src/facade/lang';\n\nimport {ViewFactory, VIEW_POOL_CAPACITY} from 'angular2/src/core/compiler/view_factory';\nimport {AppViewHydrator} from 'angular2/src/core/compiler/view_hydrator';\nimport {ProtoViewFactory} from 'angular2/src/core/compiler/proto_view_factory';\nimport {Renderer} from 'angular2/src/render/api';\nimport {DirectDomRenderer} from 'angular2/src/render/dom/direct_dom_renderer';\nimport * as rc from 'angular2/src/render/dom/compiler/compiler';\nimport * as rvf from 'angular2/src/render/dom/view/view_factory';\nimport * as rvh from 'angular2/src/render/dom/view/view_hydrator';\n\n/**\n * Returns the root injector bindings.\n *\n * This must be kept in sync with the _rootBindings in application.js\n *\n * @returns {any[]}\n */\nfunction _getRootBindings() {\n return [\n bind(Reflector).toValue(reflector),\n ];\n}\n\n/**\n * Returns the application injector bindings.\n *\n * This must be kept in sync with _injectorBindings() in application.js\n *\n * @returns {any[]}\n */\nfunction _getAppBindings() {\n var appDoc;\n\n // The document is only available in browser environment\n try {\n appDoc = DOM.defaultDoc();\n } catch(e) {\n appDoc = null;\n }\n\n return [\n bind(appDocumentToken).toValue(appDoc),\n bind(ShadowDomStrategy).toFactory(\n (styleUrlResolver, doc) => new EmulatedUnscopedShadowDomStrategy(styleUrlResolver, doc.head),\n [StyleUrlResolver, appDocumentToken]),\n bind(DirectDomRenderer).toClass(DirectDomRenderer),\n bind(Renderer).toClass(DirectDomRenderer),\n bind(rc.Compiler).toClass(rc.DefaultCompiler),\n rvf.ViewFactory,\n rvh.RenderViewHydrator,\n bind(rvf.VIEW_POOL_CAPACITY).toValue(500),\n ProtoViewFactory,\n ViewFactory,\n AppViewHydrator,\n bind(VIEW_POOL_CAPACITY).toValue(500),\n Compiler,\n CompilerCache,\n bind(TemplateResolver).toClass(MockTemplateResolver),\n bind(PipeRegistry).toValue(defaultPipeRegistry),\n bind(ChangeDetection).toClass(DynamicChangeDetection),\n TemplateLoader,\n DynamicComponentLoader,\n DirectiveMetadataReader,\n Parser,\n Lexer,\n ExceptionHandler,\n bind(XHR).toClass(MockXHR),\n ComponentUrlMapper,\n UrlResolver,\n StyleUrlResolver,\n StyleInliner,\n TestBed,\n bind(VmTurnZone).toClass(MockVmTurnZone),\n bind(EventManager).toFactory((zone) => {\n var plugins = [\n new DomEventsPlugin(),\n ];\n return new EventManager(plugins, zone);\n }, [VmTurnZone]),\n ];\n}\n\nexport function createTestInjector(bindings: List) {\n var rootInjector = Injector.resolveAndCreate(_getRootBindings());\n return rootInjector.resolveAndCreateChild(ListWrapper.concat(_getAppBindings(), bindings));\n}\n\n/**\n * Allows injecting dependencies in `beforeEach()` and `it()`.\n *\n * Example:\n *\n * ```\n * beforeEach(inject([Dependency, AClass], (dep, object) => {\n * // some code that uses `dep` and `object`\n * // ...\n * }));\n *\n * it('...', inject([AClass, AsyncTestCompleter], (object, async) => {\n * object.doSomething().then(() => {\n * expect(...);\n * async.done();\n * });\n * })\n * ```\n *\n * Notes:\n * - injecting an `AsyncTestCompleter` allow completing async tests - this is the equivalent of\n * adding a `done` parameter in Jasmine,\n * - inject is currently a function because of some Traceur limitation the syntax should eventually\n * becomes `it('...', @Inject (object: AClass, async: AsyncTestCompleter) => { ... });`\n *\n * @param {Array} tokens\n * @param {Function} fn\n * @return {FunctionWithParamTokens}\n * @exportedAs angular2/test\n */\nexport function inject(tokens: List, fn: Function) {\n return new FunctionWithParamTokens(tokens, fn);\n}\n\nexport class FunctionWithParamTokens {\n _tokens: List;\n _fn: Function;\n\n constructor(tokens: List, fn: Function) {\n this._tokens = tokens;\n this._fn = fn;\n }\n\n execute(injector: Injector) {\n var params = ListWrapper.map(this._tokens, (t) => injector.get(t));\n FunctionWrapper.apply(this._fn, params);\n }\n}\n\n"]}