From ac061f255ad37e05bceb01176e855d21f2e099f0 Mon Sep 17 00:00:00 2001 From: gaborkalmar Date: Mon, 7 Feb 2022 23:39:49 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20amp-connatix-player:=20add=20suppor?= =?UTF-8?q?t=20for=20custom=20data=20param=20(#37332)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add support for custom data param * fix lint --- .../amp-connatix-player/0.1/amp-connatix-player.js | 3 ++- .../0.1/test/test-amp-connatix-player.js | 12 ++++++++++++ .../amp-connatix-player/amp-connatix-player.md | 4 ++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/extensions/amp-connatix-player/0.1/amp-connatix-player.js b/extensions/amp-connatix-player/0.1/amp-connatix-player.js index 5481892997fb..0bde74ba96a6 100644 --- a/extensions/amp-connatix-player/0.1/amp-connatix-player.js +++ b/extensions/amp-connatix-player/0.1/amp-connatix-player.js @@ -3,7 +3,7 @@ import { CONSENT_STRING_TYPE, } from '#core/constants/consent-state'; import {Deferred} from '#core/data-structures/promise'; -import {removeElement} from '#core/dom'; +import {getDataParamsFromAttributes, removeElement} from '#core/dom'; import {applyFillContent, isLayoutSizeDefined} from '#core/dom/layout'; import { observeContentSize, @@ -272,6 +272,7 @@ export class AmpConnatixPlayer extends AMP.BaseElement { 'playerId': this.playerId_ || undefined, 'mediaId': this.mediaId_ || undefined, 'url': Services.documentInfoForDoc(element).sourceUrl, + ...getDataParamsFromAttributes(element), }; const iframeUrl = this.iframeDomain_ + '/amp-embed/index.html'; const src = addParamsToUrl(iframeUrl, urlParams); diff --git a/extensions/amp-connatix-player/0.1/test/test-amp-connatix-player.js b/extensions/amp-connatix-player/0.1/test/test-amp-connatix-player.js index 4fe66af48536..809bc9cf4b44 100644 --- a/extensions/amp-connatix-player/0.1/test/test-amp-connatix-player.js +++ b/extensions/amp-connatix-player/0.1/test/test-amp-connatix-player.js @@ -69,6 +69,18 @@ describes.realWin( 'https://cdm.elements.video/amp-embed/index.html?playerId=f721b0d8-7a79-42b6-b637-fa4e86138ed9&url=about%3Asrcdoc' ); }); + it('should pass data-param-* attributes to the iframe src', async () => { + const cnx = await getConnatixPlayer({ + 'data-player-id': 'f721b0d8-7a79-42b6-b637-fa4e86138ed9', + 'data-param-my-param': 17, + }); + const iframe = cnx.querySelector('iframe'); + expect(iframe).to.not.be.null; + expect(iframe.tagName).to.equal('IFRAME'); + expect(iframe.src).to.equal( + 'https://cdm.connatix.com/amp-embed/index.html?playerId=f721b0d8-7a79-42b6-b637-fa4e86138ed9&url=about%3Asrcdoc&myParam=17' + ); + }); it('fails if no playerId is specified', () => { return allowConsoleError(() => { diff --git a/extensions/amp-connatix-player/amp-connatix-player.md b/extensions/amp-connatix-player/amp-connatix-player.md index 7147d42d5260..2f1d007a0b45 100644 --- a/extensions/amp-connatix-player/amp-connatix-player.md +++ b/extensions/amp-connatix-player/amp-connatix-player.md @@ -38,6 +38,10 @@ Connatix management dashboard. Connatix media id. This represents the unique ID of any media in your Library. This can be found at the Library section in the Connatix management dashboard. +### data-param-\* + +All `data-param-*` prefixed attributes are turned into URL parameters and passed to iframe src. + ### Common attributes This element includes [common attributes](https://amp.dev/documentation/guides-and-tutorials/learn/common_attributes)