1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | import { Injectable, Inject, ɵstringify, NgModule, Directive, Component, Pipe, createPlatformFactory, COMPILER_OPTIONS, Injector, CompilerFactory } from '@angular/core';
|
8 | import { TestComponentRenderer, ɵMetadataOverrider, ɵTestingCompilerFactory } from '@angular/core/testing';
|
9 | import { ɵplatformCoreDynamic, ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS } from '@angular/platform-browser-dynamic';
|
10 | import { BrowserTestingModule } from '@angular/platform-browser/testing';
|
11 | import { DOCUMENT } from '@angular/common';
|
12 | import { ɵgetDOM } from '@angular/platform-browser';
|
13 | import { CompileReflector, PipeResolver, DirectiveResolver, NgModuleResolver, ERROR_COMPONENT_TYPE } from '@angular/compiler';
|
14 | import { MockPipeResolver, MockDirectiveResolver, MockNgModuleResolver } from '@angular/compiler/testing';
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 | class DOMTestComponentRenderer extends TestComponentRenderer {
|
24 | |
25 |
|
26 |
|
27 | constructor(_doc) {
|
28 | super();
|
29 | this._doc = _doc;
|
30 | }
|
31 | |
32 |
|
33 |
|
34 |
|
35 | insertRootElement(rootElId) {
|
36 |
|
37 | const rootEl = ( (ɵgetDOM().firstChild(ɵgetDOM().content(ɵgetDOM().createTemplate(`<div id="${rootElId}"></div>`)))));
|
38 |
|
39 |
|
40 | const oldRoots = ɵgetDOM().querySelectorAll(this._doc, '[id^=root]');
|
41 | for (let i = 0; i < oldRoots.length; i++) {
|
42 | ɵgetDOM().remove(oldRoots[i]);
|
43 | }
|
44 | ɵgetDOM().appendChild(this._doc.body, rootEl);
|
45 | }
|
46 | }
|
47 | DOMTestComponentRenderer.decorators = [
|
48 | { type: Injectable }
|
49 | ];
|
50 |
|
51 | DOMTestComponentRenderer.ctorParameters = () => [
|
52 | { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
|
53 | ];
|
54 | if (false) {
|
55 | |
56 |
|
57 |
|
58 |
|
59 | DOMTestComponentRenderer.prototype._doc;
|
60 | }
|
61 |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 |
|
67 |
|
68 |
|
69 |
|
70 |
|
71 |
|
72 | const COMPILER_PROVIDERS = [
|
73 | { provide: MockPipeResolver, deps: [CompileReflector] },
|
74 | { provide: PipeResolver, useExisting: MockPipeResolver },
|
75 | { provide: MockDirectiveResolver, deps: [CompileReflector] },
|
76 | { provide: DirectiveResolver, useExisting: MockDirectiveResolver },
|
77 | { provide: MockNgModuleResolver, deps: [CompileReflector] },
|
78 | { provide: NgModuleResolver, useExisting: MockNgModuleResolver },
|
79 | ];
|
80 | class TestingCompilerFactoryImpl {
|
81 | |
82 |
|
83 |
|
84 |
|
85 | constructor(_injector, _compilerFactory) {
|
86 | this._injector = _injector;
|
87 | this._compilerFactory = _compilerFactory;
|
88 | }
|
89 | |
90 |
|
91 |
|
92 |
|
93 | createTestingCompiler(options) {
|
94 |
|
95 | const compiler = ( (this._compilerFactory.createCompiler(options)));
|
96 | return new TestingCompilerImpl(compiler, compiler.injector.get(MockDirectiveResolver), compiler.injector.get(MockPipeResolver), compiler.injector.get(MockNgModuleResolver));
|
97 | }
|
98 | }
|
99 | if (false) {
|
100 | |
101 |
|
102 |
|
103 |
|
104 | TestingCompilerFactoryImpl.prototype._injector;
|
105 | |
106 |
|
107 |
|
108 |
|
109 | TestingCompilerFactoryImpl.prototype._compilerFactory;
|
110 | }
|
111 | class TestingCompilerImpl {
|
112 | |
113 |
|
114 |
|
115 |
|
116 |
|
117 |
|
118 | constructor(_compiler, _directiveResolver, _pipeResolver, _moduleResolver) {
|
119 | this._compiler = _compiler;
|
120 | this._directiveResolver = _directiveResolver;
|
121 | this._pipeResolver = _pipeResolver;
|
122 | this._moduleResolver = _moduleResolver;
|
123 | this._overrider = new ɵMetadataOverrider();
|
124 | }
|
125 | |
126 |
|
127 |
|
128 | get injector() { return this._compiler.injector; }
|
129 | |
130 |
|
131 |
|
132 |
|
133 |
|
134 | compileModuleSync(moduleType) {
|
135 | return this._compiler.compileModuleSync(moduleType);
|
136 | }
|
137 | |
138 |
|
139 |
|
140 |
|
141 |
|
142 | compileModuleAsync(moduleType) {
|
143 | return this._compiler.compileModuleAsync(moduleType);
|
144 | }
|
145 | |
146 |
|
147 |
|
148 |
|
149 |
|
150 | compileModuleAndAllComponentsSync(moduleType) {
|
151 | return this._compiler.compileModuleAndAllComponentsSync(moduleType);
|
152 | }
|
153 | |
154 |
|
155 |
|
156 |
|
157 |
|
158 | compileModuleAndAllComponentsAsync(moduleType) {
|
159 | return this._compiler.compileModuleAndAllComponentsAsync(moduleType);
|
160 | }
|
161 | |
162 |
|
163 |
|
164 |
|
165 |
|
166 | getComponentFactory(component) {
|
167 | return this._compiler.getComponentFactory(component);
|
168 | }
|
169 | |
170 |
|
171 |
|
172 |
|
173 | checkOverrideAllowed(type) {
|
174 | if (this._compiler.hasAotSummary(type)) {
|
175 | throw new Error(`${ɵstringify(type)} was AOT compiled, so its metadata cannot be changed.`);
|
176 | }
|
177 | }
|
178 | |
179 |
|
180 |
|
181 |
|
182 |
|
183 | overrideModule(ngModule, override) {
|
184 | this.checkOverrideAllowed(ngModule);
|
185 |
|
186 | const oldMetadata = this._moduleResolver.resolve(ngModule, false);
|
187 | this._moduleResolver.setNgModule(ngModule, this._overrider.overrideMetadata(NgModule, oldMetadata, override));
|
188 | this.clearCacheFor(ngModule);
|
189 | }
|
190 | |
191 |
|
192 |
|
193 |
|
194 |
|
195 | overrideDirective(directive, override) {
|
196 | this.checkOverrideAllowed(directive);
|
197 |
|
198 | const oldMetadata = this._directiveResolver.resolve(directive, false);
|
199 | this._directiveResolver.setDirective(directive, this._overrider.overrideMetadata(Directive, ( (oldMetadata)), override));
|
200 | this.clearCacheFor(directive);
|
201 | }
|
202 | |
203 |
|
204 |
|
205 |
|
206 |
|
207 | overrideComponent(component, override) {
|
208 | this.checkOverrideAllowed(component);
|
209 |
|
210 | const oldMetadata = this._directiveResolver.resolve(component, false);
|
211 | this._directiveResolver.setDirective(component, this._overrider.overrideMetadata(Component, ( (oldMetadata)), override));
|
212 | this.clearCacheFor(component);
|
213 | }
|
214 | |
215 |
|
216 |
|
217 |
|
218 |
|
219 | overridePipe(pipe, override) {
|
220 | this.checkOverrideAllowed(pipe);
|
221 |
|
222 | const oldMetadata = this._pipeResolver.resolve(pipe, false);
|
223 | this._pipeResolver.setPipe(pipe, this._overrider.overrideMetadata(Pipe, oldMetadata, override));
|
224 | this.clearCacheFor(pipe);
|
225 | }
|
226 | |
227 |
|
228 |
|
229 |
|
230 | loadAotSummaries(summaries) { this._compiler.loadAotSummaries(summaries); }
|
231 | |
232 |
|
233 |
|
234 | clearCache() { this._compiler.clearCache(); }
|
235 | |
236 |
|
237 |
|
238 |
|
239 | clearCacheFor(type) { this._compiler.clearCacheFor(type); }
|
240 | |
241 |
|
242 |
|
243 |
|
244 | getComponentFromError(error) { return (( (error)))[ERROR_COMPONENT_TYPE] || null; }
|
245 | |
246 |
|
247 |
|
248 |
|
249 | getModuleId(moduleType) {
|
250 | return this._moduleResolver.resolve(moduleType, true).id;
|
251 | }
|
252 | }
|
253 | if (false) {
|
254 | |
255 |
|
256 |
|
257 |
|
258 | TestingCompilerImpl.prototype._overrider;
|
259 | |
260 |
|
261 |
|
262 |
|
263 | TestingCompilerImpl.prototype._compiler;
|
264 | |
265 |
|
266 |
|
267 |
|
268 | TestingCompilerImpl.prototype._directiveResolver;
|
269 | |
270 |
|
271 |
|
272 |
|
273 | TestingCompilerImpl.prototype._pipeResolver;
|
274 | |
275 |
|
276 |
|
277 |
|
278 | TestingCompilerImpl.prototype._moduleResolver;
|
279 | }
|
280 |
|
281 |
|
282 |
|
283 |
|
284 |
|
285 | const ɵ0 = { providers: COMPILER_PROVIDERS };
|
286 |
|
287 |
|
288 |
|
289 |
|
290 |
|
291 |
|
292 | const platformCoreDynamicTesting = createPlatformFactory(ɵplatformCoreDynamic, 'coreDynamicTesting', [
|
293 | { provide: COMPILER_OPTIONS, useValue: ɵ0, multi: true }, {
|
294 | provide: ɵTestingCompilerFactory,
|
295 | useClass: TestingCompilerFactoryImpl,
|
296 | deps: [Injector, CompilerFactory]
|
297 | }
|
298 | ]);
|
299 |
|
300 |
|
301 |
|
302 |
|
303 |
|
304 |
|
305 |
|
306 |
|
307 |
|
308 |
|
309 |
|
310 |
|
311 |
|
312 |
|
313 | const platformBrowserDynamicTesting = createPlatformFactory(platformCoreDynamicTesting, 'browserDynamicTesting', ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS);
|
314 |
|
315 |
|
316 |
|
317 |
|
318 |
|
319 | class BrowserDynamicTestingModule {
|
320 | }
|
321 | BrowserDynamicTestingModule.decorators = [
|
322 | { type: NgModule, args: [{
|
323 | exports: [BrowserTestingModule],
|
324 | providers: [
|
325 | { provide: TestComponentRenderer, useClass: DOMTestComponentRenderer },
|
326 | ]
|
327 | },] }
|
328 | ];
|
329 |
|
330 |
|
331 |
|
332 |
|
333 |
|
334 |
|
335 |
|
336 |
|
337 |
|
338 |
|
339 |
|
340 |
|
341 |
|
342 |
|
343 |
|
344 | export { COMPILER_PROVIDERS as ɵangular_packages_platform_browser_dynamic_testing_testing_a, TestingCompilerFactoryImpl as ɵangular_packages_platform_browser_dynamic_testing_testing_b, platformBrowserDynamicTesting, BrowserDynamicTestingModule, DOMTestComponentRenderer as ɵDOMTestComponentRenderer, platformCoreDynamicTesting as ɵplatformCoreDynamicTesting };
|
345 |
|