| 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 ae276fbc1d44b8a2ec63dfeab1b521d300b12467..2720c8e2c11e780b7b3effb781b67823c9085532 100644
|
| --- a/mojo/public/js/bindings/validation_unittests.js
|
| +++ b/mojo/public/js/bindings/validation_unittests.js
|
| @@ -162,7 +162,7 @@ define([
|
| return null;
|
| }
|
|
|
| - function getMessageTestFiles() {
|
| + function getMessageTestFiles(key) {
|
| var sourceRoot = file.getSourceRootDirectory();
|
| expect(sourceRoot).not.toBeNull();
|
|
|
| @@ -172,17 +172,14 @@ define([
|
| expect(testFiles).not.toBeNull();
|
| expect(testFiles.length).toBeGreaterThan(0);
|
|
|
| - // The ".data" pathnames with the extension removed.
|
| - var testPathNames = testFiles.filter(function(s) {
|
| - return s.substr(-5) == ".data";
|
| - }).map(function(s) {
|
| - return testDir + s.slice(0, -5);
|
| - });
|
| -
|
| - // For now, just checking the message header tests.
|
| - return testPathNames.filter(function(s) {
|
| - return s.indexOf("_msghdr_") != -1;
|
| - });
|
| + // The matching ".data" pathnames with the extension removed.
|
| + return testFiles.filter(function(s) {
|
| + return s.substr(-5) == ".data";
|
| + }).map(function(s) {
|
| + return testDir + s.slice(0, -5);
|
| + }).filter(function(s) {
|
| + return s.indexOf(key) != -1;
|
| + });
|
| }
|
|
|
| function readTestMessage(filename) {
|
| @@ -197,21 +194,49 @@ define([
|
| return contents.trim();
|
| }
|
|
|
| - function testValidateMessageHeader() {
|
| - var testFiles = getMessageTestFiles();
|
| + 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)
|
| + continue;
|
| +
|
| var testMessage = readTestMessage(testFiles[i]);
|
| - // TODO(hansmuller): add the message handles.
|
| - var message = new codec.Message(testMessage.buffer);
|
| - var actualResult = new validator.Validator(message).validateMessage();
|
| + var handles = new Array(testMessage.handleCount);
|
| + var message = new codec.Message(testMessage.buffer, handles);
|
| + var messageValidator = new validator.Validator(message);
|
| +
|
| + var err = messageValidator.validateMessageHeader();
|
| + 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]);
|
| expect(actualResult).toEqual(expectedResult);
|
| }
|
| }
|
|
|
| - testValidateMessageHeader();
|
| + function testConformanceMessageValidation() {
|
| + testMessageValidation("conformance_", [
|
| + testInterface.validateConformanceTestInterfaceRequest,
|
| + testInterface.validateConformanceTestInterfaceResponse
|
| + ]);
|
| + }
|
| +
|
| + function testIntegrationMessageValidation() {
|
| + testMessageValidation("integration_", [
|
| + testInterface.validateIntegrationTestInterface1Request,
|
| + testInterface.validateIntegrationTestInterface1Response,
|
| + testInterface.validateIntegrationTestInterface2Request,
|
| + testInterface.validateIntegrationTestInterface2Response
|
| + ]);
|
| + }
|
| +
|
| + testConformanceMessageValidation();
|
| + testIntegrationMessageValidation();
|
| expect(checkTestMessageParser()).toBeNull();
|
| this.result = "PASS";
|
| });
|
|
|