Browse Source

Check type of parsed JSON to determine it's an object and not a number.

patch-2
Braydon Fuller 10 years ago
parent
commit
c20a0eabed
  1. 8
      lib/util/js.js
  2. 2
      test/privatekey.js
  3. 29
      test/util/js.js

8
lib/util/js.js

@ -28,9 +28,15 @@ module.exports = {
* @return {Object|boolean} false if the argument is not a JSON string.
*/
isValidJSON: function isValidJSON(arg) {
var parsed;
try {
return JSON.parse(arg);
parsed = JSON.parse(arg);
} catch (e) {
parsed = false;
}
if (typeof(parsed) === 'object') {
return true;
} else {
return false;
}
},

2
test/privatekey.js

@ -32,7 +32,7 @@ describe('PrivateKey', function() {
should.exist(b.bn);
});
it('should create a privatkey from hexa string', function() {
it('should create a privatekey from hexa string', function() {
var a = new PrivateKey(hex2);
should.exist(a);
should.exist(a.bn);

29
test/util/js.js

@ -0,0 +1,29 @@
'use strict';
/* jshint unused: false */
var should = require('chai').should();
var expect = require('chai').expect;
var bitcore = require('../..');
var JSUtil = bitcore.util.js;
describe('js utils', function() {
describe('isValidJSON', function() {
var hexa = '8080808080808080808080808080808080808080808080808080808080808080';
var json = '{"key": ["value", "value2"]}';
it('does not mistake an integer as valid json object', function() {
var valid = JSUtil.isValidJSON(hexa);
valid.should.equal(false);
});
it('correctly validates a json object', function() {
var valid = JSUtil.isValidJSON(json);
valid.should.equal(true);
});
});
});
Loading…
Cancel
Save