prebid.js 6.0.0 → 6.4.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/.babelrc.js +1 -7
- package/.circleci/config.yml +1 -1
- package/README.md +1 -1
- package/browsers.json +13 -29
- package/gulpfile.js +88 -82
- package/integrationExamples/gpt/weboramaRtdProvider_example.html +23 -14
- package/karma.conf.maker.js +2 -2
- package/modules/33acrossBidAdapter.js +189 -102
- package/modules/adagioBidAdapter.js +1 -1
- package/modules/addefendBidAdapter.js +1 -0
- package/modules/adheseBidAdapter.js +7 -2
- package/modules/adkernelBidAdapter.js +147 -61
- package/modules/adlivetechBidAdapter.md +61 -0
- package/modules/adlooxAdServerVideo.js +2 -2
- package/modules/adlooxAnalyticsAdapter.js +4 -4
- package/modules/admanBidAdapter.js +1 -0
- package/modules/admixerBidAdapter.js +3 -2
- package/modules/adnuntiusBidAdapter.js +5 -2
- package/modules/adomikAnalyticsAdapter.js +16 -4
- package/modules/adplusBidAdapter.js +203 -0
- package/modules/adplusBidAdapter.md +39 -0
- package/modules/adxcgBidAdapter.js +311 -359
- package/modules/adxcgBidAdapter.md +22 -21
- package/modules/adyoulikeBidAdapter.js +7 -2
- package/modules/aniviewBidAdapter.js +1 -1
- package/modules/appnexusBidAdapter.js +23 -3
- package/modules/beachfrontBidAdapter.js +14 -17
- package/modules/beopBidAdapter.js +6 -4
- package/modules/bidViewability.js +3 -3
- package/modules/bidViewabilityIO.js +3 -3
- package/modules/codefuelBidAdapter.js +1 -3
- package/modules/codefuelBidAdapter.md +3 -3
- package/modules/colossussspBidAdapter.js +7 -0
- package/modules/compassBidAdapter.js +201 -0
- package/modules/compassBidAdapter.md +79 -0
- package/modules/craftBidAdapter.js +5 -3
- package/modules/criteoBidAdapter.js +1 -1
- package/modules/currency.js +2 -2
- package/modules/cwireBidAdapter.js +3 -0
- package/modules/dailyhuntBidAdapter.js +435 -0
- package/modules/dailyhuntBidAdapter.md +4 -0
- package/modules/datablocksBidAdapter.js +3 -3
- package/modules/dchain.js +149 -0
- package/modules/dchain.md +45 -0
- package/modules/deepintentBidAdapter.js +1 -1
- package/modules/dspxBidAdapter.js +1 -1
- package/modules/emx_digitalBidAdapter.js +9 -1
- package/modules/engageyaBidAdapter.js +68 -54
- package/modules/feedadBidAdapter.js +2 -2
- package/modules/feedadBidAdapter.md +4 -2
- package/modules/freewheel-sspBidAdapter.js +6 -0
- package/modules/futureads.md +48 -0
- package/modules/glimpseBidAdapter.js +44 -16
- package/modules/goldbachBidAdapter.js +1176 -0
- package/modules/goldbachBidAdapter.md +151 -0
- package/modules/gptPreAuction.js +11 -5
- package/modules/gridBidAdapter.js +5 -4
- package/modules/gumgumBidAdapter.js +7 -3
- package/modules/id5IdSystem.md +6 -6
- package/modules/imRtdProvider.js +31 -0
- package/modules/improvedigitalBidAdapter.js +19 -3
- package/modules/instreamTracking.js +4 -4
- package/modules/intersectionRtdProvider.js +114 -0
- package/modules/invibesBidAdapter.js +64 -14
- package/modules/invibesBidAdapter.md +2 -1
- package/modules/ipromBidAdapter.js +79 -0
- package/modules/ixBidAdapter.js +185 -22
- package/modules/kinessoIdSystem.js +1 -1
- package/modules/limelightDigitalBidAdapter.js +2 -1
- package/modules/livewrappedBidAdapter.js +8 -2
- package/modules/lotamePanoramaIdSystem.js +80 -8
- package/modules/luponmediaBidAdapter.js +570 -0
- package/modules/mediasquareBidAdapter.js +1 -9
- package/modules/merkleIdSystem.js +5 -0
- package/modules/missenaBidAdapter.js +89 -0
- package/modules/nativoBidAdapter.js +27 -1
- package/modules/nextMillenniumBidAdapter.js +37 -7
- package/modules/oguryBidAdapter.js +2 -1
- package/modules/openxBidAdapter.js +6 -1
- package/modules/prebidServerBidAdapter/index.js +19 -15
- package/modules/pubgeniusBidAdapter.js +1 -1
- package/modules/pubmaticBidAdapter.js +5 -3
- package/modules/pubxaiAnalyticsAdapter.js +17 -0
- package/modules/relaidoBidAdapter.js +86 -65
- package/modules/richaudienceBidAdapter.js +2 -3
- package/modules/rtdModule/index.js +48 -18
- package/modules/rubiconBidAdapter.js +31 -19
- package/modules/saambaaBidAdapter.js +420 -0
- package/modules/saambaaBidAdapter.md +65 -68
- package/modules/seedtagBidAdapter.js +6 -0
- package/modules/sharedIdSystem.js +27 -1
- package/modules/smaatoBidAdapter.js +9 -1
- package/modules/smartxBidAdapter.js +17 -1
- package/modules/sspBCBidAdapter.js +34 -3
- package/modules/tappxBidAdapter.js +3 -1
- package/modules/targetVideoBidAdapter.js +187 -0
- package/modules/targetVideoBidAdapter.md +34 -0
- package/modules/telariaBidAdapter.js +2 -2
- package/modules/trustxBidAdapter.js +18 -17
- package/modules/undertoneBidAdapter.js +8 -1
- package/modules/userId/index.js +27 -2
- package/modules/ventes.md +71 -0
- package/modules/ventesBidAdapter.js +104 -64
- package/modules/ventesBidAdapter.md +0 -1
- package/modules/vidoomyBidAdapter.js +65 -108
- package/modules/visxBidAdapter.js +20 -3
- package/modules/visxBidAdapter.md +4 -6
- package/modules/weboramaRtdProvider.js +288 -73
- package/modules/weboramaRtdProvider.md +27 -10
- package/modules/yahoosspBidAdapter.js +5 -1
- package/modules/yahoosspBidAdapter.md +1 -1
- package/modules/yieldlabBidAdapter.js +41 -10
- package/modules/yieldlabBidAdapter.md +91 -48
- package/modules/yieldoneBidAdapter.js +115 -11
- package/modules/zetaSspBidAdapter.md +33 -1
- package/modules/zeta_global_sspBidAdapter.js +22 -1
- package/package.json +6 -1
- package/plugins/pbjsGlobals.js +28 -1
- package/src/adapterManager.js +14 -8
- package/src/auction.js +5 -4
- package/src/prebid.js +1 -2
- package/src/targeting.js +24 -3
- package/src/utils.js +41 -7
- package/test/helpers/prebidGlobal.js +1 -0
- package/test/spec/integration/faker/googletag.js +6 -0
- package/test/spec/modules/33acrossBidAdapter_spec.js +300 -78
- package/test/spec/modules/adheseBidAdapter_spec.js +27 -1
- package/test/spec/modules/adlooxAnalyticsAdapter_spec.js +6 -6
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +35 -0
- package/test/spec/modules/adomikAnalyticsAdapter_spec.js +9 -1
- package/test/spec/modules/adplusBidAdapter_spec.js +213 -0
- package/test/spec/modules/adxcgBidAdapter_spec.js +820 -571
- package/test/spec/modules/adyoulikeBidAdapter_spec.js +26 -0
- package/test/spec/modules/appnexusBidAdapter_spec.js +63 -1
- package/test/spec/modules/beachfrontBidAdapter_spec.js +65 -1
- package/test/spec/modules/beopBidAdapter_spec.js +1 -1
- package/test/spec/modules/bidViewabilityIO_spec.js +2 -2
- package/test/spec/modules/bidViewability_spec.js +4 -4
- package/test/spec/modules/codefuelBidAdapter_spec.js +1 -1
- package/test/spec/modules/colossussspBidAdapter_spec.js +9 -0
- package/test/spec/modules/compassBidAdapter_spec.js +397 -0
- package/test/spec/modules/cwireBidAdapter_spec.js +10 -8
- package/test/spec/modules/dailyhuntBidAdapter_spec.js +404 -0
- package/test/spec/modules/datablocksBidAdapter_spec.js +3 -3
- package/test/spec/modules/dchain_spec.js +329 -0
- package/test/spec/modules/emx_digitalBidAdapter_spec.js +10 -0
- package/test/spec/modules/engageyaBidAdapter_spec.js +231 -95
- package/test/spec/modules/eplanningBidAdapter_spec.js +8 -8
- package/test/spec/modules/feedadBidAdapter_spec.js +15 -0
- package/test/spec/modules/freewheel-sspBidAdapter_spec.js +19 -0
- package/test/spec/modules/glimpseBidAdapter_spec.js +33 -0
- package/test/spec/modules/goldbachBidAdapter_spec.js +1359 -0
- package/test/spec/modules/gptPreAuction_spec.js +58 -4
- package/test/spec/modules/gumgumBidAdapter_spec.js +6 -0
- package/test/spec/modules/imRtdProvider_spec.js +25 -0
- package/test/spec/modules/improvedigitalBidAdapter_spec.js +3 -1
- package/test/spec/modules/intersectionRtdProvider_spec.js +141 -0
- package/test/spec/modules/invibesBidAdapter_spec.js +148 -4
- package/test/spec/modules/ipromBidAdapter_spec.js +195 -0
- package/test/spec/modules/ixBidAdapter_spec.js +293 -2
- package/test/spec/modules/konduitWrapper_spec.js +0 -1
- package/test/spec/modules/limelightDigitalBidAdapter_spec.js +10 -7
- package/test/spec/modules/livewrappedBidAdapter_spec.js +31 -0
- package/test/spec/modules/lotamePanoramaIdSystem_spec.js +227 -0
- package/test/spec/modules/luponmediaBidAdapter_spec.js +412 -0
- package/test/spec/modules/mediasquareBidAdapter_spec.js +4 -4
- package/test/spec/modules/merkleIdSystem_spec.js +18 -0
- package/test/spec/modules/missenaBidAdapter_spec.js +134 -0
- package/test/spec/modules/nativoBidAdapter_spec.js +35 -18
- package/test/spec/modules/nextMillenniumBidAdapter_spec.js +26 -1
- package/test/spec/modules/oguryBidAdapter_spec.js +13 -11
- package/test/spec/modules/openxBidAdapter_spec.js +5 -0
- package/test/spec/modules/prebidServerBidAdapter_spec.js +62 -2
- package/test/spec/modules/pubgeniusBidAdapter_spec.js +3 -3
- package/test/spec/modules/pubmaticBidAdapter_spec.js +1 -1
- package/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +11 -0
- package/test/spec/modules/realTimeDataModule_spec.js +135 -49
- package/test/spec/modules/relaidoBidAdapter_spec.js +71 -63
- package/test/spec/modules/richaudienceBidAdapter_spec.js +2 -2
- package/test/spec/modules/rubiconBidAdapter_spec.js +65 -9
- package/test/spec/modules/seedtagBidAdapter_spec.js +3 -0
- package/test/spec/modules/sharedIdSystem_spec.js +52 -6
- package/test/spec/modules/smaatoBidAdapter_spec.js +61 -0
- package/test/spec/modules/smartxBidAdapter_spec.js +9 -0
- package/test/spec/modules/sspBCBidAdapter_spec.js +33 -3
- package/test/spec/modules/tappxBidAdapter_spec.js +4 -0
- package/test/spec/modules/targetVideoBidAdapter_spec.js +96 -0
- package/test/spec/modules/trustxBidAdapter_spec.js +42 -0
- package/test/spec/modules/userId_spec.js +51 -0
- package/test/spec/modules/vidoomyBidAdapter_spec.js +32 -13
- package/test/spec/modules/visxBidAdapter_spec.js +121 -5
- package/test/spec/modules/weboramaRtdProvider_spec.js +408 -214
- package/test/spec/modules/yahoosspBidAdapter_spec.js +28 -1
- package/test/spec/modules/yieldlabBidAdapter_spec.js +81 -0
- package/test/spec/modules/yieldoneBidAdapter_spec.js +299 -53
- package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +33 -1
- package/test/spec/unit/core/adapterManager_spec.js +24 -6
- package/test/spec/unit/core/targeting_spec.js +116 -0
- package/test/spec/utils_spec.js +38 -0
- package/test/test_deps.js +3 -0
- package/test/test_index.js +1 -3
|
@@ -11,7 +11,7 @@ const DEFAULT_AD_UNIT_CODE = '/19968336/header-bid-tag-1';
|
|
|
11
11
|
const DEFAULT_AD_UNIT_TYPE = 'banner';
|
|
12
12
|
const DEFAULT_PARAMS_BID_OVERRIDE = {};
|
|
13
13
|
const DEFAULT_VIDEO_CONTEXT = 'instream';
|
|
14
|
-
const ADAPTER_VERSION = '1.0.
|
|
14
|
+
const ADAPTER_VERSION = '1.0.2';
|
|
15
15
|
const PREBID_VERSION = '$prebid.version$';
|
|
16
16
|
const INTEGRATION_METHOD = 'prebid.js';
|
|
17
17
|
|
|
@@ -656,6 +656,33 @@ describe('YahooSSP Bid Adapter:', () => {
|
|
|
656
656
|
const data = spec.buildRequests(validBidRequests, bidderRequest)[0].data;
|
|
657
657
|
expect(data.imp[0].ext.data).to.deep.equal(validBidRequests[0].ortb2Imp.ext.data);
|
|
658
658
|
});
|
|
659
|
+
// adUnit.ortb2Imp.instl
|
|
660
|
+
it(`should allow adUnit.ortb2Imp.instl numeric boolean "1" to be added to the bid-request`, () => {
|
|
661
|
+
let { validBidRequests, bidderRequest } = generateBuildRequestMock({})
|
|
662
|
+
validBidRequests[0].ortb2Imp = {
|
|
663
|
+
instl: 1
|
|
664
|
+
};
|
|
665
|
+
const data = spec.buildRequests(validBidRequests, bidderRequest)[0].data;
|
|
666
|
+
expect(data.imp[0].instl).to.deep.equal(validBidRequests[0].ortb2Imp.instl);
|
|
667
|
+
});
|
|
668
|
+
|
|
669
|
+
it(`should prevent adUnit.ortb2Imp.instl boolean "true" to be added to the bid-request`, () => {
|
|
670
|
+
let { validBidRequests, bidderRequest } = generateBuildRequestMock({})
|
|
671
|
+
validBidRequests[0].ortb2Imp = {
|
|
672
|
+
instl: true
|
|
673
|
+
};
|
|
674
|
+
const data = spec.buildRequests(validBidRequests, bidderRequest)[0].data;
|
|
675
|
+
expect(data.imp[0].instl).to.not.exist;
|
|
676
|
+
});
|
|
677
|
+
|
|
678
|
+
it(`should prevent adUnit.ortb2Imp.instl boolean "false" to be added to the bid-request`, () => {
|
|
679
|
+
let { validBidRequests, bidderRequest } = generateBuildRequestMock({})
|
|
680
|
+
validBidRequests[0].ortb2Imp = {
|
|
681
|
+
instl: false
|
|
682
|
+
};
|
|
683
|
+
const data = spec.buildRequests(validBidRequests, bidderRequest)[0].data;
|
|
684
|
+
expect(data.imp[0].instl).to.not.exist;
|
|
685
|
+
});
|
|
659
686
|
});
|
|
660
687
|
|
|
661
688
|
describe('e2etest mode support:', () => {
|
|
@@ -73,6 +73,12 @@ const VIDEO_REQUEST = Object.assign({}, REQUEST, {
|
|
|
73
73
|
}
|
|
74
74
|
})
|
|
75
75
|
|
|
76
|
+
const NATIVE_REQUEST = Object.assign({}, REQUEST, {
|
|
77
|
+
'mediaTypes': {
|
|
78
|
+
'native': { }
|
|
79
|
+
}
|
|
80
|
+
})
|
|
81
|
+
|
|
76
82
|
const RESPONSE = {
|
|
77
83
|
advertiser: 'yieldlab',
|
|
78
84
|
curl: 'https://www.yieldlab.de',
|
|
@@ -84,6 +90,42 @@ const RESPONSE = {
|
|
|
84
90
|
adtype: 'BANNER'
|
|
85
91
|
}
|
|
86
92
|
|
|
93
|
+
const NATIVE_RESPONSE = Object.assign({}, RESPONSE, {
|
|
94
|
+
'adtype': 'NATIVE',
|
|
95
|
+
'native': {
|
|
96
|
+
'link': {
|
|
97
|
+
'url': 'https://www.yieldlab.de'
|
|
98
|
+
},
|
|
99
|
+
'assets': [
|
|
100
|
+
{
|
|
101
|
+
'id': 1,
|
|
102
|
+
'title': {
|
|
103
|
+
'text': 'This is a great headline'
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
'id': 2,
|
|
108
|
+
'img': {
|
|
109
|
+
'url': 'https://localhost:8080/yl-logo100x100.jpg',
|
|
110
|
+
'w': 100,
|
|
111
|
+
'h': 100
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
'id': 3,
|
|
116
|
+
'data': {
|
|
117
|
+
'value': 'Native body value'
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
],
|
|
121
|
+
'imptrackers': [
|
|
122
|
+
'http://localhost:8080/ve?d=ODE9ZSY2MTI1MjAzNjMzMzYxPXN0JjA0NWUwZDk0NTY5Yi05M2FiLWUwZTQtOWFjNy1hYWY0MzFiZj1kaXQmMj12',
|
|
123
|
+
'http://localhost:8080/md/1111/9efa4e76-2030-4f04-bb9f-322541f8d611?mdata=false&pvid=false&ids=x:1',
|
|
124
|
+
'http://localhost:8080/imp?s=13216&d=2171514&a=12548955&ts=1633363025216&tid=fb134faa-7ca9-4e0e-ba39-b96549d0e540&l=0'
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
})
|
|
128
|
+
|
|
87
129
|
const VIDEO_RESPONSE = Object.assign({}, RESPONSE, {
|
|
88
130
|
'adtype': 'VIDEO'
|
|
89
131
|
})
|
|
@@ -297,6 +339,45 @@ describe('yieldlabBidAdapter', function () {
|
|
|
297
339
|
expect(result[0].vastUrl).to.include('&id=abc')
|
|
298
340
|
})
|
|
299
341
|
|
|
342
|
+
it('should add adUrl and native assets when type is Native', function () {
|
|
343
|
+
const result = spec.interpretResponse({body: [NATIVE_RESPONSE]}, {validBidRequests: [NATIVE_REQUEST], queryParams: REQPARAMS})
|
|
344
|
+
|
|
345
|
+
expect(result[0].requestId).to.equal('2d925f27f5079f')
|
|
346
|
+
expect(result[0].cpm).to.equal(0.01)
|
|
347
|
+
expect(result[0].mediaType).to.equal('native')
|
|
348
|
+
expect(result[0].adUrl).to.include('https://ad.yieldlab.net/d/1111/2222/?ts=')
|
|
349
|
+
expect(result[0].native.title).to.equal('This is a great headline')
|
|
350
|
+
expect(result[0].native.body).to.equal('Native body value')
|
|
351
|
+
expect(result[0].native.image.url).to.equal('https://localhost:8080/yl-logo100x100.jpg')
|
|
352
|
+
expect(result[0].native.image.width).to.equal(100)
|
|
353
|
+
expect(result[0].native.image.height).to.equal(100)
|
|
354
|
+
expect(result[0].native.clickUrl).to.equal('https://www.yieldlab.de')
|
|
355
|
+
expect(result[0].native.impressionTrackers.length).to.equal(3)
|
|
356
|
+
})
|
|
357
|
+
|
|
358
|
+
it('should add adUrl and default native assets when type is Native', function () {
|
|
359
|
+
const NATIVE_RESPONSE_2 = Object.assign({}, NATIVE_RESPONSE, {
|
|
360
|
+
'native': {
|
|
361
|
+
'link': {
|
|
362
|
+
'url': 'https://www.yieldlab.de'
|
|
363
|
+
},
|
|
364
|
+
'assets': [],
|
|
365
|
+
'imptrackers': []
|
|
366
|
+
}
|
|
367
|
+
})
|
|
368
|
+
const result = spec.interpretResponse({body: [NATIVE_RESPONSE_2]}, {validBidRequests: [NATIVE_REQUEST], queryParams: REQPARAMS})
|
|
369
|
+
|
|
370
|
+
expect(result[0].requestId).to.equal('2d925f27f5079f')
|
|
371
|
+
expect(result[0].cpm).to.equal(0.01)
|
|
372
|
+
expect(result[0].mediaType).to.equal('native')
|
|
373
|
+
expect(result[0].adUrl).to.include('https://ad.yieldlab.net/d/1111/2222/?ts=')
|
|
374
|
+
expect(result[0].native.title).to.equal('')
|
|
375
|
+
expect(result[0].native.body).to.equal('')
|
|
376
|
+
expect(result[0].native.image.url).to.equal('')
|
|
377
|
+
expect(result[0].native.image.width).to.equal(0)
|
|
378
|
+
expect(result[0].native.image.height).to.equal(0)
|
|
379
|
+
})
|
|
380
|
+
|
|
300
381
|
it('should append gdpr parameters to vastUrl', function () {
|
|
301
382
|
const result = spec.interpretResponse({body: [VIDEO_RESPONSE]}, {validBidRequests: [VIDEO_REQUEST], queryParams: REQPARAMS_GDPR})
|
|
302
383
|
|
|
@@ -7,6 +7,8 @@ const ENDPOINT = 'https://y.one.impact-ad.jp/h_bid';
|
|
|
7
7
|
const USER_SYNC_URL = 'https://y.one.impact-ad.jp/push_sync';
|
|
8
8
|
const VIDEO_PLAYER_URL = 'https://img.ak.impact-ad.jp/ic/pone/ivt/firstview/js/dac-video-prebid.min.js';
|
|
9
9
|
|
|
10
|
+
const DEFAULT_VIDEO_SIZE = {w: 640, h: 360};
|
|
11
|
+
|
|
10
12
|
describe('yieldoneBidAdapter', function() {
|
|
11
13
|
const adapter = newBidder(spec);
|
|
12
14
|
|
|
@@ -40,32 +42,7 @@ describe('yieldoneBidAdapter', function() {
|
|
|
40
42
|
});
|
|
41
43
|
|
|
42
44
|
describe('buildRequests', function () {
|
|
43
|
-
|
|
44
|
-
{
|
|
45
|
-
'bidder': 'yieldone',
|
|
46
|
-
'params': {
|
|
47
|
-
placementId: '36891'
|
|
48
|
-
},
|
|
49
|
-
'adUnitCode': 'adunit-code1',
|
|
50
|
-
'sizes': [[300, 250], [336, 280]],
|
|
51
|
-
'bidId': '23beaa6af6cdde',
|
|
52
|
-
'bidderRequestId': '19c0c1efdf37e7',
|
|
53
|
-
'auctionId': '61466567-d482-4a16-96f0-fe5f25ffbdf1',
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
'bidder': 'yieldone',
|
|
57
|
-
'params': {
|
|
58
|
-
placementId: '47919'
|
|
59
|
-
},
|
|
60
|
-
'adUnitCode': 'adunit-code2',
|
|
61
|
-
'sizes': [[300, 250]],
|
|
62
|
-
'bidId': '382091349b149f"',
|
|
63
|
-
'bidderRequestId': '"1f9c98192de251"',
|
|
64
|
-
'auctionId': '61466567-d482-4a16-96f0-fe5f25ffbdf1',
|
|
65
|
-
}
|
|
66
|
-
];
|
|
67
|
-
|
|
68
|
-
let bidderRequest = {
|
|
45
|
+
const bidderRequest = {
|
|
69
46
|
refererInfo: {
|
|
70
47
|
numIframes: 0,
|
|
71
48
|
reachedTop: true,
|
|
@@ -74,49 +51,318 @@ describe('yieldoneBidAdapter', function() {
|
|
|
74
51
|
}
|
|
75
52
|
};
|
|
76
53
|
|
|
77
|
-
|
|
54
|
+
describe('Basic', function () {
|
|
55
|
+
const bidRequests = [
|
|
56
|
+
{
|
|
57
|
+
'bidder': 'yieldone',
|
|
58
|
+
'params': {placementId: '36891'},
|
|
59
|
+
'adUnitCode': 'adunit-code1',
|
|
60
|
+
'bidId': '23beaa6af6cdde',
|
|
61
|
+
'bidderRequestId': '19c0c1efdf37e7',
|
|
62
|
+
'auctionId': '61466567-d482-4a16-96f0-fe5f25ffbdf1',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
'bidder': 'yieldone',
|
|
66
|
+
'params': {placementId: '47919'},
|
|
67
|
+
'adUnitCode': 'adunit-code2',
|
|
68
|
+
'bidId': '382091349b149f"',
|
|
69
|
+
'bidderRequestId': '"1f9c98192de251"',
|
|
70
|
+
'auctionId': '61466567-d482-4a16-96f0-fe5f25ffbdf1',
|
|
71
|
+
}
|
|
72
|
+
];
|
|
73
|
+
const request = spec.buildRequests(bidRequests, bidderRequest);
|
|
78
74
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
75
|
+
it('sends bid request to our endpoint via GET', function () {
|
|
76
|
+
expect(request[0].method).to.equal('GET');
|
|
77
|
+
expect(request[1].method).to.equal('GET');
|
|
78
|
+
});
|
|
79
|
+
it('attaches source and version to endpoint URL as query params', function () {
|
|
80
|
+
expect(request[0].url).to.equal(ENDPOINT);
|
|
81
|
+
expect(request[1].url).to.equal(ENDPOINT);
|
|
82
|
+
});
|
|
83
|
+
it('adUnitCode should be sent as uc parameters on any requests', function () {
|
|
84
|
+
expect(request[0].data.uc).to.equal('adunit-code1');
|
|
85
|
+
expect(request[1].data.uc).to.equal('adunit-code2');
|
|
86
|
+
});
|
|
82
87
|
});
|
|
83
88
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
89
|
+
describe('Old Format', function () {
|
|
90
|
+
const bidRequests = [
|
|
91
|
+
{
|
|
92
|
+
params: {placementId: '0'},
|
|
93
|
+
mediaType: 'banner',
|
|
94
|
+
sizes: [[300, 250], [336, 280]],
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
params: {placementId: '1'},
|
|
98
|
+
mediaType: 'banner',
|
|
99
|
+
sizes: [[336, 280]],
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
// It doesn't actually exist.
|
|
103
|
+
params: {placementId: '2'},
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
params: {placementId: '3'},
|
|
107
|
+
mediaType: 'video',
|
|
108
|
+
sizes: [[1280, 720], [1920, 1080]],
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
params: {placementId: '4'},
|
|
112
|
+
mediaType: 'video',
|
|
113
|
+
sizes: [[1920, 1080]],
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
params: {placementId: '5'},
|
|
117
|
+
mediaType: 'video',
|
|
118
|
+
},
|
|
119
|
+
];
|
|
120
|
+
const request = spec.buildRequests(bidRequests, bidderRequest);
|
|
88
121
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
122
|
+
it('parameter sz has more than one size on banner requests', function () {
|
|
123
|
+
expect(request[0].data.sz).to.equal('300x250,336x280');
|
|
124
|
+
expect(request[1].data.sz).to.equal('336x280');
|
|
125
|
+
expect(request[2].data.sz).to.equal('');
|
|
126
|
+
expect(request[3].data).to.not.have.property('sz');
|
|
127
|
+
expect(request[4].data).to.not.have.property('sz');
|
|
128
|
+
expect(request[5].data).to.not.have.property('sz');
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
it('width and height should be set as separate parameters on outstream requests', function () {
|
|
132
|
+
expect(request[0].data).to.not.have.property('w');
|
|
133
|
+
expect(request[1].data).to.not.have.property('w');
|
|
134
|
+
expect(request[2].data).to.not.have.property('w');
|
|
135
|
+
expect(request[3].data.w).to.equal(1280);
|
|
136
|
+
expect(request[3].data.h).to.equal(720);
|
|
137
|
+
expect(request[4].data.w).to.equal(1920);
|
|
138
|
+
expect(request[4].data.h).to.equal(1080);
|
|
139
|
+
expect(request[5].data.w).to.equal(DEFAULT_VIDEO_SIZE.w);
|
|
140
|
+
expect(request[5].data.h).to.equal(DEFAULT_VIDEO_SIZE.h);
|
|
141
|
+
});
|
|
92
142
|
});
|
|
93
143
|
|
|
94
|
-
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
144
|
+
describe('New Format', function () {
|
|
145
|
+
const bidRequests = [
|
|
146
|
+
{
|
|
147
|
+
params: {placementId: '0'},
|
|
148
|
+
mediaTypes: {
|
|
149
|
+
banner: {
|
|
150
|
+
sizes: [[300, 250], [336, 280]],
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
params: {placementId: '1'},
|
|
156
|
+
mediaTypes: {
|
|
157
|
+
banner: {
|
|
158
|
+
sizes: [[336, 280]],
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
// It doesn't actually exist.
|
|
164
|
+
params: {placementId: '2'},
|
|
165
|
+
mediaTypes: {
|
|
166
|
+
banner: {
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
params: {placementId: '3'},
|
|
172
|
+
mediaTypes: {
|
|
173
|
+
video: {
|
|
174
|
+
context: 'outstream',
|
|
175
|
+
playerSize: [[1280, 720], [1920, 1080]],
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
params: {placementId: '4'},
|
|
181
|
+
mediaTypes: {
|
|
182
|
+
video: {
|
|
183
|
+
context: 'outstream',
|
|
184
|
+
playerSize: [1920, 1080],
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
params: {placementId: '5'},
|
|
190
|
+
mediaTypes: {
|
|
191
|
+
video: {
|
|
192
|
+
context: 'outstream',
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
];
|
|
197
|
+
const request = spec.buildRequests(bidRequests, bidderRequest);
|
|
198
|
+
|
|
199
|
+
it('parameter sz has more than one size on banner requests', function () {
|
|
200
|
+
expect(request[0].data.sz).to.equal('300x250,336x280');
|
|
201
|
+
expect(request[1].data.sz).to.equal('336x280');
|
|
202
|
+
expect(request[2].data.sz).to.equal('');
|
|
203
|
+
expect(request[3].data).to.not.have.property('sz');
|
|
204
|
+
expect(request[4].data).to.not.have.property('sz');
|
|
205
|
+
expect(request[5].data).to.not.have.property('sz');
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
it('width and height should be set as separate parameters on outstream requests', function () {
|
|
209
|
+
expect(request[0].data).to.not.have.property('w');
|
|
210
|
+
expect(request[1].data).to.not.have.property('w');
|
|
211
|
+
expect(request[2].data).to.not.have.property('w');
|
|
212
|
+
expect(request[3].data.w).to.equal(1280);
|
|
213
|
+
expect(request[3].data.h).to.equal(720);
|
|
214
|
+
expect(request[4].data.w).to.equal(1920);
|
|
215
|
+
expect(request[4].data.h).to.equal(1080);
|
|
216
|
+
expect(request[5].data.w).to.equal(DEFAULT_VIDEO_SIZE.w);
|
|
217
|
+
expect(request[5].data.h).to.equal(DEFAULT_VIDEO_SIZE.h);
|
|
218
|
+
});
|
|
101
219
|
});
|
|
102
220
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
221
|
+
describe('Multiple Format', function () {
|
|
222
|
+
const bidRequests = [
|
|
223
|
+
{
|
|
224
|
+
// It will be treated as a banner.
|
|
225
|
+
params: {
|
|
226
|
+
placementId: '0',
|
|
227
|
+
},
|
|
228
|
+
mediaTypes: {
|
|
229
|
+
banner: {
|
|
230
|
+
sizes: [[300, 250], [336, 280]],
|
|
231
|
+
},
|
|
232
|
+
video: {
|
|
233
|
+
context: 'outstream',
|
|
234
|
+
playerSize: [1920, 1080],
|
|
235
|
+
},
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
// It will be treated as a video.
|
|
240
|
+
params: {
|
|
241
|
+
placementId: '1',
|
|
242
|
+
playerParams: {},
|
|
243
|
+
},
|
|
244
|
+
mediaTypes: {
|
|
245
|
+
banner: {
|
|
246
|
+
sizes: [[300, 250], [336, 280]],
|
|
247
|
+
},
|
|
248
|
+
video: {
|
|
249
|
+
context: 'outstream',
|
|
250
|
+
playerSize: [1920, 1080],
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
];
|
|
255
|
+
const request = spec.buildRequests(bidRequests, bidderRequest);
|
|
256
|
+
|
|
257
|
+
it('parameter sz has more than one size on banner requests', function () {
|
|
258
|
+
expect(request[0].data.sz).to.equal('300x250,336x280');
|
|
259
|
+
expect(request[1].data).to.not.have.property('sz');
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
it('width and height should be set as separate parameters on outstream requests', function () {
|
|
263
|
+
expect(request[0].data).to.not.have.property('w');
|
|
264
|
+
expect(request[1].data.w).to.equal(1920);
|
|
265
|
+
expect(request[1].data.h).to.equal(1080);
|
|
266
|
+
});
|
|
106
267
|
});
|
|
107
268
|
|
|
108
|
-
describe('
|
|
109
|
-
const
|
|
269
|
+
describe('FLUX Format', function () {
|
|
270
|
+
const bidRequests = [
|
|
271
|
+
{
|
|
272
|
+
// It will be treated as a banner.
|
|
273
|
+
params: {
|
|
274
|
+
placementId: '0',
|
|
275
|
+
},
|
|
276
|
+
mediaTypes: {
|
|
277
|
+
banner: {
|
|
278
|
+
sizes: [[300, 250], [336, 280]],
|
|
279
|
+
},
|
|
280
|
+
video: {
|
|
281
|
+
context: 'outstream',
|
|
282
|
+
playerSize: [[1, 1]],
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
// It will be treated as a video.
|
|
288
|
+
params: {
|
|
289
|
+
placementId: '1',
|
|
290
|
+
playerParams: {},
|
|
291
|
+
playerSize: [1920, 1080],
|
|
292
|
+
},
|
|
293
|
+
mediaTypes: {
|
|
294
|
+
banner: {
|
|
295
|
+
sizes: [[300, 250], [336, 280]],
|
|
296
|
+
},
|
|
297
|
+
video: {
|
|
298
|
+
context: 'outstream',
|
|
299
|
+
playerSize: [[1, 1]],
|
|
300
|
+
},
|
|
301
|
+
},
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
// It will be treated as a video.
|
|
305
|
+
params: {
|
|
306
|
+
placementId: '2',
|
|
307
|
+
playerParams: {},
|
|
308
|
+
},
|
|
309
|
+
mediaTypes: {
|
|
310
|
+
banner: {
|
|
311
|
+
sizes: [[300, 250], [336, 280]],
|
|
312
|
+
},
|
|
313
|
+
video: {
|
|
314
|
+
context: 'outstream',
|
|
315
|
+
playerSize: [[1, 1]],
|
|
316
|
+
},
|
|
317
|
+
},
|
|
318
|
+
},
|
|
319
|
+
];
|
|
320
|
+
const request = spec.buildRequests(bidRequests, bidderRequest);
|
|
321
|
+
|
|
322
|
+
it('parameter sz has more than one size on banner requests', function () {
|
|
323
|
+
expect(request[0].data.sz).to.equal('300x250,336x280');
|
|
324
|
+
expect(request[1].data).to.not.have.property('sz');
|
|
325
|
+
expect(request[2].data).to.not.have.property('sz');
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
it('width and height should be set as separate parameters on outstream requests', function () {
|
|
329
|
+
expect(request[0].data).to.not.have.property('w');
|
|
330
|
+
expect(request[1].data.w).to.equal(1920);
|
|
331
|
+
expect(request[1].data.h).to.equal(1080);
|
|
332
|
+
expect(request[2].data.w).to.equal(DEFAULT_VIDEO_SIZE.w);
|
|
333
|
+
expect(request[2].data.h).to.equal(DEFAULT_VIDEO_SIZE.h);
|
|
334
|
+
});
|
|
335
|
+
});
|
|
110
336
|
|
|
337
|
+
describe('LiveRampID', function () {
|
|
111
338
|
it('dont send LiveRampID if undefined', function () {
|
|
112
|
-
|
|
113
|
-
|
|
339
|
+
const bidRequests = [
|
|
340
|
+
{
|
|
341
|
+
params: {placementId: '0'},
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
params: {placementId: '1'},
|
|
345
|
+
userId: {},
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
params: {placementId: '2'},
|
|
349
|
+
userId: undefined,
|
|
350
|
+
},
|
|
351
|
+
];
|
|
352
|
+
const request = spec.buildRequests(bidRequests, bidderRequest);
|
|
114
353
|
expect(request[0].data).to.not.have.property('lr_env');
|
|
354
|
+
expect(request[1].data).to.not.have.property('lr_env');
|
|
355
|
+
expect(request[2].data).to.not.have.property('lr_env');
|
|
115
356
|
});
|
|
116
357
|
|
|
117
358
|
it('should send LiveRampID if available', function () {
|
|
118
|
-
|
|
119
|
-
|
|
359
|
+
const bidRequests = [
|
|
360
|
+
{
|
|
361
|
+
params: {placementId: '0'},
|
|
362
|
+
userId: {idl_env: 'idl_env_sample'},
|
|
363
|
+
},
|
|
364
|
+
];
|
|
365
|
+
const request = spec.buildRequests(bidRequests, bidderRequest);
|
|
120
366
|
expect(request[0].data.lr_env).to.equal('idl_env_sample');
|
|
121
367
|
});
|
|
122
368
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {spec} from '../../../modules/zeta_global_sspBidAdapter.js'
|
|
2
|
+
import {BANNER, VIDEO} from '../../../src/mediaTypes';
|
|
2
3
|
|
|
3
4
|
describe('Zeta Ssp Bid Adapter', function () {
|
|
4
5
|
const eids = [
|
|
@@ -143,7 +144,22 @@ describe('Zeta Ssp Bid Adapter', function () {
|
|
|
143
144
|
'https://example2.com'
|
|
144
145
|
],
|
|
145
146
|
h: 150,
|
|
146
|
-
w: 200
|
|
147
|
+
w: 200,
|
|
148
|
+
ext: {
|
|
149
|
+
bidtype: 'video'
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
id: 'auctionId3',
|
|
154
|
+
impid: 'impId3',
|
|
155
|
+
price: 0.2,
|
|
156
|
+
adm: '<?xml version=\\"1.0\\"?><VAST version=\\"4.0\\">',
|
|
157
|
+
crid: 'creativeId3',
|
|
158
|
+
adomain: [
|
|
159
|
+
'https://example3.com'
|
|
160
|
+
],
|
|
161
|
+
h: 400,
|
|
162
|
+
w: 300
|
|
147
163
|
}
|
|
148
164
|
]
|
|
149
165
|
}
|
|
@@ -159,6 +175,8 @@ describe('Zeta Ssp Bid Adapter', function () {
|
|
|
159
175
|
const receivedBid1 = response.body.seatbid[0].bid[0];
|
|
160
176
|
expect(bid1).to.not.be.empty;
|
|
161
177
|
expect(bid1.ad).to.equal(receivedBid1.adm);
|
|
178
|
+
expect(bid1.vastXml).to.be.undefined;
|
|
179
|
+
expect(bid1.mediaType).to.equal(BANNER);
|
|
162
180
|
expect(bid1.cpm).to.equal(receivedBid1.price);
|
|
163
181
|
expect(bid1.height).to.equal(receivedBid1.h);
|
|
164
182
|
expect(bid1.width).to.equal(receivedBid1.w);
|
|
@@ -169,11 +187,25 @@ describe('Zeta Ssp Bid Adapter', function () {
|
|
|
169
187
|
const receivedBid2 = response.body.seatbid[0].bid[1];
|
|
170
188
|
expect(bid2).to.not.be.empty;
|
|
171
189
|
expect(bid2.ad).to.equal(receivedBid2.adm);
|
|
190
|
+
expect(bid2.vastXml).to.equal(receivedBid2.adm);
|
|
191
|
+
expect(bid2.mediaType).to.equal(VIDEO);
|
|
172
192
|
expect(bid2.cpm).to.equal(receivedBid2.price);
|
|
173
193
|
expect(bid2.height).to.equal(receivedBid2.h);
|
|
174
194
|
expect(bid2.width).to.equal(receivedBid2.w);
|
|
175
195
|
expect(bid2.requestId).to.equal(receivedBid2.impid);
|
|
176
196
|
expect(bid2.meta.advertiserDomains).to.equal(receivedBid2.adomain);
|
|
197
|
+
|
|
198
|
+
const bid3 = bidResponse[2];
|
|
199
|
+
const receivedBid3 = response.body.seatbid[0].bid[2];
|
|
200
|
+
expect(bid3).to.not.be.empty;
|
|
201
|
+
expect(bid3.ad).to.equal(receivedBid3.adm);
|
|
202
|
+
expect(bid3.vastXml).to.equal(receivedBid3.adm);
|
|
203
|
+
expect(bid3.mediaType).to.equal(VIDEO);
|
|
204
|
+
expect(bid3.cpm).to.equal(receivedBid3.price);
|
|
205
|
+
expect(bid3.height).to.equal(receivedBid3.h);
|
|
206
|
+
expect(bid3.width).to.equal(receivedBid3.w);
|
|
207
|
+
expect(bid3.requestId).to.equal(receivedBid3.impid);
|
|
208
|
+
expect(bid3.meta.advertiserDomains).to.equal(receivedBid3.adomain);
|
|
177
209
|
});
|
|
178
210
|
|
|
179
211
|
it('Different cases for user syncs', function () {
|
|
@@ -162,7 +162,7 @@ describe('adapterManager tests', function () {
|
|
|
162
162
|
'bidderCode': 'appnexus',
|
|
163
163
|
'auctionId': '1863e370099523',
|
|
164
164
|
'bidderRequestId': '2946b569352ef2',
|
|
165
|
-
'
|
|
165
|
+
'uniquePbsTid': '34566b569352ef2',
|
|
166
166
|
'bids': [
|
|
167
167
|
{
|
|
168
168
|
'bidder': 'appnexus',
|
|
@@ -479,7 +479,7 @@ describe('adapterManager tests', function () {
|
|
|
479
479
|
'bidderCode': 'appnexus',
|
|
480
480
|
'auctionId': '1863e370099523',
|
|
481
481
|
'bidderRequestId': '2946b569352ef2',
|
|
482
|
-
'
|
|
482
|
+
'uniquePbsTid': '34566b569352ef2',
|
|
483
483
|
'timeout': 1000,
|
|
484
484
|
'src': 's2s',
|
|
485
485
|
'adUnitsS2SCopy': [
|
|
@@ -708,7 +708,7 @@ describe('adapterManager tests', function () {
|
|
|
708
708
|
'bidderCode': 'appnexus',
|
|
709
709
|
'auctionId': '1863e370099523',
|
|
710
710
|
'bidderRequestId': '2946b569352ef2',
|
|
711
|
-
'
|
|
711
|
+
'uniquePbsTid': '34566b569352ef2',
|
|
712
712
|
'timeout': 1000,
|
|
713
713
|
'src': 's2s',
|
|
714
714
|
'adUnitsS2SCopy': [
|
|
@@ -844,7 +844,7 @@ describe('adapterManager tests', function () {
|
|
|
844
844
|
'bidderCode': 'pubmatic',
|
|
845
845
|
'auctionId': '1863e370099523',
|
|
846
846
|
'bidderRequestId': '2946b569352ef2',
|
|
847
|
-
'
|
|
847
|
+
'uniquePbsTid': '2342342342lfi23',
|
|
848
848
|
'timeout': 1000,
|
|
849
849
|
'src': 's2s',
|
|
850
850
|
'adUnitsS2SCopy': [
|
|
@@ -1041,6 +1041,21 @@ describe('adapterManager tests', function () {
|
|
|
1041
1041
|
sinon.assert.calledTwice(prebidServerAdapterMock.callBids);
|
|
1042
1042
|
});
|
|
1043
1043
|
|
|
1044
|
+
it('should have one tid for ALL s2s bidRequests', function () {
|
|
1045
|
+
let adUnits = utils.deepClone(getAdUnits()).map(adUnit => {
|
|
1046
|
+
adUnit.bids = adUnit.bids.filter(bid => includes(['appnexus', 'pubmatic'], bid.bidder));
|
|
1047
|
+
return adUnit;
|
|
1048
|
+
})
|
|
1049
|
+
let bidRequests = adapterManager.makeBidRequests(adUnits, 1111, 2222, 1000);
|
|
1050
|
+
adapterManager.callBids(adUnits, bidRequests, () => {}, () => {});
|
|
1051
|
+
sinon.assert.calledTwice(prebidServerAdapterMock.callBids);
|
|
1052
|
+
const firstBid = prebidServerAdapterMock.callBids.firstCall.args[0];
|
|
1053
|
+
const secondBid = prebidServerAdapterMock.callBids.secondCall.args[0];
|
|
1054
|
+
|
|
1055
|
+
// TIDS should be the same
|
|
1056
|
+
expect(firstBid.tid).to.equal(secondBid.tid);
|
|
1057
|
+
});
|
|
1058
|
+
|
|
1044
1059
|
it('should fire for simultaneous s2s and client requests', function () {
|
|
1045
1060
|
adapterManager.bidderRegistry['adequant'] = adequantAdapterMock;
|
|
1046
1061
|
let adUnits = utils.deepClone(getAdUnits()).map(adUnit => {
|
|
@@ -1697,14 +1712,17 @@ describe('adapterManager tests', function () {
|
|
|
1697
1712
|
});
|
|
1698
1713
|
|
|
1699
1714
|
describe('sizeMapping', function () {
|
|
1715
|
+
let sandbox;
|
|
1700
1716
|
beforeEach(function () {
|
|
1717
|
+
sandbox = sinon.sandbox.create();
|
|
1701
1718
|
allS2SBidders.length = 0;
|
|
1702
1719
|
clientTestAdapters.length = 0;
|
|
1703
|
-
|
|
1720
|
+
// always have matchMedia return true for us
|
|
1721
|
+
sandbox.stub(utils.getWindowTop(), 'matchMedia').callsFake(() => ({matches: true}));
|
|
1704
1722
|
});
|
|
1705
1723
|
|
|
1706
1724
|
afterEach(function () {
|
|
1707
|
-
|
|
1725
|
+
sandbox.restore();
|
|
1708
1726
|
config.resetConfig();
|
|
1709
1727
|
setSizeConfig([]);
|
|
1710
1728
|
});
|