From a05020483343a91fc60d32a7cfed1ed81c9c8404 Mon Sep 17 00:00:00 2001
From: Brian Warner <warner@allmydata.com>
Date: Wed, 13 Feb 2008 13:57:39 -0700
Subject: [PATCH] add test coverage for the /stats web page

---
 src/allmydata/test/test_system.py |  2 ++
 src/allmydata/test/test_web.py    | 14 +++++++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/allmydata/test/test_system.py b/src/allmydata/test/test_system.py
index e4aa9bd9..aaa92d17 100644
--- a/src/allmydata/test/test_system.py
+++ b/src/allmydata/test/test_system.py
@@ -1117,6 +1117,8 @@ class SystemTest(testutil.SignalMixin, testutil.PollMixin, unittest.TestCase):
         d.addCallback(lambda res: self.GET(public + "/subdir3/new.txt"))
         d.addCallback(self.failUnlessEqual, "NEWER contents")
 
+        # check that the status page exists
+        d.addCallback(lambda res: self.GET("status"))
 
         # TODO: mangle the second segment of a file, to test errors that
         # occur after we've already sent some good data, which uses a
diff --git a/src/allmydata/test/test_web.py b/src/allmydata/test/test_web.py
index d6f462b4..315e45e3 100644
--- a/src/allmydata/test/test_web.py
+++ b/src/allmydata/test/test_web.py
@@ -5,7 +5,7 @@ from twisted.trial import unittest
 from twisted.internet import defer
 from twisted.web import client, error, http
 from twisted.python import failure, log
-from allmydata import interfaces, provisioning, uri, webish, upload
+from allmydata import interfaces, provisioning, uri, webish, upload, download
 from allmydata.util import fileutil
 from allmydata.test.common import NonGridDirectoryNode, FakeCHKFileNode, FakeMutableFileNode, create_chk_filenode
 from allmydata.interfaces import IURI, INewDirectoryURI, IReadonlyNewDirectoryURI, IFileURI, IMutableFileURI, IMutableFileNode
@@ -67,6 +67,11 @@ class FakeClient(service.MultiService):
         d.addCallback(_got_data)
         return d
 
+    def list_uploads(self):
+        return [upload.UploadStatus()]
+    def list_downloads(self):
+        return [download.DownloadStatus()]
+
 
 class WebMixin(object):
     def setUp(self):
@@ -361,6 +366,13 @@ class Web(WebMixin, unittest.TestCase):
         d.addCallback(_check4)
         return d
 
+    def test_status(self):
+        d = self.GET("/status")
+        def _check(res):
+            self.failUnless('Current Uploads and Downloads' in res)
+        d.addCallback(_check)
+        return d
+
     def test_GET_FILEURL(self):
         d = self.GET(self.public_url + "/foo/bar.txt")
         d.addCallback(self.failUnlessIsBarDotTxt)
-- 
2.45.2