@@ -702,6 +702,109 @@ describe('S2S Adapter', function () {
702
702
} ) ;
703
703
} ) ;
704
704
705
+ describe ( 'us_privacy (ccpa) consent data' , function ( ) {
706
+ afterEach ( function ( ) {
707
+ config . resetConfig ( ) ;
708
+ $$PREBID_GLOBAL$$ . requestBids . removeAll ( ) ;
709
+ } ) ;
710
+
711
+ it ( 'is added to ortb2 request when in bidRequest' , function ( ) {
712
+ let ortb2Config = utils . deepClone ( CONFIG ) ;
713
+ ortb2Config . endpoint = 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'
714
+ config . setConfig ( { s2sConfig : ortb2Config } ) ;
715
+
716
+ let uspBidRequest = utils . deepClone ( BID_REQUESTS ) ;
717
+ uspBidRequest [ 0 ] . uspConsent = '1NYN' ;
718
+
719
+ adapter . callBids ( REQUEST , uspBidRequest , addBidResponse , done , ajax ) ;
720
+ let requestBid = JSON . parse ( requests [ 0 ] . requestBody ) ;
721
+
722
+ expect ( requestBid . regs . ext . us_privacy ) . is . equal ( '1NYN' ) ;
723
+
724
+ config . resetConfig ( ) ;
725
+ config . setConfig ( { s2sConfig : CONFIG } ) ;
726
+
727
+ adapter . callBids ( REQUEST , BID_REQUESTS , addBidResponse , done , ajax ) ;
728
+ requestBid = JSON . parse ( requests [ 1 ] . requestBody ) ;
729
+
730
+ expect ( requestBid . regs ) . to . not . exist ;
731
+ } ) ;
732
+
733
+ it ( 'is added to cookie_sync request when in bidRequest' , function ( ) {
734
+ let cookieSyncConfig = utils . deepClone ( CONFIG ) ;
735
+ cookieSyncConfig . syncEndpoint = 'https://prebid.adnxs.com/pbs/v1/cookie_sync' ;
736
+ config . setConfig ( { s2sConfig : cookieSyncConfig } ) ;
737
+
738
+ let uspBidRequest = utils . deepClone ( BID_REQUESTS ) ;
739
+ uspBidRequest [ 0 ] . uspConsent = '1YNN' ;
740
+
741
+ adapter . callBids ( REQUEST , uspBidRequest , addBidResponse , done , ajax ) ;
742
+ let requestBid = JSON . parse ( requests [ 0 ] . requestBody ) ;
743
+
744
+ expect ( requestBid . us_privacy ) . is . equal ( '1YNN' ) ;
745
+ expect ( requestBid . bidders ) . to . contain ( 'appnexus' ) . and . to . have . lengthOf ( 1 ) ;
746
+ expect ( requestBid . account ) . is . equal ( '1' ) ;
747
+ } ) ;
748
+ } ) ;
749
+
750
+ describe ( 'gdpr and us_privacy (ccpa) consent data' , function ( ) {
751
+ afterEach ( function ( ) {
752
+ config . resetConfig ( ) ;
753
+ $$PREBID_GLOBAL$$ . requestBids . removeAll ( ) ;
754
+ } ) ;
755
+
756
+ it ( 'is added to ortb2 request when in bidRequest' , function ( ) {
757
+ let ortb2Config = utils . deepClone ( CONFIG ) ;
758
+ ortb2Config . endpoint = 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction'
759
+ config . setConfig ( { s2sConfig : ortb2Config } ) ;
760
+
761
+ let consentBidRequest = utils . deepClone ( BID_REQUESTS ) ;
762
+ consentBidRequest [ 0 ] . uspConsent = '1NYN' ;
763
+ consentBidRequest [ 0 ] . gdprConsent = {
764
+ consentString : 'abc123' ,
765
+ gdprApplies : true
766
+ } ;
767
+
768
+ adapter . callBids ( REQUEST , consentBidRequest , addBidResponse , done , ajax ) ;
769
+ let requestBid = JSON . parse ( requests [ 0 ] . requestBody ) ;
770
+
771
+ expect ( requestBid . regs . ext . us_privacy ) . is . equal ( '1NYN' ) ;
772
+ expect ( requestBid . regs . ext . gdpr ) . is . equal ( 1 ) ;
773
+ expect ( requestBid . user . ext . consent ) . is . equal ( 'abc123' ) ;
774
+
775
+ config . resetConfig ( ) ;
776
+ config . setConfig ( { s2sConfig : CONFIG } ) ;
777
+
778
+ adapter . callBids ( REQUEST , BID_REQUESTS , addBidResponse , done , ajax ) ;
779
+ requestBid = JSON . parse ( requests [ 1 ] . requestBody ) ;
780
+
781
+ expect ( requestBid . regs ) . to . not . exist ;
782
+ expect ( requestBid . user ) . to . not . exist ;
783
+ } ) ;
784
+
785
+ it ( 'is added to cookie_sync request when in bidRequest' , function ( ) {
786
+ let cookieSyncConfig = utils . deepClone ( CONFIG ) ;
787
+ cookieSyncConfig . syncEndpoint = 'https://prebid.adnxs.com/pbs/v1/cookie_sync' ;
788
+ config . setConfig ( { s2sConfig : cookieSyncConfig } ) ;
789
+
790
+ let consentBidRequest = utils . deepClone ( BID_REQUESTS ) ;
791
+ consentBidRequest [ 0 ] . uspConsent = '1YNN' ;
792
+ consentBidRequest [ 0 ] . gdprConsent = {
793
+ consentString : 'abc123def' ,
794
+ gdprApplies : true
795
+ } ;
796
+
797
+ adapter . callBids ( REQUEST , consentBidRequest , addBidResponse , done , ajax ) ;
798
+ let requestBid = JSON . parse ( requests [ 0 ] . requestBody ) ;
799
+
800
+ expect ( requestBid . us_privacy ) . is . equal ( '1YNN' ) ;
801
+ expect ( requestBid . gdpr ) . is . equal ( 1 ) ;
802
+ expect ( requestBid . gdpr_consent ) . is . equal ( 'abc123def' ) ;
803
+ expect ( requestBid . bidders ) . to . contain ( 'appnexus' ) . and . to . have . lengthOf ( 1 ) ;
804
+ expect ( requestBid . account ) . is . equal ( '1' ) ;
805
+ } ) ;
806
+ } ) ;
807
+
705
808
it ( 'sets invalid cacheMarkup value to 0' , function ( ) {
706
809
const s2sConfig = Object . assign ( { } , CONFIG , {
707
810
cacheMarkup : 999
0 commit comments