OLD | NEW |
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/bindings", | 10 "mojo/public/js/bindings", |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 } | 271 } |
272 | 272 |
273 function testIntegratedMessageValidation(testFilesPattern, endpoint) { | 273 function testIntegratedMessageValidation(testFilesPattern, endpoint) { |
274 var testFiles = getMessageTestFiles(testFilesPattern); | 274 var testFiles = getMessageTestFiles(testFilesPattern); |
275 expect(testFiles.length).toBeGreaterThan(0); | 275 expect(testFiles.length).toBeGreaterThan(0); |
276 | 276 |
277 var testMessagePipe = core.createMessagePipe(); | 277 var testMessagePipe = core.createMessagePipe(); |
278 expect(testMessagePipe.result).toBe(core.RESULT_OK); | 278 expect(testMessagePipe.result).toBe(core.RESULT_OK); |
279 | 279 |
280 endpoint.bind(testMessagePipe.handle1); | 280 endpoint.bind(testMessagePipe.handle1); |
281 var testingController = endpoint.enableTestingMode(); | 281 var observer = validator.ValidationErrorObserverForTesting.getInstance(); |
282 | |
283 var validationError; | |
284 testingController.setInvalidIncomingMessageHandler(function(error) { | |
285 validationError = error; | |
286 }); | |
287 | 282 |
288 for (var i = 0; i < testFiles.length; i++) { | 283 for (var i = 0; i < testFiles.length; i++) { |
289 validationError = noError; | |
290 var testMessage = readTestMessage(testFiles[i]); | 284 var testMessage = readTestMessage(testFiles[i]); |
291 var handles = new Array(testMessage.handleCount); | 285 var handles = new Array(testMessage.handleCount); |
292 | 286 |
293 var writeMessageValue = core.writeMessage( | 287 var writeMessageValue = core.writeMessage( |
294 testMessagePipe.handle0, | 288 testMessagePipe.handle0, |
295 new Uint8Array(testMessage.buffer.arrayBuffer), | 289 new Uint8Array(testMessage.buffer.arrayBuffer), |
296 new Array(testMessage.handleCount), | 290 new Array(testMessage.handleCount), |
297 core.WRITE_MESSAGE_FLAG_NONE); | 291 core.WRITE_MESSAGE_FLAG_NONE); |
298 expect(writeMessageValue).toBe(core.RESULT_OK); | 292 expect(writeMessageValue).toBe(core.RESULT_OK); |
299 | 293 |
300 testingController.waitForNextMessage(); | 294 endpoint.waitForNextMessageForTesting(); |
301 checkValidationResult(testFiles[i], validationError); | 295 checkValidationResult(testFiles[i], observer.lastError); |
| 296 observer.reset(); |
302 } | 297 } |
303 | 298 |
304 expect(core.close(testMessagePipe.handle0)).toBe(core.RESULT_OK); | 299 expect(core.close(testMessagePipe.handle0)).toBe(core.RESULT_OK); |
305 } | 300 } |
306 | 301 |
307 function testIntegratedMessageHeaderValidation() { | 302 function testIntegratedMessageHeaderValidation() { |
308 testIntegratedMessageValidation( | 303 testIntegratedMessageValidation( |
309 "integration_msghdr", | 304 "integration_msghdr", |
310 new bindings.Binding(testInterface.IntegrationTestInterface, {})); | 305 new bindings.Binding(testInterface.IntegrationTestInterface, {})); |
311 testIntegratedMessageValidation( | 306 testIntegratedMessageValidation( |
(...skipping 14 matching lines...) Expand all Loading... |
326 } | 321 } |
327 | 322 |
328 expect(checkTestMessageParser()).toBeNull(); | 323 expect(checkTestMessageParser()).toBeNull(); |
329 testConformanceMessageValidation(); | 324 testConformanceMessageValidation(); |
330 testBoundsCheckMessageValidation(); | 325 testBoundsCheckMessageValidation(); |
331 testResponseConformanceMessageValidation(); | 326 testResponseConformanceMessageValidation(); |
332 testResponseBoundsCheckMessageValidation(); | 327 testResponseBoundsCheckMessageValidation(); |
333 testIntegratedMessageHeaderValidation(); | 328 testIntegratedMessageHeaderValidation(); |
334 testIntegratedResponseMessageValidation(); | 329 testIntegratedResponseMessageValidation(); |
335 testIntegratedRequestMessageValidation(); | 330 testIntegratedRequestMessageValidation(); |
| 331 validator.clearTestingMode(); |
336 | 332 |
337 this.result = "PASS"; | 333 this.result = "PASS"; |
338 }); | 334 }); |
OLD | NEW |