@@ -26,6 +26,10 @@ import {
2626 COOKIE_MDFIELD ,
2727} from './browser-klaro.service' ;
2828import { ANONYMOUS_STORAGE_NAME_KLARO } from './klaro-configuration' ;
29+ import {
30+ CAPTCHA_FEEDBACK_NAME ,
31+ CAPTCHA_REGISTRATION_NAME ,
32+ } from '../../core/google-recaptcha/google-recaptcha.service' ;
2933
3034describe ( 'BrowserKlaroService' , ( ) => {
3135 const trackingIdProp = 'google.analytics.key' ;
@@ -128,6 +132,12 @@ describe('BrowserKlaroService', () => {
128132 } , {
129133 name : googleAnalytics ,
130134 purposes : [ purpose ] ,
135+ } , {
136+ name : CAPTCHA_REGISTRATION_NAME ,
137+ purposes : [ purpose ] ,
138+ } , {
139+ name : CAPTCHA_FEEDBACK_NAME ,
140+ purposes : [ purpose ] ,
131141 } ] ,
132142
133143 } ;
@@ -466,5 +476,146 @@ describe('BrowserKlaroService', () => {
466476 service . initialize ( ) ;
467477 expect ( service . klaroConfig . services ) . not . toContain ( jasmine . objectContaining ( { name : googleAnalytics } ) ) ;
468478 } ) ;
479+ it ( 'should show both recaptcha services when both verifications are enabled' , ( ) => {
480+ configurationDataService . findByPropertyName = jasmine . createSpy ( 'configurationDataService' ) . and . returnValue (
481+ createSuccessfulRemoteDataObject$ ( {
482+ ... new ConfigurationProperty ( ) ,
483+ name : trackingIdTestValue ,
484+ values : [ 'true' ] ,
485+ } ) ,
486+ ) ;
487+ service . initialize ( ) ;
488+ expect ( service . klaroConfig . services ) . toContain ( jasmine . objectContaining ( { name : CAPTCHA_REGISTRATION_NAME } ) ) ;
489+ expect ( service . klaroConfig . services ) . toContain ( jasmine . objectContaining ( { name : CAPTCHA_FEEDBACK_NAME } ) ) ;
490+ } ) ;
491+ it ( 'should hide registration recaptcha service when registration verification is disabled' , ( ) => {
492+ configurationDataService . findByPropertyName =
493+ jasmine . createSpy ( 'configurationDataService' )
494+ . withArgs ( GOOGLE_ANALYTICS_KEY )
495+ . and
496+ . returnValue (
497+ createSuccessfulRemoteDataObject$ ( {
498+ ... new ConfigurationProperty ( ) ,
499+ name : trackingIdProp ,
500+ values : [ googleAnalytics ] ,
501+ } ) ,
502+ )
503+ . withArgs ( REGISTRATION_VERIFICATION_ENABLED_KEY )
504+ . and
505+ . returnValue (
506+ createSuccessfulRemoteDataObject$ ( {
507+ ... new ConfigurationProperty ( ) ,
508+ name : trackingIdTestValue ,
509+ values : [ 'false' ] ,
510+ } ) ,
511+ )
512+ . withArgs ( FEEDBACK_VERIFICATION_ENABLED_KEY )
513+ . and
514+ . returnValue (
515+ createSuccessfulRemoteDataObject$ ( {
516+ ... new ConfigurationProperty ( ) ,
517+ name : trackingIdTestValue ,
518+ values : [ 'true' ] ,
519+ } ) ,
520+ )
521+ . withArgs ( MATOMO_ENABLED )
522+ . and
523+ . returnValue (
524+ createSuccessfulRemoteDataObject$ ( {
525+ ... new ConfigurationProperty ( ) ,
526+ name : matomoTrackingId ,
527+ values : [ 'true' ] ,
528+ } ) ,
529+ ) ;
530+ service . initialize ( ) ;
531+ expect ( service . klaroConfig . services ) . not . toContain ( jasmine . objectContaining ( { name : CAPTCHA_REGISTRATION_NAME } ) ) ;
532+ expect ( service . klaroConfig . services ) . toContain ( jasmine . objectContaining ( { name : CAPTCHA_FEEDBACK_NAME } ) ) ;
533+ } ) ;
534+ it ( 'should hide feedback recaptcha service when feedback verification is disabled' , ( ) => {
535+ configurationDataService . findByPropertyName =
536+ jasmine . createSpy ( 'configurationDataService' )
537+ . withArgs ( GOOGLE_ANALYTICS_KEY )
538+ . and
539+ . returnValue (
540+ createSuccessfulRemoteDataObject$ ( {
541+ ... new ConfigurationProperty ( ) ,
542+ name : trackingIdProp ,
543+ values : [ googleAnalytics ] ,
544+ } ) ,
545+ )
546+ . withArgs ( REGISTRATION_VERIFICATION_ENABLED_KEY )
547+ . and
548+ . returnValue (
549+ createSuccessfulRemoteDataObject$ ( {
550+ ... new ConfigurationProperty ( ) ,
551+ name : trackingIdTestValue ,
552+ values : [ 'true' ] ,
553+ } ) ,
554+ )
555+ . withArgs ( FEEDBACK_VERIFICATION_ENABLED_KEY )
556+ . and
557+ . returnValue (
558+ createSuccessfulRemoteDataObject$ ( {
559+ ... new ConfigurationProperty ( ) ,
560+ name : trackingIdTestValue ,
561+ values : [ 'false' ] ,
562+ } ) ,
563+ )
564+ . withArgs ( MATOMO_ENABLED )
565+ . and
566+ . returnValue (
567+ createSuccessfulRemoteDataObject$ ( {
568+ ... new ConfigurationProperty ( ) ,
569+ name : matomoTrackingId ,
570+ values : [ 'true' ] ,
571+ } ) ,
572+ ) ;
573+ service . initialize ( ) ;
574+ expect ( service . klaroConfig . services ) . toContain ( jasmine . objectContaining ( { name : CAPTCHA_REGISTRATION_NAME } ) ) ;
575+ expect ( service . klaroConfig . services ) . not . toContain ( jasmine . objectContaining ( { name : CAPTCHA_FEEDBACK_NAME } ) ) ;
576+ } ) ;
577+ it ( 'should hide both recaptcha services when both verifications are disabled' , ( ) => {
578+ configurationDataService . findByPropertyName =
579+ jasmine . createSpy ( 'configurationDataService' )
580+ . withArgs ( GOOGLE_ANALYTICS_KEY )
581+ . and
582+ . returnValue (
583+ createSuccessfulRemoteDataObject$ ( {
584+ ... new ConfigurationProperty ( ) ,
585+ name : trackingIdProp ,
586+ values : [ googleAnalytics ] ,
587+ } ) ,
588+ )
589+ . withArgs ( REGISTRATION_VERIFICATION_ENABLED_KEY )
590+ . and
591+ . returnValue (
592+ createSuccessfulRemoteDataObject$ ( {
593+ ... new ConfigurationProperty ( ) ,
594+ name : trackingIdTestValue ,
595+ values : [ 'false' ] ,
596+ } ) ,
597+ )
598+ . withArgs ( FEEDBACK_VERIFICATION_ENABLED_KEY )
599+ . and
600+ . returnValue (
601+ createSuccessfulRemoteDataObject$ ( {
602+ ... new ConfigurationProperty ( ) ,
603+ name : trackingIdTestValue ,
604+ values : [ 'false' ] ,
605+ } ) ,
606+ )
607+ . withArgs ( MATOMO_ENABLED )
608+ . and
609+ . returnValue (
610+ createSuccessfulRemoteDataObject$ ( {
611+ ... new ConfigurationProperty ( ) ,
612+ name : matomoTrackingId ,
613+ values : [ 'true' ] ,
614+ } ) ,
615+ ) ;
616+ service . initialize ( ) ;
617+ expect ( service . klaroConfig . services ) . not . toContain ( jasmine . objectContaining ( { name : CAPTCHA_REGISTRATION_NAME } ) ) ;
618+ expect ( service . klaroConfig . services ) . not . toContain ( jasmine . objectContaining ( { name : CAPTCHA_FEEDBACK_NAME } ) ) ;
619+ } ) ;
469620 } ) ;
470621} ) ;
0 commit comments