Merge pull request #1071 from haberman/js-tests
Enabled JavaScript tests and added README.md.
This commit is contained in:
commit
7f82325998
@ -22,6 +22,7 @@ env:
|
||||
- CONFIG=javanano_jdk6
|
||||
- CONFIG=javanano_jdk7
|
||||
- CONFIG=javanano_oracle7
|
||||
- CONFIG=javascript
|
||||
- CONFIG=python
|
||||
- CONFIG=python_cpp
|
||||
- CONFIG=ruby19
|
||||
|
14
js/README.md
Normal file
14
js/README.md
Normal file
@ -0,0 +1,14 @@
|
||||
This directory contains Protocol Buffer support for JavaScript. This code works
|
||||
in browsers and in Node.js.
|
||||
|
||||
The packaging work for this is still in-progress. For now you can just run the
|
||||
tests. First you need to build the main C++ distribution because the code
|
||||
generator for JavaScript is written in C++:
|
||||
|
||||
$ ./autogen.sh
|
||||
$ ./configure
|
||||
$ make
|
||||
|
||||
Then you can run the JavaScript tests in this directory:
|
||||
|
||||
$ cd js && gulp test
|
29
js/gulpfile.js
Normal file
29
js/gulpfile.js
Normal file
@ -0,0 +1,29 @@
|
||||
var gulp = require('gulp');
|
||||
var exec = require('child_process').exec;
|
||||
|
||||
gulp.task('genproto', function (cb) {
|
||||
exec('../src/protoc --js_out=library=testproto_libs,binary:. -I ../src -I . *.proto ../src/google/protobuf/descriptor.proto',
|
||||
function (err, stdout, stderr) {
|
||||
console.log(stdout);
|
||||
console.log(stderr);
|
||||
cb(err);
|
||||
});
|
||||
})
|
||||
|
||||
gulp.task('deps', ['genproto'], function (cb) {
|
||||
exec('./node_modules/google-closure-library/closure/bin/build/depswriter.py *.js binary/*.js > deps.js',
|
||||
function (err, stdout, stderr) {
|
||||
console.log(stdout);
|
||||
console.log(stderr);
|
||||
cb(err);
|
||||
});
|
||||
})
|
||||
|
||||
gulp.task('test', ['genproto', 'deps'], function (cb) {
|
||||
exec('JASMINE_CONFIG_PATH=jasmine.json ./node_modules/.bin/jasmine',
|
||||
function (err, stdout, stderr) {
|
||||
console.log(stdout);
|
||||
console.log(stderr);
|
||||
cb(err);
|
||||
});
|
||||
});
|
11
js/jasmine.json
Normal file
11
js/jasmine.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"spec_dir": "",
|
||||
"spec_files": [
|
||||
"*_test.js"
|
||||
],
|
||||
"helpers": [
|
||||
"node_modules/google-closure-library/closure/goog/bootstrap/nodejs.js",
|
||||
"node_loader.js",
|
||||
"deps.js"
|
||||
]
|
||||
}
|
@ -528,7 +528,11 @@ describe('Message test suite', function() {
|
||||
|
||||
// These assertions will only work properly in uncompiled mode.
|
||||
// Extension fields defined on proto2 Descriptor messages are filtered out.
|
||||
assertUndefined(proto.jspb.test.IsExtension['simpleOption']);
|
||||
|
||||
// TODO(haberman): codegen changes to properly ignore descriptor.proto
|
||||
// extensions need to be merged from google3.
|
||||
// assertUndefined(proto.jspb.test.IsExtension['simpleOption']);
|
||||
|
||||
// Extension fields with jspb.ignore = true are ignored.
|
||||
assertUndefined(proto.jspb.test.IndirectExtension['ignored']);
|
||||
assertUndefined(proto.jspb.test.HasExtensions['ignoredFloating']);
|
||||
|
49
js/node_loader.js
Normal file
49
js/node_loader.js
Normal file
@ -0,0 +1,49 @@
|
||||
// Protocol Buffers - Google's data interchange format
|
||||
// Copyright 2008 Google Inc. All rights reserved.
|
||||
// https://developers.google.com/protocol-buffers/
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
/**
|
||||
* @fileoverview Loader that handles goog.require() for Node.JS.
|
||||
*/
|
||||
|
||||
var oldLoader = goog.global.CLOSURE_IMPORT_SCRIPT;
|
||||
|
||||
goog.global.CLOSURE_IMPORT_SCRIPT = function(src, opt_sourceText) {
|
||||
if (opt_sourceText === undefined) {
|
||||
try {
|
||||
// Load from the current directory.
|
||||
require("./" + src);
|
||||
return true;
|
||||
} catch (e) {
|
||||
// Fall back to the Closure loader.
|
||||
}
|
||||
}
|
||||
|
||||
return oldLoader(src, opt_sourceText);
|
||||
};
|
21
js/package.json
Normal file
21
js/package.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "google-protobuf",
|
||||
"version": "3.0.0-alpha.5",
|
||||
"description": "Protocol Buffers for JavaScript",
|
||||
"main": "debug.js",
|
||||
"dependencies": {
|
||||
"google-closure-library": "~20151015.0.0",
|
||||
"gulp": "~3.9.0",
|
||||
"jasmine": "~2.4.1"
|
||||
},
|
||||
"devDependencies": {},
|
||||
"scripts": {
|
||||
"test": "./node_modules/gulp/bin/gulp.js test"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/google/protobuf/tree/master/js"
|
||||
},
|
||||
"author": "",
|
||||
"license": "Apache-2.0"
|
||||
}
|
Loading…
Reference in New Issue
Block a user