Index: mojo/public/js/validator.js |
diff --git a/mojo/public/js/validator.js b/mojo/public/js/validator.js |
index fee742d0c1b1c2761f99bd4494e587e5237965fd..d47f6edfab46bcbb796c095885d254d509592b78 100644 |
--- a/mojo/public/js/validator.js |
+++ b/mojo/public/js/validator.js |
@@ -28,6 +28,50 @@ define("mojo/public/js/validator", [ |
}; |
var NULL_MOJO_POINTER = "NULL_MOJO_POINTER"; |
+ var gValidationErrorObserver = null; |
+ |
+ function reportValidationError(error) { |
+ if (gValidationErrorObserver) { |
+ gValidationErrorObserver.setLastError(error); |
+ } |
+ } |
+ |
+ var ValidationErrorObserverForTesting = (function() { |
+ function Observer() { |
+ this.lastError = validationError.NONE; |
+ gValidationErrorObserver = this; |
+ this.callback = undefined; |
+ } |
+ |
+ Observer.prototype.setLastError = function(error) { |
+ this.lastError = error; |
+ if (this.callback) { |
+ this.callback(error); |
+ } |
+ }; |
+ |
+ Observer.prototype.reset = function(error) { |
+ this.lastError = validationError.NONE; |
+ this.callback = undefined; |
+ }; |
+ |
+ return { |
+ getInstance: function() { |
+ if (!gValidationErrorObserver) { |
+ gValidationErrorObserver = new Observer(); |
+ } |
+ return gValidationErrorObserver; |
+ } |
+ }; |
+ })(); |
+ |
+ function isTestingMode() { |
+ if (gValidationErrorObserver) { |
+ return true; |
+ } |
+ return false; |
+ } |
+ |
function isEnumClass(cls) { |
return cls instanceof codec.Enum; |
@@ -180,6 +224,7 @@ define("mojo/public/js/validator", [ |
return fieldVersion <= structVersion; |
}; |
+ // TODO(wangjimmy): Add support for v2 messages. |
Validator.prototype.validateMessageHeader = function() { |
var err = this.validateStructHeader(0, codec.kMessageHeaderSize); |
@@ -508,5 +553,8 @@ define("mojo/public/js/validator", [ |
var exports = {}; |
exports.validationError = validationError; |
exports.Validator = Validator; |
+ exports.ValidationErrorObserverForTesting = ValidationErrorObserverForTesting; |
+ exports.reportValidationError = reportValidationError; |
+ exports.isTestingMode = isTestingMode; |
return exports; |
}); |