48
48
import com .onesignal .OSNotificationPayload ;
49
49
import com .onesignal .OSPermissionObserver ;
50
50
import com .onesignal .OSPermissionStateChanges ;
51
+ import com .onesignal .OSPermissionSubscriptionState ;
51
52
import com .onesignal .OSSubscriptionObserver ;
52
53
import com .onesignal .OSSubscriptionStateChanges ;
53
54
import com .onesignal .OneSignal ;
@@ -1620,13 +1621,13 @@ public void shouldFirePermissionObserverOnFirstAdd() throws Exception {
1620
1621
@ Override
1621
1622
public void onOSPermissionChanged (OSPermissionStateChanges stateChanges ) {
1622
1623
lastPermissionStateChanges = stateChanges ;
1623
- currentPermission = stateChanges .to .getEnabled ();
1624
+ currentPermission = stateChanges .getTo () .getEnabled ();
1624
1625
}
1625
1626
};
1626
1627
OneSignal .addPermissionObserver (permissionObserver );
1627
1628
1628
- Assert .assertFalse (lastPermissionStateChanges .from .getEnabled ());
1629
- Assert .assertTrue (lastPermissionStateChanges .to .getEnabled ());
1629
+ Assert .assertFalse (lastPermissionStateChanges .getFrom () .getEnabled ());
1630
+ Assert .assertTrue (lastPermissionStateChanges .getTo () .getEnabled ());
1630
1631
// Test to make sure object was correct at the time of firing.
1631
1632
Assert .assertTrue (currentPermission );
1632
1633
}
@@ -1640,7 +1641,7 @@ public void shouldFirePermissionObserverWhenUserDisablesNotifications() throws E
1640
1641
@ Override
1641
1642
public void onOSPermissionChanged (OSPermissionStateChanges stateChanges ) {
1642
1643
lastPermissionStateChanges = stateChanges ;
1643
- currentPermission = stateChanges .to .getEnabled ();
1644
+ currentPermission = stateChanges .getTo () .getEnabled ();
1644
1645
}
1645
1646
};
1646
1647
OneSignal .addPermissionObserver (permissionObserver );
@@ -1654,8 +1655,8 @@ public void onOSPermissionChanged(OSPermissionStateChanges stateChanges) {
1654
1655
blankActivityController .resume ();
1655
1656
threadAndTaskWait ();
1656
1657
1657
- Assert .assertTrue (lastPermissionStateChanges .from .getEnabled ());
1658
- Assert .assertFalse (lastPermissionStateChanges .to .getEnabled ());
1658
+ Assert .assertTrue (lastPermissionStateChanges .getFrom () .getEnabled ());
1659
+ Assert .assertFalse (lastPermissionStateChanges .getTo () .getEnabled ());
1659
1660
// Test to make sure object was correct at the time of firing.
1660
1661
Assert .assertFalse (currentPermission );
1661
1662
// unsubscribeWhenNotificationsAreDisabled is not set so don't send notification_types.
@@ -1707,13 +1708,13 @@ public void shouldFireSubscriptionObserverOnFirstAdd() throws Exception {
1707
1708
@ Override
1708
1709
public void onOSSubscriptionChanged (OSSubscriptionStateChanges stateChanges ) {
1709
1710
lastSubscriptionStateChanges = stateChanges ;
1710
- currentSubscription = stateChanges .to .getSubscribed ();
1711
+ currentSubscription = stateChanges .getTo () .getSubscribed ();
1711
1712
}
1712
1713
};
1713
1714
OneSignal .addSubscriptionObserver (permissionObserver );
1714
1715
1715
- Assert .assertFalse (lastSubscriptionStateChanges .from .getSubscribed ());
1716
- Assert .assertTrue (lastSubscriptionStateChanges .to .getSubscribed ());
1716
+ Assert .assertFalse (lastSubscriptionStateChanges .getFrom () .getSubscribed ());
1717
+ Assert .assertTrue (lastSubscriptionStateChanges .getTo () .getSubscribed ());
1717
1718
// Test to make sure object was correct at the time of firing.
1718
1719
Assert .assertTrue (currentSubscription );
1719
1720
}
@@ -1727,7 +1728,7 @@ public void shouldFireSubscriptionObserverWhenUserDisablesNotifications() throws
1727
1728
@ Override
1728
1729
public void onOSSubscriptionChanged (OSSubscriptionStateChanges stateChanges ) {
1729
1730
lastSubscriptionStateChanges = stateChanges ;
1730
- currentSubscription = stateChanges .to .getSubscribed ();
1731
+ currentSubscription = stateChanges .getTo () .getSubscribed ();
1731
1732
}
1732
1733
};
1733
1734
OneSignal .addSubscriptionObserver (subscriptionObserver );
@@ -1741,8 +1742,8 @@ public void onOSSubscriptionChanged(OSSubscriptionStateChanges stateChanges) {
1741
1742
blankActivityController .resume ();
1742
1743
threadAndTaskWait ();
1743
1744
1744
- Assert .assertTrue (lastSubscriptionStateChanges .from .getSubscribed ());
1745
- Assert .assertFalse (lastSubscriptionStateChanges .to .getSubscribed ());
1745
+ Assert .assertTrue (lastSubscriptionStateChanges .getFrom () .getSubscribed ());
1746
+ Assert .assertFalse (lastSubscriptionStateChanges .getTo () .getSubscribed ());
1746
1747
// Test to make sure object was correct at the time of firing.
1747
1748
Assert .assertFalse (currentSubscription );
1748
1749
// unsubscribeWhenNotificationsAreDisabled is not set so don't send notification_types.
@@ -1756,21 +1757,48 @@ public void shouldFireSubscriptionObserverWhenChangesHappen() throws Exception {
1756
1757
@ Override
1757
1758
public void onOSSubscriptionChanged (OSSubscriptionStateChanges stateChanges ) {
1758
1759
lastSubscriptionStateChanges = stateChanges ;
1759
- currentSubscription = stateChanges .to .getSubscribed ();
1760
+ currentSubscription = stateChanges .getTo () .getSubscribed ();
1760
1761
}
1761
1762
};
1762
1763
OneSignal .addSubscriptionObserver (permissionObserver );
1763
1764
threadAndTaskWait ();
1764
1765
1765
- Assert .assertFalse (lastSubscriptionStateChanges .from .getSubscribed ());
1766
- Assert .assertTrue (lastSubscriptionStateChanges .to .getSubscribed ());
1766
+ Assert .assertFalse (lastSubscriptionStateChanges .getFrom () .getSubscribed ());
1767
+ Assert .assertTrue (lastSubscriptionStateChanges .getTo () .getSubscribed ());
1767
1768
// Test to make sure object was correct at the time of firing.
1768
1769
Assert .assertTrue (currentSubscription );
1769
- Assert .assertTrue (lastSubscriptionStateChanges .to .getUserSubscriptionSetting ());
1770
- Assert .assertEquals (ShadowPushRegistratorGPS .regId , lastSubscriptionStateChanges .to .getPushToken ());
1771
- Assert .assertEquals (ShadowOneSignalRestClient .testUserId , lastSubscriptionStateChanges .to .getUserId ());
1770
+ Assert .assertTrue (lastSubscriptionStateChanges .getTo () .getUserSubscriptionSetting ());
1771
+ Assert .assertEquals (ShadowPushRegistratorGPS .regId , lastSubscriptionStateChanges .getTo () .getPushToken ());
1772
+ Assert .assertEquals (ShadowOneSignalRestClient .testUserId , lastSubscriptionStateChanges .getTo () .getUserId ());
1772
1773
}
1773
1774
1775
+ @ Test
1776
+ public void shouldNotFireSubscriptionObserverWhenChangesHappenIfRemoved () throws Exception {
1777
+ OneSignalInit ();
1778
+ OSSubscriptionObserver permissionObserver = new OSSubscriptionObserver () {
1779
+ @ Override
1780
+ public void onOSSubscriptionChanged (OSSubscriptionStateChanges stateChanges ) {
1781
+ lastSubscriptionStateChanges = stateChanges ;
1782
+ currentSubscription = stateChanges .getTo ().getSubscribed ();
1783
+ }
1784
+ };
1785
+ OneSignal .addSubscriptionObserver (permissionObserver );
1786
+ lastSubscriptionStateChanges = null ;
1787
+ OneSignal .removeSubscriptionObserver (permissionObserver );
1788
+ threadAndTaskWait ();
1789
+
1790
+ Assert .assertFalse (currentSubscription );
1791
+ Assert .assertNull (lastSubscriptionStateChanges );
1792
+ }
1793
+
1794
+ @ Test
1795
+ public void shouldReturnCorrectGetPermissionSubscriptionState () throws Exception {
1796
+ OneSignalInit ();
1797
+ threadAndTaskWait ();
1798
+ OSPermissionSubscriptionState permissionSubscriptionState = OneSignal .getPermissionSubscriptionState ();
1799
+ Assert .assertTrue (permissionSubscriptionState .getPermissionStatus ().getEnabled ());
1800
+ Assert .assertTrue (permissionSubscriptionState .getSubscriptionStatus ().getSubscribed ());
1801
+ }
1774
1802
1775
1803
// ####### Unit test helper methods ########
1776
1804
0 commit comments