prebid.js 9.5.0 → 9.6.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/33acrossAnalyticsAdapter.js +1 -1
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/BTBidAdapter.js +1 -1
- package/dist/adagioAnalyticsAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adagioUtils.js +1 -1
- package/dist/addefendBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adkernelBidAdapter.js +1 -1
- package/dist/adlooxRtdProvider.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adstirBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adxcgAnalyticsAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/agmaAnalyticsAdapter.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/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bridBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/chunk-core.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectIdSystem.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/conversantAnalyticsAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/dailymotionBidAdapter.js +1 -1
- package/dist/dependencies.json +26 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/dxkultureBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -1
- package/dist/exadsBidAdapter.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hypelabBidAdapter.js +1 -1
- package/dist/id5AnalyticsAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/imdsBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/intentIqAnalyticsAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/kimberliteBidAdapter.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/liveIntentIdSystem.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/luceadBidAdapter.js +1 -1
- package/dist/mabidderBidAdapter.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/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/missenaBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/nobidAnalyticsAdapter.js +1 -1
- package/dist/nobidBidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +163 -162
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/openwebBidAdapter.js +1 -1
- package/dist/openxBidAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/orbidderBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/publirBidAdapter.js +1 -1
- package/dist/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/retailspotBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/riseUtils.js +1 -0
- 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/smarthubBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/snigelBidAdapter.js +1 -1
- package/dist/sonobiBidAdapter.js +1 -1
- package/dist/sovrnBidAdapter.js +1 -1
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/stnBidAdapter.js +1 -1
- package/dist/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/taboolaBidAdapter.js +1 -1
- package/dist/tappxBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/telariaBidAdapter.js +1 -1
- package/dist/teqblazeUtils.js +1 -1
- package/dist/terceptAnalyticsAdapter.js +1 -1
- package/dist/themoneytizerBidAdapter.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/uid2IdSystem_shared.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/unrulyBidAdapter.js +1 -1
- package/dist/vidazooUtils.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/yahooAdsBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/libraries/riseUtils/index.js +330 -0
- package/libraries/teqblazeUtils/bidderUtils.js +15 -11
- package/modules/adagioAnalyticsAdapter.js +101 -84
- package/modules/adagioAnalyticsAdapter.md +4 -0
- package/modules/adagioBidAdapter.js +4 -16
- package/modules/adkernelBidAdapter.js +2 -2
- package/modules/aidemBidAdapter.js +2 -0
- package/modules/connectIdSystem.js +5 -3
- package/modules/insticatorBidAdapter.js +35 -31
- package/modules/kargoBidAdapter.js +11 -14
- package/modules/kimberliteBidAdapter.js +24 -7
- package/modules/kimberliteBidAdapter.md +30 -1
- package/modules/minutemediaBidAdapter.js +21 -398
- package/modules/nexx360BidAdapter.js +3 -2
- package/modules/openwebBidAdapter.js +18 -396
- package/modules/publirBidAdapter.js +20 -273
- package/modules/resetdigitalBidAdapter.md +54 -45
- package/modules/riseBidAdapter.js +19 -400
- package/modules/shinezBidAdapter.js +17 -361
- package/modules/smarthubBidAdapter.js +45 -177
- package/modules/stnBidAdapter.js +22 -398
- package/modules/telariaBidAdapter.js +2 -32
- package/modules/uid2IdSystem_shared.js +51 -39
- package/package.json +1 -1
- package/src/prebid.js +4 -0
- package/test/spec/modules/adagioAnalyticsAdapter_spec.js +231 -141
- package/test/spec/modules/adagioBidAdapter_spec.js +32 -66
- package/test/spec/modules/connectIdSystem_spec.js +27 -28
- package/test/spec/modules/insticatorBidAdapter_spec.js +8 -1
- package/test/spec/modules/kargoBidAdapter_spec.js +7 -8
- package/test/spec/modules/kimberliteBidAdapter_spec.js +137 -65
- package/test/spec/modules/nexx360BidAdapter_spec.js +1 -1
- package/test/spec/modules/smarthubBidAdapter_spec.js +6 -4
- package/test/spec/unit/pbjs_api_spec.js +11 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import adagioAnalyticsAdapter from 'modules/adagioAnalyticsAdapter.js';
|
|
2
|
-
import { expect } from 'chai';
|
|
3
|
-
import * as utils from 'src/utils.js';
|
|
4
|
-
import { server } from 'test/mocks/xhr.js';
|
|
5
1
|
import * as prebidGlobal from 'src/prebidGlobal.js';
|
|
2
|
+
import * as utils from 'src/utils.js';
|
|
3
|
+
import adagioAnalyticsAdapter, { _internal } from 'modules/adagioAnalyticsAdapter.js';
|
|
6
4
|
import { EVENTS } from 'src/constants.js';
|
|
5
|
+
import { expect } from 'chai';
|
|
6
|
+
import { server } from 'test/mocks/xhr.js';
|
|
7
7
|
|
|
8
8
|
let adapterManager = require('src/adapterManager').default;
|
|
9
9
|
let events = require('src/events');
|
|
@@ -14,30 +14,35 @@ describe('adagio analytics adapter - adagio.js', () => {
|
|
|
14
14
|
|
|
15
15
|
beforeEach(() => {
|
|
16
16
|
sandbox = sinon.createSandbox();
|
|
17
|
-
|
|
18
17
|
sandbox.stub(events, 'getEvents').returns([]);
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
sandbox.stub(prebidGlobal, 'getGlobal').returns({
|
|
20
|
+
installedModules: ['adagioRtdProvider', 'rtdModule']
|
|
21
|
+
});
|
|
21
22
|
|
|
22
23
|
adapterManager.registerAnalyticsAdapter({
|
|
23
24
|
code: 'adagio',
|
|
24
25
|
adapter: adagioAnalyticsAdapter
|
|
25
26
|
});
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
w.ADAGIO.queue = w.ADAGIO.queue || [];
|
|
28
|
+
_internal.getAdagioNs().pageviewId = 'a68e6d70-213b-496c-be0a-c468ff387106';
|
|
29
29
|
|
|
30
|
-
adagioQueuePushSpy = sandbox.spy(
|
|
30
|
+
adagioQueuePushSpy = sandbox.spy(_internal.getAdagioNs().queue, 'push');
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
afterEach(() => {
|
|
34
|
+
_internal.getAdagioNs().queue = [];
|
|
34
35
|
sandbox.restore();
|
|
35
36
|
});
|
|
36
37
|
|
|
37
38
|
describe('track', () => {
|
|
38
39
|
beforeEach(() => {
|
|
39
40
|
adapterManager.enableAnalytics({
|
|
40
|
-
provider: 'adagio'
|
|
41
|
+
provider: 'adagio',
|
|
42
|
+
options: {
|
|
43
|
+
organizationId: '1001',
|
|
44
|
+
site: 'test-com',
|
|
45
|
+
}
|
|
41
46
|
});
|
|
42
47
|
});
|
|
43
48
|
|
|
@@ -93,7 +98,6 @@ describe('adagio analytics adapter - adagio.js', () => {
|
|
|
93
98
|
|
|
94
99
|
// Step 1-3: Send events
|
|
95
100
|
Object.entries(testEvents).forEach(([ev, payload]) => events.emit(ev, payload));
|
|
96
|
-
|
|
97
101
|
function eventItem(eventName, args) {
|
|
98
102
|
return sinon.match({
|
|
99
103
|
action: 'pb-analytics-event',
|
|
@@ -108,79 +112,13 @@ describe('adagio analytics adapter - adagio.js', () => {
|
|
|
108
112
|
Object.entries(testEvents).forEach(([ev, payload]) => sinon.assert.calledWith(adagioQueuePushSpy, eventItem(ev, payload)));
|
|
109
113
|
});
|
|
110
114
|
});
|
|
111
|
-
|
|
112
|
-
describe('no track', () => {
|
|
113
|
-
beforeEach(() => {
|
|
114
|
-
sandbox.stub(utils, 'getWindowTop').throws();
|
|
115
|
-
|
|
116
|
-
adapterManager.enableAnalytics({
|
|
117
|
-
provider: 'adagio'
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
afterEach(() => {
|
|
122
|
-
adagioAnalyticsAdapter.disableAnalytics();
|
|
123
|
-
sandbox.restore();
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
it('builds and sends auction data', () => {
|
|
127
|
-
let bidRequest = {
|
|
128
|
-
bids: [{
|
|
129
|
-
adUnitCode: 'div-1',
|
|
130
|
-
params: {
|
|
131
|
-
features: {
|
|
132
|
-
siteId: '2',
|
|
133
|
-
placement: 'pave_top',
|
|
134
|
-
pagetype: 'article',
|
|
135
|
-
category: 'IAB12,IAB12-2',
|
|
136
|
-
device: '2',
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}, {
|
|
140
|
-
adUnitCode: 'div-2',
|
|
141
|
-
params: {
|
|
142
|
-
features: {
|
|
143
|
-
siteId: '2',
|
|
144
|
-
placement: 'ban_top',
|
|
145
|
-
pagetype: 'article',
|
|
146
|
-
category: 'IAB12,IAB12-2',
|
|
147
|
-
device: '2',
|
|
148
|
-
}
|
|
149
|
-
},
|
|
150
|
-
}],
|
|
151
|
-
};
|
|
152
|
-
let bidResponse = {
|
|
153
|
-
bidderCode: 'adagio',
|
|
154
|
-
width: 300,
|
|
155
|
-
height: 250,
|
|
156
|
-
statusMessage: 'Bid available',
|
|
157
|
-
cpm: 6.2189757658226075,
|
|
158
|
-
currency: '',
|
|
159
|
-
netRevenue: false,
|
|
160
|
-
adUnitCode: 'div-1',
|
|
161
|
-
timeToRespond: 132,
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
// Step 1: Send bid requested event
|
|
165
|
-
events.emit(EVENTS.BID_REQUESTED, bidRequest);
|
|
166
|
-
|
|
167
|
-
// Step 2: Send bid response event
|
|
168
|
-
events.emit(EVENTS.BID_RESPONSE, bidResponse);
|
|
169
|
-
|
|
170
|
-
// Step 3: Send auction end event
|
|
171
|
-
events.emit(EVENTS.AUCTION_END, {});
|
|
172
|
-
|
|
173
|
-
utils.getWindowTop.restore();
|
|
174
|
-
|
|
175
|
-
sandbox.assert.callCount(adagioQueuePushSpy, 0);
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
115
|
});
|
|
179
116
|
|
|
180
117
|
const AUCTION_ID = '25c6d7f5-699a-4bfc-87c9-996f915341fa';
|
|
181
|
-
const
|
|
118
|
+
const RTD_AUCTION_ID = '753b3784-12a1-44c2-9d08-d0e4ee910e69';
|
|
119
|
+
const RTD_AUCTION_ID_CACHE = '04d991be-8f7d-4491-930b-2b7eefb3c447';
|
|
182
120
|
const AUCTION_ID_CACHE = 'b43d24a0-13d4-406d-8176-3181402bafc4';
|
|
183
|
-
const
|
|
121
|
+
const SESSION_ID = 'c4f9e517-a592-45af-9560-ca191823d591';
|
|
184
122
|
|
|
185
123
|
const BID_ADAGIO = {
|
|
186
124
|
bidder: 'adagio',
|
|
@@ -254,14 +192,20 @@ const BID_CACHED = Object.assign({}, BID_ADAGIO, {
|
|
|
254
192
|
});
|
|
255
193
|
|
|
256
194
|
const PARAMS_ADG = {
|
|
257
|
-
organizationId: '1001',
|
|
258
|
-
site: 'test-com',
|
|
259
|
-
pageviewId: 'a68e6d70-213b-496c-be0a-c468ff387106',
|
|
260
195
|
environment: 'desktop',
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
const ORTB_DATA = {
|
|
261
199
|
pagetype: 'article',
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
const ADG_RTD = {
|
|
203
|
+
'uid': RTD_AUCTION_ID,
|
|
204
|
+
'session': {
|
|
205
|
+
'testName': 'test',
|
|
206
|
+
'testVersion': 'version',
|
|
207
|
+
'id': SESSION_ID,
|
|
208
|
+
}
|
|
265
209
|
};
|
|
266
210
|
|
|
267
211
|
const AUCTION_INIT_ANOTHER = {
|
|
@@ -301,7 +245,14 @@ const AUCTION_INIT_ANOTHER = {
|
|
|
301
245
|
...PARAMS_ADG
|
|
302
246
|
},
|
|
303
247
|
}, ],
|
|
304
|
-
'transactionId': 'ca4af27a-6d02-4f90-949d-d5541fa12014'
|
|
248
|
+
'transactionId': 'ca4af27a-6d02-4f90-949d-d5541fa12014',
|
|
249
|
+
'ortb2Imp': {
|
|
250
|
+
'ext': {
|
|
251
|
+
'data': {
|
|
252
|
+
'placement': 'pave_top',
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
},
|
|
305
256
|
}, {
|
|
306
257
|
'code': '/19968336/footer-bid-tag-1',
|
|
307
258
|
'mediaTypes': {
|
|
@@ -321,7 +272,14 @@ const AUCTION_INIT_ANOTHER = {
|
|
|
321
272
|
'publisherId': '1001'
|
|
322
273
|
},
|
|
323
274
|
} ],
|
|
324
|
-
'transactionId': 'ca4af27a-6d02-4f90-949d-d5541fa12014'
|
|
275
|
+
'transactionId': 'ca4af27a-6d02-4f90-949d-d5541fa12014',
|
|
276
|
+
'ortb2Imp': {
|
|
277
|
+
'ext': {
|
|
278
|
+
'data': {
|
|
279
|
+
'placement': 'pave_top',
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
},
|
|
325
283
|
} ],
|
|
326
284
|
'adUnitCodes': ['/19968336/header-bid-tag-1', '/19968336/footer-bid-tag-1'],
|
|
327
285
|
'bidderRequests': [ {
|
|
@@ -387,6 +345,18 @@ const AUCTION_INIT_ANOTHER = {
|
|
|
387
345
|
'timeout': 3000,
|
|
388
346
|
'refererInfo': {
|
|
389
347
|
'topmostLocation': 'http://www.test.com/page.html', 'reachedTop': true, 'numIframes': 0, 'stack': ['http://www.test.com/page.html']
|
|
348
|
+
},
|
|
349
|
+
'ortb2': {
|
|
350
|
+
'site': {
|
|
351
|
+
'ext': {
|
|
352
|
+
'data': {
|
|
353
|
+
'adg_rtd': {
|
|
354
|
+
...ADG_RTD
|
|
355
|
+
},
|
|
356
|
+
...ORTB_DATA
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
390
360
|
}
|
|
391
361
|
}, {
|
|
392
362
|
'bidderCode': 'adagio',
|
|
@@ -395,8 +365,7 @@ const AUCTION_INIT_ANOTHER = {
|
|
|
395
365
|
'bids': [ {
|
|
396
366
|
'bidder': 'adagio',
|
|
397
367
|
'params': {
|
|
398
|
-
...PARAMS_ADG
|
|
399
|
-
adagioAuctionId: AUCTION_ID_ADAGIO
|
|
368
|
+
...PARAMS_ADG
|
|
400
369
|
},
|
|
401
370
|
'mediaTypes': {
|
|
402
371
|
'banner': {
|
|
@@ -416,6 +385,18 @@ const AUCTION_INIT_ANOTHER = {
|
|
|
416
385
|
'timeout': 3000,
|
|
417
386
|
'refererInfo': {
|
|
418
387
|
'topmostLocation': 'http://www.test.com/page.html', 'reachedTop': true, 'numIframes': 0, 'stack': ['http://www.test.com/page.html']
|
|
388
|
+
},
|
|
389
|
+
'ortb2': {
|
|
390
|
+
'site': {
|
|
391
|
+
'ext': {
|
|
392
|
+
'data': {
|
|
393
|
+
'adg_rtd': {
|
|
394
|
+
...ADG_RTD
|
|
395
|
+
},
|
|
396
|
+
...ORTB_DATA
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
419
400
|
}
|
|
420
401
|
}
|
|
421
402
|
],
|
|
@@ -456,7 +437,14 @@ const AUCTION_INIT_CACHE = {
|
|
|
456
437
|
...PARAMS_ADG
|
|
457
438
|
},
|
|
458
439
|
}, ],
|
|
459
|
-
'transactionId': 'ca4af27a-6d02-4f90-949d-d5541fa12014'
|
|
440
|
+
'transactionId': 'ca4af27a-6d02-4f90-949d-d5541fa12014',
|
|
441
|
+
'ortb2Imp': {
|
|
442
|
+
'ext': {
|
|
443
|
+
'data': {
|
|
444
|
+
'placement': 'pave_top',
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
},
|
|
460
448
|
}, {
|
|
461
449
|
'code': '/19968336/footer-bid-tag-1',
|
|
462
450
|
'mediaTypes': {
|
|
@@ -476,7 +464,14 @@ const AUCTION_INIT_CACHE = {
|
|
|
476
464
|
'publisherId': '1001'
|
|
477
465
|
},
|
|
478
466
|
} ],
|
|
479
|
-
'transactionId': 'ca4af27a-6d02-4f90-949d-d5541fa12014'
|
|
467
|
+
'transactionId': 'ca4af27a-6d02-4f90-949d-d5541fa12014',
|
|
468
|
+
'ortb2Imp': {
|
|
469
|
+
'ext': {
|
|
470
|
+
'data': {
|
|
471
|
+
'placement': 'pave_top',
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
},
|
|
480
475
|
} ],
|
|
481
476
|
'adUnitCodes': ['/19968336/header-bid-tag-1', '/19968336/footer-bid-tag-1'],
|
|
482
477
|
'bidderRequests': [ {
|
|
@@ -524,6 +519,19 @@ const AUCTION_INIT_CACHE = {
|
|
|
524
519
|
'timeout': 3000,
|
|
525
520
|
'refererInfo': {
|
|
526
521
|
'topmostLocation': 'http://www.test.com/page.html', 'reachedTop': true, 'numIframes': 0, 'stack': ['http://www.test.com/page.html']
|
|
522
|
+
},
|
|
523
|
+
'ortb2': {
|
|
524
|
+
'site': {
|
|
525
|
+
'ext': {
|
|
526
|
+
'data': {
|
|
527
|
+
'adg_rtd': {
|
|
528
|
+
...ADG_RTD,
|
|
529
|
+
'uid': RTD_AUCTION_ID_CACHE
|
|
530
|
+
},
|
|
531
|
+
...ORTB_DATA
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
}
|
|
527
535
|
}
|
|
528
536
|
}, {
|
|
529
537
|
'bidderCode': 'adagio',
|
|
@@ -532,8 +540,7 @@ const AUCTION_INIT_CACHE = {
|
|
|
532
540
|
'bids': [ {
|
|
533
541
|
'bidder': 'adagio',
|
|
534
542
|
'params': {
|
|
535
|
-
...PARAMS_ADG
|
|
536
|
-
adagioAuctionId: AUCTION_ID_CACHE_ADAGIO
|
|
543
|
+
...PARAMS_ADG
|
|
537
544
|
},
|
|
538
545
|
'mediaTypes': {
|
|
539
546
|
'banner': {
|
|
@@ -553,6 +560,19 @@ const AUCTION_INIT_CACHE = {
|
|
|
553
560
|
'timeout': 3000,
|
|
554
561
|
'refererInfo': {
|
|
555
562
|
'topmostLocation': 'http://www.test.com/page.html', 'reachedTop': true, 'numIframes': 0, 'stack': ['http://www.test.com/page.html']
|
|
563
|
+
},
|
|
564
|
+
'ortb2': {
|
|
565
|
+
'site': {
|
|
566
|
+
'ext': {
|
|
567
|
+
'data': {
|
|
568
|
+
'adg_rtd': {
|
|
569
|
+
...ADG_RTD,
|
|
570
|
+
'uid': RTD_AUCTION_ID_CACHE
|
|
571
|
+
},
|
|
572
|
+
...ORTB_DATA
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
}
|
|
556
576
|
}
|
|
557
577
|
}
|
|
558
578
|
],
|
|
@@ -621,10 +641,27 @@ describe('adagio analytics adapter', () => {
|
|
|
621
641
|
let sandbox;
|
|
622
642
|
|
|
623
643
|
beforeEach(() => {
|
|
624
|
-
sandbox = sinon.
|
|
644
|
+
sandbox = sinon.createSandbox();
|
|
625
645
|
|
|
626
646
|
sandbox.stub(events, 'getEvents').returns([]);
|
|
627
647
|
|
|
648
|
+
sandbox.stub(prebidGlobal, 'getGlobal').returns({
|
|
649
|
+
installedModules: ['adagioRtdProvider', 'rtdModule'],
|
|
650
|
+
convertCurrency: (cpm, from, to) => {
|
|
651
|
+
const convKeys = {
|
|
652
|
+
'GBP-EUR': 0.7,
|
|
653
|
+
'EUR-GBP': 1.3,
|
|
654
|
+
'USD-EUR': 0.8,
|
|
655
|
+
'EUR-USD': 1.2,
|
|
656
|
+
'USD-GBP': 0.6,
|
|
657
|
+
'GBP-USD': 1.6,
|
|
658
|
+
};
|
|
659
|
+
return cpm * (convKeys[`${from}-${to}`] || 1);
|
|
660
|
+
}
|
|
661
|
+
});
|
|
662
|
+
|
|
663
|
+
_internal.getAdagioNs().pageviewId = 'a68e6d70-213b-496c-be0a-c468ff387106';
|
|
664
|
+
|
|
628
665
|
adapterManager.registerAnalyticsAdapter({
|
|
629
666
|
code: 'adagio',
|
|
630
667
|
adapter: adagioAnalyticsAdapter
|
|
@@ -632,13 +669,18 @@ describe('adagio analytics adapter', () => {
|
|
|
632
669
|
});
|
|
633
670
|
|
|
634
671
|
afterEach(() => {
|
|
672
|
+
_internal.getAdagioNs().queue = [];
|
|
635
673
|
sandbox.restore();
|
|
636
674
|
});
|
|
637
675
|
|
|
638
676
|
describe('track', () => {
|
|
639
677
|
beforeEach(() => {
|
|
640
678
|
adapterManager.enableAnalytics({
|
|
641
|
-
provider: 'adagio'
|
|
679
|
+
provider: 'adagio',
|
|
680
|
+
options: {
|
|
681
|
+
organizationId: '1001',
|
|
682
|
+
site: 'test-com',
|
|
683
|
+
}
|
|
642
684
|
});
|
|
643
685
|
});
|
|
644
686
|
|
|
@@ -647,20 +689,6 @@ describe('adagio analytics adapter', () => {
|
|
|
647
689
|
});
|
|
648
690
|
|
|
649
691
|
it('builds and sends auction data', () => {
|
|
650
|
-
sandbox.stub(prebidGlobal, 'getGlobal').returns({
|
|
651
|
-
convertCurrency: (cpm, from, to) => {
|
|
652
|
-
const convKeys = {
|
|
653
|
-
'GBP-EUR': 0.7,
|
|
654
|
-
'EUR-GBP': 1.3,
|
|
655
|
-
'USD-EUR': 0.8,
|
|
656
|
-
'EUR-USD': 1.2,
|
|
657
|
-
'USD-GBP': 0.6,
|
|
658
|
-
'GBP-USD': 1.6,
|
|
659
|
-
};
|
|
660
|
-
return cpm * (convKeys[`${from}-${to}`] || 1);
|
|
661
|
-
}
|
|
662
|
-
});
|
|
663
|
-
|
|
664
692
|
events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.another);
|
|
665
693
|
events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.adagio);
|
|
666
694
|
events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.another);
|
|
@@ -668,7 +696,7 @@ describe('adagio analytics adapter', () => {
|
|
|
668
696
|
events.emit(EVENTS.BID_WON, MOCK.BID_WON.another);
|
|
669
697
|
events.emit(EVENTS.AD_RENDER_SUCCEEDED, MOCK.AD_RENDER_SUCCEEDED.another);
|
|
670
698
|
|
|
671
|
-
expect(server.requests.length).to.equal(
|
|
699
|
+
expect(server.requests.length).to.equal(5, 'requests count');
|
|
672
700
|
{
|
|
673
701
|
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[0].url);
|
|
674
702
|
expect(protocol).to.equal('https');
|
|
@@ -676,7 +704,8 @@ describe('adagio analytics adapter', () => {
|
|
|
676
704
|
expect(pathname).to.equal('/pba.gif');
|
|
677
705
|
expect(search.v).to.equal('1');
|
|
678
706
|
expect(search.pbjsv).to.equal('$prebid.version$');
|
|
679
|
-
expect(search.
|
|
707
|
+
expect(search.s_id).to.equal(SESSION_ID);
|
|
708
|
+
expect(search.auct_id).to.equal(RTD_AUCTION_ID);
|
|
680
709
|
expect(search.adu_code).to.equal('/19968336/header-bid-tag-1');
|
|
681
710
|
expect(search.org_id).to.equal('1001');
|
|
682
711
|
expect(search.site).to.equal('test-com');
|
|
@@ -695,7 +724,16 @@ describe('adagio analytics adapter', () => {
|
|
|
695
724
|
expect(protocol).to.equal('https');
|
|
696
725
|
expect(hostname).to.equal('c.4dex.io');
|
|
697
726
|
expect(pathname).to.equal('/pba.gif');
|
|
727
|
+
expect(search.v).to.equal('1');
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
{
|
|
731
|
+
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[2].url);
|
|
732
|
+
expect(protocol).to.equal('https');
|
|
733
|
+
expect(hostname).to.equal('c.4dex.io');
|
|
734
|
+
expect(pathname).to.equal('/pba.gif');
|
|
698
735
|
expect(search.v).to.equal('2');
|
|
736
|
+
expect(search.adu_code).to.equal('/19968336/header-bid-tag-1');
|
|
699
737
|
expect(search.e_sid).to.equal('42');
|
|
700
738
|
expect(search.e_pba_test).to.equal('true');
|
|
701
739
|
expect(search.bdrs_bid).to.equal('1,1,0');
|
|
@@ -703,12 +741,22 @@ describe('adagio analytics adapter', () => {
|
|
|
703
741
|
}
|
|
704
742
|
|
|
705
743
|
{
|
|
706
|
-
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[
|
|
744
|
+
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[3].url);
|
|
745
|
+
expect(protocol).to.equal('https');
|
|
746
|
+
expect(hostname).to.equal('c.4dex.io');
|
|
747
|
+
expect(pathname).to.equal('/pba.gif');
|
|
748
|
+
expect(search.v).to.equal('2');
|
|
749
|
+
expect(search.auct_id).to.equal(RTD_AUCTION_ID);
|
|
750
|
+
expect(search.adu_code).to.equal('/19968336/footer-bid-tag-1');
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
{
|
|
754
|
+
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[4].url);
|
|
707
755
|
expect(protocol).to.equal('https');
|
|
708
756
|
expect(hostname).to.equal('c.4dex.io');
|
|
709
757
|
expect(pathname).to.equal('/pba.gif');
|
|
710
758
|
expect(search.v).to.equal('3');
|
|
711
|
-
expect(search.auct_id).to.equal(
|
|
759
|
+
expect(search.auct_id).to.equal(RTD_AUCTION_ID);
|
|
712
760
|
expect(search.adu_code).to.equal('/19968336/header-bid-tag-1');
|
|
713
761
|
expect(search.win_bdr).to.equal('another');
|
|
714
762
|
expect(search.win_mt).to.equal('ban');
|
|
@@ -719,20 +767,6 @@ describe('adagio analytics adapter', () => {
|
|
|
719
767
|
});
|
|
720
768
|
|
|
721
769
|
it('builds and sends auction data with a cached bid win', () => {
|
|
722
|
-
sandbox.stub(prebidGlobal, 'getGlobal').returns({
|
|
723
|
-
convertCurrency: (cpm, from, to) => {
|
|
724
|
-
const convKeys = {
|
|
725
|
-
'GBP-EUR': 0.7,
|
|
726
|
-
'EUR-GBP': 1.3,
|
|
727
|
-
'USD-EUR': 0.8,
|
|
728
|
-
'EUR-USD': 1.2,
|
|
729
|
-
'USD-GBP': 0.6,
|
|
730
|
-
'GBP-USD': 1.6,
|
|
731
|
-
};
|
|
732
|
-
return cpm * (convKeys[`${from}-${to}`] || 1);
|
|
733
|
-
}
|
|
734
|
-
});
|
|
735
|
-
|
|
736
770
|
events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.bidcached);
|
|
737
771
|
events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.another);
|
|
738
772
|
events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.adagio);
|
|
@@ -741,15 +775,17 @@ describe('adagio analytics adapter', () => {
|
|
|
741
775
|
events.emit(EVENTS.BID_WON, MOCK.BID_WON.bidcached);
|
|
742
776
|
events.emit(EVENTS.AD_RENDER_FAILED, MOCK.AD_RENDER_FAILED.bidcached);
|
|
743
777
|
|
|
744
|
-
expect(server.requests.length).to.equal(
|
|
778
|
+
expect(server.requests.length).to.equal(8, 'requests count');
|
|
745
779
|
{
|
|
780
|
+
// the first request is getting cached we expect to see its auction id later when it's re-used
|
|
746
781
|
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[0].url);
|
|
747
782
|
expect(protocol).to.equal('https');
|
|
748
783
|
expect(hostname).to.equal('c.4dex.io');
|
|
749
784
|
expect(pathname).to.equal('/pba.gif');
|
|
750
785
|
expect(search.v).to.equal('1');
|
|
751
786
|
expect(search.pbjsv).to.equal('$prebid.version$');
|
|
752
|
-
expect(search.auct_id).to.equal(
|
|
787
|
+
expect(search.auct_id).to.equal(RTD_AUCTION_ID_CACHE);
|
|
788
|
+
expect(search.s_id).to.equal(SESSION_ID);
|
|
753
789
|
expect(search.adu_code).to.equal('/19968336/header-bid-tag-1');
|
|
754
790
|
expect(search.org_id).to.equal('1001');
|
|
755
791
|
expect(search.site).to.equal('test-com');
|
|
@@ -772,7 +808,28 @@ describe('adagio analytics adapter', () => {
|
|
|
772
808
|
expect(pathname).to.equal('/pba.gif');
|
|
773
809
|
expect(search.v).to.equal('1');
|
|
774
810
|
expect(search.pbjsv).to.equal('$prebid.version$');
|
|
775
|
-
expect(search.auct_id).to.equal(
|
|
811
|
+
expect(search.auct_id).to.equal(RTD_AUCTION_ID_CACHE);
|
|
812
|
+
expect(search.adu_code).to.equal('/19968336/footer-bid-tag-1');
|
|
813
|
+
expect(search.org_id).to.equal('1001');
|
|
814
|
+
expect(search.site).to.equal('test-com');
|
|
815
|
+
expect(search.pv_id).to.equal('a68e6d70-213b-496c-be0a-c468ff387106');
|
|
816
|
+
expect(search.url_dmn).to.equal(window.location.hostname);
|
|
817
|
+
expect(search.pgtyp).to.equal('article');
|
|
818
|
+
expect(search.plcmt).to.equal('pave_top');
|
|
819
|
+
expect(search.mts).to.equal('ban');
|
|
820
|
+
expect(search.ban_szs).to.equal('640x480');
|
|
821
|
+
expect(search.bdrs).to.equal('another');
|
|
822
|
+
expect(search.adg_mts).to.not.exist;
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
{
|
|
826
|
+
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[2].url);
|
|
827
|
+
expect(protocol).to.equal('https');
|
|
828
|
+
expect(hostname).to.equal('c.4dex.io');
|
|
829
|
+
expect(pathname).to.equal('/pba.gif');
|
|
830
|
+
expect(search.v).to.equal('1');
|
|
831
|
+
expect(search.pbjsv).to.equal('$prebid.version$');
|
|
832
|
+
expect(search.auct_id).to.equal(RTD_AUCTION_ID);
|
|
776
833
|
expect(search.adu_code).to.equal('/19968336/header-bid-tag-1');
|
|
777
834
|
expect(search.org_id).to.equal('1001');
|
|
778
835
|
expect(search.site).to.equal('test-com');
|
|
@@ -787,11 +844,24 @@ describe('adagio analytics adapter', () => {
|
|
|
787
844
|
}
|
|
788
845
|
|
|
789
846
|
{
|
|
790
|
-
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[
|
|
847
|
+
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[3].url);
|
|
848
|
+
expect(protocol).to.equal('https');
|
|
849
|
+
expect(hostname).to.equal('c.4dex.io');
|
|
850
|
+
expect(pathname).to.equal('/pba.gif');
|
|
851
|
+
expect(search.v).to.equal('1');
|
|
852
|
+
expect(search.auct_id).to.equal(RTD_AUCTION_ID);
|
|
853
|
+
expect(search.adu_code).to.equal('/19968336/footer-bid-tag-1');
|
|
854
|
+
expect(search.pv_id).to.equal('a68e6d70-213b-496c-be0a-c468ff387106');
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
{
|
|
858
|
+
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[4].url);
|
|
791
859
|
expect(protocol).to.equal('https');
|
|
792
860
|
expect(hostname).to.equal('c.4dex.io');
|
|
793
861
|
expect(pathname).to.equal('/pba.gif');
|
|
794
862
|
expect(search.v).to.equal('2');
|
|
863
|
+
expect(search.auct_id).to.equal(RTD_AUCTION_ID);
|
|
864
|
+
expect(search.adu_code).to.equal('/19968336/header-bid-tag-1');
|
|
795
865
|
expect(search.e_sid).to.equal('42');
|
|
796
866
|
expect(search.e_pba_test).to.equal('true');
|
|
797
867
|
expect(search.bdrs_bid).to.equal('0,0,0');
|
|
@@ -799,13 +869,24 @@ describe('adagio analytics adapter', () => {
|
|
|
799
869
|
}
|
|
800
870
|
|
|
801
871
|
{
|
|
802
|
-
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[
|
|
872
|
+
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[5].url);
|
|
873
|
+
expect(protocol).to.equal('https');
|
|
874
|
+
expect(hostname).to.equal('c.4dex.io');
|
|
875
|
+
expect(pathname).to.equal('/pba.gif');
|
|
876
|
+
expect(search.v).to.equal('2');
|
|
877
|
+
expect(search.auct_id).to.equal(RTD_AUCTION_ID);
|
|
878
|
+
expect(search.adu_code).to.equal('/19968336/footer-bid-tag-1');
|
|
879
|
+
expect(search.rndr).to.not.exist;
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
{
|
|
883
|
+
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[6].url);
|
|
803
884
|
expect(protocol).to.equal('https');
|
|
804
885
|
expect(hostname).to.equal('c.4dex.io');
|
|
805
886
|
expect(pathname).to.equal('/pba.gif');
|
|
806
887
|
expect(search.v).to.equal('3');
|
|
807
|
-
expect(search.auct_id).to.equal(
|
|
808
|
-
expect(search.auct_id_c).to.equal(
|
|
888
|
+
expect(search.auct_id).to.equal(RTD_AUCTION_ID);
|
|
889
|
+
expect(search.auct_id_c).to.equal(RTD_AUCTION_ID_CACHE);
|
|
809
890
|
expect(search.adu_code).to.equal('/19968336/header-bid-tag-1');
|
|
810
891
|
expect(search.win_bdr).to.equal('adagio');
|
|
811
892
|
expect(search.win_mt).to.equal('ban');
|
|
@@ -816,20 +897,28 @@ describe('adagio analytics adapter', () => {
|
|
|
816
897
|
}
|
|
817
898
|
|
|
818
899
|
{
|
|
819
|
-
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[
|
|
900
|
+
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[7].url);
|
|
820
901
|
expect(protocol).to.equal('https');
|
|
821
902
|
expect(hostname).to.equal('c.4dex.io');
|
|
822
903
|
expect(pathname).to.equal('/pba.gif');
|
|
823
904
|
expect(search.v).to.equal('4');
|
|
824
|
-
expect(search.auct_id).to.equal(
|
|
825
|
-
expect(search.auct_id_c).to.equal(
|
|
905
|
+
expect(search.auct_id).to.equal(RTD_AUCTION_ID);
|
|
906
|
+
expect(search.auct_id_c).to.equal(RTD_AUCTION_ID_CACHE);
|
|
826
907
|
expect(search.adu_code).to.equal('/19968336/header-bid-tag-1');
|
|
908
|
+
expect(search.win_bdr).to.equal('adagio');
|
|
909
|
+
expect(search.win_mt).to.equal('ban');
|
|
910
|
+
expect(search.win_ban_sz).to.equal('728x90');
|
|
911
|
+
expect(search.win_net_cpm).to.equal('1.42');
|
|
912
|
+
expect(search.win_og_cpm).to.equal('1.42');
|
|
827
913
|
expect(search.rndr).to.equal('0');
|
|
828
914
|
}
|
|
829
915
|
});
|
|
830
916
|
|
|
831
917
|
it('send an "empty" cpm when adserver currency != USD and convertCurrency() is undefined', () => {
|
|
832
|
-
sandbox.
|
|
918
|
+
sandbox.restore();
|
|
919
|
+
sandbox.stub(prebidGlobal, 'getGlobal').returns({
|
|
920
|
+
installedModules: ['adagioRtdProvider', 'rtdModule']
|
|
921
|
+
});
|
|
833
922
|
|
|
834
923
|
events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.another);
|
|
835
924
|
events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.adagio);
|
|
@@ -838,14 +927,15 @@ describe('adagio analytics adapter', () => {
|
|
|
838
927
|
events.emit(EVENTS.BID_WON, MOCK.BID_WON.another);
|
|
839
928
|
events.emit(EVENTS.AD_RENDER_SUCCEEDED, MOCK.AD_RENDER_SUCCEEDED.another);
|
|
840
929
|
|
|
841
|
-
expect(server.requests.length).to.equal(
|
|
930
|
+
expect(server.requests.length).to.equal(5, 'requests count');
|
|
842
931
|
|
|
843
932
|
// fail to compute bidder cpm and send an "empty" cpm
|
|
844
933
|
{
|
|
845
|
-
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[
|
|
934
|
+
const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[2].url);
|
|
846
935
|
expect(protocol).to.equal('https');
|
|
847
936
|
expect(hostname).to.equal('c.4dex.io');
|
|
848
937
|
expect(pathname).to.equal('/pba.gif');
|
|
938
|
+
expect(search.s_id).to.equal(SESSION_ID);
|
|
849
939
|
expect(search.v).to.equal('2');
|
|
850
940
|
expect(search.e_sid).to.equal('42');
|
|
851
941
|
expect(search.e_pba_test).to.equal('true');
|