public static void ParseCompletedRequestId( string httpScaleRequestId, out string siteName, out string originalRequestId, out string workerName) { int firstSeparator = httpScaleRequestId.IndexOf('/'); siteName = IdnHelper.GetUnicode(httpScaleRequestId.Substring(0, firstSeparator)); int lastSeparator = httpScaleRequestId.LastIndexOf('/'); originalRequestId = httpScaleRequestId.Substring(0, lastSeparator); workerName = httpScaleRequestId.Substring(lastSeparator + 1); }
public void PunycodeToUnicodeConversionTest() { Assert.Equal(punycodeStrings.Length, unicodeStrings.Length); Assert.Equal(punycodeUserStrings.Length, unicodeUserStrings.Length); // Test straight Punycode to Unicode conversion. for (int i = 0; i < punycodeStrings.Length; i++) { Assert.Equal(IdnHelper.GetUnicode(punycodeStrings[i]), unicodeStrings[i]); } // Test Punycode to Unicode conversion for user names. for (int i = 0; i < punycodeUserStrings.Length; i++) { Assert.Equal(IdnHelper.GetUnicodeForUserName(punycodeUserStrings[i]), unicodeUserStrings[i]); } // Test user names that start with the $ sign. for (int i = 0; i < punycodeUserStrings.Length; i++) { Assert.Equal(IdnHelper.GetUnicodeForUserName("$" + punycodeUserStrings[i]), "$" + unicodeUserStrings[i]); } // Test user names in the email address format that has the @ sign in the middle. for (int i = 0; i < punycodeUserStrings.Length; i++) { // Skip null or empty strings. if (string.IsNullOrEmpty(punycodeUserStrings[i])) { continue; } for (int j = 0; j < punycodeStrings.Length; j++) { // Skip null or empty strings. if (string.IsNullOrEmpty(punycodeStrings[j])) { continue; } string pstring = punycodeUserStrings[i] + "@" + punycodeStrings[j]; string ustring = unicodeUserStrings[i] + "@" + unicodeStrings[j]; Assert.Equal(IdnHelper.GetUnicodeForUserName(pstring), ustring); } } }