Socket
Socket
Sign inDemoInstall

moddle-xml

Package Overview
Dependencies
Maintainers
3
Versions
75
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

moddle-xml - npm Package Compare versions

Comparing version 0.11.1 to 0.12.0

test/fixtures/model/redefine.json

9

lib/reader.js

@@ -158,2 +158,4 @@ 'use strict';

var elementsById = this.elementsById;
var descriptor = getModdleDescriptor(element);

@@ -168,3 +170,8 @@

if (id) {
this.elementsById[id] = element;
if (elementsById[id]) {
throw error('duplicate ID <' + id + '>');
}
elementsById[id] = element;
}

@@ -171,0 +178,0 @@ }

@@ -80,2 +80,7 @@ 'use strict';

// do not serialize null properties
if (value === null) {
return false;
}
return p.isMany ? value.length : true;

@@ -82,0 +87,0 @@ });

4

package.json
{
"name": "moddle-xml",
"version": "0.11.1",
"version": "0.12.0",
"description": "XML import/export for documents described with moddle",

@@ -9,2 +9,4 @@ "directories": {

"scripts": {
"all": "grunt",
"dev": "grunt auto-test",
"test": "grunt test"

@@ -11,0 +13,0 @@ },

@@ -929,2 +929,30 @@ 'use strict';

it('should handle duplicate id', function(done) {
var xml = '<props:root xmlns:props="http://properties" id="root">' +
'<props:baseWithId id="root" />' +
'</props:root>';
var reader = new Reader(model);
var rootHandler = reader.handler('props:Root');
var expectedError =
'unparsable content <props:baseWithId> detected\n\t' +
'line: 0\n\t' +
'column: 84\n\t' +
'nested error: duplicate ID <root>';
// when
reader.fromXML(xml, rootHandler, function(err, result) {
expect(err).to.exist;
expect(err.message).to.eql(expectedError);
expect(result).not.to.exist;
done();
});
});
describe('references', function() {

@@ -931,0 +959,0 @@

@@ -269,2 +269,40 @@ 'use strict';

it('ignore undefined attribute values', function() {
// given
var model = createModel([ 'properties' ]);
var writer = createWriter(model);
var root = model.create('props:Base', {
id: undefined
});
// when
var xml = writer.toXML(root);
// then
expect(xml).to.eql('<props:base xmlns:props="http://properties" />');
});
it('ignore null attribute values', function() {
// given
var model = createModel([ 'properties' ]);
var writer = createWriter(model);
var root = model.create('props:Base', {
id: null
});
// when
var xml = writer.toXML(root);
// then
expect(xml).to.eql('<props:base xmlns:props="http://properties" />');
});
});

@@ -830,2 +868,57 @@

});
it('redefined properties', function() {
// given
var model = createModel([ 'redefine' ]);
var writer = createWriter(model);
var element = model.create('r:Extension', {
id: 1,
name: 'FOO',
value: 'BAR'
});
var expectedXml = '<r:Extension xmlns:r="http://redefine">' +
'<r:id>1</r:id>' +
'<r:name>FOO</r:name>' +
'<r:value>BAR</r:value>' +
'</r:Extension>';
// when
var xml = writer.toXML(element);
// then
expect(xml).to.eql(expectedXml);
});
it('replaced properties', function() {
// given
var model = createModel([ 'replace' ]);
var writer = createWriter(model);
var element = model.create('r:Extension', {
id: 1,
name: 'FOO',
value: 'BAR'
});
var expectedXml = '<r:Extension xmlns:r="http://replace">' +
'<r:name>FOO</r:name>' +
'<r:value>BAR</r:value>' +
'<r:id>1</r:id>' +
'</r:Extension>';
// when
var xml = writer.toXML(element);
// then
expect(xml).to.eql(expectedXml);
});
});

@@ -832,0 +925,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc