prebid.js 8.7.0 → 8.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/1plusXRtdProvider.js +1 -1
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/a1MediaRtdProvider.js +1 -1
- package/dist/adWMGAnalyticsAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
- package/dist/adlooxAdServerVideo.js +1 -1
- package/dist/adlooxRtdProvider.js +1 -1
- package/dist/admaticBidAdapter.js +1 -1
- package/dist/admixerIdSystem.js +1 -1
- package/dist/adnuntiusRtdProvider.js +1 -1
- package/dist/adpartnerBidAdapter.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adqueryIdSystem.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adriverIdSystem.js +1 -1
- package/dist/adtelligentIdSystem.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adxcgAnalyticsAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adxpremiumAnalyticsAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/aidemBidAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/akamaiDapRtdProvider.js +1 -1
- package/dist/alkimiBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/analyticsAdapter.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/atsAnalyticsAdapter.js +1 -1
- package/dist/automatadBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/bidViewability.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/bidwatchAnalyticsAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/brandmetricsRtdProvider.js +1 -1
- package/dist/bridBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/brightcomSSPBidAdapter.js +1 -1
- package/dist/britepoolIdSystem.js +1 -1
- package/dist/browsiRtdProvider.js +1 -1
- package/dist/byDataAnalyticsAdapter.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/categoryTranslation.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/colossussspBidAdapter.js +1 -1
- package/dist/concertAnalyticsAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectIdSystem.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/conversantAnalyticsAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/criteoIdSystem.js +1 -1
- package/dist/currency.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/dacIdSystem.js +1 -1
- package/dist/dailyhuntBidAdapter.js +1 -1
- package/dist/datablocksBidAdapter.js +1 -1
- package/dist/dependencies.json +4 -1
- package/dist/dgkeywordRtdProvider.js +1 -1
- package/dist/dmdIdSystem.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningAnalyticsAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -1
- package/dist/fabrickIdSystem.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/fintezaAnalyticsAdapter.js +1 -1
- package/dist/fledgeForGpt.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/genericAnalyticsAdapter.js +1 -1
- package/dist/geoedgeRtdProvider.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/gnetBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/growthCodeAnalyticsAdapter.js +1 -1
- package/dist/growthCodeIdSystem.js +1 -1
- package/dist/growthCodeRtdProvider.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hadronAnalyticsAdapter.js +1 -1
- package/dist/hadronIdSystem.js +1 -1
- package/dist/hadronRtdProvider.js +1 -1
- package/dist/hypelabBidAdapter.js +1 -1
- package/dist/iasRtdProvider.js +1 -1
- package/dist/id5AnalyticsAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/idImportLibrary.js +1 -1
- package/dist/identityLinkIdSystem.js +1 -1
- package/dist/imRtdProvider.js +1 -1
- package/dist/imdsBidAdapter.js +1 -1
- package/dist/impactifyBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/imuIdSystem.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/intentIqIdSystem.js +1 -1
- package/dist/invisiblyAnalyticsAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/jwplayerRtdProvider.js +1 -1
- package/dist/kargoAnalyticsAdapter.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/kinessoIdSystem.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/konduitWrapper.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/kueezRtbBidAdapter.js +1 -1
- package/dist/kulturemediaBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/limelightDigitalBidAdapter.js +1 -1
- package/dist/liveIntentAnalyticsAdapter.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/livewrappedAnalyticsAdapter.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/lotamePanoramaIdSystem.js +1 -1
- package/dist/luponmediaBidAdapter.js +1 -1
- package/dist/magniteAnalyticsAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/mantisBidAdapter.js +1 -1
- package/dist/marsmediaAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/medianetAnalyticsAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/merkleIdSystem.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/mgidRtdProvider.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/minutemediaplusBidAdapter.js +1 -1
- package/dist/mspa.js +1 -1
- package/dist/mwOpenLinkIdSystem.js +1 -1
- package/dist/nativoBidAdapter.js +1 -1
- package/dist/naveggIdSystem.js +1 -1
- package/dist/neuwoRtdProvider.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +248 -247
- package/dist/novatiqIdSystem.js +1 -1
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/open8BidAdapter.js +1 -1
- package/dist/operaadsBidAdapter.js +1 -1
- package/dist/operaadsIdSystem.js +1 -0
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/optimeraRtdProvider.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/oxxionAnalyticsAdapter.js +1 -1
- package/dist/oxxionRtdProvider.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +2 -2
- package/dist/prebidServerBidAdapter.js +1 -1
- package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
- package/dist/priceFloors.js +1 -1
- package/dist/prismaBidAdapter.js +1 -1
- package/dist/pubgeniusBidAdapter.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/qwarryBidAdapter.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/reconciliationRtdProvider.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/relevadRtdProvider.js +1 -1
- package/dist/retailspotBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rivrAnalyticsAdapter.js +1 -1
- package/dist/roxotAnalyticsAdapter.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/scaleableAnalyticsAdapter.js +1 -1
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/silverpushBidAdapter.js +1 -1
- package/dist/sirdataRtdProvider.js +1 -1
- package/dist/slimcutBidAdapter.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smartyadsBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/snigelBidAdapter.js +1 -1
- package/dist/sonobiAnalyticsAdapter.js +1 -1
- package/dist/sonobiBidAdapter.js +1 -1
- package/dist/sovrnAnalyticsAdapter.js +1 -1
- package/dist/sovrnBidAdapter.js +1 -1
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/staqAnalyticsAdapter.js +1 -1
- package/dist/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/taboolaBidAdapter.js +1 -1
- package/dist/talkadsBidAdapter.js +1 -1
- package/dist/tapadIdSystem.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/teadsIdSystem.js +1 -1
- package/dist/terceptAnalyticsAdapter.js +1 -1
- package/dist/timeoutRtdProvider.js +1 -1
- package/dist/topicsFpdModule.js +1 -1
- package/dist/trionBidAdapter.js +1 -1
- package/dist/tripleliftBidAdapter.js +1 -1
- package/dist/ttdBidAdapter.js +1 -1
- package/dist/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/uid2IdSystem.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/unifiedIdSystem.js +1 -1
- package/dist/verizonMediaIdSystem.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vrtcalBidAdapter.js +1 -1
- package/dist/vuukleBidAdapter.js +1 -1
- package/dist/weboramaRtdProvider.js +1 -1
- package/dist/widespaceBidAdapter.js +1 -1
- package/dist/winrBidAdapter.js +1 -1
- package/dist/yahoosspBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/yuktamediaAnalyticsAdapter.js +1 -1
- package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
- package/dist/zeta_global_sspBidAdapter.js +1 -1
- package/integrationExamples/gpt/growthcode.html +3 -12
- package/integrationExamples/topics/topics-server.js +72 -0
- package/libraries/mspa/activityControls.js +3 -1
- package/modules/.submodules.json +2 -1
- package/modules/a1MediaRtdProvider.js +1 -1
- package/modules/adagioBidAdapter.js +11 -3
- package/modules/admaticBidAdapter.js +5 -0
- package/modules/adqueryBidAdapter.js +23 -21
- package/modules/adqueryIdSystem.js +45 -30
- package/modules/adrelevantisBidAdapter.js +2 -0
- package/modules/bidViewability.js +7 -0
- package/modules/bidViewability.md +9 -8
- package/modules/brandmetricsRtdProvider.js +30 -27
- package/modules/concertBidAdapter.js +1 -0
- package/modules/criteoBidAdapter.js +66 -43
- package/modules/fledgeForGpt.js +17 -4
- package/modules/fledgeForGpt.md +17 -10
- package/modules/geoedgeRtdProvider.js +44 -18
- package/modules/geoedgeRtdProvider.md +2 -1
- package/modules/growthCodeAnalyticsAdapter.js +7 -4
- package/modules/growthCodeAnalyticsAdapter.md +1 -7
- package/modules/liveIntentIdSystem.js +16 -1
- package/modules/nativoBidAdapter.js +21 -3
- package/modules/nexx360BidAdapter.js +7 -1
- package/modules/onetagBidAdapter.js +3 -0
- package/modules/operaadsBidAdapter.js +5 -0
- package/modules/operaadsBidAdapter.md +5 -5
- package/modules/operaadsIdSystem.js +106 -0
- package/modules/operaadsIdSystem.md +52 -0
- package/modules/oxxionAnalyticsAdapter.js +22 -5
- package/modules/prebidServerBidAdapter/index.js +8 -2
- package/modules/pubmaticAnalyticsAdapter.js +16 -3
- package/modules/rubiconBidAdapter.js +2 -2
- package/modules/smartyadsBidAdapter.js +18 -1
- package/modules/snigelBidAdapter.js +69 -16
- package/modules/snigelBidAdapter.md +9 -3
- package/modules/topicsFpdModule.js +35 -9
- package/modules/visxBidAdapter.js +51 -1
- package/package.json +2 -2
- package/src/adapters/bidderFactory.js +14 -5
- package/src/adloader.js +1 -0
- package/src/ajax.js +126 -87
- package/src/constants.json +8 -2
- package/src/native.js +14 -3
- package/test/mocks/xhr.js +256 -9
- package/test/spec/libraries/mspa/activityControls_spec.js +6 -0
- package/test/spec/modules/adagioBidAdapter_spec.js +15 -0
- package/test/spec/modules/adlooxAdServerVideo_spec.js +1 -5
- package/test/spec/modules/adlooxRtdProvider_spec.js +1 -5
- package/test/spec/modules/admaticBidAdapter_spec.js +5 -0
- package/test/spec/modules/adqueryIdSystem_spec.js +13 -24
- package/test/spec/modules/bidViewability_spec.js +32 -1
- package/test/spec/modules/brandmetricsRtdProvider_spec.js +6 -0
- package/test/spec/modules/categoryTranslation_spec.js +7 -9
- package/test/spec/modules/concertBidAdapter_spec.js +1 -1
- package/test/spec/modules/conversantAnalyticsAdapter_spec.js +3 -5
- package/test/spec/modules/criteoBidAdapter_spec.js +228 -0
- package/test/spec/modules/currency_spec.js +2 -2
- package/test/spec/modules/dmdIdSystem_spec.js +2 -2
- package/test/spec/modules/eids_spec.js +48 -0
- package/test/spec/modules/euidIdSystem_spec.js +10 -9
- package/test/spec/modules/feedadBidAdapter_spec.js +1 -1
- package/test/spec/modules/fledge_spec.js +117 -43
- package/test/spec/modules/geoedgeRtdProvider_spec.js +52 -39
- package/test/spec/modules/greenbidsRtdProvider_spec.js +3 -12
- package/test/spec/modules/growthCodeAnalyticsAdapter_spec.js +0 -1
- package/test/spec/modules/hadronIdSystem_spec.js +1 -1
- package/test/spec/modules/id5AnalyticsAdapter_spec.js +1 -7
- package/test/spec/modules/id5IdSystem_spec.js +25 -25
- package/test/spec/modules/identityLinkIdSystem_spec.js +0 -2
- package/test/spec/modules/intentIqIdSystem_spec.js +0 -2
- package/test/spec/modules/invisiblyAnalyticsAdapter_spec.js +2 -6
- package/test/spec/modules/jwplayerRtdProvider_spec.js +26 -28
- package/test/spec/modules/liveIntentIdMinimalSystem_spec.js +5 -0
- package/test/spec/modules/liveIntentIdSystem_spec.js +5 -0
- package/test/spec/modules/magniteAnalyticsAdapter_spec.js +2 -2
- package/test/spec/modules/mgidRtdProvider_spec.js +1 -5
- package/test/spec/modules/nativoBidAdapter_spec.js +6 -1
- package/test/spec/modules/nexx360BidAdapter_spec.js +48 -1
- package/test/spec/modules/oguryBidAdapter_spec.js +5 -19
- package/test/spec/modules/onetagBidAdapter_spec.js +69 -0
- package/test/spec/modules/ooloAnalyticsAdapter_spec.js +1 -1
- package/test/spec/modules/operaadsIdSystem_spec.js +53 -0
- package/test/spec/modules/oxxionAnalyticsAdapter_spec.js +6 -1
- package/test/spec/modules/prebidServerBidAdapter_spec.js +33 -2
- package/test/spec/modules/priceFloors_spec.js +33 -37
- package/test/spec/modules/publinkIdSystem_spec.js +1 -1
- package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +102 -18
- package/test/spec/modules/pubwiseAnalyticsAdapter_spec.js +2 -8
- package/test/spec/modules/rubiconBidAdapter_spec.js +24 -0
- package/test/spec/modules/smartyadsBidAdapter_spec.js +49 -0
- package/test/spec/modules/snigelBidAdapter_spec.js +57 -6
- package/test/spec/modules/teadsIdSystem_spec.js +1 -1
- package/test/spec/modules/topicsFpdModule_spec.js +102 -1
- package/test/spec/modules/uid2IdSystem_helpers.js +5 -5
- package/test/spec/modules/uid2IdSystem_spec.js +24 -24
- package/test/spec/modules/userId_spec.js +1 -1
- package/test/spec/modules/visxBidAdapter_spec.js +151 -1
- package/test/spec/modules/zeta_global_sspAnalyticsAdapter_spec.js +2 -5
- package/test/spec/native_spec.js +20 -5
- package/test/spec/unit/core/ajax_spec.js +403 -0
- package/test/spec/unit/core/bidderFactory_spec.js +80 -8
- package/test/spec/videoCache_spec.js +4 -4
|
@@ -15,7 +15,9 @@ const AD_UNIT_CODE = 'mock/placement';
|
|
|
15
15
|
|
|
16
16
|
describe('fledgeForGpt module', function() {
|
|
17
17
|
let nextFnSpy;
|
|
18
|
-
|
|
18
|
+
before(() => {
|
|
19
|
+
fledge.init({enabled: true})
|
|
20
|
+
});
|
|
19
21
|
|
|
20
22
|
const bidRequest = {
|
|
21
23
|
adUnitCode: AD_UNIT_CODE,
|
|
@@ -61,59 +63,131 @@ describe('fledgeEnabled', function () {
|
|
|
61
63
|
config.resetConfig();
|
|
62
64
|
});
|
|
63
65
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
66
|
+
const adUnits = [{
|
|
67
|
+
'code': '/19968336/header-bid-tag1',
|
|
68
|
+
'mediaTypes': {
|
|
69
|
+
'banner': {
|
|
70
|
+
'sizes': [[728, 90]]
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
'bids': [
|
|
74
|
+
{
|
|
75
|
+
'bidder': 'appnexus',
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
'bidder': 'rubicon',
|
|
79
|
+
},
|
|
80
|
+
]
|
|
81
|
+
}];
|
|
82
|
+
|
|
83
|
+
describe('with setBidderConfig()', () => {
|
|
84
|
+
it('should set fledgeEnabled correctly per bidder', function () {
|
|
85
|
+
config.setConfig({bidderSequence: 'fixed'})
|
|
86
|
+
config.setBidderConfig({
|
|
87
|
+
bidders: ['appnexus'],
|
|
88
|
+
config: {
|
|
89
|
+
fledgeEnabled: true,
|
|
90
|
+
defaultForSlots: 1,
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
const bidRequests = adapterManager.makeBidRequests(
|
|
95
|
+
adUnits,
|
|
96
|
+
Date.now(),
|
|
97
|
+
utils.getUniqueIdentifierStr(),
|
|
98
|
+
function callback() {},
|
|
99
|
+
[]
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
expect(bidRequests[0].bids[0].bidder).equals('appnexus');
|
|
103
|
+
expect(bidRequests[0].fledgeEnabled).to.be.true;
|
|
104
|
+
expect(bidRequests[0].defaultForSlots).to.equal(1);
|
|
105
|
+
|
|
106
|
+
expect(bidRequests[1].bids[0].bidder).equals('rubicon');
|
|
107
|
+
expect(bidRequests[1].fledgeEnabled).to.be.undefined;
|
|
108
|
+
expect(bidRequests[1].defaultForSlots).to.be.undefined;
|
|
71
109
|
});
|
|
110
|
+
});
|
|
72
111
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
'
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
112
|
+
describe('with setConfig()', () => {
|
|
113
|
+
it('should set fledgeEnabled correctly per bidder', function () {
|
|
114
|
+
config.setConfig({
|
|
115
|
+
bidderSequence: 'fixed',
|
|
116
|
+
fledgeForGpt: {
|
|
117
|
+
enabled: true,
|
|
118
|
+
bidders: ['appnexus'],
|
|
119
|
+
defaultForSlots: 1,
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
const bidRequests = adapterManager.makeBidRequests(
|
|
124
|
+
adUnits,
|
|
125
|
+
Date.now(),
|
|
126
|
+
utils.getUniqueIdentifierStr(),
|
|
127
|
+
function callback() {},
|
|
128
|
+
[]
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
expect(bidRequests[0].bids[0].bidder).equals('appnexus');
|
|
132
|
+
expect(bidRequests[0].fledgeEnabled).to.be.true;
|
|
133
|
+
expect(bidRequests[0].defaultForSlots).to.equal(1);
|
|
134
|
+
|
|
135
|
+
expect(bidRequests[1].bids[0].bidder).equals('rubicon');
|
|
136
|
+
expect(bidRequests[1].fledgeEnabled).to.be.undefined;
|
|
137
|
+
expect(bidRequests[1].defaultForSlots).to.be.undefined;
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
it('should set fledgeEnabled correctly for all bidders', function () {
|
|
141
|
+
config.setConfig({
|
|
142
|
+
bidderSequence: 'fixed',
|
|
143
|
+
fledgeForGpt: {
|
|
144
|
+
enabled: true,
|
|
145
|
+
defaultForSlots: 1,
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
const bidRequests = adapterManager.makeBidRequests(
|
|
150
|
+
adUnits,
|
|
151
|
+
Date.now(),
|
|
152
|
+
utils.getUniqueIdentifierStr(),
|
|
153
|
+
function callback() {},
|
|
154
|
+
[]
|
|
155
|
+
);
|
|
156
|
+
|
|
157
|
+
expect(bidRequests[0].bids[0].bidder).equals('appnexus');
|
|
158
|
+
expect(bidRequests[0].fledgeEnabled).to.be.true;
|
|
159
|
+
expect(bidRequests[0].defaultForSlots).to.equal(1);
|
|
160
|
+
|
|
161
|
+
expect(bidRequests[1].bids[0].bidder).equals('rubicon');
|
|
162
|
+
expect(bidRequests[0].fledgeEnabled).to.be.true;
|
|
163
|
+
expect(bidRequests[0].defaultForSlots).to.equal(1);
|
|
164
|
+
});
|
|
103
165
|
});
|
|
104
166
|
});
|
|
105
167
|
|
|
106
168
|
describe('ortb processors for fledge', () => {
|
|
107
|
-
describe('
|
|
108
|
-
it('should be
|
|
169
|
+
describe('when defaultForSlots is set', () => {
|
|
170
|
+
it('imp.ext.ae should be set if fledge is enabled', () => {
|
|
171
|
+
const imp = {};
|
|
172
|
+
setImpExtAe(imp, {}, {bidderRequest: {fledgeEnabled: true, defaultForSlots: 1}});
|
|
173
|
+
expect(imp.ext.ae).to.equal(1);
|
|
174
|
+
});
|
|
175
|
+
it('imp.ext.ae should be left intact if set on adunit and fledge is enabled', () => {
|
|
176
|
+
const imp = {ext: {ae: 2}};
|
|
177
|
+
setImpExtAe(imp, {}, {bidderRequest: {fledgeEnabled: true, defaultForSlots: 1}});
|
|
178
|
+
expect(imp.ext.ae).to.equal(2);
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
describe('when defaultForSlots is not defined', () => {
|
|
182
|
+
it('imp.ext.ae should be removed if fledge is not enabled', () => {
|
|
109
183
|
const imp = {ext: {ae: 1}};
|
|
110
184
|
setImpExtAe(imp, {}, {bidderRequest: {}});
|
|
111
185
|
expect(imp.ext.ae).to.not.exist;
|
|
112
186
|
})
|
|
113
|
-
it('should be left intact if fledge is enabled', () => {
|
|
114
|
-
const imp = {ext: {ae:
|
|
187
|
+
it('imp.ext.ae should be left intact if fledge is enabled', () => {
|
|
188
|
+
const imp = {ext: {ae: 2}};
|
|
115
189
|
setImpExtAe(imp, {}, {bidderRequest: {fledgeEnabled: true}});
|
|
116
|
-
expect(imp.ext.ae).to.equal(
|
|
190
|
+
expect(imp.ext.ae).to.equal(2);
|
|
117
191
|
});
|
|
118
192
|
});
|
|
119
193
|
describe('parseExtPrebidFledge', () => {
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
import * as utils from '../../../src/utils.js';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
2
|
+
import {loadExternalScript} from '../../../src/adloader.js';
|
|
3
|
+
import {
|
|
4
|
+
geoedgeSubmodule,
|
|
5
|
+
getClientUrl,
|
|
6
|
+
getInPageUrl,
|
|
7
|
+
htmlPlaceholder,
|
|
8
|
+
setWrapper,
|
|
9
|
+
wrapper,
|
|
10
|
+
WRAPPER_URL
|
|
11
|
+
} from '../../../modules/geoedgeRtdProvider.js';
|
|
12
|
+
import {server} from '../../../test/mocks/xhr.js';
|
|
5
13
|
import * as events from '../../../src/events.js';
|
|
6
14
|
import CONSTANTS from '../../../src/constants.json';
|
|
7
15
|
|
|
8
16
|
let key = '123123123';
|
|
9
|
-
function makeConfig() {
|
|
17
|
+
function makeConfig(gpt) {
|
|
10
18
|
return {
|
|
11
19
|
name: 'geoedge',
|
|
12
20
|
params: {
|
|
@@ -15,7 +23,8 @@ function makeConfig() {
|
|
|
15
23
|
bidders: {
|
|
16
24
|
bidderA: true,
|
|
17
25
|
bidderB: false
|
|
18
|
-
}
|
|
26
|
+
},
|
|
27
|
+
gpt: gpt
|
|
19
28
|
}
|
|
20
29
|
};
|
|
21
30
|
}
|
|
@@ -23,6 +32,7 @@ function makeConfig() {
|
|
|
23
32
|
function mockBid(bidderCode) {
|
|
24
33
|
return {
|
|
25
34
|
'ad': '<creative/>',
|
|
35
|
+
'adId': '1234',
|
|
26
36
|
'cpm': '1.00',
|
|
27
37
|
'width': 300,
|
|
28
38
|
'height': 250,
|
|
@@ -35,34 +45,18 @@ function mockBid(bidderCode) {
|
|
|
35
45
|
};
|
|
36
46
|
}
|
|
37
47
|
|
|
48
|
+
function mockMessageFromClient(key) {
|
|
49
|
+
return {
|
|
50
|
+
key,
|
|
51
|
+
impression: true,
|
|
52
|
+
adId: 1234,
|
|
53
|
+
type: 'impression'
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
38
57
|
let mockWrapper = `<wrapper>${htmlPlaceholder}</wrapper>`;
|
|
39
58
|
|
|
40
59
|
describe('Geoedge RTD module', function () {
|
|
41
|
-
describe('beforeInit', function () {
|
|
42
|
-
let submoduleStub;
|
|
43
|
-
|
|
44
|
-
before(function () {
|
|
45
|
-
submoduleStub = sinon.stub(hook, 'submodule');
|
|
46
|
-
});
|
|
47
|
-
after(function () {
|
|
48
|
-
submoduleStub.restore();
|
|
49
|
-
});
|
|
50
|
-
it('should fetch the wrapper', function () {
|
|
51
|
-
beforeInit();
|
|
52
|
-
let request = server.requests[0];
|
|
53
|
-
let isWrapperRequest = request && request.url && request.url && request.url === WRAPPER_URL;
|
|
54
|
-
expect(isWrapperRequest).to.equal(true);
|
|
55
|
-
});
|
|
56
|
-
it('should register RTD submodule provider', function () {
|
|
57
|
-
expect(submoduleStub.calledWith('realTimeData', geoedgeSubmodule)).to.equal(true);
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
describe('setWrapper', function () {
|
|
61
|
-
it('should set the wrapper', function () {
|
|
62
|
-
setWrapper(mockWrapper);
|
|
63
|
-
expect(wrapper).to.equal(mockWrapper);
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
60
|
describe('submodule', function () {
|
|
67
61
|
describe('name', function () {
|
|
68
62
|
it('should be geoedge', function () {
|
|
@@ -84,35 +78,54 @@ describe('Geoedge RTD module', function () {
|
|
|
84
78
|
expect(missingParams || missingKey).to.equal(false);
|
|
85
79
|
});
|
|
86
80
|
it('should return true when params are ok', function () {
|
|
87
|
-
expect(geoedgeSubmodule.init(makeConfig())).to.equal(true);
|
|
81
|
+
expect(geoedgeSubmodule.init(makeConfig(false))).to.equal(true);
|
|
82
|
+
});
|
|
83
|
+
it('should fetch the wrapper', function () {
|
|
84
|
+
geoedgeSubmodule.init(makeConfig(false));
|
|
85
|
+
let request = server.requests[0];
|
|
86
|
+
let isWrapperRequest = request && request.url && request.url && request.url === WRAPPER_URL;
|
|
87
|
+
expect(isWrapperRequest).to.equal(true);
|
|
88
88
|
});
|
|
89
89
|
it('should preload the client', function () {
|
|
90
90
|
let isLinkPreloadAsScript = arg => arg.tagName === 'LINK' && arg.rel === 'preload' && arg.as === 'script' && arg.href === getClientUrl(key);
|
|
91
91
|
expect(insertElementStub.calledWith(sinon.match(isLinkPreloadAsScript))).to.equal(true);
|
|
92
92
|
});
|
|
93
|
-
it('should emit billable events with applicable winning bids', function () {
|
|
94
|
-
let applicableBid = mockBid('bidderA');
|
|
95
|
-
let nonApplicableBid = mockBid('bidderB');
|
|
93
|
+
it('should emit billable events with applicable winning bids', function (done) {
|
|
96
94
|
let counter = 0;
|
|
97
95
|
events.on(CONSTANTS.EVENTS.BILLABLE_EVENT, function (event) {
|
|
98
96
|
if (event.vendor === 'geoedge' && event.type === 'impression') {
|
|
99
97
|
counter += 1;
|
|
100
98
|
}
|
|
99
|
+
expect(counter).to.equal(1);
|
|
100
|
+
done();
|
|
101
101
|
});
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
window.postMessage(mockMessageFromClient(key), '*');
|
|
103
|
+
});
|
|
104
|
+
it('should load the in page code when gpt params is true', function () {
|
|
105
|
+
geoedgeSubmodule.init(makeConfig(true));
|
|
106
|
+
let isInPageUrl = arg => arg == getInPageUrl(key);
|
|
107
|
+
expect(loadExternalScript.calledWith(sinon.match(isInPageUrl))).to.equal(true);
|
|
108
|
+
});
|
|
109
|
+
it('should set the window.grumi config object when gpt params is true', function () {
|
|
110
|
+
let hasGrumiObj = typeof window.grumi === 'object';
|
|
111
|
+
expect(hasGrumiObj && window.grumi.key === key && window.grumi.fromPrebid).to.equal(true);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
describe('setWrapper', function () {
|
|
115
|
+
it('should set the wrapper', function () {
|
|
116
|
+
setWrapper(mockWrapper);
|
|
117
|
+
expect(wrapper).to.equal(mockWrapper);
|
|
105
118
|
});
|
|
106
119
|
});
|
|
107
120
|
describe('onBidResponseEvent', function () {
|
|
108
121
|
let bidFromA = mockBid('bidderA');
|
|
109
122
|
it('should wrap bid html when bidder is configured', function () {
|
|
110
|
-
geoedgeSubmodule.onBidResponseEvent(bidFromA, makeConfig());
|
|
123
|
+
geoedgeSubmodule.onBidResponseEvent(bidFromA, makeConfig(false));
|
|
111
124
|
expect(bidFromA.ad.indexOf('<wrapper>')).to.equal(0);
|
|
112
125
|
});
|
|
113
126
|
it('should not wrap bid html when bidder is not configured', function () {
|
|
114
127
|
let bidFromB = mockBid('bidderB');
|
|
115
|
-
geoedgeSubmodule.onBidResponseEvent(bidFromB, makeConfig());
|
|
128
|
+
geoedgeSubmodule.onBidResponseEvent(bidFromB, makeConfig(false));
|
|
116
129
|
expect(bidFromB.ad.indexOf('<wrapper>')).to.equal(-1);
|
|
117
130
|
});
|
|
118
131
|
it('should only muatate the bid ad porperty', function () {
|
|
@@ -6,18 +6,9 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
greenbidsSubmodule
|
|
8
8
|
} from 'modules/greenbidsRtdProvider.js';
|
|
9
|
+
import {server} from '../../mocks/xhr.js';
|
|
9
10
|
|
|
10
11
|
describe('greenbidsRtdProvider', () => {
|
|
11
|
-
let server;
|
|
12
|
-
|
|
13
|
-
beforeEach(() => {
|
|
14
|
-
server = sinon.createFakeServer();
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
afterEach(() => {
|
|
18
|
-
server.restore();
|
|
19
|
-
});
|
|
20
|
-
|
|
21
12
|
const endPoint = 't.greenbids.ai';
|
|
22
13
|
|
|
23
14
|
const SAMPLE_MODULE_CONFIG = {
|
|
@@ -137,7 +128,6 @@ describe('greenbidsRtdProvider', () => {
|
|
|
137
128
|
{'Content-Type': 'application/json'},
|
|
138
129
|
JSON.stringify(SAMPLE_RESPONSE_ADUNITS)
|
|
139
130
|
);
|
|
140
|
-
done();
|
|
141
131
|
}, 50);
|
|
142
132
|
|
|
143
133
|
setTimeout(() => {
|
|
@@ -152,6 +142,7 @@ describe('greenbidsRtdProvider', () => {
|
|
|
152
142
|
expect(requestBids.adUnits[1].bids.map((bid) => bid.bidder)).to.include('rubicon');
|
|
153
143
|
expect(requestBids.adUnits[1].bids.map((bid) => bid.bidder)).to.include('openx');
|
|
154
144
|
expect(callback.calledOnce).to.be.true;
|
|
145
|
+
done();
|
|
155
146
|
}, 60);
|
|
156
147
|
});
|
|
157
148
|
});
|
|
@@ -195,7 +186,6 @@ describe('greenbidsRtdProvider', () => {
|
|
|
195
186
|
{'Content-Type': 'application/json'},
|
|
196
187
|
JSON.stringify({'failure': 'fail'})
|
|
197
188
|
);
|
|
198
|
-
done();
|
|
199
189
|
}, 50);
|
|
200
190
|
|
|
201
191
|
setTimeout(() => {
|
|
@@ -204,6 +194,7 @@ describe('greenbidsRtdProvider', () => {
|
|
|
204
194
|
expect(requestBids.adUnits[0].bids).to.have.length(3);
|
|
205
195
|
expect(requestBids.adUnits[1].bids).to.have.length(3);
|
|
206
196
|
expect(callback.calledOnce).to.be.true;
|
|
197
|
+
done();
|
|
207
198
|
}, 60);
|
|
208
199
|
});
|
|
209
200
|
});
|
|
@@ -64,7 +64,6 @@ describe('growthCode analytics adapter', () => {
|
|
|
64
64
|
var eventTypes = [];
|
|
65
65
|
body.events.forEach(e => eventTypes.push(e.eventType));
|
|
66
66
|
assert(eventTypes.length > 0)
|
|
67
|
-
assert(eventTypes.indexOf(constants.EVENTS.AUCTION_END) > -1);
|
|
68
67
|
growthCodeAnalyticsAdapter.disableAnalytics();
|
|
69
68
|
});
|
|
70
69
|
});
|
|
@@ -47,7 +47,7 @@ describe('HadronIdSystem', function () {
|
|
|
47
47
|
const callback = hadronIdSubmodule.getId(config).callback;
|
|
48
48
|
callback(callbackSpy);
|
|
49
49
|
const request = server.requests[0];
|
|
50
|
-
expect(request.url).to.eq('https://hadronid.publync.com
|
|
50
|
+
expect(request.url).to.eq('https://hadronid.publync.com/?partner_id=0&_it=prebid');
|
|
51
51
|
request.respond(200, { 'Content-Type': 'application/json' }, JSON.stringify({ hadronId: 'testHadronId1' }));
|
|
52
52
|
expect(callbackSpy.lastCall.lastArg).to.deep.equal({ id: { hadronId: 'testHadronId1' } });
|
|
53
53
|
});
|
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
import adapterManager from '../../../src/adapterManager.js';
|
|
2
2
|
import id5AnalyticsAdapter from '../../../modules/id5AnalyticsAdapter.js';
|
|
3
3
|
import { expect } from 'chai';
|
|
4
|
-
import sinon from 'sinon';
|
|
5
4
|
import * as events from '../../../src/events.js';
|
|
6
5
|
import constants from '../../../src/constants.json';
|
|
7
6
|
import { generateUUID } from '../../../src/utils.js';
|
|
7
|
+
import {server} from '../../mocks/xhr.js';
|
|
8
8
|
|
|
9
9
|
const CONFIG_URL = 'https://api.id5-sync.com/analytics/12349/pbjs';
|
|
10
10
|
const INGEST_URL = 'https://test.me/ingest';
|
|
11
11
|
|
|
12
12
|
describe('ID5 analytics adapter', () => {
|
|
13
|
-
let server;
|
|
14
13
|
let config;
|
|
15
14
|
|
|
16
15
|
beforeEach(() => {
|
|
17
|
-
server = sinon.createFakeServer();
|
|
18
16
|
config = {
|
|
19
17
|
options: {
|
|
20
18
|
partnerId: 12349,
|
|
@@ -22,10 +20,6 @@ describe('ID5 analytics adapter', () => {
|
|
|
22
20
|
};
|
|
23
21
|
});
|
|
24
22
|
|
|
25
|
-
afterEach(() => {
|
|
26
|
-
server.restore();
|
|
27
|
-
});
|
|
28
|
-
|
|
29
23
|
it('registers itself with the adapter manager', () => {
|
|
30
24
|
const adapter = adapterManager.getAnalyticsAdapter('id5Analytics');
|
|
31
25
|
expect(adapter).to.exist;
|
|
@@ -19,8 +19,8 @@ import {uspDataHandler} from 'src/adapterManager.js';
|
|
|
19
19
|
import 'src/prebid.js';
|
|
20
20
|
import {hook} from '../../../src/hook.js';
|
|
21
21
|
import {mockGdprConsent} from '../../helpers/consentData.js';
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
import {server} from '../../mocks/xhr.js';
|
|
23
|
+
import {expect} from 'chai';
|
|
24
24
|
|
|
25
25
|
describe('ID5 ID System', function () {
|
|
26
26
|
const ID5_MODULE_NAME = 'id5Id';
|
|
@@ -268,7 +268,7 @@ describe('ID5 ID System', function () {
|
|
|
268
268
|
});
|
|
269
269
|
|
|
270
270
|
it('should call the ID5 server and handle a valid response', function () {
|
|
271
|
-
let xhrServerMock = new XhrServerMock(
|
|
271
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
272
272
|
let config = getId5FetchConfig();
|
|
273
273
|
let submoduleResponse = callSubmoduleGetId(config, undefined, undefined);
|
|
274
274
|
|
|
@@ -297,7 +297,7 @@ describe('ID5 ID System', function () {
|
|
|
297
297
|
});
|
|
298
298
|
|
|
299
299
|
it('should call the ID5 server with gdpr data ', function () {
|
|
300
|
-
let xhrServerMock = new XhrServerMock(
|
|
300
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
301
301
|
let consentData = {
|
|
302
302
|
gdprApplies: true,
|
|
303
303
|
consentString: 'consentString',
|
|
@@ -322,7 +322,7 @@ describe('ID5 ID System', function () {
|
|
|
322
322
|
});
|
|
323
323
|
|
|
324
324
|
it('should call the ID5 server without gdpr data when gdpr not applies ', function () {
|
|
325
|
-
let xhrServerMock = new XhrServerMock(
|
|
325
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
326
326
|
let consentData = {
|
|
327
327
|
gdprApplies: false,
|
|
328
328
|
consentString: 'consentString'
|
|
@@ -347,7 +347,7 @@ describe('ID5 ID System', function () {
|
|
|
347
347
|
it('should call the ID5 server with us privacy consent', function () {
|
|
348
348
|
let usPrivacyString = '1YN-';
|
|
349
349
|
uspDataHandler.setConsentData(usPrivacyString)
|
|
350
|
-
let xhrServerMock = new XhrServerMock(
|
|
350
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
351
351
|
let consentData = {
|
|
352
352
|
gdprApplies: true,
|
|
353
353
|
consentString: 'consentString',
|
|
@@ -371,7 +371,7 @@ describe('ID5 ID System', function () {
|
|
|
371
371
|
});
|
|
372
372
|
|
|
373
373
|
it('should call the ID5 server with no signature field when no stored object', function () {
|
|
374
|
-
let xhrServerMock = new XhrServerMock(
|
|
374
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
375
375
|
let submoduleResponse = callSubmoduleGetId(getId5FetchConfig(), undefined, undefined);
|
|
376
376
|
|
|
377
377
|
return xhrServerMock.expectFetchRequest()
|
|
@@ -384,7 +384,7 @@ describe('ID5 ID System', function () {
|
|
|
384
384
|
});
|
|
385
385
|
|
|
386
386
|
it('should call the ID5 server for config with submodule config object', function () {
|
|
387
|
-
let xhrServerMock = new XhrServerMock(
|
|
387
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
388
388
|
let id5FetchConfig = getId5FetchConfig();
|
|
389
389
|
id5FetchConfig.params.extraParam = {
|
|
390
390
|
x: 'X',
|
|
@@ -408,7 +408,7 @@ describe('ID5 ID System', function () {
|
|
|
408
408
|
});
|
|
409
409
|
|
|
410
410
|
it('should call the ID5 server for config with partner id being a string', function () {
|
|
411
|
-
let xhrServerMock = new XhrServerMock(
|
|
411
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
412
412
|
let id5FetchConfig = getId5FetchConfig();
|
|
413
413
|
id5FetchConfig.params.partner = '173';
|
|
414
414
|
let submoduleResponse = callSubmoduleGetId(id5FetchConfig, undefined, undefined);
|
|
@@ -426,7 +426,7 @@ describe('ID5 ID System', function () {
|
|
|
426
426
|
});
|
|
427
427
|
|
|
428
428
|
it('should call the ID5 server for config with overridden url', function () {
|
|
429
|
-
let xhrServerMock = new XhrServerMock(
|
|
429
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
430
430
|
let id5FetchConfig = getId5FetchConfig();
|
|
431
431
|
id5FetchConfig.params.configUrl = 'http://localhost/x/y/z'
|
|
432
432
|
|
|
@@ -444,7 +444,7 @@ describe('ID5 ID System', function () {
|
|
|
444
444
|
});
|
|
445
445
|
|
|
446
446
|
it('should call the ID5 server with additional data when provided', function () {
|
|
447
|
-
let xhrServerMock = new XhrServerMock(
|
|
447
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
448
448
|
let submoduleResponse = callSubmoduleGetId(getId5FetchConfig(), undefined, undefined);
|
|
449
449
|
|
|
450
450
|
return xhrServerMock.expectConfigRequest()
|
|
@@ -478,7 +478,7 @@ describe('ID5 ID System', function () {
|
|
|
478
478
|
});
|
|
479
479
|
|
|
480
480
|
it('should call the ID5 server with extensions', function () {
|
|
481
|
-
let xhrServerMock = new XhrServerMock(
|
|
481
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
482
482
|
let submoduleResponse = callSubmoduleGetId(getId5FetchConfig(), undefined, undefined);
|
|
483
483
|
|
|
484
484
|
return xhrServerMock.expectConfigRequest()
|
|
@@ -515,7 +515,7 @@ describe('ID5 ID System', function () {
|
|
|
515
515
|
});
|
|
516
516
|
|
|
517
517
|
it('should call the ID5 server with extensions fetched with POST', function () {
|
|
518
|
-
let xhrServerMock = new XhrServerMock(
|
|
518
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
519
519
|
let submoduleResponse = callSubmoduleGetId(getId5FetchConfig(), undefined, undefined);
|
|
520
520
|
|
|
521
521
|
return xhrServerMock.expectConfigRequest()
|
|
@@ -561,7 +561,7 @@ describe('ID5 ID System', function () {
|
|
|
561
561
|
});
|
|
562
562
|
|
|
563
563
|
it('should call the ID5 server with signature field from stored object', function () {
|
|
564
|
-
let xhrServerMock = new XhrServerMock(
|
|
564
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
565
565
|
let submoduleResponse = callSubmoduleGetId(getId5FetchConfig(), undefined, ID5_STORED_OBJ);
|
|
566
566
|
|
|
567
567
|
return xhrServerMock.expectFetchRequest()
|
|
@@ -574,7 +574,7 @@ describe('ID5 ID System', function () {
|
|
|
574
574
|
});
|
|
575
575
|
|
|
576
576
|
it('should call the ID5 server with pd field when pd config is set', function () {
|
|
577
|
-
let xhrServerMock = new XhrServerMock(
|
|
577
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
578
578
|
const pubData = 'b50ca08271795a8e7e4012813f23d505193d75c0f2e2bb99baa63aa822f66ed3';
|
|
579
579
|
|
|
580
580
|
let id5Config = getId5FetchConfig();
|
|
@@ -592,7 +592,7 @@ describe('ID5 ID System', function () {
|
|
|
592
592
|
});
|
|
593
593
|
|
|
594
594
|
it('should call the ID5 server with no pd field when pd config is not set', function () {
|
|
595
|
-
let xhrServerMock = new XhrServerMock(
|
|
595
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
596
596
|
let id5Config = getId5FetchConfig();
|
|
597
597
|
id5Config.params.pd = undefined;
|
|
598
598
|
|
|
@@ -608,7 +608,7 @@ describe('ID5 ID System', function () {
|
|
|
608
608
|
});
|
|
609
609
|
|
|
610
610
|
it('should call the ID5 server with nb=1 when no stored value exists and reset after', function () {
|
|
611
|
-
let xhrServerMock = new XhrServerMock(
|
|
611
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
612
612
|
coreStorage.removeDataFromLocalStorage(ID5_NB_STORAGE_NAME);
|
|
613
613
|
|
|
614
614
|
let submoduleResponse = callSubmoduleGetId(getId5FetchConfig(), undefined, ID5_STORED_OBJ);
|
|
@@ -626,7 +626,7 @@ describe('ID5 ID System', function () {
|
|
|
626
626
|
});
|
|
627
627
|
|
|
628
628
|
it('should call the ID5 server with incremented nb when stored value exists and reset after', function () {
|
|
629
|
-
let xhrServerMock = new XhrServerMock(
|
|
629
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
630
630
|
storeNbInCache(ID5_TEST_PARTNER_ID, 1);
|
|
631
631
|
|
|
632
632
|
let submoduleResponse = callSubmoduleGetId(getId5FetchConfig(), undefined, ID5_STORED_OBJ);
|
|
@@ -644,7 +644,7 @@ describe('ID5 ID System', function () {
|
|
|
644
644
|
});
|
|
645
645
|
|
|
646
646
|
it('should call the ID5 server with ab_testing object when abTesting is turned on', function () {
|
|
647
|
-
let xhrServerMock = new XhrServerMock(
|
|
647
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
648
648
|
let id5Config = getId5FetchConfig();
|
|
649
649
|
id5Config.params.abTesting = {enabled: true, controlGroupPct: 0.234}
|
|
650
650
|
|
|
@@ -661,7 +661,7 @@ describe('ID5 ID System', function () {
|
|
|
661
661
|
});
|
|
662
662
|
|
|
663
663
|
it('should call the ID5 server without ab_testing object when abTesting is turned off', function () {
|
|
664
|
-
let xhrServerMock = new XhrServerMock(
|
|
664
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
665
665
|
let id5Config = getId5FetchConfig();
|
|
666
666
|
id5Config.params.abTesting = {enabled: false, controlGroupPct: 0.55}
|
|
667
667
|
|
|
@@ -677,7 +677,7 @@ describe('ID5 ID System', function () {
|
|
|
677
677
|
});
|
|
678
678
|
|
|
679
679
|
it('should call the ID5 server without ab_testing when when abTesting is not set', function () {
|
|
680
|
-
let xhrServerMock = new XhrServerMock(
|
|
680
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
681
681
|
let id5Config = getId5FetchConfig();
|
|
682
682
|
|
|
683
683
|
let submoduleResponse = callSubmoduleGetId(id5Config, undefined, ID5_STORED_OBJ);
|
|
@@ -692,7 +692,7 @@ describe('ID5 ID System', function () {
|
|
|
692
692
|
});
|
|
693
693
|
|
|
694
694
|
it('should store the privacy object from the ID5 server response', function () {
|
|
695
|
-
let xhrServerMock = new XhrServerMock(
|
|
695
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
696
696
|
let submoduleResponse = callSubmoduleGetId(getId5FetchConfig(), undefined, ID5_STORED_OBJ);
|
|
697
697
|
|
|
698
698
|
const privacy = {
|
|
@@ -714,7 +714,7 @@ describe('ID5 ID System', function () {
|
|
|
714
714
|
});
|
|
715
715
|
|
|
716
716
|
it('should not store a privacy object if not part of ID5 server response', function () {
|
|
717
|
-
let xhrServerMock = new XhrServerMock(
|
|
717
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
718
718
|
coreStorage.removeDataFromLocalStorage(ID5_PRIVACY_STORAGE_NAME);
|
|
719
719
|
let submoduleResponse = callSubmoduleGetId(getId5FetchConfig(), undefined, ID5_STORED_OBJ);
|
|
720
720
|
|
|
@@ -760,7 +760,7 @@ describe('ID5 ID System', function () {
|
|
|
760
760
|
[false, 0]
|
|
761
761
|
].forEach(function ([isEnabled, expectedValue]) {
|
|
762
762
|
it(`should check localStorage availability and log in request. Available=${isEnabled}`, () => {
|
|
763
|
-
let xhrServerMock = new XhrServerMock(
|
|
763
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
764
764
|
let config = getId5FetchConfig();
|
|
765
765
|
let submoduleResponse = callSubmoduleGetId(config, undefined, undefined);
|
|
766
766
|
storage.localStorageIsEnabled.callsFake(() => isEnabled)
|
|
@@ -878,7 +878,7 @@ describe('ID5 ID System', function () {
|
|
|
878
878
|
});
|
|
879
879
|
|
|
880
880
|
it('should call ID5 servers with signature and incremented nb post auction if refresh needed', function () {
|
|
881
|
-
let xhrServerMock = new XhrServerMock(
|
|
881
|
+
let xhrServerMock = new XhrServerMock(server)
|
|
882
882
|
let initialLocalStorageValue = JSON.stringify(ID5_STORED_OBJ);
|
|
883
883
|
storeInLocalStorage(ID5_STORAGE_NAME, initialLocalStorageValue, 1);
|
|
884
884
|
storeInLocalStorage(`${ID5_STORAGE_NAME}_last`, expDaysStr(-1), 1);
|
|
@@ -111,10 +111,8 @@ describe('IdentityLinkId tests', function () {
|
|
|
111
111
|
request.respond(
|
|
112
112
|
204,
|
|
113
113
|
responseHeader,
|
|
114
|
-
''
|
|
115
114
|
);
|
|
116
115
|
expect(callBackSpy.calledOnce).to.be.true;
|
|
117
|
-
expect(request.response).to.equal('');
|
|
118
116
|
expect(logErrorStub.calledOnce).to.not.be.true;
|
|
119
117
|
});
|
|
120
118
|
|
|
@@ -169,10 +169,8 @@ describe('IntentIQ tests', function () {
|
|
|
169
169
|
request.respond(
|
|
170
170
|
204,
|
|
171
171
|
responseHeader,
|
|
172
|
-
''
|
|
173
172
|
);
|
|
174
173
|
expect(callBackSpy.calledOnce).to.be.true;
|
|
175
|
-
expect(request.response).to.equal('');
|
|
176
174
|
});
|
|
177
175
|
|
|
178
176
|
it('should log an error and continue to callback if ajax request errors', function () {
|