public void MSASCMD_S20_TC01_ValidateCert_Success() { #region Switch to User9 mail account, the inbox had received a S/MIME mail. this.SwitchUser(this.User9Information); #endregion #region Call method Sync to synchronize changes of Inbox folder in User9's mailbox between the client and the server, and get the body content of the email item. string emailSubject = Common.GetConfigurationPropertyValue("MIMEMailSubject", this.Site); Request.BodyPreference bodyPreference = new Request.BodyPreference { AllOrNone = false, AllOrNoneSpecified = true, TruncationSize = 4294967295, TruncationSizeSpecified = true, Type = 4 }; Request.Options option = new Request.Options { Items = new object[] { (byte)2, bodyPreference, (byte)8 }, ItemsElementName = new Request.ItemsChoiceType1[] { Request.ItemsChoiceType1.MIMESupport, Request.ItemsChoiceType1.BodyPreference, Request.ItemsChoiceType1.MIMETruncation } }; SyncResponse syncResponse = this.CheckEmail(this.User9Information.InboxCollectionId, emailSubject, new Request.Options[] { option }); Response.Body mailBody = null; Response.SyncCollectionsCollectionCommandsAddApplicationData applicationData = TestSuiteBase.GetAddApplicationData(syncResponse, Response.ItemsChoiceType8.Subject1, emailSubject); for (int i = 0; i < applicationData.ItemsElementName.Length; i++) { if (applicationData.ItemsElementName[i] == Response.ItemsChoiceType8.Body) { mailBody = applicationData.Items[i] as Response.Body; break; } } Site.Assert.IsNotNull(mailBody, "The body of the received email should not be null."); string specifiedString = "MIME-Version: 1.0"; string body = mailBody.Data.Substring( mailBody.Data.IndexOf(specifiedString, StringComparison.CurrentCultureIgnoreCase) + specifiedString.Length); body = body.Replace("\r", string.Empty); body = body.Replace("\n", string.Empty); Request.ValidateCert validateCert = new Request.ValidateCert { CheckCrl = "1", Certificates = new byte[][] { System.Text.Encoding.Default.GetBytes(body) } }; ValidateCertRequest validateRequest = new ValidateCertRequest { RequestData = validateCert }; ValidateCertResponse validateResponse = this.CMDAdapter.ValidateCert(validateRequest); XmlNodeList status = this.GetValidateCertStatusCode(validateResponse); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4474"); // Verify MS-ASCMD requirement: MS-ASCMD_R4474 Site.CaptureRequirementIfAreEqual <string>( "1", status[0].InnerText, 4474, @"[In Status(ValidateCert)] [When the scope is Global], [the cause of the status value 1 is] Server successfully completed command."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R5387"); // Verify MS-ASCMD requirement: MS-ASCMD_R5387 Site.CaptureRequirementIfAreEqual <string>( "1", status[0].InnerText, 5387, @"[In Status(ValidateCert)] A value of 1 indicates success."); #endregion }
/// <summary> /// This method is used to verify the Body related requirements. /// </summary> /// <param name="body">The body of the email item.</param> private void VerifyBody(Body body) { if (body != null) { this.VerifyContainerStructure(); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASEMAIL_R250"); // If the schema validation is successful, then MS-ASEMAIL_R250 could be captured. // Verify MS-ASEMAIL requirement: MS-ASEMAIL_R250 Site.CaptureRequirementIfIsTrue( this.activeSyncClient.ValidationResult, 250, @"[In Body (Airsyncbase Namespace)] [When[airsyncbase:Body] included in a Sync command response ([MS-ASCMD] section 2.2.2.20), a Search command response ([MS-ASCMD] section 2.2.2.15), or an ItemOperations command response ([MS-ASCMD] section 2.2.2.9), the airsyncbase:Body element can contain the following child element:] airsyncbase:Type ([MS-ASAIRS] section 2.2.2.41.1): This element [airsyncbase:Type] is required."); } }