File tree 2 files changed +16
-0
lines changed
CSharpAnalytics/Protocols/Measurement
CSharpAnalytics.Tests/Protocols/Measurement 2 files changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -144,6 +144,17 @@ public void MeasurementAnalyticsClient_AdjustUriBeforeRequest_Clears_Fragment()
144
144
Assert . AreEqual ( actual . Fragment , "" ) ;
145
145
}
146
146
147
+ [ TestMethod ]
148
+ public void MeasurementAnalyticsClient_AdjustUriBeforeRequest_Adds_Uid_Parameter ( )
149
+ {
150
+ var originalUri = new Uri ( "http://anything.really.com/something#" + DateTime . UtcNow . ToString ( "o" ) ) ;
151
+ var client = new MeasurementAnalyticsClient ( ) { UserId = "Testing" } ;
152
+
153
+ var actual = client . AdjustUriBeforeRequest ( originalUri ) ;
154
+
155
+ StringAssert . Contains ( actual . Query , "uid=Testing" ) ;
156
+ }
157
+
147
158
[ TestMethod ]
148
159
public void MeasurementAnalyticsClient_OnTrack_Fires_When_Tracked ( )
149
160
{
Original file line number Diff line number Diff line change @@ -29,6 +29,8 @@ public class MeasurementAnalyticsClient
29
29
/// </summary>
30
30
public event EventHandler < MeasurementActivity > OnTrack = delegate { } ;
31
31
32
+ public string UserId { get ; set ; }
33
+
32
34
/// <summary>
33
35
/// Configure this MeasurementAnalyticsClient so it can start recording and sending analytics.
34
36
/// </summary>
@@ -178,6 +180,9 @@ private static void ValidateEnum(Enum index)
178
180
public Uri AdjustUriBeforeRequest ( Uri uri )
179
181
{
180
182
var parameters = GetQueryParameters ( uri . GetComponents ( UriComponents . Query , UriFormat . Unescaped ) ) ;
183
+ if ( ! String . IsNullOrWhiteSpace ( UserId ) )
184
+ parameters [ "uid" ] = UserId ;
185
+
181
186
AddQueueTimeFromFragment ( uri , parameters ) ;
182
187
return new UriBuilder ( uri ) { Query = GetQueryString ( parameters ) , Fragment = "" } . Uri ;
183
188
}
You can’t perform that action at this time.
0 commit comments