From 84eea0a5b6f74cf160863d619a0202870153cb99 Mon Sep 17 00:00:00 2001 From: calebcordry Date: Fri, 16 Nov 2018 14:17:10 -0800 Subject: [PATCH] check for empty --- .../amp-analytics/0.1/linker-manager.js | 4 +++- .../0.1/test/test-linker-manager.js | 21 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/extensions/amp-analytics/0.1/linker-manager.js b/extensions/amp-analytics/0.1/linker-manager.js index 107bbf59a007..bdc945c9eeb7 100644 --- a/extensions/amp-analytics/0.1/linker-manager.js +++ b/extensions/amp-analytics/0.1/linker-manager.js @@ -262,7 +262,9 @@ export class LinkerManager { if (this.isDomainMatch_(hostname, domains)) { const linkerValue = createLinker(/* version */ '1', this.resolvedIds_[name]); - el.href = addParamToUrl(href, name, linkerValue); + if (linkerValue) { + el.href = addParamToUrl(href, name, linkerValue); + } } } diff --git a/extensions/amp-analytics/0.1/test/test-linker-manager.js b/extensions/amp-analytics/0.1/test/test-linker-manager.js index 0ee541c45f51..0a91a1d452c9 100644 --- a/extensions/amp-analytics/0.1/test/test-linker-manager.js +++ b/extensions/amp-analytics/0.1/test/test-linker-manager.js @@ -187,6 +187,27 @@ describes.realWin('Linker Manager', {amp: true}, env => { }); }); + it('should not add params where linker value is empty', () => { + const config = { + linkers: { + enabled: true, + proxyOnly: false, + testLinker1: { + ids: { + gclid: '', + }, + }, + }, + }; + + return new LinkerManager(ampdoc, config, null).init().then(() => { + expect(handlers.length).to.equal(1); + expect(clickAnchor('https://www.source.com/dest?a=1')).to.equal( + 'https://www.source.com/dest?a=1' + ); + }); + }); + it('should generate a param valid for ingestion 5 min later', () => { const clock = sandbox.useFakeTimers(1533329483292); sandbox.stub(Date.prototype, 'getTimezoneOffset').returns(420);