1
+ using System ;
2
+ using PubNubAPI ;
3
+ using NUnit . Framework ;
4
+ using System . Text ;
5
+ using System . Collections . Generic ;
6
+ using UnityEngine ;
7
+
8
+ namespace PubNubAPI . Tests
9
+ {
10
+ [ TestFixture ]
11
+ public class TokenManagerTests
12
+ {
13
+ [ Test ]
14
+ public void TestCBORTokens1 ( )
15
+ {
16
+ TestCBORTokensCommon ( "p0F2AkF0Gl2AX-JDdHRsCkNyZXOkRGNoYW6gQ2dycKBDdXNyoWl1LTMzNTIwNTUPQ3NwY6Fpcy0xNzA3OTgzGB9DcGF0pERjaGFuoENncnCgQ3VzcqBDc3BjoERtZXRhoENzaWdYINqGs2EyEMHPZrp6znVqTBzXNBAD_31hUH3JuUSWE2A6" ) ;
17
+ }
18
+ [ Test ]
19
+ public void TestCBORTokens2 ( )
20
+ {
21
+ TestCBORTokensCommon ( "p0F2AkF0Gl2AaMlDdHRsCkNyZXOkRGNoYW6gQ2dycKBDdXNyoWl1LTE5NzQxMDcPQ3NwY6Fpcy0yMzExMDExGB9DcGF0pERjaGFuoENncnCgQ3VzcqBDc3BjoERtZXRhoENzaWdYIO1ti19DLbEKK-s_COJPlM1xtZCpP8K4sV51nvRPTIxf" ) ;
22
+ }
23
+ [ Test ]
24
+ public void TestCBORTokens3 ( )
25
+ {
26
+ TestCBORTokensCommon ( "p0F2AkF0Gl2CEiRDdHRsA0NyZXOkRGNoYW6gQ2dycKBDdXNyoW50ZXN0dXNlcl8xNjY2ORgfQ3NwY6FvdGVzdHNwYWNlXzE1MDExGB9DcGF0pERjaGFuoENncnCgQ3VzcqBDc3BjoERtZXRhoENzaWdYIMqDoIOYPP9ULfXKLDK3eoGQ-C8nJxPTWFCDAc-Flxu7" ) ;
27
+ }
28
+ [ Test ]
29
+ public void TestCBORTokens4 ( )
30
+ {
31
+ TestCBORTokensCommon ( "p0F2AkF0Gl2CEiVDdHRsA0NyZXOkRGNoYW6gQ2dycKBDdXNyoENzcGOgQ3BhdKREY2hhbqBDZ3JwoEN1c3KhY14uKhgfQ3NwY6FjXi4qGB9EbWV0YaBDc2lnWCDfqMStM0r1GgghNjt1MPeSaA0ADTw6aGsuQgMT3jYylg==" ) ;
32
+ }
33
+
34
+ public void TestCBORTokensCommon ( string token )
35
+ {
36
+ PNConfiguration pnConfiguration = new PNConfiguration ( ) ;
37
+
38
+ PubNubUnity pnUnity = new PubNubUnity ( pnConfiguration , null , null ) ;
39
+ pnConfiguration . StoreTokensOnGrant = true ;
40
+ pnConfiguration . SecretKey = "" ;
41
+
42
+ Debug . Log ( "Token: " + token ) ;
43
+ TokenManager tm = new TokenManager ( pnUnity ) ;
44
+ tm . StoreToken ( token ) ;
45
+ var p = tm . GetPermissions ( token ) ;
46
+ Debug . Log ( "TTL: " + p . TTL ) ;
47
+ Debug . Log ( "Version: " + p . Version ) ;
48
+ Debug . Log ( "Timestamp: " + p . Timestamp ) ;
49
+ Debug . Log ( "Meta: " + p . Meta ) ;
50
+ Debug . Log ( "Signature: " + System . Text . Encoding . ASCII . GetString ( p . Signature ) ) ;
51
+ foreach ( KeyValuePair < string , int > kvp in p . Patterns . Channels ) {
52
+ Debug . Log ( string . Format ( "Patterns Channels: key {0}, val {1}" , kvp . Key , kvp . Value ) ) ;
53
+ }
54
+ foreach ( KeyValuePair < string , int > kvp in p . Patterns . Groups ) {
55
+ Debug . Log ( string . Format ( "Patterns Groups: key {0}, val {1}" , kvp . Key , kvp . Value ) ) ;
56
+ }
57
+ foreach ( KeyValuePair < string , int > kvp in p . Patterns . Users ) {
58
+ Debug . Log ( string . Format ( "Patterns Users: key {0}, val {1}" , kvp . Key , kvp . Value ) ) ;
59
+ }
60
+ foreach ( KeyValuePair < string , int > kvp in p . Patterns . Spaces ) {
61
+ Debug . Log ( string . Format ( "Patterns Spaces: key {0}, val {1}" , kvp . Key , kvp . Value ) ) ;
62
+ }
63
+ foreach ( KeyValuePair < string , int > kvp in p . Resources . Channels ) {
64
+ Debug . Log ( string . Format ( "Resources Channels: key {0}, val {1}" , kvp . Key , kvp . Value ) ) ;
65
+ }
66
+ foreach ( KeyValuePair < string , int > kvp in p . Resources . Groups ) {
67
+ Debug . Log ( string . Format ( "Resources Groups: key {0}, val {1}" , kvp . Key , kvp . Value ) ) ;
68
+ }
69
+ foreach ( KeyValuePair < string , int > kvp in p . Resources . Spaces ) {
70
+ Debug . Log ( string . Format ( "Resources Spaces: key {0}, val {1}" , kvp . Key , kvp . Value ) ) ;
71
+ }
72
+ foreach ( KeyValuePair < string , int > kvp in p . Resources . Users ) {
73
+ Debug . Log ( string . Format ( "Resources Users: key {0}, val {1}" , kvp . Key , kvp . Value ) ) ;
74
+ }
75
+
76
+ }
77
+ [ Test ]
78
+ public void TestCBORTokensCommon ( )
79
+ {
80
+ string t1 = "p0F2AkF0Gl2AX-JDdHRsCkNyZXOkRGNoYW6gQ2dycKBDdXNyoWl1LTMzNTIwNTUPQ3NwY6Fpcy0xNzA3OTgzGB9DcGF0pERjaGFuoENncnCgQ3VzcqBDc3BjoERtZXRhoENzaWdYINqGs2EyEMHPZrp6znVqTBzXNBAD_31hUH3JuUSWE2A6" ;
81
+ string t2 = "p0F2AkF0Gl2AaMlDdHRsCkNyZXOkRGNoYW6gQ2dycKBDdXNyoWl1LTE5NzQxMDcPQ3NwY6Fpcy0yMzExMDExGB9DcGF0pERjaGFuoENncnCgQ3VzcqBDc3BjoERtZXRhoENzaWdYIO1ti19DLbEKK-s_COJPlM1xtZCpP8K4sV51nvRPTIxf" ;
82
+ string t3 = "p0F2AkF0Gl2CEiRDdHRsA0NyZXOkRGNoYW6gQ2dycKBDdXNyoW50ZXN0dXNlcl8xNjY2ORgfQ3NwY6FvdGVzdHNwYWNlXzE1MDExGB9DcGF0pERjaGFuoENncnCgQ3VzcqBDc3BjoERtZXRhoENzaWdYIMqDoIOYPP9ULfXKLDK3eoGQ-C8nJxPTWFCDAc-Flxu7" ;
83
+ string t4 = "p0F2AkF0Gl2CEiVDdHRsA0NyZXOkRGNoYW6gQ2dycKBDdXNyoENzcGOgQ3BhdKREY2hhbqBDZ3JwoEN1c3KhY14uKhgfQ3NwY6FjXi4qGB9EbWV0YaBDc2lnWCDfqMStM0r1GgghNjt1MPeSaA0ADTw6aGsuQgMT3jYylg==" ;
84
+
85
+ PNConfiguration pnConfiguration = new PNConfiguration ( ) ;
86
+
87
+ PubNubUnity pnUnity = new PubNubUnity ( pnConfiguration , null , null ) ;
88
+ pnConfiguration . StoreTokensOnGrant = true ;
89
+ pnConfiguration . SecretKey = "" ;
90
+
91
+ PubNub pn = new PubNub ( pnConfiguration ) ;
92
+
93
+ pn . SetTokens ( new List < string > { t1 , t2 , t3 , t4 } ) ;
94
+
95
+ GrantResourcesWithPermissions g = pn . GetTokens ( ) ;
96
+ Assert . IsTrue ( g . Channels . Count . Equals ( 0 ) ) ;
97
+ Assert . IsTrue ( g . Groups . Count . Equals ( 0 ) ) ;
98
+ Assert . IsTrue ( g . ChannelsPattern . Count . Equals ( 0 ) ) ;
99
+ Assert . IsTrue ( g . GroupsPattern . Count . Equals ( 0 ) ) ;
100
+ foreach ( KeyValuePair < string , UserSpacePermissionsWithToken > kvp in g . Users ) {
101
+ Debug . Log ( kvp . Key + "===>" + kvp . Value ) ;
102
+ UserSpacePermissionsWithToken u ;
103
+
104
+ if ( g . Users . TryGetValue ( kvp . Key , out u ) ) {
105
+ Debug . Log ( kvp . Key + "=======>" + u . Token ) ;
106
+ }
107
+ }
108
+ UserSpacePermissionsWithToken u1 ;
109
+ if ( g . Users . TryGetValue ( "testuser_16669" , out u1 ) ) {
110
+ Debug . Log ( "testuser_16669 =======>" + u1 . Token ) ;
111
+ } else {
112
+ Debug . Log ( "testuser_16669 not found" ) ;
113
+ }
114
+ Debug . Log ( g . Users . ContainsKey ( "testuser_16669" ) ) ;
115
+ Debug . Log ( g . Users . ContainsKey ( "u-1974107" ) ) ;
116
+ Debug . Log ( g . Users . ContainsKey ( "u-3352055" ) ) ;
117
+ Assert . IsTrue ( g . Users [ "testuser_16669" ] . BitMaskPerms . Equals ( 31 ) ) ;
118
+ Assert . IsTrue ( g . Users [ "testuser_16669" ] . TTL . Equals ( 3 ) ) ;
119
+ Assert . IsTrue ( g . Users [ "testuser_16669" ] . Timestamp . Equals ( 1568805412 ) ) ;
120
+
121
+ Assert . IsTrue ( g . Users [ "testuser_16669" ] . Token . Equals ( t3 ) ) ;
122
+ Assert . IsTrue ( g . Users [ "testuser_16669" ] . Permissions . Read . Equals ( true ) ) ;
123
+ Assert . IsTrue ( g . Users [ "testuser_16669" ] . Permissions . Write . Equals ( true ) ) ;
124
+ Assert . IsTrue ( g . Users [ "testuser_16669" ] . Permissions . Delete . Equals ( true ) ) ;
125
+ Assert . IsTrue ( g . Users [ "testuser_16669" ] . Permissions . Create . Equals ( true ) ) ;
126
+ Assert . IsTrue ( g . Users [ "testuser_16669" ] . Permissions . Manage . Equals ( true ) ) ;
127
+
128
+ Assert . IsTrue ( g . Spaces [ "testspace_15011" ] . Token . Equals ( t3 ) ) ;
129
+ Assert . IsTrue ( g . Spaces [ "testspace_15011" ] . Permissions . Read . Equals ( true ) ) ;
130
+ Assert . IsTrue ( g . Spaces [ "testspace_15011" ] . Permissions . Write . Equals ( true ) ) ;
131
+ Assert . IsTrue ( g . Spaces [ "testspace_15011" ] . Permissions . Delete . Equals ( true ) ) ;
132
+ Assert . IsTrue ( g . Spaces [ "testspace_15011" ] . Permissions . Create . Equals ( true ) ) ;
133
+ Assert . IsTrue ( g . Spaces [ "testspace_15011" ] . Permissions . Manage . Equals ( true ) ) ;
134
+
135
+ Assert . IsTrue ( g . Users [ "u-1974107" ] . Token . Equals ( t2 ) ) ;
136
+ Assert . IsTrue ( g . Spaces [ "s-1707983" ] . Token . Equals ( t1 ) ) ;
137
+
138
+ Assert . IsTrue ( g . UsersPattern [ "^.*" ] . Token . Equals ( t4 ) ) ;
139
+ Assert . IsTrue ( g . SpacesPattern [ "^.*" ] . Token . Equals ( t4 ) ) ;
140
+
141
+ GrantResourcesWithPermissions g2 = pn . GetTokensByResource ( PNResourceType . PNUsers ) ;
142
+ Assert . IsTrue ( g2 . Users [ "testuser_16669" ] . BitMaskPerms . Equals ( 31 ) ) ;
143
+ Assert . IsTrue ( g2 . Users [ "testuser_16669" ] . TTL . Equals ( 3 ) ) ;
144
+ Assert . IsTrue ( g2 . Users [ "testuser_16669" ] . Timestamp . Equals ( 1568805412 ) ) ;
145
+
146
+ Assert . IsTrue ( g2 . Users [ "testuser_16669" ] . Token . Equals ( t3 ) ) ;
147
+ Assert . IsTrue ( g2 . Users [ "testuser_16669" ] . Permissions . Read . Equals ( true ) ) ;
148
+ Assert . IsTrue ( g2 . Users [ "testuser_16669" ] . Permissions . Write . Equals ( true ) ) ;
149
+ Assert . IsTrue ( g2 . Users [ "testuser_16669" ] . Permissions . Delete . Equals ( true ) ) ;
150
+ Assert . IsTrue ( g2 . Users [ "testuser_16669" ] . Permissions . Create . Equals ( true ) ) ;
151
+ Assert . IsTrue ( g2 . Users [ "testuser_16669" ] . Permissions . Manage . Equals ( true ) ) ;
152
+ Assert . IsTrue ( g2 . Users [ "u-1974107" ] . Token . Equals ( t2 ) ) ;
153
+ Assert . IsTrue ( g2 . UsersPattern [ "^.*" ] . Token . Equals ( t4 ) ) ;
154
+
155
+ GrantResourcesWithPermissions g3 = pn . GetTokensByResource ( PNResourceType . PNSpaces ) ;
156
+ Assert . IsTrue ( g3 . Spaces [ "testspace_15011" ] . BitMaskPerms . Equals ( 31 ) ) ;
157
+ Assert . IsTrue ( g3 . Spaces [ "testspace_15011" ] . TTL . Equals ( 3 ) ) ;
158
+ Assert . IsTrue ( g3 . Spaces [ "testspace_15011" ] . Timestamp . Equals ( 1568805412 ) ) ;
159
+
160
+ Assert . IsTrue ( g3 . Spaces [ "testspace_15011" ] . Token . Equals ( t3 ) ) ;
161
+ Assert . IsTrue ( g3 . Spaces [ "testspace_15011" ] . Permissions . Read . Equals ( true ) ) ;
162
+ Assert . IsTrue ( g3 . Spaces [ "testspace_15011" ] . Permissions . Write . Equals ( true ) ) ;
163
+ Assert . IsTrue ( g3 . Spaces [ "testspace_15011" ] . Permissions . Delete . Equals ( true ) ) ;
164
+ Assert . IsTrue ( g3 . Spaces [ "testspace_15011" ] . Permissions . Create . Equals ( true ) ) ;
165
+ Assert . IsTrue ( g3 . Spaces [ "testspace_15011" ] . Permissions . Manage . Equals ( true ) ) ;
166
+ Assert . IsTrue ( g3 . Spaces [ "s-1707983" ] . Token . Equals ( t1 ) ) ;
167
+ Assert . IsTrue ( g3 . SpacesPattern [ "^.*" ] . Token . Equals ( t4 ) ) ;
168
+
169
+ string g4 = pn . GetToken ( "testspace_15011" , PNResourceType . PNSpaces ) ;
170
+ Debug . Log ( "g4" + g4 ) ;
171
+ Assert . IsTrue ( g4 . Equals ( t3 ) ) ;
172
+ string g5 = pn . GetToken ( "testuser_16669" , PNResourceType . PNUsers ) ;
173
+ Assert . IsTrue ( g5 . Equals ( t3 ) ) ;
174
+ string g6 = pn . GetToken ( "^.*" , PNResourceType . PNSpaces ) ;
175
+ Assert . IsTrue ( g6 . Equals ( t4 ) ) ;
176
+ string g7 = pn . GetToken ( "^.*" , PNResourceType . PNUsers ) ;
177
+ Assert . IsTrue ( g7 . Equals ( t4 ) ) ;
178
+ string g8 = pn . GetToken ( "NONEXISTENT" , PNResourceType . PNSpaces ) ;
179
+ Assert . IsTrue ( g8 . Equals ( t4 ) ) ;
180
+ string g9 = pn . GetToken ( "NONEXISTENT" , PNResourceType . PNUsers ) ;
181
+ Assert . IsTrue ( g9 . Equals ( t4 ) ) ;
182
+
183
+ }
184
+ }
185
+ }
0 commit comments