prebid.js 7.35.0 → 7.37.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/.devcontainer/Dockerfile +2 -0
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/admaruBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/aidemBidAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/aolBidAdapter.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/audiencerunBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bluebillywigBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/brightcomBidAdapter.js +1 -1
- package/dist/brightcomSSPBidAdapter.js +1 -0
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/dependencies.json +3 -0
- package/dist/discoveryBidAdapter.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/glimpseBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/gridNMBidAdapter.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/impactifyBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/incrxBidAdapter.js +1 -1
- package/dist/inmarBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/kueezRtbBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/limelightDigitalBidAdapter.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/livewrappedBidAdapter.js +1 -1
- package/dist/liveyieldAnalyticsAdapter.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/magniteAnalyticsAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/mediagoBidAdapter.js +1 -1
- package/dist/mediakeysBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/minutemediaplusBidAdapter.js +1 -0
- package/dist/neuwoRtdProvider.js +1 -0
- package/dist/nextMillenniumBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +141 -137
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +1 -1
- package/dist/prebidServerBidAdapter.js +1 -1
- package/dist/proxistoreBidAdapter.js +1 -1
- package/dist/publinkIdSystem.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/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rubiconAnalyticsAdapter.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/scatteredBidAdapter.js +1 -0
- 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/sirdataRtdProvider.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.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/sublimeBidAdapter.js +1 -1
- package/dist/synacormediaBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.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/userId.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vuukleBidAdapter.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/integrationExamples/gpt/neuwoRtdProvider_example.html +190 -0
- package/modules/33acrossBidAdapter.js +13 -4
- package/modules/adagioBidAdapter.js +14 -14
- package/modules/adagioBidAdapter.md +3 -1
- package/modules/admaruBidAdapter.js +19 -1
- package/modules/aidemBidAdapter.js +90 -65
- package/modules/aidemBidAdapter.md +10 -7
- package/modules/ajaBidAdapter.js +6 -1
- package/modules/amxIdSystem.md +2 -10
- package/modules/aolBidAdapter.js +1 -1
- package/modules/appnexusBidAdapter.js +45 -48
- package/modules/brightcomBidAdapter.js +1 -0
- package/modules/brightcomSSPBidAdapter.js +323 -0
- package/modules/brightcomSSPBidAdapter.md +46 -0
- package/modules/criteoBidAdapter.js +4 -5
- package/modules/cwireBidAdapter.md +9 -3
- package/modules/discoveryBidAdapter.js +22 -12
- package/modules/feedadBidAdapter.js +35 -15
- package/modules/fpdModule/index.md +5 -2
- package/modules/freewheel-sspBidAdapter.js +5 -1
- package/modules/gridBidAdapter.js +3 -1
- package/modules/incrxBidAdapter.js +2 -0
- package/modules/ixBidAdapter.js +318 -175
- package/modules/kueezRtbBidAdapter.js +54 -20
- package/modules/limelightDigitalBidAdapter.js +6 -1
- package/modules/limelightDigitalBidAdapter.md +12 -2
- package/modules/liveIntentIdSystem.js +1 -1
- package/modules/livewrappedBidAdapter.js +28 -16
- package/modules/mediagoBidAdapter.js +22 -17
- package/modules/minutemediaplusBidAdapter.js +291 -0
- package/modules/minutemediaplusBidAdapter.md +35 -0
- package/modules/neuwoRtdProvider.js +171 -0
- package/modules/neuwoRtdProvider.md +40 -0
- package/modules/nextMillenniumBidAdapter.js +9 -1
- package/modules/nexx360BidAdapter.js +1 -1
- package/modules/prebidServerBidAdapter/ortbConverter.js +6 -0
- package/modules/proxistoreBidAdapter.js +2 -2
- package/modules/pubmaticBidAdapter.js +4 -0
- package/modules/pubxaiAnalyticsAdapter.js +2 -2
- package/modules/scatteredBidAdapter.js +72 -0
- package/modules/scatteredBidAdapter.md +36 -0
- package/modules/sirdataRtdProvider.js +262 -284
- package/modules/smartxBidAdapter.js +2 -0
- package/modules/smilewantedBidAdapter.js +5 -0
- package/modules/sonobiBidAdapter.js +1 -10
- package/modules/topicsFpdModule.md +62 -0
- package/modules/tripleliftBidAdapter.js +4 -0
- package/modules/userId/eids.js +1 -1
- package/modules/vidazooBidAdapter.js +3 -1
- package/modules/yahoosspBidAdapter.js +1 -1
- package/modules/yieldmoBidAdapter.js +1 -0
- package/package.json +2 -2
- package/src/adapterManager.js +30 -14
- package/src/utils.js +1 -1
- package/test/spec/modules/33acrossBidAdapter_spec.js +51 -18
- package/test/spec/modules/adagioBidAdapter_spec.js +2 -2
- package/test/spec/modules/admaruBidAdapter_spec.js +48 -0
- package/test/spec/modules/aidemBidAdapter_spec.js +77 -10
- package/test/spec/modules/ajaBidAdapter_spec.js +21 -1
- package/test/spec/modules/aolBidAdapter_spec.js +2 -2
- package/test/spec/modules/appnexusBidAdapter_spec.js +123 -16
- package/test/spec/modules/brightcomSSPBidAdapter_spec.js +411 -0
- package/test/spec/modules/criteoBidAdapter_spec.js +24 -1
- package/test/spec/modules/eids_spec.js +1 -1
- package/test/spec/modules/feedadBidAdapter_spec.js +47 -77
- package/test/spec/modules/freewheel-sspBidAdapter_spec.js +1 -1
- package/test/spec/modules/incrxBidAdapter_spec.js +4 -0
- package/test/spec/modules/ixBidAdapter_spec.js +24 -54
- package/test/spec/modules/kueezRtbBidAdapter_spec.js +63 -22
- package/test/spec/modules/limelightDigitalBidAdapter_spec.js +35 -5
- package/test/spec/modules/livewrappedBidAdapter_spec.js +267 -2
- package/test/spec/modules/minutemediaplusBidAdapter_spec.js +519 -0
- package/test/spec/modules/neuwoRtdProvider_spec.js +123 -0
- package/test/spec/modules/nextMillenniumBidAdapter_spec.js +11 -0
- package/test/spec/modules/prebidServerBidAdapter_spec.js +56 -0
- package/test/spec/modules/proxistoreBidAdapter_spec.js +2 -2
- package/test/spec/modules/pubmaticBidAdapter_spec.js +15 -0
- package/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +3 -1
- package/test/spec/modules/scatteredBidAdapter_spec.js +210 -0
- package/test/spec/modules/sirdataRtdProvider_spec.js +116 -22
- package/test/spec/modules/smilewantedBidAdapter_spec.js +54 -3
- package/test/spec/modules/sonobiBidAdapter_spec.js +3 -25
- package/test/spec/modules/tripleliftBidAdapter_spec.js +9 -2
- package/test/spec/modules/userId_spec.js +1 -1
- package/test/spec/modules/vidazooBidAdapter_spec.js +4 -1
- package/test/spec/modules/yahoosspBidAdapter_spec.js +1 -1
- package/test/spec/unit/core/adapterManager_spec.js +147 -0
|
@@ -1156,6 +1156,18 @@ describe('The Criteo bidding adapter', function () {
|
|
|
1156
1156
|
it('should properly build a request with first party data', function () {
|
|
1157
1157
|
const siteData = {
|
|
1158
1158
|
keywords: ['power tools'],
|
|
1159
|
+
content: {
|
|
1160
|
+
data: [{
|
|
1161
|
+
name: 'some_provider',
|
|
1162
|
+
ext: {
|
|
1163
|
+
segtax: 3
|
|
1164
|
+
},
|
|
1165
|
+
segment: [
|
|
1166
|
+
{ 'id': '1001' },
|
|
1167
|
+
{ 'id': '1002' }
|
|
1168
|
+
]
|
|
1169
|
+
}]
|
|
1170
|
+
},
|
|
1159
1171
|
ext: {
|
|
1160
1172
|
data: {
|
|
1161
1173
|
pageType: 'article'
|
|
@@ -1164,6 +1176,16 @@ describe('The Criteo bidding adapter', function () {
|
|
|
1164
1176
|
};
|
|
1165
1177
|
const userData = {
|
|
1166
1178
|
gender: 'M',
|
|
1179
|
+
data: [{
|
|
1180
|
+
name: 'some_provider',
|
|
1181
|
+
ext: {
|
|
1182
|
+
segtax: 3
|
|
1183
|
+
},
|
|
1184
|
+
segment: [
|
|
1185
|
+
{ 'id': '1001' },
|
|
1186
|
+
{ 'id': '1002' }
|
|
1187
|
+
]
|
|
1188
|
+
}],
|
|
1167
1189
|
ext: {
|
|
1168
1190
|
data: {
|
|
1169
1191
|
registered: true
|
|
@@ -1203,7 +1225,8 @@ describe('The Criteo bidding adapter', function () {
|
|
|
1203
1225
|
|
|
1204
1226
|
const request = spec.buildRequests(bidRequests, { ...bidderRequest, ortb2 });
|
|
1205
1227
|
expect(request.data.publisher.ext).to.deep.equal({ data: { pageType: 'article' } });
|
|
1206
|
-
expect(request.data.user
|
|
1228
|
+
expect(request.data.user).to.deep.equal(userData);
|
|
1229
|
+
expect(request.data.site).to.deep.equal(siteData);
|
|
1207
1230
|
expect(request.data.slots[0].ext).to.deep.equal({
|
|
1208
1231
|
bidfloor: 0.75,
|
|
1209
1232
|
data: {
|
|
@@ -4,7 +4,7 @@ import {BANNER, NATIVE, VIDEO} from '../../../src/mediaTypes.js';
|
|
|
4
4
|
import {server} from 'test/mocks/xhr.js';
|
|
5
5
|
|
|
6
6
|
const CODE = 'feedad';
|
|
7
|
-
const EXPECTED_ADAPTER_VERSION = '1.0.
|
|
7
|
+
const EXPECTED_ADAPTER_VERSION = '1.0.6';
|
|
8
8
|
|
|
9
9
|
describe('FeedAdAdapter', function () {
|
|
10
10
|
describe('Public API', function () {
|
|
@@ -373,81 +373,67 @@ describe('FeedAdAdapter', function () {
|
|
|
373
373
|
const pixelSync2 = {type: 'image', url: 'the pixel url 2'};
|
|
374
374
|
const iFrameSync1 = {type: 'iframe', url: 'the iFrame url 1'};
|
|
375
375
|
const iFrameSync2 = {type: 'iframe', url: 'the iFrame url 2'};
|
|
376
|
-
const
|
|
377
|
-
|
|
378
|
-
content = [content];
|
|
379
|
-
}
|
|
380
|
-
return content.map(it => ({body: it}));
|
|
381
|
-
};
|
|
382
|
-
|
|
383
|
-
it('should pass through the syncs out of the extension fields of the server response', function () {
|
|
384
|
-
const serverResponse = mockServerResponse([{
|
|
376
|
+
const response1 = {
|
|
377
|
+
body: [{
|
|
385
378
|
ext: {
|
|
386
379
|
pixels: [pixelSync1, pixelSync2],
|
|
387
|
-
iframes: [iFrameSync1
|
|
380
|
+
iframes: [iFrameSync1]
|
|
381
|
+
},
|
|
382
|
+
}]
|
|
383
|
+
};
|
|
384
|
+
const response2 = {
|
|
385
|
+
body: [{
|
|
386
|
+
ext: {
|
|
387
|
+
pixels: [pixelSync1],
|
|
388
|
+
iframes: [iFrameSync1],
|
|
388
389
|
}
|
|
389
|
-
}
|
|
390
|
-
|
|
390
|
+
}, {
|
|
391
|
+
ext: {
|
|
392
|
+
pixels: [pixelSync2],
|
|
393
|
+
iframes: [iFrameSync2],
|
|
394
|
+
}
|
|
395
|
+
}]
|
|
396
|
+
};
|
|
397
|
+
it('should pass through the syncs out of the extension fields of the server response', function () {
|
|
398
|
+
const result = spec.getUserSyncs({iframeEnabled: true, pixelEnabled: true}, [response1])
|
|
391
399
|
expect(result).to.deep.equal([
|
|
392
400
|
pixelSync1,
|
|
393
401
|
pixelSync2,
|
|
394
402
|
iFrameSync1,
|
|
395
|
-
iFrameSync2,
|
|
396
403
|
]);
|
|
397
404
|
});
|
|
398
405
|
|
|
399
406
|
it('should concat the syncs of all responses', function () {
|
|
400
|
-
const
|
|
401
|
-
ext: {
|
|
402
|
-
pixels: [pixelSync1],
|
|
403
|
-
iframes: [iFrameSync2],
|
|
404
|
-
},
|
|
405
|
-
ad: 'ad html',
|
|
406
|
-
cpm: 100
|
|
407
|
-
}, {
|
|
408
|
-
ext: {
|
|
409
|
-
iframes: [iFrameSync1],
|
|
410
|
-
}
|
|
411
|
-
}, {
|
|
412
|
-
ext: {
|
|
413
|
-
pixels: [pixelSync2],
|
|
414
|
-
}
|
|
415
|
-
}]);
|
|
416
|
-
const result = spec.getUserSyncs({iframeEnabled: true, pixelEnabled: true}, serverResponse);
|
|
407
|
+
const result = spec.getUserSyncs({iframeEnabled: true, pixelEnabled: true}, [response1, response2]);
|
|
417
408
|
expect(result).to.deep.equal([
|
|
418
409
|
pixelSync1,
|
|
410
|
+
pixelSync2,
|
|
411
|
+
iFrameSync1,
|
|
419
412
|
iFrameSync2,
|
|
413
|
+
]);
|
|
414
|
+
});
|
|
415
|
+
|
|
416
|
+
it('should concat the syncs of all bids', function () {
|
|
417
|
+
const result = spec.getUserSyncs({iframeEnabled: true, pixelEnabled: true}, [response2]);
|
|
418
|
+
expect(result).to.deep.equal([
|
|
419
|
+
pixelSync1,
|
|
420
420
|
iFrameSync1,
|
|
421
421
|
pixelSync2,
|
|
422
|
+
iFrameSync2,
|
|
422
423
|
]);
|
|
423
424
|
});
|
|
424
425
|
|
|
425
426
|
it('should filter out duplicates', function () {
|
|
426
|
-
const
|
|
427
|
-
ext: {
|
|
428
|
-
pixels: [pixelSync1, pixelSync1],
|
|
429
|
-
iframes: [iFrameSync2, iFrameSync2],
|
|
430
|
-
}
|
|
431
|
-
}, {
|
|
432
|
-
ext: {
|
|
433
|
-
iframes: [iFrameSync2, iFrameSync2],
|
|
434
|
-
}
|
|
435
|
-
}]);
|
|
436
|
-
const result = spec.getUserSyncs({iframeEnabled: true, pixelEnabled: true}, serverResponse);
|
|
427
|
+
const result = spec.getUserSyncs({iframeEnabled: true, pixelEnabled: true}, [response1, response1]);
|
|
437
428
|
expect(result).to.deep.equal([
|
|
438
429
|
pixelSync1,
|
|
439
|
-
|
|
430
|
+
pixelSync2,
|
|
431
|
+
iFrameSync1,
|
|
440
432
|
]);
|
|
441
433
|
});
|
|
442
434
|
|
|
443
435
|
it('should not include iFrame syncs if the option is disabled', function () {
|
|
444
|
-
const
|
|
445
|
-
ext: {
|
|
446
|
-
pixels: [pixelSync1, pixelSync2],
|
|
447
|
-
iframes: [iFrameSync1, iFrameSync2],
|
|
448
|
-
}
|
|
449
|
-
}]);
|
|
450
|
-
const result = spec.getUserSyncs({iframeEnabled: false, pixelEnabled: true}, serverResponse);
|
|
436
|
+
const result = spec.getUserSyncs({iframeEnabled: false, pixelEnabled: true}, [response1]);
|
|
451
437
|
expect(result).to.deep.equal([
|
|
452
438
|
pixelSync1,
|
|
453
439
|
pixelSync2,
|
|
@@ -455,52 +441,36 @@ describe('FeedAdAdapter', function () {
|
|
|
455
441
|
});
|
|
456
442
|
|
|
457
443
|
it('should not include pixel syncs if the option is disabled', function () {
|
|
458
|
-
const
|
|
459
|
-
ext: {
|
|
460
|
-
pixels: [pixelSync1, pixelSync2],
|
|
461
|
-
iframes: [iFrameSync1, iFrameSync2],
|
|
462
|
-
}
|
|
463
|
-
}]);
|
|
464
|
-
const result = spec.getUserSyncs({iframeEnabled: true, pixelEnabled: false}, serverResponse);
|
|
444
|
+
const result = spec.getUserSyncs({iframeEnabled: true, pixelEnabled: false}, [response1]);
|
|
465
445
|
expect(result).to.deep.equal([
|
|
466
446
|
iFrameSync1,
|
|
467
|
-
iFrameSync2,
|
|
468
447
|
]);
|
|
469
448
|
});
|
|
470
449
|
|
|
471
450
|
it('should not include any syncs if the sync options are disabled or missing', function () {
|
|
472
|
-
const
|
|
473
|
-
ext: {
|
|
474
|
-
pixels: [pixelSync1, pixelSync2],
|
|
475
|
-
iframes: [iFrameSync1, iFrameSync2],
|
|
476
|
-
}
|
|
477
|
-
}]);
|
|
478
|
-
const result = spec.getUserSyncs({iframeEnabled: false, pixelEnabled: false}, serverResponse);
|
|
451
|
+
const result = spec.getUserSyncs({iframeEnabled: false, pixelEnabled: false}, [response1]);
|
|
479
452
|
expect(result).to.deep.equal([]);
|
|
480
453
|
});
|
|
481
454
|
|
|
482
455
|
it('should handle empty responses', function () {
|
|
483
|
-
const
|
|
484
|
-
const result = spec.getUserSyncs({iframeEnabled: true, pixelEnabled: true}, serverResponse)
|
|
456
|
+
const result = spec.getUserSyncs({iframeEnabled: true, pixelEnabled: true}, [])
|
|
485
457
|
expect(result).to.deep.equal([]);
|
|
486
458
|
});
|
|
487
459
|
|
|
488
460
|
it('should not throw if the server response is weird', function () {
|
|
489
461
|
const responses = [
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
462
|
+
{body: null},
|
|
463
|
+
{body: 'null'},
|
|
464
|
+
{body: 1234},
|
|
465
|
+
{body: {}},
|
|
466
|
+
{body: [{}, 123]},
|
|
495
467
|
];
|
|
496
|
-
|
|
497
|
-
expect(() => spec.getUserSyncs({iframeEnabled: true, pixelEnabled: true}, it)).not.to.throw;
|
|
498
|
-
});
|
|
468
|
+
expect(() => spec.getUserSyncs({iframeEnabled: true, pixelEnabled: true}, responses)).to.not.throw();
|
|
499
469
|
});
|
|
500
470
|
|
|
501
471
|
it('should return empty array if the body extension is null', function () {
|
|
502
|
-
const response =
|
|
503
|
-
const result = spec.getUserSyncs({iframeEnabled: true, pixelEnabled: true}, response);
|
|
472
|
+
const response = {body: [{ext: null}]};
|
|
473
|
+
const result = spec.getUserSyncs({iframeEnabled: true, pixelEnabled: true}, [response]);
|
|
504
474
|
expect(result).to.deep.equal([]);
|
|
505
475
|
});
|
|
506
476
|
});
|
|
@@ -128,7 +128,7 @@ describe('freewheelSSP BidAdapter Test', () => {
|
|
|
128
128
|
it('should return a properly formatted request with schain defined', function () {
|
|
129
129
|
const request = spec.buildRequests(bidRequests);
|
|
130
130
|
const payload = request[0].data;
|
|
131
|
-
expect(payload.schain).to.deep.equal(
|
|
131
|
+
expect(payload.schain).to.deep.equal('{\"ver\":\"1.0\",\"complete\":1,\"nodes\":[{\"asi\":\"example.com\",\"sid\":\"0\",\"hp\":1,\"rid\":\"bidrequestid\",\"domain\":\"example.com\"}]}');
|
|
132
132
|
});
|
|
133
133
|
|
|
134
134
|
it('sends bid request to ENDPOINT via GET', () => {
|
|
@@ -71,6 +71,8 @@ describe('IncrementX', function () {
|
|
|
71
71
|
cpm: '0.7',
|
|
72
72
|
ad: '<html><h1>Ad from IncrementX</h1></html>',
|
|
73
73
|
slotBidId: 'bid-id-123456',
|
|
74
|
+
adType: '1',
|
|
75
|
+
settings: '1,2',
|
|
74
76
|
nurl: 'htt://nurl.com',
|
|
75
77
|
statusText: 'Success'
|
|
76
78
|
}
|
|
@@ -80,6 +82,8 @@ describe('IncrementX', function () {
|
|
|
80
82
|
requestId: 'bid-id-123456',
|
|
81
83
|
cpm: '0.7',
|
|
82
84
|
currency: 'USD',
|
|
85
|
+
adType: '1',
|
|
86
|
+
settings: '1,2',
|
|
83
87
|
netRevenue: false,
|
|
84
88
|
width: '300',
|
|
85
89
|
height: '250',
|
|
@@ -750,7 +750,8 @@ describe('IndexexchangeAdapter', function () {
|
|
|
750
750
|
// so structured because when calling createEidsArray, UID2's getValue func takes .id to set in uids
|
|
751
751
|
uid2: { id: 'testuid2' }, // UID 2.0
|
|
752
752
|
// similar to uid2, but id5's getValue takes .uid
|
|
753
|
-
id5id: { uid: 'testid5id' } // ID5
|
|
753
|
+
id5id: { uid: 'testid5id' }, // ID5
|
|
754
|
+
imuid: 'testimuid'
|
|
754
755
|
};
|
|
755
756
|
|
|
756
757
|
const DEFAULT_USERIDASEIDS_DATA = createEidsArray(DEFAULT_USERID_DATA);
|
|
@@ -801,6 +802,11 @@ describe('IndexexchangeAdapter', function () {
|
|
|
801
802
|
uids: [{
|
|
802
803
|
id: DEFAULT_USERID_DATA.id5id.uid
|
|
803
804
|
}]
|
|
805
|
+
}, {
|
|
806
|
+
source: 'intimatemerger.com',
|
|
807
|
+
uids: [{
|
|
808
|
+
id: DEFAULT_USERID_DATA.imuid,
|
|
809
|
+
}]
|
|
804
810
|
}
|
|
805
811
|
];
|
|
806
812
|
|
|
@@ -1193,7 +1199,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
1193
1199
|
const payload = extractPayload(request[0]);
|
|
1194
1200
|
expect(request).to.be.an('array');
|
|
1195
1201
|
expect(request).to.have.lengthOf.above(0); // should be 1 or more
|
|
1196
|
-
expect(payload.user.eids).to.have.lengthOf(
|
|
1202
|
+
expect(payload.user.eids).to.have.lengthOf(7);
|
|
1197
1203
|
expect(payload.user.eids).to.deep.include(DEFAULT_USERID_PAYLOAD[0]);
|
|
1198
1204
|
});
|
|
1199
1205
|
});
|
|
@@ -1381,8 +1387,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
1381
1387
|
cloneValidBid[0].userIdAsEids = utils.deepClone(DEFAULT_USERIDASEIDS_DATA);
|
|
1382
1388
|
const request = spec.buildRequests(cloneValidBid, DEFAULT_OPTION)[0];
|
|
1383
1389
|
const payload = extractPayload(request);
|
|
1384
|
-
|
|
1385
|
-
expect(payload.user.eids).to.have.lengthOf(6);
|
|
1390
|
+
expect(payload.user.eids).to.have.lengthOf(7);
|
|
1386
1391
|
expect(payload.user.eids).to.have.deep.members(DEFAULT_USERID_PAYLOAD);
|
|
1387
1392
|
});
|
|
1388
1393
|
|
|
@@ -1515,7 +1520,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
1515
1520
|
})
|
|
1516
1521
|
|
|
1517
1522
|
expect(payload.user).to.exist;
|
|
1518
|
-
expect(payload.user.eids).to.have.lengthOf(
|
|
1523
|
+
expect(payload.user.eids).to.have.lengthOf(9);
|
|
1519
1524
|
|
|
1520
1525
|
expect(payload.user.eids).to.have.deep.members(validUserIdPayload);
|
|
1521
1526
|
});
|
|
@@ -1557,7 +1562,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
1557
1562
|
});
|
|
1558
1563
|
|
|
1559
1564
|
const payload = extractPayload(request);
|
|
1560
|
-
expect(payload.user.eids).to.have.lengthOf(
|
|
1565
|
+
expect(payload.user.eids).to.have.lengthOf(8);
|
|
1561
1566
|
expect(payload.user.eids).to.have.deep.members(validUserIdPayload);
|
|
1562
1567
|
});
|
|
1563
1568
|
});
|
|
@@ -3610,27 +3615,9 @@ describe('IndexexchangeAdapter', function () {
|
|
|
3610
3615
|
expect(FEATURE_TOGGLES.featureToggles).to.deep.equal({});
|
|
3611
3616
|
});
|
|
3612
3617
|
|
|
3613
|
-
it('should
|
|
3614
|
-
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
3615
|
-
serverResponse.body.ext.features.pbjs_use_32kb_size_limit = {
|
|
3616
|
-
activated: true
|
|
3617
|
-
};
|
|
3618
|
-
FEATURE_TOGGLES.setFeatureToggles(serverResponse);
|
|
3619
|
-
const bid = utils.deepClone(DEFAULT_MULTIFORMAT_VIDEO_VALID_BID[0]);
|
|
3620
|
-
bid.bidderRequestId = Array(10000).join('#');
|
|
3621
|
-
|
|
3622
|
-
expect(spec.isBidRequestValid(bid)).to.be.true;
|
|
3623
|
-
spec.buildRequests([bid], {});
|
|
3624
|
-
const lsData = JSON.parse(storage.getDataFromLocalStorage(LOCAL_STORAGE_FEATURE_TOGGLES_KEY));
|
|
3625
|
-
expect(lsData.features.pbjs_use_32kb_size_limit.activated).to.be.true;
|
|
3626
|
-
});
|
|
3627
|
-
|
|
3628
|
-
it('6 ad units should generate only 2 requests if 32kb size limit FT is enabled', function () {
|
|
3618
|
+
it('6 ad units should generate only 1 request if buildRequestV2 FT is enabled', function () {
|
|
3629
3619
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
3630
|
-
serverResponse.body.ext.features.
|
|
3631
|
-
activated: true
|
|
3632
|
-
};
|
|
3633
|
-
serverResponse.body.ext.features.pbjs_enable_post = {
|
|
3620
|
+
serverResponse.body.ext.features.pbjs_use_buildRequestV2 = {
|
|
3634
3621
|
activated: true
|
|
3635
3622
|
};
|
|
3636
3623
|
FEATURE_TOGGLES.setFeatureToggles(serverResponse);
|
|
@@ -3660,47 +3647,30 @@ describe('IndexexchangeAdapter', function () {
|
|
|
3660
3647
|
const requests = spec.buildRequests([bid1, bid2, bid3, bid4, bid5, bid6], DEFAULT_OPTION);
|
|
3661
3648
|
|
|
3662
3649
|
expect(requests).to.be.an('array');
|
|
3663
|
-
//
|
|
3664
|
-
expect(requests).to.have.lengthOf(
|
|
3650
|
+
// buildRequestv2 enabled causes only 1 requests to get generated.
|
|
3651
|
+
expect(requests).to.have.lengthOf(1);
|
|
3665
3652
|
for (let request of requests) {
|
|
3666
3653
|
expect(request.method).to.equal('POST');
|
|
3667
3654
|
}
|
|
3668
3655
|
});
|
|
3669
3656
|
|
|
3670
|
-
it('
|
|
3657
|
+
it('1 request with 2 ad units, buildRequestV2 enabled', function () {
|
|
3671
3658
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
3672
|
-
serverResponse.body.ext.features.
|
|
3673
|
-
activated: true
|
|
3674
|
-
};
|
|
3675
|
-
serverResponse.body.ext.features.pbjs_enable_post = {
|
|
3659
|
+
serverResponse.body.ext.features.pbjs_use_buildRequestV2 = {
|
|
3676
3660
|
activated: true
|
|
3677
3661
|
};
|
|
3678
3662
|
FEATURE_TOGGLES.setFeatureToggles(serverResponse);
|
|
3679
3663
|
|
|
3680
|
-
const
|
|
3681
|
-
|
|
3682
|
-
|
|
3683
|
-
|
|
3684
|
-
|
|
3685
|
-
|
|
3686
|
-
|
|
3687
|
-
const bid2 = utils.deepClone(bid1);
|
|
3688
|
-
bid2.transactionId = 'tr2';
|
|
3689
|
-
|
|
3690
|
-
const bid3 = utils.deepClone(bid1);
|
|
3691
|
-
bid3.transactionId = 'tr3';
|
|
3692
|
-
|
|
3693
|
-
const bid4 = utils.deepClone(bid1);
|
|
3694
|
-
bid4.transactionId = 'tr4';
|
|
3695
|
-
|
|
3696
|
-
const requests = spec.buildRequests([bid1, bid2, bid3, bid4], DEFAULT_OPTION);
|
|
3664
|
+
const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
|
|
3665
|
+
bid.mediaTypes.banner.sizes = LARGE_SET_OF_SIZES;
|
|
3666
|
+
bid.params.siteId = '124';
|
|
3667
|
+
bid.adUnitCode = 'div-gpt-1'
|
|
3668
|
+
bid.transactionId = '152e36d1-1241-4242-t35e-y1dv34d12315';
|
|
3669
|
+
bid.bidId = '2f6g5s5e';
|
|
3697
3670
|
|
|
3671
|
+
const requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
|
|
3698
3672
|
expect(requests).to.be.an('array');
|
|
3699
|
-
// 32KB size limit causes only 1 requests to get generated.
|
|
3700
3673
|
expect(requests).to.have.lengthOf(1);
|
|
3701
|
-
for (let request of requests) {
|
|
3702
|
-
expect(request.method).to.equal('POST');
|
|
3703
|
-
}
|
|
3704
3674
|
});
|
|
3705
3675
|
});
|
|
3706
3676
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {expect} from 'chai';
|
|
2
2
|
import {
|
|
3
3
|
spec as adapter,
|
|
4
4
|
SUPPORTED_ID_SYSTEMS,
|
|
@@ -13,9 +13,10 @@ import {
|
|
|
13
13
|
getUniqueDealId,
|
|
14
14
|
} from 'modules/kueezRtbBidAdapter.js';
|
|
15
15
|
import * as utils from 'src/utils.js';
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
16
|
+
import {version} from 'package.json';
|
|
17
|
+
import {useFakeTimers} from 'sinon';
|
|
18
|
+
import {BANNER, VIDEO} from '../../../src/mediaTypes';
|
|
19
|
+
import {config} from '../../../src/config';
|
|
19
20
|
|
|
20
21
|
const SUB_DOMAIN = 'exchange';
|
|
21
22
|
|
|
@@ -36,6 +37,10 @@ const BID = {
|
|
|
36
37
|
'transactionId': 'c881914b-a3b5-4ecf-ad9c-1c2f37c6aabf',
|
|
37
38
|
'sizes': [[300, 250], [300, 600]],
|
|
38
39
|
'bidderRequestId': '1fdb5ff1b6eaa7',
|
|
40
|
+
'auctionId': 'auction_id',
|
|
41
|
+
'bidRequestsCount': 4,
|
|
42
|
+
'bidderRequestsCount': 3,
|
|
43
|
+
'bidderWinsCount': 1,
|
|
39
44
|
'requestId': 'b0777d85-d061-450e-9bc7-260dd54bbb7a',
|
|
40
45
|
'schain': 'a0819c69-005b-41ed-af06-1be1e0aefefc',
|
|
41
46
|
'mediaTypes': [BANNER]
|
|
@@ -46,6 +51,10 @@ const VIDEO_BID = {
|
|
|
46
51
|
'adUnitCode': '63550ad1ff6642d368cba59dh5884270560',
|
|
47
52
|
'bidderRequestId': '12a8ae9ada9c13',
|
|
48
53
|
'transactionId': '56e184c6-bde9-497b-b9b9-cf47a61381ee',
|
|
54
|
+
'auctionId': 'auction_id',
|
|
55
|
+
'bidRequestsCount': 4,
|
|
56
|
+
'bidderRequestsCount': 3,
|
|
57
|
+
'bidderWinsCount': 1,
|
|
49
58
|
'schain': 'a0819c69-005b-41ed-af06-1be1e0aefefc',
|
|
50
59
|
'params': {
|
|
51
60
|
'subDomain': SUB_DOMAIN,
|
|
@@ -78,10 +87,18 @@ const BIDDER_REQUEST = {
|
|
|
78
87
|
'consentString': 'consent_string',
|
|
79
88
|
'gdprApplies': true
|
|
80
89
|
},
|
|
90
|
+
'gppString': 'gpp_string',
|
|
91
|
+
'gppSid': [7],
|
|
81
92
|
'uspConsent': 'consent_string',
|
|
82
93
|
'refererInfo': {
|
|
83
94
|
'page': 'https://www.greatsite.com',
|
|
84
95
|
'ref': 'https://www.somereferrer.com'
|
|
96
|
+
},
|
|
97
|
+
'ortb2': {
|
|
98
|
+
'regs': {
|
|
99
|
+
'gpp': 'gpp_string',
|
|
100
|
+
'gpp_sid': [7]
|
|
101
|
+
}
|
|
85
102
|
}
|
|
86
103
|
};
|
|
87
104
|
|
|
@@ -134,7 +151,7 @@ const REQUEST = {
|
|
|
134
151
|
|
|
135
152
|
function getTopWindowQueryParams() {
|
|
136
153
|
try {
|
|
137
|
-
const parsedUrl = utils.parseUrl(window.top.document.URL, {
|
|
154
|
+
const parsedUrl = utils.parseUrl(window.top.document.URL, {decodeSearchAsString: true});
|
|
138
155
|
return parsedUrl.search;
|
|
139
156
|
} catch (e) {
|
|
140
157
|
return '';
|
|
@@ -213,6 +230,9 @@ describe('KueezRtbBidAdapter', function () {
|
|
|
213
230
|
|
|
214
231
|
it('should build video request', function () {
|
|
215
232
|
const hashUrl = hashCode(BIDDER_REQUEST.refererInfo.page);
|
|
233
|
+
config.setConfig({
|
|
234
|
+
bidderTimeout: 3000
|
|
235
|
+
});
|
|
216
236
|
const requests = adapter.buildRequests([VIDEO_BID], BIDDER_REQUEST);
|
|
217
237
|
expect(requests).to.have.length(1);
|
|
218
238
|
expect(requests[0]).to.deep.equal({
|
|
@@ -223,11 +243,20 @@ describe('KueezRtbBidAdapter', function () {
|
|
|
223
243
|
bidFloor: 0.1,
|
|
224
244
|
bidId: '2d52001cabd527',
|
|
225
245
|
bidderVersion: adapter.version,
|
|
246
|
+
bidderRequestId: '12a8ae9ada9c13',
|
|
226
247
|
cb: 1000,
|
|
227
248
|
gdpr: 1,
|
|
228
249
|
gdprConsent: 'consent_string',
|
|
229
250
|
usPrivacy: 'consent_string',
|
|
251
|
+
gppString: 'gpp_string',
|
|
252
|
+
gppSid: [7],
|
|
230
253
|
prebidVersion: version,
|
|
254
|
+
transactionId: '56e184c6-bde9-497b-b9b9-cf47a61381ee',
|
|
255
|
+
auctionId: 'auction_id',
|
|
256
|
+
bidRequestsCount: 4,
|
|
257
|
+
bidderRequestsCount: 3,
|
|
258
|
+
bidderWinsCount: 1,
|
|
259
|
+
bidderTimeout: 3000,
|
|
231
260
|
publisherId: '59ac17c192832d0011283fe3',
|
|
232
261
|
url: 'https%3A%2F%2Fwww.greatsite.com',
|
|
233
262
|
referrer: 'https://www.somereferrer.com',
|
|
@@ -259,6 +288,9 @@ describe('KueezRtbBidAdapter', function () {
|
|
|
259
288
|
|
|
260
289
|
it('should build banner request for each size', function () {
|
|
261
290
|
const hashUrl = hashCode(BIDDER_REQUEST.refererInfo.page);
|
|
291
|
+
config.setConfig({
|
|
292
|
+
bidderTimeout: 3000
|
|
293
|
+
});
|
|
262
294
|
const requests = adapter.buildRequests([BID], BIDDER_REQUEST);
|
|
263
295
|
expect(requests).to.have.length(1);
|
|
264
296
|
expect(requests[0]).to.deep.equal({
|
|
@@ -267,7 +299,16 @@ describe('KueezRtbBidAdapter', function () {
|
|
|
267
299
|
data: {
|
|
268
300
|
gdprConsent: 'consent_string',
|
|
269
301
|
gdpr: 1,
|
|
302
|
+
gppString: 'gpp_string',
|
|
303
|
+
gppSid: [7],
|
|
270
304
|
usPrivacy: 'consent_string',
|
|
305
|
+
transactionId: 'c881914b-a3b5-4ecf-ad9c-1c2f37c6aabf',
|
|
306
|
+
auctionId: 'auction_id',
|
|
307
|
+
bidRequestsCount: 4,
|
|
308
|
+
bidderRequestsCount: 3,
|
|
309
|
+
bidderWinsCount: 1,
|
|
310
|
+
bidderTimeout: 3000,
|
|
311
|
+
bidderRequestId: '1fdb5ff1b6eaa7',
|
|
271
312
|
sizes: ['300x250', '300x600'],
|
|
272
313
|
url: 'https%3A%2F%2Fwww.greatsite.com',
|
|
273
314
|
referrer: 'https://www.somereferrer.com',
|
|
@@ -296,7 +337,7 @@ describe('KueezRtbBidAdapter', function () {
|
|
|
296
337
|
});
|
|
297
338
|
describe('getUserSyncs', function () {
|
|
298
339
|
it('should have valid user sync with iframeEnabled', function () {
|
|
299
|
-
const result = adapter.getUserSyncs({
|
|
340
|
+
const result = adapter.getUserSyncs({iframeEnabled: true}, [SERVER_RESPONSE]);
|
|
300
341
|
|
|
301
342
|
expect(result).to.deep.equal([{
|
|
302
343
|
type: 'iframe',
|
|
@@ -305,7 +346,7 @@ describe('KueezRtbBidAdapter', function () {
|
|
|
305
346
|
});
|
|
306
347
|
|
|
307
348
|
it('should have valid user sync with cid on response', function () {
|
|
308
|
-
const result = adapter.getUserSyncs({
|
|
349
|
+
const result = adapter.getUserSyncs({iframeEnabled: true}, [SERVER_RESPONSE]);
|
|
309
350
|
expect(result).to.deep.equal([{
|
|
310
351
|
type: 'iframe',
|
|
311
352
|
url: 'https://sync.kueezrtb.com/api/sync/iframe/?cid=testcid123&gdpr=0&gdpr_consent=&us_privacy='
|
|
@@ -313,7 +354,7 @@ describe('KueezRtbBidAdapter', function () {
|
|
|
313
354
|
});
|
|
314
355
|
|
|
315
356
|
it('should have valid user sync with pixelEnabled', function () {
|
|
316
|
-
const result = adapter.getUserSyncs({
|
|
357
|
+
const result = adapter.getUserSyncs({pixelEnabled: true}, [SERVER_RESPONSE]);
|
|
317
358
|
|
|
318
359
|
expect(result).to.deep.equal([{
|
|
319
360
|
'url': 'https://sync.kueezrtb.com/api/sync/image/?cid=testcid123&gdpr=0&gdpr_consent=&us_privacy=',
|
|
@@ -329,12 +370,12 @@ describe('KueezRtbBidAdapter', function () {
|
|
|
329
370
|
});
|
|
330
371
|
|
|
331
372
|
it('should return empty array when there is no ad', function () {
|
|
332
|
-
const responses = adapter.interpretResponse({
|
|
373
|
+
const responses = adapter.interpretResponse({price: 1, ad: ''});
|
|
333
374
|
expect(responses).to.be.empty;
|
|
334
375
|
});
|
|
335
376
|
|
|
336
377
|
it('should return empty array when there is no price', function () {
|
|
337
|
-
const responses = adapter.interpretResponse({
|
|
378
|
+
const responses = adapter.interpretResponse({price: null, ad: 'great ad'});
|
|
338
379
|
expect(responses).to.be.empty;
|
|
339
380
|
});
|
|
340
381
|
|
|
@@ -394,11 +435,11 @@ describe('KueezRtbBidAdapter', function () {
|
|
|
394
435
|
const userId = (function () {
|
|
395
436
|
switch (idSystemProvider) {
|
|
396
437
|
case 'lipb':
|
|
397
|
-
return {
|
|
438
|
+
return {lipbid: id};
|
|
398
439
|
case 'parrableId':
|
|
399
|
-
return {
|
|
440
|
+
return {eid: id};
|
|
400
441
|
case 'id5id':
|
|
401
|
-
return {
|
|
442
|
+
return {uid: id};
|
|
402
443
|
default:
|
|
403
444
|
return id;
|
|
404
445
|
}
|
|
@@ -417,18 +458,18 @@ describe('KueezRtbBidAdapter', function () {
|
|
|
417
458
|
|
|
418
459
|
describe('alternate param names extractors', function () {
|
|
419
460
|
it('should return undefined when param not supported', function () {
|
|
420
|
-
const cid = extractCID({
|
|
421
|
-
const pid = extractPID({
|
|
422
|
-
const subDomain = extractSubDomain({
|
|
461
|
+
const cid = extractCID({'c_id': '1'});
|
|
462
|
+
const pid = extractPID({'p_id': '1'});
|
|
463
|
+
const subDomain = extractSubDomain({'sub_domain': 'prebid'});
|
|
423
464
|
expect(cid).to.be.undefined;
|
|
424
465
|
expect(pid).to.be.undefined;
|
|
425
466
|
expect(subDomain).to.be.undefined;
|
|
426
467
|
});
|
|
427
468
|
|
|
428
469
|
it('should return value when param supported', function () {
|
|
429
|
-
const cid = extractCID({
|
|
430
|
-
const pid = extractPID({
|
|
431
|
-
const subDomain = extractSubDomain({
|
|
470
|
+
const cid = extractCID({'cID': '1'});
|
|
471
|
+
const pid = extractPID({'Pid': '2'});
|
|
472
|
+
const subDomain = extractSubDomain({'subDOMAIN': 'prebid'});
|
|
432
473
|
expect(cid).to.be.equal('1');
|
|
433
474
|
expect(pid).to.be.equal('2');
|
|
434
475
|
expect(subDomain).to.be.equal('prebid');
|
|
@@ -488,7 +529,7 @@ describe('KueezRtbBidAdapter', function () {
|
|
|
488
529
|
now
|
|
489
530
|
});
|
|
490
531
|
setStorageItem('myKey', 2020);
|
|
491
|
-
const {
|
|
532
|
+
const {value, created} = getStorageItem('myKey');
|
|
492
533
|
expect(created).to.be.equal(now);
|
|
493
534
|
expect(value).to.be.equal(2020);
|
|
494
535
|
expect(typeof value).to.be.equal('number');
|
|
@@ -504,8 +545,8 @@ describe('KueezRtbBidAdapter', function () {
|
|
|
504
545
|
});
|
|
505
546
|
|
|
506
547
|
it('should parse JSON value', function () {
|
|
507
|
-
const data = JSON.stringify({
|
|
508
|
-
const {
|
|
548
|
+
const data = JSON.stringify({event: 'send'});
|
|
549
|
+
const {event} = tryParseJSON(data);
|
|
509
550
|
expect(event).to.be.equal('send');
|
|
510
551
|
});
|
|
511
552
|
|