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

Side by Side Diff: mojo/public/js/validation_unittests.js

Issue 921223002: Cpp bindings: Return false from Validator::Accept() on unrecognized message or invalid flags (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Fixes spelling error. Created 5 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 define([ 5 define([
6 "console", 6 "console",
7 "file", 7 "file",
8 "gin/test/expect", 8 "gin/test/expect",
9 "mojo/public/interfaces/bindings/tests/validation_test_interfaces.mojom", 9 "mojo/public/interfaces/bindings/tests/validation_test_interfaces.mojom",
10 "mojo/public/js/buffer", 10 "mojo/public/js/buffer",
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 if (actualResult != expectedResult) 218 if (actualResult != expectedResult)
219 console.log("[Test message validation failed: " + testFile + " ]"); 219 console.log("[Test message validation failed: " + testFile + " ]");
220 expect(actualResult).toEqual(expectedResult); 220 expect(actualResult).toEqual(expectedResult);
221 } 221 }
222 222
223 function testMessageValidation(key, filters) { 223 function testMessageValidation(key, filters) {
224 var testFiles = getMessageTestFiles(key); 224 var testFiles = getMessageTestFiles(key);
225 expect(testFiles.length).toBeGreaterThan(0); 225 expect(testFiles.length).toBeGreaterThan(0);
226 226
227 for (var i = 0; i < testFiles.length; i++) { 227 for (var i = 0; i < testFiles.length; i++) {
228 // TODO(hansmuller, yzshen): Temporarily skipping: 228 // TODO(hansmuller, yzshen, rudominer): Temporarily skipping:
229 // - array pointer overflow tests; 229 // - array pointer overflow tests;
230 // - struct versioning tests (tests with "mthd11" in the name). 230 // - struct versioning tests (tests with "mthd11" in the name).
231 // - no-such-method validation check tests.
231 if (testFiles[i].indexOf("overflow") != -1 || 232 if (testFiles[i].indexOf("overflow") != -1 ||
232 testFiles[i].indexOf("mthd11") != -1) { 233 testFiles[i].indexOf("mthd11") != -1 ||
234 testFiles[i].indexOf("no_such_method") != -1) {
233 console.log("[Skipping " + testFiles[i] + "]"); 235 console.log("[Skipping " + testFiles[i] + "]");
234 continue; 236 continue;
235 } 237 }
236 238
237 var testMessage = readTestMessage(testFiles[i]); 239 var testMessage = readTestMessage(testFiles[i]);
238 var handles = new Array(testMessage.handleCount); 240 var handles = new Array(testMessage.handleCount);
239 var message = new codec.Message(testMessage.buffer, handles); 241 var message = new codec.Message(testMessage.buffer, handles);
240 var messageValidator = new validator.Validator(message); 242 var messageValidator = new validator.Validator(message);
241 243
242 var err = messageValidator.validateMessageHeader(); 244 var err = messageValidator.validateMessageHeader();
243 for (var j = 0; err === noError && j < filters.length; ++j) 245 for (var j = 0; err === noError && j < filters.length; ++j)
244 err = filters[j](messageValidator); 246 err = filters[j](messageValidator);
245 247
246 checkValidationResult(testFiles[i], err); 248 checkValidationResult(testFiles[i], err);
247 } 249 }
248 } 250 }
249 251
250 function testConformanceMessageValidation() { 252 function testConformanceMessageValidation() {
251 testMessageValidation("conformance_", [ 253 testMessageValidation("conformance_", [
252 testInterface.ConformanceTestInterface.validateRequest]); 254 testInterface.ConformanceTestInterface.validateRequest]);
253 } 255 }
254 256
255 function testIntegratedMessageValidation(testFilesPattern) { 257 function testIntegratedMessageValidation(testFilesPattern) {
256 var testFiles = getMessageTestFiles(testFilesPattern); 258 var testFiles = getMessageTestFiles(testFilesPattern);
257 expect(testFiles.length).toBeGreaterThan(0); 259 expect(testFiles.length).toBeGreaterThan(0);
258 260
259 for (var i = 0; i < testFiles.length; i++) { 261 for (var i = 0; i < testFiles.length; i++) {
260 // TODO(hansmuller): Temporarily skipping array pointer overflow tests. 262 // TODO(hansmuller): Temporarily skipping array pointer overflow tests.
yzshen1 2015/03/03 18:05:37 This whole if-statement can be removed, because we
rudominer 2015/03/04 00:12:01 Done.
261 if (testFiles[i].indexOf("overflow") != -1) { 263 // TODO(rudominer) Temporarily skipping no-such-method verifcation tests.
264 if (testFiles[i].indexOf("overflow") != -1 ||
265 testFiles[i].indexOf("no_such_method") != -1) {
262 console.log("[Skipping " + testFiles[i] + "]"); 266 console.log("[Skipping " + testFiles[i] + "]");
263 continue; 267 continue;
264 } 268 }
265 269
266 var testMessage = readTestMessage(testFiles[i]); 270 var testMessage = readTestMessage(testFiles[i]);
267 var handles = new Array(testMessage.handleCount); 271 var handles = new Array(testMessage.handleCount);
268 var testMessagePipe = new core.createMessagePipe(); 272 var testMessagePipe = new core.createMessagePipe();
269 expect(testMessagePipe.result).toBe(core.RESULT_OK); 273 expect(testMessagePipe.result).toBe(core.RESULT_OK);
270 274
271 var writeMessageValue = core.writeMessage( 275 var writeMessageValue = core.writeMessage(
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 testIntegratedMessageValidation("integration_intf_resp"); 309 testIntegratedMessageValidation("integration_intf_resp");
306 } 310 }
307 311
308 expect(checkTestMessageParser()).toBeNull(); 312 expect(checkTestMessageParser()).toBeNull();
309 testConformanceMessageValidation(); 313 testConformanceMessageValidation();
310 testIntegratedMessageHeaderValidation(); 314 testIntegratedMessageHeaderValidation();
311 testIntegratedResponseMessageValidation(); 315 testIntegratedResponseMessageValidation();
312 testIntegratedRequestMessageValidation(); 316 testIntegratedRequestMessageValidation();
313 this.result = "PASS"; 317 this.result = "PASS";
314 }); 318 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698