@@ -512,13 +512,16 @@ class ContributesRemoteFeatureCodeGeneratorTest {
512
512
assertTrue(testFeature.defaultTrue().isEnabled())
513
513
assertFalse(testFeature.internalDefaultFalse().isEnabled())
514
514
assertFalse(testFeature.defaultFalse().isEnabled())
515
+ assertFalse(testFeature.defaultValueInternal().isEnabled())
515
516
516
517
whenever(appBuildConfig.flavor).thenReturn(INTERNAL )
517
518
assertTrue(privacyPlugin.store(" testFeature" , jsonString))
518
519
assertTrue(testFeature.internalDefaultTrue().isEnabled())
519
520
assertTrue(testFeature.defaultTrue().isEnabled())
520
521
assertTrue(testFeature.internalDefaultFalse().isEnabled())
521
522
assertFalse(testFeature.defaultFalse().isEnabled())
523
+ // the default value doesn't get re-evaluated, it's assigned when toggle is first created. That's why this returns FALSE
524
+ assertFalse(testFeature.defaultValueInternal().isEnabled())
522
525
523
526
jsonString = """
524
527
{
@@ -535,6 +538,9 @@ class ContributesRemoteFeatureCodeGeneratorTest {
535
538
},
536
539
"defaultFalse": {
537
540
"state": "enabled"
541
+ },
542
+ "defaultValueInternal": {
543
+ "state": "enabled"
538
544
}
539
545
}
540
546
}
@@ -546,13 +552,15 @@ class ContributesRemoteFeatureCodeGeneratorTest {
546
552
assertTrue(testFeature.defaultTrue().isEnabled())
547
553
assertTrue(testFeature.internalDefaultFalse().isEnabled())
548
554
assertTrue(testFeature.defaultFalse().isEnabled())
555
+ assertTrue(testFeature.defaultValueInternal().isEnabled())
549
556
550
557
whenever(appBuildConfig.flavor).thenReturn(INTERNAL )
551
558
assertTrue(privacyPlugin.store(" testFeature" , jsonString))
552
559
assertTrue(testFeature.internalDefaultTrue().isEnabled())
553
560
assertTrue(testFeature.defaultTrue().isEnabled())
554
561
assertTrue(testFeature.internalDefaultFalse().isEnabled())
555
562
assertTrue(testFeature.defaultFalse().isEnabled())
563
+ assertTrue(testFeature.defaultValueInternal().isEnabled())
556
564
557
565
jsonString = """
558
566
{
@@ -569,6 +577,9 @@ class ContributesRemoteFeatureCodeGeneratorTest {
569
577
},
570
578
"defaultFalse": {
571
579
"state": "disabled"
580
+ },
581
+ "defaultValueInternal": {
582
+ "state": "disabled"
572
583
}
573
584
}
574
585
}
@@ -579,13 +590,15 @@ class ContributesRemoteFeatureCodeGeneratorTest {
579
590
assertFalse(testFeature.defaultTrue().isEnabled())
580
591
assertFalse(testFeature.internalDefaultFalse().isEnabled())
581
592
assertFalse(testFeature.defaultFalse().isEnabled())
593
+ assertFalse(testFeature.defaultValueInternal().isEnabled())
582
594
583
595
whenever(appBuildConfig.flavor).thenReturn(INTERNAL )
584
596
assertTrue(privacyPlugin.store(" testFeature" , jsonString))
585
597
assertTrue(testFeature.internalDefaultTrue().isEnabled())
586
598
assertFalse(testFeature.defaultTrue().isEnabled())
587
599
assertTrue(testFeature.internalDefaultFalse().isEnabled())
588
600
assertFalse(testFeature.defaultFalse().isEnabled())
601
+ assertFalse(testFeature.defaultValueInternal().isEnabled())
589
602
590
603
jsonString = """
591
604
{
@@ -602,6 +615,9 @@ class ContributesRemoteFeatureCodeGeneratorTest {
602
615
},
603
616
"defaultFalse": {
604
617
"state": "internal"
618
+ },
619
+ "defaultValueInternal": {
620
+ "state": "internal"
605
621
}
606
622
}
607
623
}
@@ -612,13 +628,72 @@ class ContributesRemoteFeatureCodeGeneratorTest {
612
628
assertFalse(testFeature.defaultTrue().isEnabled())
613
629
assertFalse(testFeature.internalDefaultFalse().isEnabled())
614
630
assertFalse(testFeature.defaultFalse().isEnabled())
631
+ assertFalse(testFeature.defaultValueInternal().isEnabled())
615
632
616
633
whenever(appBuildConfig.flavor).thenReturn(INTERNAL )
617
634
assertTrue(privacyPlugin.store(" testFeature" , jsonString))
618
635
assertTrue(testFeature.internalDefaultTrue().isEnabled())
619
636
assertTrue(testFeature.defaultTrue().isEnabled())
620
637
assertTrue(testFeature.internalDefaultFalse().isEnabled())
621
638
assertTrue(testFeature.defaultFalse().isEnabled())
639
+ assertTrue(testFeature.defaultValueInternal().isEnabled())
640
+ }
641
+
642
+ @Test
643
+ fun `test default value set to internal` () {
644
+ val feature = generatedFeatureNewInstance()
645
+ val privacyPlugin = (feature as PrivacyFeaturePlugin )
646
+
647
+ // Order matters, we need to start with the config that does not have any features
648
+ var jsonString = """
649
+ {
650
+ "state": "disabled",
651
+ "features": {}
652
+ }
653
+ """ .trimIndent()
654
+
655
+ assertTrue(privacyPlugin.store(" testFeature" , jsonString))
656
+ whenever(appBuildConfig.flavor).thenReturn(INTERNAL )
657
+ assertTrue(testFeature.defaultValueInternal().isEnabled())
658
+
659
+ jsonString = """
660
+ {
661
+ "state": "disabled",
662
+ "features": {
663
+ "defaultValueInternal": {
664
+ "state": "enabled"
665
+ }
666
+ }
667
+ }
668
+ """ .trimIndent()
669
+ assertTrue(privacyPlugin.store(" testFeature" , jsonString))
670
+ assertTrue(testFeature.defaultValueInternal().isEnabled())
671
+
672
+ jsonString = """
673
+ {
674
+ "state": "disabled",
675
+ "features": {
676
+ "defaultValueInternal": {
677
+ "state": "disabled"
678
+ }
679
+ }
680
+ }
681
+ """ .trimIndent()
682
+ assertTrue(privacyPlugin.store(" testFeature" , jsonString))
683
+ assertFalse(testFeature.defaultValueInternal().isEnabled())
684
+
685
+ jsonString = """
686
+ {
687
+ "state": "disabled",
688
+ "features": {
689
+ "defaultValueInternal": {
690
+ "state": "internal"
691
+ }
692
+ }
693
+ }
694
+ """ .trimIndent()
695
+ assertTrue(privacyPlugin.store(" testFeature" , jsonString))
696
+ assertTrue(testFeature.defaultValueInternal().isEnabled())
622
697
}
623
698
624
699
@Test
0 commit comments