blob: 5e9c28a7982b37f2b4e2520c2a5a20dd6c4a467e [file] [log] [blame]
{"version":3,"file":"testing.js","sources":["../../../packages/platform-browser-dynamic/testing/src/dom_test_component_renderer.js","../../../packages/platform-browser-dynamic/testing/src/metadata_overrider.js","../../../packages/platform-browser-dynamic/testing/src/compiler_factory.js","../../../packages/platform-browser-dynamic/testing/src/platform_core_dynamic_testing.js","../../../packages/platform-browser-dynamic/testing/src/private_export_testing.js","../../../packages/platform-browser-dynamic/testing/src/testing.js","../../../packages/platform-browser-dynamic/testing/public_api.js","../../../packages/platform-browser-dynamic/testing/testing.js"],"sourcesContent":["/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Inject, Injectable } from '@angular/core';\nimport { TestComponentRenderer } from '@angular/core/testing';\nimport { DOCUMENT, ɵgetDOM as getDOM } from '@angular/platform-browser';\n/**\n * A DOM based implementation of the TestComponentRenderer.\n */\nexport class DOMTestComponentRenderer extends TestComponentRenderer {\n /**\n * @param {?} _doc\n */\n constructor(_doc /** TODO #9100 */) {\n super();\n this._doc = _doc;\n }\n /**\n * @param {?} rootElId\n * @return {?}\n */\n insertRootElement(rootElId) {\n const /** @type {?} */ rootEl = /** @type {?} */ (getDOM().firstChild(getDOM().content(getDOM().createTemplate(`<div id=\"${rootElId}\"></div>`))));\n // TODO(juliemr): can/should this be optional?\n const /** @type {?} */ oldRoots = getDOM().querySelectorAll(this._doc, '[id^=root]');\n for (let /** @type {?} */ i = 0; i < oldRoots.length; i++) {\n getDOM().remove(oldRoots[i]);\n }\n getDOM().appendChild(this._doc.body, rootEl);\n }\n}\nDOMTestComponentRenderer.decorators = [\n { type: Injectable },\n];\n/** @nocollapse */\nDOMTestComponentRenderer.ctorParameters = () => [\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] },] },\n];\nfunction DOMTestComponentRenderer_tsickle_Closure_declarations() {\n /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */\n DOMTestComponentRenderer.decorators;\n /**\n * @nocollapse\n * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}\n */\n DOMTestComponentRenderer.ctorParameters;\n /** @type {?} */\n DOMTestComponentRenderer.prototype._doc;\n}\n//# sourceMappingURL=dom_test_component_renderer.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { ɵstringify as stringify } from '@angular/core';\nlet /** @type {?} */ _nextReferenceId = 0;\nexport class MetadataOverrider {\n constructor() {\n this._references = new Map();\n }\n /**\n * Creates a new instance for the given metadata class\n * based on an old instance and overrides.\n * @template C, T\n * @param {?} metadataClass\n * @param {?} oldMetadata\n * @param {?} override\n * @return {?}\n */\n overrideMetadata(metadataClass, oldMetadata, override) {\n const /** @type {?} */ props = {};\n if (oldMetadata) {\n _valueProps(oldMetadata).forEach((prop) => props[prop] = (/** @type {?} */ (oldMetadata))[prop]);\n }\n if (override.set) {\n if (override.remove || override.add) {\n throw new Error(`Cannot set and add/remove ${stringify(metadataClass)} at the same time!`);\n }\n setMetadata(props, override.set);\n }\n if (override.remove) {\n removeMetadata(props, override.remove, this._references);\n }\n if (override.add) {\n addMetadata(props, override.add);\n }\n return new metadataClass(/** @type {?} */ (props));\n }\n}\nfunction MetadataOverrider_tsickle_Closure_declarations() {\n /** @type {?} */\n MetadataOverrider.prototype._references;\n}\n/**\n * @param {?} metadata\n * @param {?} remove\n * @param {?} references\n * @return {?}\n */\nfunction removeMetadata(metadata, remove, references) {\n const /** @type {?} */ removeObjects = new Set();\n for (const /** @type {?} */ prop in remove) {\n const /** @type {?} */ removeValue = remove[prop];\n if (removeValue instanceof Array) {\n removeValue.forEach((value) => { removeObjects.add(_propHashKey(prop, value, references)); });\n }\n else {\n removeObjects.add(_propHashKey(prop, removeValue, references));\n }\n }\n for (const /** @type {?} */ prop in metadata) {\n const /** @type {?} */ propValue = metadata[prop];\n if (propValue instanceof Array) {\n metadata[prop] = propValue.filter((value) => !removeObjects.has(_propHashKey(prop, value, references)));\n }\n else {\n if (removeObjects.has(_propHashKey(prop, propValue, references))) {\n metadata[prop] = undefined;\n }\n }\n }\n}\n/**\n * @param {?} metadata\n * @param {?} add\n * @return {?}\n */\nfunction addMetadata(metadata, add) {\n for (const /** @type {?} */ prop in add) {\n const /** @type {?} */ addValue = add[prop];\n const /** @type {?} */ propValue = metadata[prop];\n if (propValue != null && propValue instanceof Array) {\n metadata[prop] = propValue.concat(addValue);\n }\n else {\n metadata[prop] = addValue;\n }\n }\n}\n/**\n * @param {?} metadata\n * @param {?} set\n * @return {?}\n */\nfunction setMetadata(metadata, set) {\n for (const /** @type {?} */ prop in set) {\n metadata[prop] = set[prop];\n }\n}\n/**\n * @param {?} propName\n * @param {?} propValue\n * @param {?} references\n * @return {?}\n */\nfunction _propHashKey(propName, propValue, references) {\n const /** @type {?} */ replacer = (key, value) => {\n if (typeof value === 'function') {\n value = _serializeReference(value, references);\n }\n return value;\n };\n return `${propName}:${JSON.stringify(propValue, replacer)}`;\n}\n/**\n * @param {?} ref\n * @param {?} references\n * @return {?}\n */\nfunction _serializeReference(ref, references) {\n let /** @type {?} */ id = references.get(ref);\n if (!id) {\n id = `${stringify(ref)}${_nextReferenceId++}`;\n references.set(ref, id);\n }\n return id;\n}\n/**\n * @param {?} obj\n * @return {?}\n */\nfunction _valueProps(obj) {\n const /** @type {?} */ props = [];\n // regular public props\n Object.keys(obj).forEach((prop) => {\n if (!prop.startsWith('_')) {\n props.push(prop);\n }\n });\n // getters\n let /** @type {?} */ proto = obj;\n while (proto = Object.getPrototypeOf(proto)) {\n Object.keys(proto).forEach((protoProp) => {\n const /** @type {?} */ desc = Object.getOwnPropertyDescriptor(proto, protoProp);\n if (!protoProp.startsWith('_') && desc && 'get' in desc) {\n props.push(protoProp);\n }\n });\n }\n return props;\n}\n//# sourceMappingURL=metadata_overrider.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { CompileReflector, DirectiveResolver, ERROR_COMPONENT_TYPE, NgModuleResolver, PipeResolver } from '@angular/compiler';\nimport { MockDirectiveResolver, MockNgModuleResolver, MockPipeResolver } from '@angular/compiler/testing';\nimport { Component, Directive, NgModule, Pipe, ɵstringify } from '@angular/core';\nimport { MetadataOverrider } from './metadata_overrider';\nexport const /** @type {?} */ COMPILER_PROVIDERS = [\n { provide: MockPipeResolver, deps: [CompileReflector] },\n { provide: PipeResolver, useExisting: MockPipeResolver },\n { provide: MockDirectiveResolver, deps: [CompileReflector] },\n { provide: DirectiveResolver, useExisting: MockDirectiveResolver },\n { provide: MockNgModuleResolver, deps: [CompileReflector] },\n { provide: NgModuleResolver, useExisting: MockNgModuleResolver },\n];\nexport class TestingCompilerFactoryImpl {\n /**\n * @param {?} _injector\n * @param {?} _compilerFactory\n */\n constructor(_injector, _compilerFactory) {\n this._injector = _injector;\n this._compilerFactory = _compilerFactory;\n }\n /**\n * @param {?} options\n * @return {?}\n */\n createTestingCompiler(options) {\n const /** @type {?} */ compiler = /** @type {?} */ (this._compilerFactory.createCompiler(options));\n return new TestingCompilerImpl(compiler, compiler.injector.get(MockDirectiveResolver), compiler.injector.get(MockPipeResolver), compiler.injector.get(MockNgModuleResolver));\n }\n}\nfunction TestingCompilerFactoryImpl_tsickle_Closure_declarations() {\n /** @type {?} */\n TestingCompilerFactoryImpl.prototype._injector;\n /** @type {?} */\n TestingCompilerFactoryImpl.prototype._compilerFactory;\n}\nexport class TestingCompilerImpl {\n /**\n * @param {?} _compiler\n * @param {?} _directiveResolver\n * @param {?} _pipeResolver\n * @param {?} _moduleResolver\n */\n constructor(_compiler, _directiveResolver, _pipeResolver, _moduleResolver) {\n this._compiler = _compiler;\n this._directiveResolver = _directiveResolver;\n this._pipeResolver = _pipeResolver;\n this._moduleResolver = _moduleResolver;\n this._overrider = new MetadataOverrider();\n }\n /**\n * @return {?}\n */\n get injector() { return this._compiler.injector; }\n /**\n * @template T\n * @param {?} moduleType\n * @return {?}\n */\n compileModuleSync(moduleType) {\n return this._compiler.compileModuleSync(moduleType);\n }\n /**\n * @template T\n * @param {?} moduleType\n * @return {?}\n */\n compileModuleAsync(moduleType) {\n return this._compiler.compileModuleAsync(moduleType);\n }\n /**\n * @template T\n * @param {?} moduleType\n * @return {?}\n */\n compileModuleAndAllComponentsSync(moduleType) {\n return this._compiler.compileModuleAndAllComponentsSync(moduleType);\n }\n /**\n * @template T\n * @param {?} moduleType\n * @return {?}\n */\n compileModuleAndAllComponentsAsync(moduleType) {\n return this._compiler.compileModuleAndAllComponentsAsync(moduleType);\n }\n /**\n * @template T\n * @param {?} component\n * @return {?}\n */\n getComponentFactory(component) {\n return this._compiler.getComponentFactory(component);\n }\n /**\n * @param {?} type\n * @return {?}\n */\n checkOverrideAllowed(type) {\n if (this._compiler.hasAotSummary(type)) {\n throw new Error(`${ɵstringify(type)} was AOT compiled, so its metadata cannot be changed.`);\n }\n }\n /**\n * @param {?} ngModule\n * @param {?} override\n * @return {?}\n */\n overrideModule(ngModule, override) {\n this.checkOverrideAllowed(ngModule);\n const /** @type {?} */ oldMetadata = this._moduleResolver.resolve(ngModule, false);\n this._moduleResolver.setNgModule(ngModule, this._overrider.overrideMetadata(NgModule, oldMetadata, override));\n this.clearCacheFor(ngModule);\n }\n /**\n * @param {?} directive\n * @param {?} override\n * @return {?}\n */\n overrideDirective(directive, override) {\n this.checkOverrideAllowed(directive);\n const /** @type {?} */ oldMetadata = this._directiveResolver.resolve(directive, false);\n this._directiveResolver.setDirective(directive, this._overrider.overrideMetadata(Directive, /** @type {?} */ ((oldMetadata)), override));\n this.clearCacheFor(directive);\n }\n /**\n * @param {?} component\n * @param {?} override\n * @return {?}\n */\n overrideComponent(component, override) {\n this.checkOverrideAllowed(component);\n const /** @type {?} */ oldMetadata = this._directiveResolver.resolve(component, false);\n this._directiveResolver.setDirective(component, this._overrider.overrideMetadata(Component, /** @type {?} */ ((oldMetadata)), override));\n this.clearCacheFor(component);\n }\n /**\n * @param {?} pipe\n * @param {?} override\n * @return {?}\n */\n overridePipe(pipe, override) {\n this.checkOverrideAllowed(pipe);\n const /** @type {?} */ oldMetadata = this._pipeResolver.resolve(pipe, false);\n this._pipeResolver.setPipe(pipe, this._overrider.overrideMetadata(Pipe, oldMetadata, override));\n this.clearCacheFor(pipe);\n }\n /**\n * @param {?} summaries\n * @return {?}\n */\n loadAotSummaries(summaries) { this._compiler.loadAotSummaries(summaries); }\n /**\n * @return {?}\n */\n clearCache() { this._compiler.clearCache(); }\n /**\n * @param {?} type\n * @return {?}\n */\n clearCacheFor(type) { this._compiler.clearCacheFor(type); }\n /**\n * @param {?} error\n * @return {?}\n */\n getComponentFromError(error) { return (/** @type {?} */ (error))[ERROR_COMPONENT_TYPE] || null; }\n}\nfunction TestingCompilerImpl_tsickle_Closure_declarations() {\n /** @type {?} */\n TestingCompilerImpl.prototype._overrider;\n /** @type {?} */\n TestingCompilerImpl.prototype._compiler;\n /** @type {?} */\n TestingCompilerImpl.prototype._directiveResolver;\n /** @type {?} */\n TestingCompilerImpl.prototype._pipeResolver;\n /** @type {?} */\n TestingCompilerImpl.prototype._moduleResolver;\n}\n//# sourceMappingURL=compiler_factory.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { COMPILER_OPTIONS, CompilerFactory, Injector, createPlatformFactory } from '@angular/core';\nimport { ɵTestingCompilerFactory as TestingCompilerFactory } from '@angular/core/testing';\nimport { ɵplatformCoreDynamic as platformCoreDynamic } from '@angular/platform-browser-dynamic';\nimport { COMPILER_PROVIDERS, TestingCompilerFactoryImpl } from './compiler_factory';\n/**\n * Platform for dynamic tests\n *\n * \\@experimental\n */\nexport const /** @type {?} */ platformCoreDynamicTesting = createPlatformFactory(platformCoreDynamic, 'coreDynamicTesting', [\n { provide: COMPILER_OPTIONS, useValue: { providers: COMPILER_PROVIDERS }, multi: true }, {\n provide: TestingCompilerFactory,\n useClass: TestingCompilerFactoryImpl,\n deps: [Injector, CompilerFactory]\n }\n]);\n//# sourceMappingURL=platform_core_dynamic_testing.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport { DOMTestComponentRenderer as ɵDOMTestComponentRenderer } from './dom_test_component_renderer';\nexport { platformCoreDynamicTesting as ɵplatformCoreDynamicTesting } from './platform_core_dynamic_testing';\n//# sourceMappingURL=private_export_testing.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { NgModule, createPlatformFactory } from '@angular/core';\nimport { TestComponentRenderer } from '@angular/core/testing';\nimport { ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS as INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS } from '@angular/platform-browser-dynamic';\nimport { BrowserTestingModule } from '@angular/platform-browser/testing';\nimport { DOMTestComponentRenderer } from './dom_test_component_renderer';\nimport { platformCoreDynamicTesting } from './platform_core_dynamic_testing';\nexport { ɵDOMTestComponentRenderer, ɵplatformCoreDynamicTesting } from './private_export_testing';\n/**\n * \\@stable\n */\nexport const /** @type {?} */ platformBrowserDynamicTesting = createPlatformFactory(platformCoreDynamicTesting, 'browserDynamicTesting', INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS);\n/**\n * NgModule for testing.\n *\n * \\@stable\n */\nexport class BrowserDynamicTestingModule {\n}\nBrowserDynamicTestingModule.decorators = [\n { type: NgModule, args: [{\n exports: [BrowserTestingModule],\n providers: [\n { provide: TestComponentRenderer, useClass: DOMTestComponentRenderer },\n ]\n },] },\n];\n/** @nocollapse */\nBrowserDynamicTestingModule.ctorParameters = () => [];\nfunction BrowserDynamicTestingModule_tsickle_Closure_declarations() {\n /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */\n BrowserDynamicTestingModule.decorators;\n /**\n * @nocollapse\n * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}\n */\n BrowserDynamicTestingModule.ctorParameters;\n}\n//# sourceMappingURL=testing.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport { platformBrowserDynamicTesting, BrowserDynamicTestingModule, ɵDOMTestComponentRenderer, ɵplatformCoreDynamicTesting } from './src/testing';\n//# sourceMappingURL=public_api.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * Generated bundle index. Do not edit.\n */\nexport { platformBrowserDynamicTesting, BrowserDynamicTestingModule, ɵDOMTestComponentRenderer, ɵplatformCoreDynamicTesting } from './public_api';\nexport { COMPILER_PROVIDERS as ɵa, TestingCompilerFactoryImpl as ɵb } from './src/compiler_factory';\n//# sourceMappingURL=testing.js.map"],"names":["getDOM","stringify","platformCoreDynamic","TestingCompilerFactory","INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS"],"mappings":"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"}