[ROSAUTOTEST]
[reactos.git] / rostests / rosautotest / CWebService.cpp
index c467f3b..5041812 100644 (file)
@@ -2,13 +2,13 @@
  * PROJECT:     ReactOS Automatic Testing Utility
  * LICENSE:     GNU GPLv2 or any later version as published by the Free Software Foundation
  * PURPOSE:     Class implementing the interface to the "testman" Web Service
- * COPYRIGHT:   Copyright 2009-2011 Colin Finck <colin@reactos.org>
+ * COPYRIGHT:   Copyright 2009-2015 Colin Finck <colin@reactos.org>
  */
 
 #include "precomp.h"
 
 static const WCHAR szHostname[] = L"reactos.org";
-static const WCHAR szServerFile[] = L"testman/webservice/";
+static const WCHAR szServerFile[] = L"sites/all/modules/reactos/testman/webservice/";
 
 /**
  * Constructs a CWebService object and immediately establishes a connection to the "testman" Web Service.
@@ -94,6 +94,38 @@ CWebService::DoRequest(const string& InputData)
     return Data.release();
 }
 
+/**
+* Interface to other classes for finishing this test run
+*
+* @param TestType
+* Constant pointer to a char array containing the test type to be run (i.e. "wine")
+*/
+void
+CWebService::Finish(const char* TestType)
+{
+    auto_array_ptr<char> Response;
+    string Data;
+    stringstream ss;
+
+    if (!m_TestID)
+        EXCEPTION("CWebService::Finish was called, but not a single result had been submitted!");
+
+    Data = "action=finish";
+    Data += Configuration.GetAuthenticationRequestString();
+    Data += "&testtype=";
+    Data += TestType;
+    Data += "&testid=";
+    Data += m_TestID;
+
+    Response.reset(DoRequest(Data));
+
+    if (strcmp(Response, "OK"))
+    {
+        ss << "When finishing the test run, the server responded:" << endl << Response << endl;
+        SSEXCEPTION;
+    }
+}
+
 /**
  * Requests a Test ID from the Web Service for our test run.
  *
@@ -202,13 +234,13 @@ CWebService::Submit(const char* TestType, CTestInfo* TestInfo)
     Data += "&suiteid=";
     Data += SuiteID;
     Data += "&log=";
-    Data += TestInfo->Log;
+    Data += EscapeString(TestInfo->Log);
 
     Response.reset(DoRequest(Data));
 
-    ss << "The server responded:" << endl << Response << endl;
-    StringOut(ss.str());
-
-    if(strcmp(Response, "OK"))
-        EXCEPTION("Aborted!\n");
+    if (strcmp(Response, "OK"))
+    {
+        ss << "When submitting the result, the server responded:" << endl << Response << endl;
+        SSEXCEPTION;
+    }
 }