| Index: mojo/public/js/bindings/validation_unittests.js
|
| diff --git a/mojo/public/js/bindings/validation_unittests.js b/mojo/public/js/bindings/validation_unittests.js
|
| index 2f0bf9daec13a7d3af8450f7897f1b93e2f8d52e..73fd9c7142450e7423c881e76509d57cbf4a817d 100644
|
| --- a/mojo/public/js/bindings/validation_unittests.js
|
| +++ b/mojo/public/js/bindings/validation_unittests.js
|
| @@ -9,10 +9,26 @@ define([
|
| "mojo/public/interfaces/bindings/tests/validation_test_interfaces.mojom",
|
| "mojo/public/js/bindings/buffer",
|
| "mojo/public/js/bindings/codec",
|
| + "mojo/public/js/bindings/connection",
|
| + "mojo/public/js/bindings/connector",
|
| + "mojo/public/js/bindings/core",
|
| "mojo/public/js/bindings/tests/validation_test_input_parser",
|
| + "mojo/public/js/bindings/router",
|
| "mojo/public/js/bindings/validator",
|
| - ], function(
|
| - console, file, expect, testInterface, buffer, codec, parser, validator) {
|
| +], function(console,
|
| + file,
|
| + expect,
|
| + testInterface,
|
| + buffer,
|
| + codec,
|
| + connection,
|
| + connector,
|
| + core,
|
| + parser,
|
| + router,
|
| + validator) {
|
| +
|
| + var noError = validator.validationError.NONE;
|
|
|
| function checkTestMessageParser() {
|
| function TestMessageParserFailure(message, input) {
|
| @@ -196,11 +212,18 @@ define([
|
| return contents.trim();
|
| }
|
|
|
| + function checkValidationResult(testFile, err) {
|
| + var actualResult = (err === noError) ? "PASS" : err;
|
| + var expectedResult = readTestExpected(testFile);
|
| + if (actualResult != expectedResult)
|
| + console.log("[Test message validation failed: " + testFile + " ]");
|
| + expect(actualResult).toEqual(expectedResult);
|
| + }
|
| +
|
| function testMessageValidation(key, filters) {
|
| var testFiles = getMessageTestFiles(key);
|
| expect(testFiles.length).toBeGreaterThan(0);
|
|
|
| - var noError = validator.validationError.NONE;
|
| for (var i = 0; i < testFiles.length; i++) {
|
| // TODO(hansmuller): Temporarily skipping array pointer overflow tests.
|
| if (testFiles[i].indexOf("overflow") != -1) {
|
| @@ -217,11 +240,7 @@ define([
|
| for (var j = 0; err === noError && j < filters.length; ++j)
|
| err = filters[j](messageValidator);
|
|
|
| - var actualResult = (err === noError) ? "PASS" : err;
|
| - var expectedResult = readTestExpected(testFiles[i]);
|
| - if (actualResult != expectedResult)
|
| - console.log("[Test message validation failed: " + testFiles[i] + " ]");
|
| - expect(actualResult).toEqual(expectedResult);
|
| + checkValidationResult(testFiles[i], err);
|
| }
|
| }
|
|
|
| @@ -235,14 +254,49 @@ define([
|
| testInterface.ConformanceTestInterfaceStub.prototype.validator]);
|
| }
|
|
|
| - function testIntegrationMessageValidation() {
|
| - testMessageValidation("integration_", [
|
| - testInterface.IntegrationTestInterface1Stub.prototype.validator,
|
| - testInterface.IntegrationTestInterface2Proxy.prototype.validator]);
|
| + function testIntegratedMessageValidation() {
|
| + var testFiles = getMessageTestFiles("integration_");
|
| + expect(testFiles.length).toBeGreaterThan(0);
|
| +
|
| + for (var i = 0; i < testFiles.length; i++) {
|
| + // TODO(hansmuller): Temporarily skipping array pointer overflow tests.
|
| + if (testFiles[i].indexOf("overflow") != -1) {
|
| + console.log("[Skipping " + testFiles[i] + "]");
|
| + continue;
|
| + }
|
| +
|
| + var testMessage = readTestMessage(testFiles[i]);
|
| + var handles = new Array(testMessage.handleCount);
|
| + var testMessagePipe = new core.createMessagePipe();
|
| + expect(testMessagePipe.result).toBe(core.RESULT_OK);
|
| +
|
| + var writeMessageValue = core.writeMessage(
|
| + testMessagePipe.handle0,
|
| + new Uint8Array(testMessage.buffer.arrayBuffer),
|
| + new Array(testMessage.handleCount),
|
| + core.WRITE_MESSAGE_FLAG_NONE);
|
| + expect(writeMessageValue).toBe(core.RESULT_OK);
|
| +
|
| + var testConnection = new connection.TestConnection(
|
| + testMessagePipe.handle1,
|
| + testInterface.IntegrationTestInterface1Stub,
|
| + testInterface.IntegrationTestInterface2Proxy);
|
| +
|
| + var validationError = noError;
|
| + testConnection.router_.validationErrorHandler = function(err) {
|
| + validationError = err;
|
| + }
|
| +
|
| + testConnection.router_.connector_.deliverMessage();
|
| + checkValidationResult(testFiles[i], validationError);
|
| +
|
| + testConnection.close();
|
| + expect(core.close(testMessagePipe.handle0)).toBe(core.RESULT_OK);
|
| + }
|
| }
|
|
|
| expect(checkTestMessageParser()).toBeNull();
|
| testConformanceMessageValidation();
|
| - testIntegrationMessageValidation();
|
| + testIntegratedMessageValidation();
|
| this.result = "PASS";
|
| });
|
|
|