changeset 2934:260efd43fe52

#228
author Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk>
date Mon, 11 Sep 2017 17:41:40 +0100
parents 95f507064bf2
children 0dd44ca5d062
files php/test.html php/test_write.php python/pythonServer.py
diffstat 3 files changed, 47 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/php/test.html	Mon Sep 11 17:22:23 2017 +0100
+++ b/php/test.html	Mon Sep 11 17:41:40 2017 +0100
@@ -70,37 +70,20 @@
                 xhr.send();
             });
         });
-        describe("save.php", function() {
-            it("should return an empty file on empty payload", function(done) {
+        describe("Saves permissions", function() {
+            it("should write \"test-save.xml\" to saves and delete", function(done) {
                 var xhr = new XMLHttpRequest();
-                xhr.open("POST", "save.php?key=" + key1 + "&saveFilenamePrefix=tests");
+                xhr.open("GET", "test_write.php");
                 xhr.onload = function() {
                     var doc = xhr.response;
-                    var state = doc.querySelector("message").textContent;
-                    var file = doc.querySelector("file");
-                    expect(file.textContent).to.equal("\"saves/tests-" + key1 + ".xml\"");
-                    expect(file.getAttribute("bytes")).to.equal("0");
-                    expect(state).to.equal("OK");
+                    var response = doc.querySelector("response");
+                    var message = doc.querySelector("message");
+                    expect(response.getAttribute("state")).to.equal("OK");
                     done();
                 }
                 xhr.responseType = "document";
                 xhr.send();
             });
-            it("should return a file on payload save", function(done) {
-                var xhr = new XMLHttpRequest();
-                xhr.open("POST", "save.php?key=" + key1 + "&saveFilenamePrefix=tests");
-                xhr.onload = function() {
-                    var doc = xhr.response;
-                    var state = doc.querySelector("message").textContent;
-                    var file = doc.querySelector("file");
-                    expect(file.textContent).to.equal("\"saves/tests-" + key1 + ".xml\"");
-                    expect(file.getAttribute("bytes")).not.to.equal("0");
-                    expect(state).to.equal("OK");
-                    done();
-                }
-                xhr.responseType = "document";
-                xhr.send("<xml></xml>");
-            });
         });
         window.onload = function() {
             mocha.run();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/php/test_write.php	Mon Sep 11 17:41:40 2017 +0100
@@ -0,0 +1,10 @@
+<?php
+$file = "../saves/test-save.xml";
+$state = file_put_contents($file, "<xml></xml>");
+if ($state == FALSE) {
+    echo "<response state=\"error\"><message>Could not open file</message></response>";
+} else {
+    unlink($file) or die("<response state=\"error\"><message>Could not open file</message></response>");
+    echo "<response state=\"OK\"><message>OK</message></response>";
+}
+?>
--- a/python/pythonServer.py	Mon Sep 11 17:22:23 2017 +0100
+++ b/python/pythonServer.py	Mon Sep 11 17:41:40 2017 +0100
@@ -173,6 +173,35 @@
         self.wfile.write(bytes(reply, "utf-8"))
     curSaveIndex += 1
     curFileName = 'test-'+str(curSaveIndex)+'.xml'
+    
+def testSave(self):
+    self.send_response(200)
+    self.send_header("Content-type", "text/xml")
+    self.end_headers()
+    filename = "../saves/test-save.xml"
+    file = open(filename,'wb')
+    if sys.version_info[0] == 2:
+        file.write("<xml></xml>")
+    elif sys.version_info[0] == 3:
+        file.write(bytes("<xml></xml>", "utf-8"))
+    file.close()
+    message = ""
+    try:
+        wbytes = os.path.getsize(filename)
+    except OSError:
+        message = '<response state="error"><message>Could not open file</message></response>';
+        if sys.version_info[0] == 2:
+            self.wfile.write(message)
+        elif sys.version_info[0] == 3:
+            self.wfile.write(bytes(message, "utf-8"))
+        return
+    os.remove(filename)
+    message = '<response state="OK"><message>OK</message></response>';
+    if sys.version_info[0] == 2:
+        self.wfile.write(message)
+    elif sys.version_info[0] == 3:
+        self.wfile.write(bytes(message, "utf-8"))
+    
 
 def poolXML(s):
     pool = ET.parse('../tests/pool.xml')
@@ -243,6 +272,8 @@
             requestKey(request);
         elif (request.path.split('?',1)[0] == "/php/pool.php"):
             poolXML(request);
+        elif (request.path.split('?',1)[0] == "/php/test_write.php"):
+            testSave(request);
         else:
             request.path = request.path.split('?',1)[0]
             if (request.path == '/'):