OSDN Git Service

二期からエラーログのトークンを削除できていないのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Thu, 20 Sep 2018 12:58:01 +0000 (21:58 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Thu, 20 Sep 2018 12:58:01 +0000 (21:58 +0900)
KancolleSniffer.Test/ErrorLogTest.cs
KancolleSniffer/ErrorLog.cs

index 913dd91..fb9e509 100644 (file)
@@ -23,8 +23,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void RemoveTokenFromRequest()\r
         {\r
-            var request =\r
-                "api%5Fverno=1&api%5Ftoken=0123456abcdef&api%5Fport=0123456789";\r
+            var request = "api%5Fverno=1&api%5Ftoken=0123456abcdef&api%5Fport=0123456789";\r
             var response = "";\r
             ErrorLog.RemoveUnwantedInformation(ref request, ref response);\r
             PAssert.That(() => request == "api%5Fverno=1&api%5Fport=0123456789", "トークンが中間");\r
@@ -37,11 +36,26 @@ namespace KancolleSniffer.Test
             var request4 = "api%5Ftoken=0123456abcdef";\r
             ErrorLog.RemoveUnwantedInformation(ref request4, ref response);\r
             PAssert.That(() => request4 == "", "トークン単独");\r
-            var request5 = "api%5Fbtime=83026279&api%5Ftoken=b936475084b75920aa646d2a609b23cf3838bbc1&api%5Fverno=1";\r
+            var request5 = "api%5Fbtime=83026279&api%5Ftoken=0123456abcdef&api%5Fverno=1";\r
             ErrorLog.RemoveUnwantedInformation(ref request5, ref response);\r
             PAssert.That(() => request5 == "api%5Fverno=1", "戦闘APIの時刻印を削除");\r
         }\r
 \r
+        /// <summary>\r
+        /// 二期は%エンコードされていない\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void RemoveTokenFromRequest2()\r
+        {\r
+            var request = "api_verno=1&api_token=0123456abcdef&api_port=0123456789";\r
+            var response = "";\r
+            ErrorLog.RemoveUnwantedInformation(ref request, ref response);\r
+            PAssert.That(() => request == "api_verno=1&api_port=0123456789", "トークンが中間");\r
+            var request5 = "api_btime=83026279&api_token=0123456abcdef&api_verno=1";\r
+            ErrorLog.RemoveUnwantedInformation(ref request5, ref response);\r
+            PAssert.That(() => request5 == "api_verno=1", "戦闘APIの時刻印を削除");\r
+        }\r
+\r
         [TestMethod]\r
         public void RemoveUnwantedInformationFromResponse()\r
         {\r
index 310c78c..96e3b3a 100644 (file)
@@ -114,7 +114,7 @@ namespace KancolleSniffer
 \r
         public static void RemoveUnwantedInformation(ref string request, ref string response)\r
         {\r
-            var token = new Regex(@"&api%5Ftoken=.+?(?=&|$)|api%5Ftoken=.+?(?:&|$)|api%5Fbtime=\d+&?");\r
+            var token = new Regex(@"&api(?:%5F|_)token=.+?(?=&|$)|api(?:%5F|_)token=.+?(?:&|$)|api(?:%5F|_)btime=\d+&?");\r
             request = token.Replace(request, "");\r
             var id = new Regex(@"""api_member_id"":""?\d+""?,?|""api_nickname"":"".+?"",?|""api_nickname_id"":""\d+"",?|""api_name_id"":"".+?"",?|");\r
             response = id.Replace(response, "");\r