From 92f2908ffe23dc2489ab2df77770e6986e0a4fd7 Mon Sep 17 00:00:00 2001 From: Tom MacWright Date: Mon, 5 Sep 2016 21:48:22 -0400 Subject: [PATCH] Fix wikipedia --- modules/ui/fields/wikipedia.js | 18 +++++++++++------- test/spec/ui/fields/wikipedia.js | 28 ++++++++++++++-------------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/modules/ui/fields/wikipedia.js b/modules/ui/fields/wikipedia.js index 5b118a9f5..c8f252072 100644 --- a/modules/ui/fields/wikipedia.js +++ b/modules/ui/fields/wikipedia.js @@ -50,11 +50,13 @@ export function wikipedia(field, context) { lang = selection.selectAll('input.wiki-lang') .data([0]); - getSetValue(lang.enter().append('input') + lang = lang.enter().append('input') .attr('type', 'text') .attr('class', 'wiki-lang') - .attr('placeholder', t('translate.localized_translation_language')), - language()[1]); + .attr('placeholder', t('translate.localized_translation_language')) + .merge(lang); + + getSetValue(lang, language()[1]); lang .call(langcombo) @@ -64,10 +66,11 @@ export function wikipedia(field, context) { title = selection.selectAll('input.wiki-title') .data([0]); - title.enter().append('input') + title = title.enter().append('input') .attr('type', 'text') .attr('class', 'wiki-title') - .attr('id', 'preset-input-' + field.id); + .attr('id', 'preset-input-' + field.id) + .merge(title); title .call(titlecombo) @@ -77,11 +80,12 @@ export function wikipedia(field, context) { link = selection.selectAll('a.wiki-link') .data([0]); - link.enter().append('a') + link = link.enter().append('a') .attr('class', 'wiki-link button-input-action minor') .attr('tabindex', -1) .attr('target', '_blank') - .call(Icon('#icon-out-link', 'inline')); + .call(Icon('#icon-out-link', 'inline')) + .merge(link); } function language() { diff --git a/test/spec/ui/fields/wikipedia.js b/test/spec/ui/fields/wikipedia.js index 991a4e216..fb92aee38 100644 --- a/test/spec/ui/fields/wikipedia.js +++ b/test/spec/ui/fields/wikipedia.js @@ -34,8 +34,8 @@ describe('wikipedia', function() { var wikipedia = iD.ui.fields.wikipedia(field, context); selection.call(wikipedia); wikipedia.tags({wikipedia: 'en:Title'}); - expect(selection.selectAll('.wiki-lang').value()).to.equal('English'); - expect(selection.selectAll('.wiki-title').value()).to.equal('Title'); + expect(iD.util.getSetValue(selection.selectAll('.wiki-lang'))).to.equal('English'); + expect(iD.util.getSetValue(selection.selectAll('.wiki-title'))).to.equal('Title'); expect(selection.selectAll('.wiki-link').attr('href')).to.equal('https://en.wikipedia.org/wiki/Title'); }); @@ -46,7 +46,7 @@ describe('wikipedia', function() { var spy = sinon.spy(); wikipedia.on('change.spy', spy); - selection.selectAll('.wiki-lang').value('Deutsch'); + iD.util.getSetValue(selection.selectAll('.wiki-lang'), 'Deutsch'); happen.once(selection.selectAll('.wiki-lang').node(), { type: 'change' }); happen.once(selection.selectAll('.wiki-lang').node(), { type: 'blur' }); expect(spy.callCount).to.equal(2); @@ -55,7 +55,7 @@ describe('wikipedia', function() { spy = sinon.spy(); wikipedia.on('change.spy', spy); - selection.selectAll('.wiki-title').value('Title'); + iD.util.getSetValue(selection.selectAll('.wiki-title'), 'Title'); happen.once(selection.selectAll('.wiki-title').node(), { type: 'change' }); happen.once(selection.selectAll('.wiki-title').node(), { type: 'blur' }); expect(spy.callCount).to.equal(3); @@ -69,21 +69,21 @@ describe('wikipedia', function() { wikipedia.on('change', changeTags); selection.call(wikipedia); - selection.selectAll('.wiki-title').value('http://de.wikipedia.org/wiki/Title'); + iD.util.getSetValue(selection.selectAll('.wiki-title'), 'http://de.wikipedia.org/wiki/Title'); happen.once(selection.selectAll('.wiki-title').node(), { type: 'change' }); - expect(selection.selectAll('.wiki-lang').value()).to.equal('Deutsch'); - expect(selection.selectAll('.wiki-title').value()).to.equal('Title'); + expect(iD.util.getSetValue(selection.selectAll('.wiki-lang'))).to.equal('Deutsch'); + expect(iD.util.getSetValue(selection.selectAll('.wiki-title'))).to.equal('Title'); }); it('preserves existing language', function() { selection.call(iD.ui.fields.wikipedia(field, context)); - selection.selectAll('.wiki-lang').value('Deutsch'); + iD.util.getSetValue(selection.selectAll('.wiki-lang'), 'Deutsch'); var wikipedia = iD.ui.fields.wikipedia(field, context); selection.call(wikipedia); wikipedia.tags({}); - expect(selection.selectAll('.wiki-lang').value()).to.equal('Deutsch'); + expect(iD.util.getSetValue(selection.selectAll('.wiki-lang'))).to.equal('Deutsch'); }); it('does not set delayed wikidata tag if wikipedia field has changed', function(done) { @@ -94,13 +94,13 @@ describe('wikipedia', function() { var spy = sinon.spy(); wikipedia.on('change.spy', spy); - selection.selectAll('.wiki-lang').value('Deutsch'); - selection.selectAll('.wiki-title').value('Skip'); + iD.util.getSetValue(selection.selectAll('.wiki-lang'), 'Deutsch'); + iD.util.getSetValue(selection.selectAll('.wiki-title'), 'Skip'); happen.once(selection.selectAll('.wiki-title').node(), { type: 'change' }); happen.once(selection.selectAll('.wiki-title').node(), { type: 'blur' }); window.setTimeout(function() { - selection.selectAll('.wiki-title').value('Title'); + iD.util.getSetValue(selection.selectAll('.wiki-title'), 'Title'); happen.once(selection.selectAll('.wiki-title').node(), { type: 'change' }); happen.once(selection.selectAll('.wiki-title').node(), { type: 'blur' }); }, 10); @@ -125,8 +125,8 @@ describe('wikipedia', function() { var spy = sinon.spy(); wikipedia.on('change.spy', spy); - selection.selectAll('.wiki-lang').value('Deutsch'); - selection.selectAll('.wiki-title').value('Title'); + iD.util.getSetValue(selection.selectAll('.wiki-lang'), 'Deutsch'); + iD.util.getSetValue(selection.selectAll('.wiki-title'), 'Title'); happen.once(selection.selectAll('.wiki-title').node(), { type: 'change' }); happen.once(selection.selectAll('.wiki-title').node(), { type: 'blur' });