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

Unified Diff: mojo/apps/js/test/js_to_cpp_unittest.js

Issue 250713003: Test sending corrupt mojo messages back from javascript. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 6 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/apps/js/test/js_to_cpp_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/apps/js/test/js_to_cpp_unittest.js
diff --git a/mojo/apps/js/test/js_to_cpp_unittest.js b/mojo/apps/js/test/js_to_cpp_unittest.js
index 8b0a99bd7d0a5cf35eb6110f92ec98ce898d840b..e46e0fb2672efcc3945e3339c5a2025c924b7fd1 100644
--- a/mojo/apps/js/test/js_to_cpp_unittest.js
+++ b/mojo/apps/js/test/js_to_cpp_unittest.js
@@ -5,8 +5,9 @@
define("mojo/apps/js/test/js_to_cpp_unittest", [
"mojo/apps/js/test/js_to_cpp.mojom",
"mojo/public/js/bindings/connection",
-], function(jsToCpp, connector) {
- var connection, kIterations = 100, kBadValue = 13;
+ "mojo/public/js/bindings/connector",
+], function(jsToCpp, connection, connector) {
+ var retainedConnection, kBadValue = 13;
function JsSideConnection(cppSide) {
this.cppSide_ = cppSide;
@@ -20,8 +21,9 @@ define("mojo/apps/js/test/js_to_cpp_unittest", [
};
- JsSideConnection.prototype.echo = function (arg) {
- var i, arg2;
+ JsSideConnection.prototype.echo = function (numIterations, arg) {
+ var arg2;
+ var i;
// Ensure negative values are negative.
if (arg.si64 > 0)
@@ -36,7 +38,7 @@ define("mojo/apps/js/test/js_to_cpp_unittest", [
if (arg.si8 > 0)
arg.si8 = kBadValue;
- for (i = 0; i < kIterations; ++i) {
+ for (i = 0; i < numIterations; ++i) {
arg2 = new jsToCpp.EchoArgs();
arg2.si64 = -1;
arg2.si32 = -1;
@@ -45,10 +47,38 @@ define("mojo/apps/js/test/js_to_cpp_unittest", [
arg2.name = "going";
this.cppSide_.echoResponse(arg, arg2);
}
+ this.cppSide_.testFinished();
+ };
+
+ JsSideConnection.prototype.bitFlip = function (arg) {
+ var iteration = 0;
+ var stopSignalled = false;
+ var proto = connector.Connector.prototype;
+ proto.realAccept = proto.accept;
+ proto.accept = function (message) {
+ var offset = iteration / 8;
+ var mask;
+ var value;
+ if (offset < message.buffer.arrayBuffer.byteLength) {
+ mask = 1 << (iteration % 8);
+ value = message.buffer.dataView.getUint8(offset) ^ mask;
+ message.buffer.dataView.setUint8(offset, value);
+ return this.realAccept(message);
+ }
+ stopSignalled = true;
+ return false;
+ };
+ while (!stopSignalled) {
+ this.cppSide_.bitFlipResponse(arg);
+ iteration += 1;
+ }
+ proto.accept = proto.realAccept;
+ proto.realAccept = null;
+ this.cppSide_.testFinished();
};
return function(handle) {
- connection = new connector.Connection(handle, JsSideConnection,
- jsToCpp.CppSideProxy);
+ retainedConnection = new connection.Connection(handle, JsSideConnection,
+ jsToCpp.CppSideProxy);
};
});
« no previous file with comments | « mojo/apps/js/test/js_to_cpp_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698