prebid.js 8.7.0 → 8.9.0

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