Index: third_party/WebKit/LayoutTests/webaudio/resources/audit.js |
diff --git a/third_party/WebKit/LayoutTests/webaudio/resources/audit.js b/third_party/WebKit/LayoutTests/webaudio/resources/audit.js |
index d2946161efbb1f2cd2f707a8d6487db5145ddee8..366f04098cf87ec2ed46347a6ce4d74ab9c82032 100644 |
--- a/third_party/WebKit/LayoutTests/webaudio/resources/audit.js |
+++ b/third_party/WebKit/LayoutTests/webaudio/resources/audit.js |
@@ -964,6 +964,75 @@ window.Audit = (function () { |
'${actual} ' + passDetail, |
'${actual} ' + failDetail); |
} |
+ |
+ /** |
+ * Check if |expected| property is truly owned by |actual| object. |
+ * |
+ * @example |
+ * should(BaseAudioContext.prototype, |
+ * 'BaseAudioContext.prototype').ownProperty('createGain'); |
+ * |
+ * @result |
+ * "PASS BaseAudioContext.prototype has an own property of |
+ * 'createGain'." |
+ */ |
+ ownProperty () { |
+ this._processArguments(arguments); |
+ |
+ return this._assert( |
+ this._actual.hasOwnProperty(this._expected), |
+ '${actual} has an own property of "${expected}".', |
+ '${actual} does not own the property of "${expected}".'); |
+ } |
+ |
+ |
+ /** |
+ * Check if |expected| property is not owned by |actual| object. |
+ * |
+ * @example |
+ * should(BaseAudioContext.prototype, |
+ * 'BaseAudioContext.prototype').notOwnProperty('startRendering'); |
+ * |
+ * @result |
+ * "PASS BaseAudioContext.prototype does not have an own property of |
+ * 'startRendering'." |
+ */ |
+ notOwnProperty () { |
+ this._processArguments(arguments); |
+ |
+ return this._assert( |
+ !this._actual.hasOwnProperty(this._expected), |
+ '${actual} does not have an own own property of "${expected}".', |
Raymond Toy
2017/04/07 16:10:58
"own own"?
hongchan
2017/04/07 17:22:17
Oops.
|
+ '${actual} has an own the property of "${expected}".') |
+ } |
+ |
+ |
+ /** |
+ * Check if an object is inherited from a class. This looks up the entire |
+ * prototype chain of a given object and tries to find a match. |
+ * |
+ * @example |
+ * should(sourceNode, 'A buffer source node') |
+ * .inheritFrom('AudioScheduledSourceNode'); |
+ * |
+ * @result |
+ * "PASS A buffer source node inherits from 'AudioScheduledSourceNode'." |
+ */ |
+ inheritFrom () { |
+ this._processArguments(arguments); |
+ |
+ let prototypes = []; |
+ let currentPrototype = Object.getPrototypeOf(this._actual); |
+ while (currentPrototype) { |
+ prototypes.push(currentPrototype.constructor.name); |
+ currentPrototype = Object.getPrototypeOf(currentPrototype); |
+ } |
+ |
+ return this._assert( |
+ prototypes.includes(this._expected), |
+ '${actual} inherits from "${expected}".', |
+ '${actual} does not inherit from "${expected}".'); |
+ } |
} |