public static bool ParseMessageUsingMAPIInspector(string fileName)
        {
            bool result = true;
            List <FiddlerExe.Fiddler.Session> allSessions = new List <FiddlerExe.Fiddler.Session>();

            FiddlerExe.Fiddler.Session sessionExe;

            List <FiddlerCore.Fiddler.Session> oAllSessionsNew = FiddlerCore.Fiddler.Utilities.ReadSessionArchive(fileName, false, "MAPIAutomationTest").ToList();
            int sessionCount = oAllSessionsNew.Count;

            for (int i = 0; i < sessionCount; i++)
            {
                FiddlerExe.Fiddler.HTTPRequestHeaders requestHeader = new FiddlerExe.Fiddler.HTTPRequestHeaders();
                if (oAllSessionsNew[i].RequestHeaders.Exists("X-RequestType"))
                {
                    requestHeader["X-RequestType"] = oAllSessionsNew[i].RequestHeaders["X-RequestType"];
                }
                if (oAllSessionsNew[i].RequestHeaders.ExistsAndContains("Content-Type", "application/mapi-http"))
                {
                    requestHeader["Content-Type"] = oAllSessionsNew[i].RequestHeaders["Content-Type"];
                }

                sessionExe = new FiddlerExe.Fiddler.Session(requestHeader, oAllSessionsNew[i].requestBodyBytes);
                sessionExe.responseBodyBytes = oAllSessionsNew[i].responseBodyBytes;

                if (oAllSessionsNew[i].ResponseHeaders.Exists("Transfer-Encoding"))
                {
                    sessionExe["Transfer-Encoding"] = oAllSessionsNew[i].ResponseHeaders["Transfer-Encoding"];
                }

                if (oAllSessionsNew[i].ResponseHeaders.Exists("X-ResponseCode"))
                {
                    sessionExe["X-ResponseCode"] = oAllSessionsNew[i].ResponseHeaders["X-ResponseCode"];
                }
                if (oAllSessionsNew[i].ResponseHeaders.Exists("Content-Type"))
                {
                    sessionExe["Content-Type"] = oAllSessionsNew[i].ResponseHeaders["Content-Type"];
                }
                sessionExe.fullUrl      = oAllSessionsNew[i].fullUrl;
                sessionExe["VirtualID"] = (i + 1).ToString();

                allSessions.Add(sessionExe);
            }

            MapiInspector.MAPIInspector ma = new MapiInspector.MAPIInspector();
            string errorPath = TestBase.testingfolderPath + Path.DirectorySeparatorChar + TestBase.testName;

            result = ma.ParseCaptureFile(allSessions.ToArray(), errorPath);
            return(result);
        }
