diff --git a/modules/services/osm.js b/modules/services/osm.js
index 94f00bf38..16077cdf3 100644
--- a/modules/services/osm.js
+++ b/modules/services/osm.js
@@ -468,7 +468,10 @@ export default {
function (changeset) {
return { tags: getTags(changeset) };
}
- );
+ ).filter(function (changeset) {
+ var comment = changeset.tags.comment;
+ return comment && comment !== '';
+ });
callback(undefined, userChangesets);
}
}
diff --git a/test/spec/services/osm.js b/test/spec/services/osm.js
index e4bc23603..bded77c43 100644
--- a/test/spec/services/osm.js
+++ b/test/spec/services/osm.js
@@ -421,15 +421,9 @@ describe('iD.serviceOsm', function () {
});
});
+
describe('#userChangesets', function() {
- var server,
- userDetailsFn,
- changesetsXML = '' +
- '' +
- '' +
- '' +
- '' +
- '';
+ var server, userDetailsFn;
beforeEach(function() {
server = sinon.fakeServer.create();
@@ -444,14 +438,17 @@ describe('iD.serviceOsm', function () {
connection.userDetails = userDetailsFn;
});
+
it('loads user changesets', function(done) {
- // preauthenticate, otherwise callback will be called with "not authenticated" err
- connection.switch({
- oauth_consumer_key: '5A043yRSEugj4DJ5TljuapfnrflWDte8jTOcWLlT',
- oauth_secret: 'aB3jKq1TRsCOUrfOIZ6oQMEDmv2ptV76PA54NGLL',
- oauth_token: 'foo',
- oauth_token_secret: 'foo'
- });
+ var changesetsXML = '' +
+ '' +
+ '' +
+ ' ' +
+ ' ' +
+ '' +
+ '';
+
+ login();
connection.userChangesets(function(err, changesets) {
expect(changesets).to.deep.equal([{
tags: {
@@ -467,14 +464,76 @@ describe('iD.serviceOsm', function () {
[200, { 'Content-Type': 'text/xml' }, changesetsXML]);
server.respond();
});
+
+ it('excludes changesets without comment tag', function(done) {
+ var changesetsXML = '' +
+ '' +
+ '' +
+ ' ' +
+ ' ' +
+ '' +
+ '' +
+ ' ' +
+ '' +
+ '';
+
+ login();
+ connection.userChangesets(function(err, changesets) {
+ expect(changesets).to.deep.equal([{
+ tags: {
+ comment: 'Caprice Court has been extended',
+ created_by: 'iD 2.0.0'
+ }
+ }]);
+ connection.logout();
+ done();
+ });
+
+ server.respondWith('GET', 'http://www.openstreetmap.org/api/0.6/changesets?user=1',
+ [200, { 'Content-Type': 'text/xml' }, changesetsXML]);
+ server.respond();
+ });
+
+ it('excludes changesets with empty comment', function(done) {
+ var changesetsXML = '' +
+ '' +
+ '' +
+ ' ' +
+ ' ' +
+ '' +
+ '' +
+ ' ' +
+ ' ' +
+ '' +
+ '';
+
+ login();
+ connection.userChangesets(function(err, changesets) {
+ expect(changesets).to.deep.equal([{
+ tags: {
+ comment: 'Caprice Court has been extended',
+ created_by: 'iD 2.0.0'
+ }
+ }]);
+ connection.logout();
+ done();
+ });
+
+ server.respondWith('GET', 'http://www.openstreetmap.org/api/0.6/changesets?user=1',
+ [200, { 'Content-Type': 'text/xml' }, changesetsXML]);
+ server.respond();
+ });
+
});
+
describe('#changesetTags', function() {
it('omits comment when empty', function() {
expect(connection.changesetTags('2.0.0', '', [])).not.to.have.property('comment');
});
});
+
describe('API capabilities', function() {
var server,
capabilitiesXML = '' +