UNPKG

18 kBSource Map (JSON)View Raw
1{"version":3,"file":"testing.mjs","sources":["../../../../../../packages/platform-browser/testing/src/browser_util.ts","../../../../../../packages/platform-browser/testing/src/browser.ts","../../../../../../packages/platform-browser/testing/src/testing.ts","../../../../../../packages/platform-browser/testing/public_api.ts","../../../../../../packages/platform-browser/testing/index.ts","../../../../../../packages/platform-browser/testing/testing.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC 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\nimport {ɵgetDOM as getDOM} from '@angular/common';\nimport {NgZone, ɵglobal as global} from '@angular/core';\n\nexport class BrowserDetection {\n private _overrideUa: string|null;\n private get _ua(): string {\n if (typeof this._overrideUa === 'string') {\n return this._overrideUa;\n }\n\n return getDOM() ? getDOM().getUserAgent() : '';\n }\n\n static setup() {\n return new BrowserDetection(null);\n }\n\n constructor(ua: string|null) {\n this._overrideUa = ua;\n }\n\n get isFirefox(): boolean {\n return this._ua.indexOf('Firefox') > -1;\n }\n\n get isAndroid(): boolean {\n return this._ua.indexOf('Mozilla/5.0') > -1 && this._ua.indexOf('Android') > -1 &&\n this._ua.indexOf('AppleWebKit') > -1 && this._ua.indexOf('Chrome') == -1 &&\n this._ua.indexOf('IEMobile') == -1;\n }\n\n get isEdge(): boolean {\n return this._ua.indexOf('Edge') > -1;\n }\n\n get isIE(): boolean {\n return this._ua.indexOf('Trident') > -1;\n }\n\n get isWebkit(): boolean {\n return this._ua.indexOf('AppleWebKit') > -1 && this._ua.indexOf('Edge') == -1 &&\n this._ua.indexOf('IEMobile') == -1;\n }\n\n get isIOS7(): boolean {\n return (this._ua.indexOf('iPhone OS 7') > -1 || this._ua.indexOf('iPad OS 7') > -1) &&\n this._ua.indexOf('IEMobile') == -1;\n }\n\n get isSlow(): boolean {\n return this.isAndroid || this.isIE || this.isIOS7;\n }\n\n get isChromeDesktop(): boolean {\n return this._ua.indexOf('Chrome') > -1 && this._ua.indexOf('Mobile Safari') == -1 &&\n this._ua.indexOf('Edge') == -1;\n }\n\n // \"Old Chrome\" means Chrome 3X, where there are some discrepancies in the Intl API.\n // Android 4.4 and 5.X have such browsers by default (respectively 30 and 39).\n get isOldChrome(): boolean {\n return this._ua.indexOf('Chrome') > -1 && this._ua.indexOf('Chrome/3') > -1 &&\n this._ua.indexOf('Edge') == -1;\n }\n\n get supportsCustomElements() {\n return (typeof (<any>global).customElements !== 'undefined');\n }\n\n get supportsDeprecatedCustomCustomElementsV0() {\n return (typeof (document as any).registerElement !== 'undefined');\n }\n\n get supportsRegExUnicodeFlag(): boolean {\n return RegExp.prototype.hasOwnProperty('unicode');\n }\n\n get supportsShadowDom() {\n const testEl = document.createElement('div');\n return (typeof testEl.attachShadow !== 'undefined');\n }\n\n get supportsDeprecatedShadowDomV0() {\n const testEl = document.createElement('div') as any;\n return (typeof testEl.createShadowRoot !== 'undefined');\n }\n}\n\nexport const browserDetection: BrowserDetection = BrowserDetection.setup();\n\nexport function dispatchEvent(element: any, eventType: any): void {\n const evt: Event = getDOM().getDefaultDocument().createEvent('Event');\n evt.initEvent(eventType, true, true);\n getDOM().dispatchEvent(element, evt);\n}\n\nexport function createMouseEvent(eventType: string): MouseEvent {\n const evt: MouseEvent = getDOM().getDefaultDocument().createEvent('MouseEvent');\n evt.initEvent(eventType, true, true);\n return evt;\n}\n\nexport function el(html: string): HTMLElement {\n return <HTMLElement>getContent(createTemplate(html)).firstChild;\n}\n\nexport function normalizeCSS(css: string): string {\n return css.replace(/\\s+/g, ' ')\n .replace(/:\\s/g, ':')\n .replace(/'/g, '\"')\n .replace(/ }/g, '}')\n .replace(/url\\((\\\"|\\s)(.+)(\\\"|\\s)\\)(\\s*)/g, (...match: string[]) => `url(\"${match[2]}\")`)\n .replace(/\\[(.+)=([^\"\\]]+)\\]/g, (...match: string[]) => `[${match[1]}=\"${match[2]}\"]`);\n}\n\nfunction getAttributeMap(element: any): Map<string, string> {\n const res = new Map<string, string>();\n const elAttrs = element.attributes;\n for (let i = 0; i < elAttrs.length; i++) {\n const attrib = elAttrs.item(i);\n res.set(attrib.name, attrib.value);\n }\n return res;\n}\n\nconst _selfClosingTags = ['br', 'hr', 'input'];\nexport function stringifyElement(el: any /** TODO #9100 */): string {\n let result = '';\n if (getDOM().isElementNode(el)) {\n const tagName = el.tagName.toLowerCase();\n\n // Opening tag\n result += `<${tagName}`;\n\n // Attributes in an ordered way\n const attributeMap = getAttributeMap(el);\n const sortedKeys = Array.from(attributeMap.keys()).sort();\n for (const key of sortedKeys) {\n const lowerCaseKey = key.toLowerCase();\n let attValue = attributeMap.get(key);\n\n if (typeof attValue !== 'string') {\n result += ` ${lowerCaseKey}`;\n } else {\n // Browsers order style rules differently. Order them alphabetically for consistency.\n if (lowerCaseKey === 'style') {\n attValue = attValue.split(/; ?/).filter(s => !!s).sort().map(s => `${s};`).join(' ');\n }\n\n result += ` ${lowerCaseKey}=\"${attValue}\"`;\n }\n }\n result += '>';\n\n // Children\n const childrenRoot = templateAwareRoot(el);\n const children = childrenRoot ? childrenRoot.childNodes : [];\n for (let j = 0; j < children.length; j++) {\n result += stringifyElement(children[j]);\n }\n\n // Closing tag\n if (_selfClosingTags.indexOf(tagName) == -1) {\n result += `</${tagName}>`;\n }\n } else if (isCommentNode(el)) {\n result += `<!--${el.nodeValue}-->`;\n } else {\n result += el.textContent;\n }\n\n return result;\n}\n\nexport function createNgZone(): NgZone {\n return new NgZone({enableLongStackTrace: true, shouldCoalesceEventChangeDetection: false});\n}\n\nexport function isCommentNode(node: Node): boolean {\n return node.nodeType === Node.COMMENT_NODE;\n}\n\nexport function isTextNode(node: Node): boolean {\n return node.nodeType === Node.TEXT_NODE;\n}\n\nexport function getContent(node: Node): Node {\n if ('content' in node) {\n return (<any>node).content;\n } else {\n return node;\n }\n}\n\nexport function templateAwareRoot(el: Node): any {\n return getDOM().isElementNode(el) && el.nodeName === 'TEMPLATE' ? getContent(el) : el;\n}\n\nexport function setCookie(name: string, value: string) {\n // document.cookie is magical, assigning into it assigns/overrides one cookie value, but does\n // not clear other cookies.\n document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);\n}\n\nexport function supportsWebAnimation(): boolean {\n return typeof (<any>Element).prototype['animate'] === 'function';\n}\n\nexport function hasStyle(element: any, styleName: string, styleValue?: string|null): boolean {\n const value = element.style[styleName] || '';\n return styleValue ? value == styleValue : value.length > 0;\n}\n\nexport function hasClass(element: any, className: string): boolean {\n return element.classList.contains(className);\n}\n\nexport function sortedClassList(element: any): any[] {\n return Array.prototype.slice.call(element.classList, 0).sort();\n}\n\nexport function createTemplate(html: any): HTMLElement {\n const t = getDOM().getDefaultDocument().createElement('template');\n t.innerHTML = html;\n return t;\n}\n\nexport function childNodesAsList(el: Node): any[] {\n const childNodes = el.childNodes;\n const res = [];\n for (let i = 0; i < childNodes.length; i++) {\n res[i] = childNodes[i];\n }\n return res;\n}\n","/**\n * @license\n * Copyright Google LLC 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 {APP_ID, createPlatformFactory, NgModule, NgZone, PLATFORM_INITIALIZER, platformCore, StaticProvider} from '@angular/core';\nimport {BrowserModule, ɵBrowserDomAdapter as BrowserDomAdapter} from '@angular/platform-browser';\n\nimport {BrowserDetection, createNgZone} from './browser_util';\n\nfunction initBrowserTests() {\n BrowserDomAdapter.makeCurrent();\n BrowserDetection.setup();\n}\n\nconst _TEST_BROWSER_PLATFORM_PROVIDERS: StaticProvider[] =\n [{provide: PLATFORM_INITIALIZER, useValue: initBrowserTests, multi: true}];\n\n/**\n * Platform for testing\n *\n * @publicApi\n */\nexport const platformBrowserTesting =\n createPlatformFactory(platformCore, 'browserTesting', _TEST_BROWSER_PLATFORM_PROVIDERS);\n\n/**\n * NgModule for testing.\n *\n * @publicApi\n */\n@NgModule({\n exports: [BrowserModule],\n providers: [\n {provide: APP_ID, useValue: 'a'},\n {provide: NgZone, useFactory: createNgZone},\n ]\n})\nexport class BrowserTestingModule {\n}\n","/**\n * @license\n * Copyright Google LLC 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/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser/testing package.\n */\nexport * from './browser';\n","/**\n * @license\n * Copyright Google LLC 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/// <reference types=\"jasmine\" />\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/testing';\n","/**\n * @license\n * Copyright Google LLC 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// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getDOM","global","BrowserDomAdapter"],"mappings":"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"}
\No newline at end of file