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