prebid.js 7.20.0 → 7.22.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/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.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/ajaBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.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/carodaBidAdapter.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/dacIdSystem.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/ftrackIdSystem.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/iasRtdProvider.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/impactifyBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.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/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.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/mediakeysBidAdapter.js +1 -1
- package/dist/medianetAnalyticsAdapter.js +1 -1
- package/dist/medianetBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +127 -127
- 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/publinkIdSystem.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pubwiseBidAdapter.js +1 -1
- package/dist/pulsepointBidAdapter.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/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/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/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/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/yieldoneBidAdapter.js +1 -1
- package/integrationExamples/gpt/weboramaRtdProvider_example.html +10 -51
- package/modules/1plusXRtdProvider.js +32 -5
- package/modules/33acrossBidAdapter.js +18 -11
- package/modules/adyoulikeBidAdapter.js +12 -6
- package/modules/asoBidAdapter.js +11 -6
- package/modules/asoBidAdapter.md +5 -6
- package/modules/brightcomBidAdapter.js +30 -10
- package/modules/dacIdSystem.js +145 -27
- package/modules/dacIdSystem.md +7 -2
- package/modules/fledgeForGpt.md +101 -23
- package/modules/freewheel-sspBidAdapter.js +48 -7
- package/modules/freewheel-sspBidAdapter.md +1 -1
- package/modules/ftrackIdSystem.js +28 -9
- package/modules/gridBidAdapter.js +1 -0
- package/modules/iasRtdProvider.js +21 -6
- package/modules/iasRtdProvider.md +1 -1
- package/modules/ixBidAdapter.js +9 -4
- package/modules/medianetAnalyticsAdapter.js +26 -22
- package/modules/medianetBidAdapter.js +5 -1
- package/modules/mediasquareBidAdapter.js +42 -3
- package/modules/mgidBidAdapter.js +8 -1
- package/modules/oguryBidAdapter.js +6 -2
- package/modules/prebidServerBidAdapter/index.js +1 -1
- package/modules/pubmaticBidAdapter.js +27 -3
- package/modules/pubwiseBidAdapter.js +14 -12
- package/modules/pulsepointBidAdapter.js +11 -6
- package/modules/smaatoBidAdapter.js +54 -5
- package/modules/smaatoBidAdapter.md +78 -0
- package/modules/teadsBidAdapter.js +26 -8
- package/modules/ttdBidAdapter.js +8 -0
- package/modules/userId/eids.js +7 -11
- package/modules/weboramaRtdProvider.js +800 -643
- package/modules/weboramaRtdProvider.md +32 -0
- package/modules/yieldoneBidAdapter.js +7 -4
- package/package.json +3 -3
- package/src/adapters/bidderFactory.js +11 -9
- package/src/auction.js +3 -3
- package/test/spec/auctionmanager_spec.js +29 -20
- package/test/spec/modules/1plusXRtdProvider_spec.js +30 -14
- package/test/spec/modules/33acrossBidAdapter_spec.js +44 -1
- package/test/spec/modules/adyoulikeBidAdapter_spec.js +1 -1
- package/test/spec/modules/asoBidAdapter_spec.js +2 -2
- package/test/spec/modules/brightcomBidAdapter_spec.js +94 -1
- package/test/spec/modules/dacIdSystem_spec.js +93 -11
- package/test/spec/modules/eids_spec.js +11 -7
- package/test/spec/modules/freewheel-sspBidAdapter_spec.js +25 -4
- package/test/spec/modules/ftrackIdSystem_spec.js +200 -90
- package/test/spec/modules/iasRtdProvider_spec.js +57 -1
- package/test/spec/modules/ixBidAdapter_spec.js +12 -0
- package/test/spec/modules/medianetAnalyticsAdapter_spec.js +50 -8
- package/test/spec/modules/medianetBidAdapter_spec.js +76 -0
- package/test/spec/modules/mediasquareBidAdapter_spec.js +4 -2
- package/test/spec/modules/mgidBidAdapter_spec.js +50 -0
- package/test/spec/modules/oguryBidAdapter_spec.js +33 -17
- package/test/spec/modules/prebidServerBidAdapter_spec.js +24 -0
- package/test/spec/modules/pubmaticBidAdapter_spec.js +60 -5
- package/test/spec/modules/pubwiseBidAdapter_spec.js +6 -4
- package/test/spec/modules/pulsepointBidAdapter_spec.js +123 -0
- package/test/spec/modules/smaatoBidAdapter_spec.js +307 -36
- package/test/spec/modules/teadsBidAdapter_spec.js +119 -6
- package/test/spec/modules/weboramaRtdProvider_spec.js +382 -0
- package/test/spec/modules/yieldoneBidAdapter_spec.js +2 -3
- package/test/spec/unit/core/bidderFactory_spec.js +0 -4
|
@@ -418,6 +418,74 @@ describe('teadsBidAdapter', () => {
|
|
|
418
418
|
});
|
|
419
419
|
});
|
|
420
420
|
|
|
421
|
+
it('should add userAgentClientHints info to payload if available', function () {
|
|
422
|
+
const bidRequest = Object.assign({}, bidRequests[0], {
|
|
423
|
+
ortb2: {
|
|
424
|
+
device: {
|
|
425
|
+
sua: {
|
|
426
|
+
source: 2,
|
|
427
|
+
platform: {
|
|
428
|
+
brand: 'macOS',
|
|
429
|
+
version: [ '12', '4', '0' ]
|
|
430
|
+
},
|
|
431
|
+
browsers: [
|
|
432
|
+
{
|
|
433
|
+
brand: 'Chromium',
|
|
434
|
+
version: [ '106', '0', '5249', '119' ]
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
brand: 'Google Chrome',
|
|
438
|
+
version: [ '106', '0', '5249', '119' ]
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
brand: 'Not;A=Brand',
|
|
442
|
+
version: [ '99', '0', '0', '0' ]
|
|
443
|
+
}
|
|
444
|
+
],
|
|
445
|
+
mobile: 0,
|
|
446
|
+
model: '',
|
|
447
|
+
bitness: '64',
|
|
448
|
+
architecture: 'x86'
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
});
|
|
453
|
+
|
|
454
|
+
const requestWithUserAgentClientHints = spec.buildRequests([bidRequest], bidderResquestDefault);
|
|
455
|
+
const payload = JSON.parse(requestWithUserAgentClientHints.data);
|
|
456
|
+
|
|
457
|
+
expect(payload.userAgentClientHints).to.exist;
|
|
458
|
+
expect(payload.userAgentClientHints).to.deep.equal({
|
|
459
|
+
source: 2,
|
|
460
|
+
platform: {
|
|
461
|
+
brand: 'macOS',
|
|
462
|
+
version: [ '12', '4', '0' ]
|
|
463
|
+
},
|
|
464
|
+
browsers: [
|
|
465
|
+
{
|
|
466
|
+
brand: 'Chromium',
|
|
467
|
+
version: [ '106', '0', '5249', '119' ]
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
brand: 'Google Chrome',
|
|
471
|
+
version: [ '106', '0', '5249', '119' ]
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
brand: 'Not;A=Brand',
|
|
475
|
+
version: [ '99', '0', '0', '0' ]
|
|
476
|
+
}
|
|
477
|
+
],
|
|
478
|
+
mobile: 0,
|
|
479
|
+
model: '',
|
|
480
|
+
bitness: '64',
|
|
481
|
+
architecture: 'x86'
|
|
482
|
+
}
|
|
483
|
+
);
|
|
484
|
+
|
|
485
|
+
const defaultRequest = spec.buildRequests(bidRequests, bidderResquestDefault);
|
|
486
|
+
expect(JSON.parse(defaultRequest.data).userAgentClientHints).to.not.exist;
|
|
487
|
+
});
|
|
488
|
+
|
|
421
489
|
it('should use good mediaTypes video sizes', function() {
|
|
422
490
|
const mediaTypesVideoSizes = {
|
|
423
491
|
'mediaTypes': {
|
|
@@ -555,34 +623,79 @@ describe('teadsBidAdapter', () => {
|
|
|
555
623
|
})
|
|
556
624
|
|
|
557
625
|
describe('First-party cookie Teads ID', function () {
|
|
558
|
-
it('should not add firstPartyCookieTeadsId param to payload if cookies are not enabled'
|
|
626
|
+
it('should not add firstPartyCookieTeadsId param to payload if cookies are not enabled' +
|
|
627
|
+
' and teads user id not available', function () {
|
|
559
628
|
cookiesAreEnabledStub.returns(false);
|
|
560
629
|
|
|
561
|
-
const
|
|
630
|
+
const bidRequest = {
|
|
631
|
+
...baseBidRequest,
|
|
632
|
+
userId: {
|
|
633
|
+
pubcid: 'publisherFirstPartyViewerId-id'
|
|
634
|
+
}
|
|
635
|
+
};
|
|
636
|
+
|
|
637
|
+
const request = spec.buildRequests([bidRequest], bidderResquestDefault);
|
|
562
638
|
const payload = JSON.parse(request.data);
|
|
563
639
|
|
|
564
640
|
expect(payload).not.to.have.property('firstPartyCookieTeadsId');
|
|
565
641
|
});
|
|
566
642
|
|
|
567
|
-
it('should not add firstPartyCookieTeadsId param to payload if
|
|
643
|
+
it('should not add firstPartyCookieTeadsId param to payload if cookies are enabled ' +
|
|
644
|
+
'but first-party cookie and teads user id are not available', function () {
|
|
568
645
|
cookiesAreEnabledStub.returns(true);
|
|
569
646
|
getCookieStub.withArgs('_tfpvi').returns(undefined);
|
|
570
647
|
|
|
571
|
-
const
|
|
648
|
+
const bidRequest = {
|
|
649
|
+
...baseBidRequest,
|
|
650
|
+
userId: {
|
|
651
|
+
pubcid: 'publisherFirstPartyViewerId-id'
|
|
652
|
+
}
|
|
653
|
+
};
|
|
654
|
+
|
|
655
|
+
const request = spec.buildRequests([bidRequest], bidderResquestDefault);
|
|
572
656
|
const payload = JSON.parse(request.data);
|
|
573
657
|
|
|
574
658
|
expect(payload).not.to.have.property('firstPartyCookieTeadsId');
|
|
575
659
|
});
|
|
576
660
|
|
|
577
|
-
it('should add firstPartyCookieTeadsId
|
|
661
|
+
it('should add firstPartyCookieTeadsId from cookie if it\'s available ' +
|
|
662
|
+
'and teads user id is not', function () {
|
|
578
663
|
cookiesAreEnabledStub.returns(true);
|
|
579
664
|
getCookieStub.withArgs('_tfpvi').returns('my-teads-id');
|
|
580
665
|
|
|
581
|
-
const
|
|
666
|
+
const bidRequest = {
|
|
667
|
+
...baseBidRequest,
|
|
668
|
+
userId: {
|
|
669
|
+
pubcid: 'publisherFirstPartyViewerId-id'
|
|
670
|
+
}
|
|
671
|
+
};
|
|
672
|
+
|
|
673
|
+
const request = spec.buildRequests([bidRequest], bidderResquestDefault);
|
|
674
|
+
|
|
582
675
|
const payload = JSON.parse(request.data);
|
|
583
676
|
|
|
584
677
|
expect(payload.firstPartyCookieTeadsId).to.equal('my-teads-id');
|
|
585
678
|
});
|
|
679
|
+
|
|
680
|
+
it('should add firstPartyCookieTeadsId from user id module if it\'s available ' +
|
|
681
|
+
'even if cookie is available too', function () {
|
|
682
|
+
cookiesAreEnabledStub.returns(true);
|
|
683
|
+
getCookieStub.withArgs('_tfpvi').returns('my-teads-id');
|
|
684
|
+
|
|
685
|
+
const bidRequest = {
|
|
686
|
+
...baseBidRequest,
|
|
687
|
+
userId: {
|
|
688
|
+
pubcid: 'publisherFirstPartyViewerId-id',
|
|
689
|
+
teadsId: 'teadsId-fake-id'
|
|
690
|
+
}
|
|
691
|
+
};
|
|
692
|
+
|
|
693
|
+
const request = spec.buildRequests([bidRequest], bidderResquestDefault);
|
|
694
|
+
|
|
695
|
+
const payload = JSON.parse(request.data);
|
|
696
|
+
|
|
697
|
+
expect(payload.firstPartyCookieTeadsId).to.equal('teadsId-fake-id');
|
|
698
|
+
});
|
|
586
699
|
});
|
|
587
700
|
});
|
|
588
701
|
|
|
@@ -153,6 +153,289 @@ describe('weboramaRtdProvider', function() {
|
|
|
153
153
|
});
|
|
154
154
|
});
|
|
155
155
|
|
|
156
|
+
it('should use asset id when available and set gam targeting and send to bidders by default', function() {
|
|
157
|
+
let onDataResponse = {};
|
|
158
|
+
const moduleConfig = {
|
|
159
|
+
params: {
|
|
160
|
+
weboCtxConf: {
|
|
161
|
+
token: 'foo',
|
|
162
|
+
assetID: 'datasource:docId',
|
|
163
|
+
targetURL: 'https://prebid.org',
|
|
164
|
+
onData: (data, meta) => {
|
|
165
|
+
onDataResponse = {
|
|
166
|
+
data: data,
|
|
167
|
+
meta: meta,
|
|
168
|
+
};
|
|
169
|
+
},
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
const data = {
|
|
174
|
+
webo_vctx: ['foo', 'bar'],
|
|
175
|
+
};
|
|
176
|
+
const adUnitCode = 'adunit1';
|
|
177
|
+
const reqBidsConfigObj = {
|
|
178
|
+
ortb2Fragments: {
|
|
179
|
+
global: {},
|
|
180
|
+
bidder: {}
|
|
181
|
+
},
|
|
182
|
+
adUnits: [{
|
|
183
|
+
code: adUnitCode,
|
|
184
|
+
bids: [{
|
|
185
|
+
bidder: 'smartadserver'
|
|
186
|
+
}, {
|
|
187
|
+
bidder: 'pubmatic'
|
|
188
|
+
}, {
|
|
189
|
+
bidder: 'appnexus'
|
|
190
|
+
}, {
|
|
191
|
+
bidder: 'rubicon'
|
|
192
|
+
}, {
|
|
193
|
+
bidder: 'other'
|
|
194
|
+
}]
|
|
195
|
+
}]
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
const onDoneSpy = sinon.spy();
|
|
199
|
+
|
|
200
|
+
expect(weboramaSubmodule.init(moduleConfig)).to.be.true;
|
|
201
|
+
weboramaSubmodule.getBidRequestData(reqBidsConfigObj, onDoneSpy, moduleConfig);
|
|
202
|
+
|
|
203
|
+
let request = server.requests[0];
|
|
204
|
+
|
|
205
|
+
expect(request.method).to.equal('GET');
|
|
206
|
+
expect(request.url).to.equal('https://ctx.weborama.com/api/document-profile?token=foo&assetId=datasource%3AdocId&url=https%3A%2F%2Fprebid.org&');
|
|
207
|
+
expect(request.withCredentials).to.be.false;
|
|
208
|
+
|
|
209
|
+
request.respond(200, responseHeader, JSON.stringify(data));
|
|
210
|
+
|
|
211
|
+
expect(onDoneSpy.calledOnce).to.be.true;
|
|
212
|
+
|
|
213
|
+
const targeting = weboramaSubmodule.getTargetingData([adUnitCode], moduleConfig);
|
|
214
|
+
|
|
215
|
+
expect(targeting).to.deep.equal({
|
|
216
|
+
'adunit1': data,
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
expect(reqBidsConfigObj.adUnits[0].bids.length).to.equal(5);
|
|
220
|
+
expect(reqBidsConfigObj.adUnits[0].bids[0].params.target).to.equal('webo_vctx=foo;webo_vctx=bar');
|
|
221
|
+
expect(reqBidsConfigObj.adUnits[0].bids[1].params.dctr).to.equal('webo_vctx=foo,bar');
|
|
222
|
+
expect(reqBidsConfigObj.adUnits[0].bids[2].params.keywords).to.deep.equal(data);
|
|
223
|
+
expect(reqBidsConfigObj.adUnits[0].bids[3].params).to.deep.equal({
|
|
224
|
+
inventory: data
|
|
225
|
+
});
|
|
226
|
+
expect(reqBidsConfigObj.ortb2Fragments.bidder.other).to.deep.equal({
|
|
227
|
+
site: {
|
|
228
|
+
ext: {
|
|
229
|
+
data: data
|
|
230
|
+
},
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
expect(onDataResponse).to.deep.equal({
|
|
234
|
+
data: data,
|
|
235
|
+
meta: {
|
|
236
|
+
user: false,
|
|
237
|
+
source: 'contextual',
|
|
238
|
+
isDefault: false,
|
|
239
|
+
},
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
it('should use asset id as callback when available and set gam targeting and send to bidders by default', function() {
|
|
244
|
+
let onDataResponse = {};
|
|
245
|
+
const moduleConfig = {
|
|
246
|
+
params: {
|
|
247
|
+
weboCtxConf: {
|
|
248
|
+
token: 'foo',
|
|
249
|
+
assetID: () => 'datasource:docId',
|
|
250
|
+
targetURL: 'https://prebid.org',
|
|
251
|
+
onData: (data, meta) => {
|
|
252
|
+
onDataResponse = {
|
|
253
|
+
data: data,
|
|
254
|
+
meta: meta,
|
|
255
|
+
};
|
|
256
|
+
},
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
const data = {
|
|
261
|
+
webo_vctx: ['foo', 'bar'],
|
|
262
|
+
};
|
|
263
|
+
const adUnitCode = 'adunit1';
|
|
264
|
+
const reqBidsConfigObj = {
|
|
265
|
+
ortb2Fragments: {
|
|
266
|
+
global: {},
|
|
267
|
+
bidder: {}
|
|
268
|
+
},
|
|
269
|
+
adUnits: [{
|
|
270
|
+
code: adUnitCode,
|
|
271
|
+
bids: [{
|
|
272
|
+
bidder: 'smartadserver'
|
|
273
|
+
}, {
|
|
274
|
+
bidder: 'pubmatic'
|
|
275
|
+
}, {
|
|
276
|
+
bidder: 'appnexus'
|
|
277
|
+
}, {
|
|
278
|
+
bidder: 'rubicon'
|
|
279
|
+
}, {
|
|
280
|
+
bidder: 'other'
|
|
281
|
+
}]
|
|
282
|
+
}]
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
const onDoneSpy = sinon.spy();
|
|
286
|
+
|
|
287
|
+
expect(weboramaSubmodule.init(moduleConfig)).to.be.true;
|
|
288
|
+
weboramaSubmodule.getBidRequestData(reqBidsConfigObj, onDoneSpy, moduleConfig);
|
|
289
|
+
|
|
290
|
+
let request = server.requests[0];
|
|
291
|
+
|
|
292
|
+
expect(request.method).to.equal('GET');
|
|
293
|
+
expect(request.url).to.equal('https://ctx.weborama.com/api/document-profile?token=foo&assetId=datasource%3AdocId&url=https%3A%2F%2Fprebid.org&');
|
|
294
|
+
expect(request.withCredentials).to.be.false;
|
|
295
|
+
|
|
296
|
+
request.respond(200, responseHeader, JSON.stringify(data));
|
|
297
|
+
|
|
298
|
+
expect(onDoneSpy.calledOnce).to.be.true;
|
|
299
|
+
|
|
300
|
+
const targeting = weboramaSubmodule.getTargetingData([adUnitCode], moduleConfig);
|
|
301
|
+
|
|
302
|
+
expect(targeting).to.deep.equal({
|
|
303
|
+
'adunit1': data,
|
|
304
|
+
});
|
|
305
|
+
|
|
306
|
+
expect(reqBidsConfigObj.adUnits[0].bids.length).to.equal(5);
|
|
307
|
+
expect(reqBidsConfigObj.adUnits[0].bids[0].params.target).to.equal('webo_vctx=foo;webo_vctx=bar');
|
|
308
|
+
expect(reqBidsConfigObj.adUnits[0].bids[1].params.dctr).to.equal('webo_vctx=foo,bar');
|
|
309
|
+
expect(reqBidsConfigObj.adUnits[0].bids[2].params.keywords).to.deep.equal(data);
|
|
310
|
+
expect(reqBidsConfigObj.adUnits[0].bids[3].params).to.deep.equal({
|
|
311
|
+
inventory: data
|
|
312
|
+
});
|
|
313
|
+
expect(reqBidsConfigObj.ortb2Fragments.bidder.other).to.deep.equal({
|
|
314
|
+
site: {
|
|
315
|
+
ext: {
|
|
316
|
+
data: data
|
|
317
|
+
},
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
expect(onDataResponse).to.deep.equal({
|
|
321
|
+
data: data,
|
|
322
|
+
meta: {
|
|
323
|
+
user: false,
|
|
324
|
+
source: 'contextual',
|
|
325
|
+
isDefault: false,
|
|
326
|
+
},
|
|
327
|
+
});
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
it('should handle exception from asset id callback', function() {
|
|
331
|
+
let onDataResponse = {};
|
|
332
|
+
const moduleConfig = {
|
|
333
|
+
params: {
|
|
334
|
+
weboCtxConf: {
|
|
335
|
+
token: 'foo',
|
|
336
|
+
assetID: () => {
|
|
337
|
+
throw new Error('ops');
|
|
338
|
+
},
|
|
339
|
+
targetURL: 'https://prebid.org',
|
|
340
|
+
onData: (data, meta) => {
|
|
341
|
+
onDataResponse = {
|
|
342
|
+
data: data,
|
|
343
|
+
meta: meta,
|
|
344
|
+
};
|
|
345
|
+
},
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
};
|
|
349
|
+
const adUnitCode = 'adunit1';
|
|
350
|
+
const reqBidsConfigObj = {
|
|
351
|
+
ortb2Fragments: {
|
|
352
|
+
global: {},
|
|
353
|
+
bidder: {}
|
|
354
|
+
},
|
|
355
|
+
adUnits: [{
|
|
356
|
+
code: adUnitCode,
|
|
357
|
+
bids: [{
|
|
358
|
+
bidder: 'smartadserver'
|
|
359
|
+
}, {
|
|
360
|
+
bidder: 'pubmatic'
|
|
361
|
+
}, {
|
|
362
|
+
bidder: 'appnexus'
|
|
363
|
+
}, {
|
|
364
|
+
bidder: 'rubicon'
|
|
365
|
+
}, {
|
|
366
|
+
bidder: 'other'
|
|
367
|
+
}]
|
|
368
|
+
}]
|
|
369
|
+
};
|
|
370
|
+
|
|
371
|
+
const onDoneSpy = sinon.spy();
|
|
372
|
+
|
|
373
|
+
expect(weboramaSubmodule.init(moduleConfig)).to.be.true;
|
|
374
|
+
weboramaSubmodule.getBidRequestData(reqBidsConfigObj, onDoneSpy, moduleConfig);
|
|
375
|
+
|
|
376
|
+
expect(server.requests.length).to.equal(0);
|
|
377
|
+
|
|
378
|
+
expect(onDoneSpy.calledOnce).to.be.true;
|
|
379
|
+
|
|
380
|
+
const targeting = weboramaSubmodule.getTargetingData([adUnitCode], moduleConfig);
|
|
381
|
+
|
|
382
|
+
expect(targeting).to.deep.equal({});
|
|
383
|
+
});
|
|
384
|
+
|
|
385
|
+
it('should handle case when callback return falsy value', function() {
|
|
386
|
+
let onDataResponse = {};
|
|
387
|
+
const moduleConfig = {
|
|
388
|
+
params: {
|
|
389
|
+
weboCtxConf: {
|
|
390
|
+
token: 'foo',
|
|
391
|
+
assetID: () => '',
|
|
392
|
+
targetURL: 'https://prebid.org',
|
|
393
|
+
onData: (data, meta) => {
|
|
394
|
+
onDataResponse = {
|
|
395
|
+
data: data,
|
|
396
|
+
meta: meta,
|
|
397
|
+
};
|
|
398
|
+
},
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
};
|
|
402
|
+
|
|
403
|
+
const adUnitCode = 'adunit1';
|
|
404
|
+
const reqBidsConfigObj = {
|
|
405
|
+
ortb2Fragments: {
|
|
406
|
+
global: {},
|
|
407
|
+
bidder: {}
|
|
408
|
+
},
|
|
409
|
+
adUnits: [{
|
|
410
|
+
code: adUnitCode,
|
|
411
|
+
bids: [{
|
|
412
|
+
bidder: 'smartadserver'
|
|
413
|
+
}, {
|
|
414
|
+
bidder: 'pubmatic'
|
|
415
|
+
}, {
|
|
416
|
+
bidder: 'appnexus'
|
|
417
|
+
}, {
|
|
418
|
+
bidder: 'rubicon'
|
|
419
|
+
}, {
|
|
420
|
+
bidder: 'other'
|
|
421
|
+
}]
|
|
422
|
+
}]
|
|
423
|
+
};
|
|
424
|
+
|
|
425
|
+
const onDoneSpy = sinon.spy();
|
|
426
|
+
|
|
427
|
+
expect(weboramaSubmodule.init(moduleConfig)).to.be.true;
|
|
428
|
+
weboramaSubmodule.getBidRequestData(reqBidsConfigObj, onDoneSpy, moduleConfig);
|
|
429
|
+
|
|
430
|
+
expect(server.requests.length).to.equal(0);
|
|
431
|
+
|
|
432
|
+
expect(onDoneSpy.calledOnce).to.be.true;
|
|
433
|
+
|
|
434
|
+
const targeting = weboramaSubmodule.getTargetingData([adUnitCode], moduleConfig);
|
|
435
|
+
|
|
436
|
+
expect(targeting).to.deep.equal({});
|
|
437
|
+
});
|
|
438
|
+
|
|
156
439
|
describe('should set gam targeting and send to one specific bidder and multiple adunits', function() {
|
|
157
440
|
const testcases = {
|
|
158
441
|
'single string': 'appnexus',
|
|
@@ -1090,6 +1373,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
1090
1373
|
targeting: data,
|
|
1091
1374
|
};
|
|
1092
1375
|
|
|
1376
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
1093
1377
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
1094
1378
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
1095
1379
|
.withArgs(DEFAULT_LOCAL_STORAGE_USER_PROFILE_KEY)
|
|
@@ -1199,6 +1483,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
1199
1483
|
targeting: data,
|
|
1200
1484
|
};
|
|
1201
1485
|
|
|
1486
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
1202
1487
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
1203
1488
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
1204
1489
|
.withArgs(DEFAULT_LOCAL_STORAGE_USER_PROFILE_KEY)
|
|
@@ -1311,6 +1596,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
1311
1596
|
targeting: data,
|
|
1312
1597
|
};
|
|
1313
1598
|
|
|
1599
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
1314
1600
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
1315
1601
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
1316
1602
|
.withArgs(DEFAULT_LOCAL_STORAGE_USER_PROFILE_KEY)
|
|
@@ -1418,6 +1704,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
1418
1704
|
targeting: data,
|
|
1419
1705
|
};
|
|
1420
1706
|
|
|
1707
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
1421
1708
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
1422
1709
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
1423
1710
|
.withArgs(DEFAULT_LOCAL_STORAGE_USER_PROFILE_KEY)
|
|
@@ -1560,6 +1847,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
1560
1847
|
targeting: data,
|
|
1561
1848
|
};
|
|
1562
1849
|
|
|
1850
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
1563
1851
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
1564
1852
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
1565
1853
|
.withArgs(DEFAULT_LOCAL_STORAGE_USER_PROFILE_KEY)
|
|
@@ -1700,6 +1988,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
1700
1988
|
targeting: data,
|
|
1701
1989
|
};
|
|
1702
1990
|
|
|
1991
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
1703
1992
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
1704
1993
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
1705
1994
|
.withArgs(DEFAULT_LOCAL_STORAGE_USER_PROFILE_KEY)
|
|
@@ -1760,6 +2049,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
1760
2049
|
targeting: data,
|
|
1761
2050
|
};
|
|
1762
2051
|
|
|
2052
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
1763
2053
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
1764
2054
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
1765
2055
|
.withArgs(DEFAULT_LOCAL_STORAGE_USER_PROFILE_KEY)
|
|
@@ -1859,6 +2149,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
1859
2149
|
}
|
|
1860
2150
|
};
|
|
1861
2151
|
|
|
2152
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
1862
2153
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
1863
2154
|
|
|
1864
2155
|
const adUnitCode = 'adunit1';
|
|
@@ -1932,6 +2223,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
1932
2223
|
}
|
|
1933
2224
|
};
|
|
1934
2225
|
|
|
2226
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
1935
2227
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(false);
|
|
1936
2228
|
|
|
1937
2229
|
const adUnitCode = 'adunit1';
|
|
@@ -2029,6 +2321,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
2029
2321
|
targeting: data,
|
|
2030
2322
|
};
|
|
2031
2323
|
|
|
2324
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
2032
2325
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
2033
2326
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
2034
2327
|
.withArgs(DEFAULT_LOCAL_STORAGE_USER_PROFILE_KEY)
|
|
@@ -2146,6 +2439,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
2146
2439
|
webo: data,
|
|
2147
2440
|
};
|
|
2148
2441
|
|
|
2442
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
2149
2443
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
2150
2444
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
2151
2445
|
.withArgs(DEFAULT_LOCAL_STORAGE_LITE_PROFILE_KEY)
|
|
@@ -2254,6 +2548,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
2254
2548
|
webo: data,
|
|
2255
2549
|
};
|
|
2256
2550
|
|
|
2551
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
2257
2552
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
2258
2553
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
2259
2554
|
.withArgs(DEFAULT_LOCAL_STORAGE_LITE_PROFILE_KEY)
|
|
@@ -2365,6 +2660,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
2365
2660
|
webo: data,
|
|
2366
2661
|
};
|
|
2367
2662
|
|
|
2663
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
2368
2664
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
2369
2665
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
2370
2666
|
.withArgs(DEFAULT_LOCAL_STORAGE_LITE_PROFILE_KEY)
|
|
@@ -2471,6 +2767,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
2471
2767
|
webo: data,
|
|
2472
2768
|
};
|
|
2473
2769
|
|
|
2770
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
2474
2771
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
2475
2772
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
2476
2773
|
.withArgs(DEFAULT_LOCAL_STORAGE_LITE_PROFILE_KEY)
|
|
@@ -2612,6 +2909,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
2612
2909
|
webo: data,
|
|
2613
2910
|
};
|
|
2614
2911
|
|
|
2912
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
2615
2913
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
2616
2914
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
2617
2915
|
.withArgs(DEFAULT_LOCAL_STORAGE_LITE_PROFILE_KEY)
|
|
@@ -2751,6 +3049,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
2751
3049
|
webo: data,
|
|
2752
3050
|
};
|
|
2753
3051
|
|
|
3052
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
2754
3053
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
2755
3054
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
2756
3055
|
.withArgs(DEFAULT_LOCAL_STORAGE_LITE_PROFILE_KEY)
|
|
@@ -2814,6 +3113,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
2814
3113
|
webo: data,
|
|
2815
3114
|
};
|
|
2816
3115
|
|
|
3116
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
2817
3117
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
2818
3118
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
2819
3119
|
.withArgs(DEFAULT_LOCAL_STORAGE_LITE_PROFILE_KEY)
|
|
@@ -2912,6 +3212,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
2912
3212
|
}
|
|
2913
3213
|
};
|
|
2914
3214
|
|
|
3215
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
2915
3216
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
2916
3217
|
|
|
2917
3218
|
const adUnitCode = 'adunit1';
|
|
@@ -2984,6 +3285,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
2984
3285
|
}
|
|
2985
3286
|
};
|
|
2986
3287
|
|
|
3288
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
2987
3289
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(false);
|
|
2988
3290
|
|
|
2989
3291
|
const adUnitCode = 'adunit1';
|
|
@@ -3044,6 +3346,85 @@ describe('weboramaRtdProvider', function() {
|
|
|
3044
3346
|
});
|
|
3045
3347
|
});
|
|
3046
3348
|
|
|
3349
|
+
it('should use default profile if has no local storage', function() {
|
|
3350
|
+
const defaultProfile = {
|
|
3351
|
+
lite_hobbies: ['sport', 'cinéma'],
|
|
3352
|
+
};
|
|
3353
|
+
let onDataResponse = {};
|
|
3354
|
+
const moduleConfig = {
|
|
3355
|
+
params: {
|
|
3356
|
+
sfbxLiteDataConf: {
|
|
3357
|
+
setPrebidTargeting: true,
|
|
3358
|
+
defaultProfile: defaultProfile,
|
|
3359
|
+
onData: (data, meta) => {
|
|
3360
|
+
onDataResponse = {
|
|
3361
|
+
data: data,
|
|
3362
|
+
meta: meta,
|
|
3363
|
+
};
|
|
3364
|
+
},
|
|
3365
|
+
}
|
|
3366
|
+
}
|
|
3367
|
+
};
|
|
3368
|
+
|
|
3369
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(false);
|
|
3370
|
+
|
|
3371
|
+
const adUnitCode = 'adunit1';
|
|
3372
|
+
const reqBidsConfigObj = {
|
|
3373
|
+
ortb2Fragments: {
|
|
3374
|
+
global: {},
|
|
3375
|
+
bidder: {},
|
|
3376
|
+
},
|
|
3377
|
+
adUnits: [{
|
|
3378
|
+
code: adUnitCode,
|
|
3379
|
+
bids: [{
|
|
3380
|
+
bidder: 'smartadserver'
|
|
3381
|
+
}, {
|
|
3382
|
+
bidder: 'pubmatic'
|
|
3383
|
+
}, {
|
|
3384
|
+
bidder: 'appnexus'
|
|
3385
|
+
}, {
|
|
3386
|
+
bidder: 'rubicon'
|
|
3387
|
+
}, {
|
|
3388
|
+
bidder: 'other'
|
|
3389
|
+
}]
|
|
3390
|
+
}]
|
|
3391
|
+
};
|
|
3392
|
+
const onDoneSpy = sinon.spy();
|
|
3393
|
+
|
|
3394
|
+
expect(weboramaSubmodule.init(moduleConfig)).to.be.true;
|
|
3395
|
+
weboramaSubmodule.getBidRequestData(reqBidsConfigObj, onDoneSpy, moduleConfig);
|
|
3396
|
+
|
|
3397
|
+
expect(onDoneSpy.calledOnce).to.be.true;
|
|
3398
|
+
|
|
3399
|
+
const targeting = weboramaSubmodule.getTargetingData([adUnitCode], moduleConfig);
|
|
3400
|
+
|
|
3401
|
+
expect(targeting).to.deep.equal({
|
|
3402
|
+
'adunit1': defaultProfile,
|
|
3403
|
+
});
|
|
3404
|
+
|
|
3405
|
+
expect(reqBidsConfigObj.adUnits[0].bids.length).to.equal(5);
|
|
3406
|
+
expect(reqBidsConfigObj.adUnits[0].bids[0].params.target).to.equal('lite_hobbies=sport;lite_hobbies=cinéma');
|
|
3407
|
+
expect(reqBidsConfigObj.adUnits[0].bids[1].params.dctr).to.equal('lite_hobbies=sport,cinéma');
|
|
3408
|
+
expect(reqBidsConfigObj.adUnits[0].bids[2].params.keywords).to.deep.equal(defaultProfile);
|
|
3409
|
+
expect(reqBidsConfigObj.adUnits[0].bids[3].params).to.deep.equal({
|
|
3410
|
+
inventory: defaultProfile,
|
|
3411
|
+
});
|
|
3412
|
+
expect(reqBidsConfigObj.ortb2Fragments.bidder.other).to.deep.equal({
|
|
3413
|
+
site: {
|
|
3414
|
+
ext: {
|
|
3415
|
+
data: defaultProfile,
|
|
3416
|
+
},
|
|
3417
|
+
},
|
|
3418
|
+
});
|
|
3419
|
+
expect(onDataResponse).to.deep.equal({
|
|
3420
|
+
data: defaultProfile,
|
|
3421
|
+
meta: {
|
|
3422
|
+
user: false,
|
|
3423
|
+
source: 'lite',
|
|
3424
|
+
isDefault: true,
|
|
3425
|
+
},
|
|
3426
|
+
});
|
|
3427
|
+
});
|
|
3047
3428
|
it('should be possible update profile from callbacks for a given bidder/adUnitCode', function() {
|
|
3048
3429
|
let onDataResponse = {};
|
|
3049
3430
|
const moduleConfig = {
|
|
@@ -3080,6 +3461,7 @@ describe('weboramaRtdProvider', function() {
|
|
|
3080
3461
|
webo: data,
|
|
3081
3462
|
};
|
|
3082
3463
|
|
|
3464
|
+
sandbox.stub(storage, 'hasLocalStorage').returns(true);
|
|
3083
3465
|
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
3084
3466
|
sandbox.stub(storage, 'getDataFromLocalStorage')
|
|
3085
3467
|
.withArgs(DEFAULT_LOCAL_STORAGE_LITE_PROFILE_KEY)
|