Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Side by Side Diff: android_webview/tools/WebViewShell/test/resources/js-test.js

Issue 1785283005: [WebView] Reorganize all of the WebView Shell apks into their own dir. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 debug = function debug(msg)
6 {
7 console.log(msg);
8 };
9
10 description = function description(msg, quiet)
11 {
12 console.log(msg);
13 };
14
15 finishJSTest = function finishJSTest() {
16 console.log("TEST FINISHED");
17 };
18
19 function handleTestFinished() {
20 if (!window.jsTestIsAsync)
21 finishJSTest();
22 }
23
24 function testFailed(msg) {
25 debug('FAIL: ' + msg);
26 }
27
28 function testPassed(msg)
29 {
30 debug('PASS: ' + msg);
31 }
32
33 function isWorker()
34 {
35 // It's conceivable that someone would stub out 'document' in a worker so
36 // also check for childNodes, an arbitrary DOM-related object that is
37 // meaningless in a WorkerContext.
38 return (typeof document === 'undefined' ||
39 typeof document.childNodes === 'undefined') && !!self.importScripts;
40 }
41
42 if (!isWorker()) {
43 window.addEventListener('DOMContentLoaded', handleTestFinished, false);
44 }
45
46 function _compareLessThan(_a, _b) {
47 return _a < _b;
48 }
49
50 function _compareGreaterThan(_a, _b) {
51 return _a > _b;
52 }
53
54 // TODO(timvolodine): consider moving this code to js-test.js in blink and
55 // reusing it from there (crbug.com/535209).
56 function _comp(_a, _b, _inv_comparison_func, _comparison_str) {
57 if (typeof _a != "string" || typeof _b != "string")
58 debug("WARN: _comp expects string arguments");
59
60 var _exception;
61 var _av;
62 try {
63 _av = eval(_a);
64 } catch (e) {
65 _exception = e;
66 }
67 var _bv = eval(_b);
68
69 if (_exception) {
70 testFailed(_a + " should be" + _comparison_str + _b + ". Threw exception "
71 + _exception);
72 } else if (typeof _av == "undefined" || _inv_comparison_func(_av, _bv)) {
73 testFailed(_a + " should be" + _comparison_str + _b + ". Was " + _av
74 + " (of type " + typeof _av + ").");
75 } else {
76 testPassed(_a + " is" + _comparison_str + _b);
77 }
78 }
79
80 function shouldBeGreaterThanOrEqual(_a, _b) {
81 _comp(_a, _b, _compareLessThan, " >= ");
82 }
83
84 function shouldBeLessThanOrEqual(_a, _b) {
85 _comp(_a, _b, _compareGreaterThan, " <= ");
86 }
87
88 // Functions in common with js-test.js in blink,
89 // see third_party/WebKit/LayoutTests/resources/js-test.js
90
91 function areArraysEqual(a, b)
92 {
93 try {
94 if (a.length !== b.length)
95 return false;
96 for (var i = 0; i < a.length; i++)
97 if (a[i] !== b[i])
98 return false;
99 } catch (ex) {
100 return false;
101 }
102 return true;
103 }
104
105 // Returns a sorted array of property names of object. This function returns
106 // not only own properties but also properties on prototype chains.
107 function getAllPropertyNames(object) {
108 var properties = [];
109 for (var property in object) {
110 properties.push(property);
111 }
112 return properties.sort();
113 }
114
115 function isNewSVGTearOffType(v)
116 {
117 return ['[object SVGLength]', '[object SVGLengthList]',
118 '[object SVGPoint]', '[object SVGPointList]',
119 '[object SVGNumber]', '[object SVGTransform]',
120 '[object SVGTransformList]'].indexOf(""+v) != -1;
121 }
122
123 function stringify(v)
124 {
125 if (isNewSVGTearOffType(v))
126 return v.valueAsString;
127 if (v === 0 && 1/v < 0)
128 return "-0";
129 else return "" + v;
130 }
131
132 function isResultCorrect(actual, expected)
133 {
134 if (expected === 0)
135 return actual === expected && (1/actual) === (1/expected);
136 if (actual === expected)
137 return true;
138 // http://crbug.com/308818 : The new implementation of SVGListProperties
139 // do not necessary return the same wrapper object, so === operator would
140 // not work. We compare for their string representation instead.
141 if (isNewSVGTearOffType(expected) && typeof(expected) == typeof(actual)
142 && actual.valueAsString == expected.valueAsString)
143 return true;
144 if (typeof(expected) == "number" && isNaN(expected))
145 return typeof(actual) == "number" && isNaN(actual);
146 if (expected && (Object.prototype.toString.call(expected)
147 == Object.prototype.toString.call([])))
148 return areArraysEqual(actual, expected);
149 return false;
150 }
151
152 function shouldBe(_a, _b, quiet, opt_tolerance)
153 {
154 if (typeof _a != "string" || typeof _b != "string")
155 debug("WARN: shouldBe() expects string arguments");
156 var _exception;
157 var _av;
158 try {
159 _av = eval(_a);
160 } catch (e) {
161 _exception = e;
162 }
163 var _bv = eval(_b);
164
165 if (_exception)
166 testFailed(_a + " should be " + _bv + ". Threw exception "
167 + _exception);
168 else if (isResultCorrect(_av, _bv)
169 || (typeof opt_tolerance == 'number' && typeof _av == 'number'
170 && Math.abs(_av - _bv) <= opt_tolerance)) {
171 if (!quiet) {
172 testPassed(_a + " is " + _b);
173 }
174 } else if (typeof(_av) == typeof(_bv)) {
175 testFailed(_a + " should be " + _bv + ". Was " + stringify(_av) + ".");
176 } else {
177 testFailed(_a + " should be " + _bv + " (of type " + typeof _bv
178 + "). Was " + _av + " (of type " + typeof _av + ").");
179 }
180 }
181
182 function shouldBeEqualToString(a, b)
183 {
184 if (typeof a !== "string" || typeof b !== "string")
185 debug("WARN: shouldBeEqualToString() expects string arguments");
186 var unevaledString = JSON.stringify(b);
187 shouldBe(a, unevaledString);
188 }
189
190 function shouldBeTrue(a, quiet) { shouldBe(a, "true", quiet); }
191 function shouldBeFalse(a, quiet) { shouldBe(a, "false", quiet); }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698