Exemple #2
0
        /// <summary>
        /// Parse the capture file using the MAPI Inspector
        /// </summary>
        /// <param name="fileName">The file name to parse</param>
        /// <param name="allRops">All ROPs contained in list</param>
        /// <returns>Parse result, true means success</returns>
        public static bool ParseMessageUsingMAPIInspector(string fileName, out List <string> allRops)
        {
            bool result = true;
            List <FiddlerExe.Fiddler.Session> allSessions = new List <FiddlerExe.Fiddler.Session>();

            FiddlerExe.Fiddler.Session sessionExe;

            List <FiddlerCore.Fiddler.Session> allSessionsNew = FiddlerCore.Fiddler.Utilities.ReadSessionArchive(fileName, false, "MAPIAutomationTest").ToList();
            int sessionCount = allSessionsNew.Count;

            for (int i = 0; i < sessionCount; i++)
            {
                FiddlerExe.Fiddler.HTTPRequestHeaders requestHeader = new FiddlerExe.Fiddler.HTTPRequestHeaders();
                if (allSessionsNew[i].RequestHeaders.Exists("X-RequestType"))
                {
                    requestHeader["X-RequestType"] = allSessionsNew[i].RequestHeaders["X-RequestType"];
                }

                if (allSessionsNew[i].RequestHeaders.ExistsAndContains("Content-Type", "application/mapi-http"))
                {
                    requestHeader["Content-Type"] = allSessionsNew[i].RequestHeaders["Content-Type"];
                }

                if (allSessionsNew[i].RequestHeaders.Exists("X-ClientInfo"))
                {
                    requestHeader["X-ClientInfo"] = allSessionsNew[i].RequestHeaders["X-ClientInfo"];
                }

                sessionExe = new FiddlerExe.Fiddler.Session(requestHeader, allSessionsNew[i].requestBodyBytes);
                sessionExe.responseBodyBytes = allSessionsNew[i].responseBodyBytes;

                if (allSessionsNew[i].ResponseHeaders.Exists("Transfer-Encoding"))
                {
                    sessionExe["Transfer-Encoding"] = allSessionsNew[i].ResponseHeaders["Transfer-Encoding"];
                }

                if (allSessionsNew[i].ResponseHeaders.Exists("X-ResponseCode"))
                {
                    sessionExe["X-ResponseCode"] = allSessionsNew[i].ResponseHeaders["X-ResponseCode"];
                }

                if (allSessionsNew[i].ResponseHeaders.Exists("Content-Type"))
                {
                    sessionExe["Content-Type"] = allSessionsNew[i].ResponseHeaders["Content-Type"];
                }

                if (allSessionsNew[i].LocalProcess != string.Empty)
                {
                    sessionExe["LocalProcess"] = allSessionsNew[i].LocalProcess;
                }

                sessionExe.fullUrl      = allSessionsNew[i].fullUrl;
                sessionExe["VirtualID"] = (i + 1).ToString();

                allSessions.Add(sessionExe);
            }

            MapiInspector.MAPIInspector ma = new MapiInspector.MAPIInspector();
            // string errorPath = TestBase.TestingfolderPath + Path.DirectorySeparatorChar + TestBase.TestName;
            string errorPath = TestBase.filePath;

            result = ma.ParseCaptureFile(allSessions.ToArray(), errorPath, TestBase.TestName, out allRops);

            if (!result)
            {
                string filenameNew = fileName.Split('\\').Last().Split('.').First();
                File.Move(errorPath + "\\" + "error.txt", errorPath + "\\" + filenameNew + ".txt");
            }
            return(result);
        }
        public static bool ParseMessageUsingWOPIInspector(string fileName)
        {
            bool result = true;
            List <FiddlerExe.Fiddler.Session> allSessions = new List <FiddlerExe.Fiddler.Session>();

            FiddlerExe.Fiddler.Session sessionExe;

            List <FiddlerCore.Fiddler.Session> oAllSessionsNew = null;

            try
            {
                oAllSessionsNew = FiddlerCore.Fiddler.Utilities.ReadSessionArchive(fileName, false, "WOPIautomation").ToList();
            }
            catch
            {
                oAllSessionsNew = FiddlerCore.Fiddler.Utilities.ReadSessionArchive(fileName, false, "MAPIAutomationTest").ToList();
            }
            int sessionCount = oAllSessionsNew.Count;

            for (int i = 0; i < sessionCount; i++)
            {
                FiddlerExe.Fiddler.HTTPRequestHeaders requestHeader = new FiddlerExe.Fiddler.HTTPRequestHeaders();
                if (oAllSessionsNew[i].RequestHeaders.Exists("Content-Encoding"))
                {
                    requestHeader["Content-Encoding"] = oAllSessionsNew[i].RequestHeaders["Content-Encoding"];
                }

                if (oAllSessionsNew[i].RequestHeaders.Exists("SOAPAction"))
                {
                    requestHeader["SOAPAction"] = oAllSessionsNew[i].RequestHeaders["SOAPAction"];
                }

                // X-WOPI-Override
                if (oAllSessionsNew[i].RequestHeaders.Exists("X-WOPI-Override"))
                {
                    requestHeader["X-WOPI-Override"] = oAllSessionsNew[i].RequestHeaders["X-WOPI-Override"];
                }

                // X-WOPI-OldLock
                if (oAllSessionsNew[i].RequestHeaders.Exists("X-WOPI-OldLock"))
                {
                    requestHeader["X-WOPI-OldLock"] = oAllSessionsNew[i].RequestHeaders["X-WOPI-OldLock"];
                }

                // X-WOPI-RelativeTarget
                if (oAllSessionsNew[i].RequestHeaders.Exists("X-WOPI-RelativeTarget"))
                {
                    requestHeader["X-WOPI-RelativeTarget"] = oAllSessionsNew[i].RequestHeaders["X-WOPI-RelativeTarget"];
                }

                sessionExe = new FiddlerExe.Fiddler.Session(requestHeader, oAllSessionsNew[i].requestBodyBytes);
                sessionExe.responseBodyBytes = oAllSessionsNew[i].responseBodyBytes;

                if (oAllSessionsNew[i].ResponseHeaders.Exists("Transfer-Encoding"))
                {
                    sessionExe["Transfer-Encoding"] = oAllSessionsNew[i].ResponseHeaders["Transfer-Encoding"];
                }

                if (oAllSessionsNew[i].ResponseHeaders.Exists("Content-Encoding"))
                {
                    sessionExe["Content-Encoding"] = oAllSessionsNew[i].ResponseHeaders["Content-Encoding"];
                }

                // HTTPResponseStatus
                sessionExe["HTTPResponseStatus"] = oAllSessionsNew[i].ResponseHeaders.HTTPResponseStatus;

                // StatusDescription
                sessionExe["StatusDescription"] = oAllSessionsNew[i].ResponseHeaders.StatusDescription;

                sessionExe.fullUrl      = oAllSessionsNew[i].fullUrl;
                sessionExe["VirtualID"] = (i + 1).ToString();

                allSessions.Add(sessionExe);
            }


            string errorPath = TestBase.testingfolderPath;

            result = ParseCaptureFile(allSessions.ToArray(), TestBase.testResultPath);

            return(result);
        }