MCPcopy
hub / github.com/ampproject/amphtml / getFakeWindow

Function getFakeWindow

test/unit/test-url-replacements.js:109–183  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

107 }
108
109 function getFakeWindow() {
110 loadObservable = new Observable();
111 const win = {
112 addEventListener(type, callback) {
113 loadObservable.add(callback);
114 },
115 Object,
116 performance: {
117 timing: {
118 navigationStart: 100,
119 loadEventStart: 0,
120 },
121 },
122 removeEventListener(type, callback) {
123 loadObservable.remove(callback);
124 },
125 document: {
126 nodeType: /* document */ 9,
127 querySelector: () => {
128 return {href: canonical};
129 },
130 getElementById: () => {},
131 cookie: '',
132 documentElement: {
133 nodeType: /* element */ 1,
134 getRootNode() {
135 return win.document;
136 },
137 hasAttribute: () => {},
138 },
139 },
140 Math: {
141 random: () => 0.1234,
142 },
143 crypto: {
144 getRandomValues: (array) => {
145 array[0] = 1;
146 array[1] = 2;
147 array[2] = 3;
148 array[15] = 15;
149 },
150 },
151 __AMP_SERVICES: {
152 'viewport': {obj: {}, ctor: Object},
153 'cid': {
154 promise: Promise.resolve({
155 get: (config) =>
156 Promise.resolve('test-cid(' + config.scope + ')'),
157 }),
158 },
159 },
160 };
161 win.document.defaultView = win;
162 win.document.documentElement.ownerDocument = win.document;
163 win.document.head = {
164 nodeType: /* element */ 1,
165 // Fake query selectors needed to bypass <meta> tag checks.
166 querySelector: () => null,

Callers 1

Calls 5

installDocServiceFunction · 0.90
resolveMethod · 0.80
getSingleDocMethod · 0.80

Tested by

no test coverage detected