From d29ec184a6e67623a362406e9dc387adc2d6ea87 Mon Sep 17 00:00:00 2001
From: david-sarah <david-sarah@jacaranda.org>
Date: Sun, 21 Feb 2010 18:53:52 -0800
Subject: [PATCH] Additions to test_web.py for #948

---
 src/allmydata/test/test_web.py | 42 ++++++++++++++++++++++++++++++++--
 1 file changed, 40 insertions(+), 2 deletions(-)

diff --git a/src/allmydata/test/test_web.py b/src/allmydata/test/test_web.py
index 6700365d..f9e37513 100644
--- a/src/allmydata/test/test_web.py
+++ b/src/allmydata/test/test_web.py
@@ -1210,6 +1210,12 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, unittest.TestCase):
             d2.addCallback(lambda ign:
                            self.failUnlessRWChildURIIs(n, u"dirchild",
                                                        caps['dircap']))
+            d2.addCallback(lambda ign:
+                           self.failUnlessROChildURIIs(n, u"dirchild-lit",
+                                                       caps['litdircap']))
+            d2.addCallback(lambda ign:
+                           self.failUnlessROChildURIIs(n, u"dirchild-empty",
+                                                       caps['emptydircap']))
             return d2
         d.addCallback(_check)
         d.addCallback(lambda res:
@@ -1236,6 +1242,12 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, unittest.TestCase):
             d2.addCallback(lambda ign:
                            self.failUnlessROChildURIIs(n, u"dirchild-imm",
                                                        caps['immdircap']))
+            d2.addCallback(lambda ign:
+                           self.failUnlessROChildURIIs(n, u"dirchild-lit",
+                                                       caps['litdircap']))
+            d2.addCallback(lambda ign:
+                           self.failUnlessROChildURIIs(n, u"dirchild-empty",
+                                                       caps['emptydircap']))
             return d2
         d.addCallback(_check)
         d.addCallback(lambda res:
@@ -1248,6 +1260,10 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, unittest.TestCase):
         d.addCallback(self.failUnlessROChildURIIs, u"unknownchild-imm", caps['unknown_immcap'])
         d.addCallback(lambda res: self._foo_node.get(u"newdir"))
         d.addCallback(self.failUnlessROChildURIIs, u"dirchild-imm", caps['immdircap'])
+        d.addCallback(lambda res: self._foo_node.get(u"newdir"))
+        d.addCallback(self.failUnlessROChildURIIs, u"dirchild-lit", caps['litdircap'])
+        d.addCallback(lambda res: self._foo_node.get(u"newdir"))
+        d.addCallback(self.failUnlessROChildURIIs, u"dirchild-empty", caps['emptydircap'])
         d.addErrback(self.explain_web_error)
         return d
 
@@ -2067,6 +2083,10 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, unittest.TestCase):
         d.addCallback(self.failUnlessROChildURIIs, u"unknownchild-imm", caps['unknown_immcap'])
         d.addCallback(lambda res: self._foo_node.get(u"newdir"))
         d.addCallback(self.failUnlessROChildURIIs, u"dirchild-imm", caps['immdircap'])
+        d.addCallback(lambda res: self._foo_node.get(u"newdir"))
+        d.addCallback(self.failUnlessROChildURIIs, u"dirchild-lit", caps['litdircap'])
+        d.addCallback(lambda res: self._foo_node.get(u"newdir"))
+        d.addCallback(self.failUnlessROChildURIIs, u"dirchild-empty", caps['emptydircap'])
         return d
 
     def test_POST_mkdir_immutable_bad(self):
@@ -2149,6 +2169,8 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, unittest.TestCase):
         unknown_immcap = "imm.lafs://immutable_from_the_future"
         node4 = self.s.create_node_from_uri(make_mutable_file_uri())
         dircap = DirectoryNode(node4, None, None).get_uri()
+        litdircap = "URI:DIR2-LIT:ge3dumj2mewdcotyfqydulbshj5x2lbm"
+        emptydircap = "URI:DIR2-LIT:"
         newkids = {u"child-imm":        ["filenode", {"rw_uri": filecap1,
                                                       "ro_uri": self._make_readonly(filecap1),
                                                       "metadata": md1, }],
@@ -2161,6 +2183,8 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, unittest.TestCase):
                    u"unknownchild-imm": ["unknown",  {"ro_uri": unknown_immcap}],
                    u"dirchild":         ["dirnode",  {"rw_uri": dircap,
                                                       "ro_uri": self._make_readonly(dircap)}],
+                   u"dirchild-lit":     ["dirnode",  {"ro_uri": litdircap}],
+                   u"dirchild-empty":   ["dirnode",  {"ro_uri": emptydircap}],
                    }
         return newkids, {'filecap1': filecap1,
                          'filecap2': filecap2,
@@ -2168,7 +2192,9 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, unittest.TestCase):
                          'unknown_rwcap': unknown_rwcap,
                          'unknown_rocap': unknown_rocap,
                          'unknown_immcap': unknown_immcap,
-                         'dircap': dircap}
+                         'dircap': dircap,
+                         'litdircap': litdircap,
+                         'emptydircap': emptydircap}
 
     def _create_immutable_children(self):
         contents, n, filecap1 = self.makefile(12)
@@ -2178,14 +2204,20 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, unittest.TestCase):
         assert not dnode.is_mutable()
         unknown_immcap = "imm.lafs://immutable_from_the_future"
         immdircap = dnode.get_uri()
+        litdircap = "URI:DIR2-LIT:ge3dumj2mewdcotyfqydulbshj5x2lbm"
+        emptydircap = "URI:DIR2-LIT:"
         newkids = {u"child-imm":        ["filenode", {"ro_uri": filecap1,
                                                       "metadata": md1, }],
                    u"unknownchild-imm": ["unknown",  {"ro_uri": unknown_immcap}],
                    u"dirchild-imm":     ["dirnode",  {"ro_uri": immdircap}],
+                   u"dirchild-lit":     ["dirnode",  {"ro_uri": litdircap}],
+                   u"dirchild-empty":   ["dirnode",  {"ro_uri": emptydircap}],
                    }
         return newkids, {'filecap1': filecap1,
                          'unknown_immcap': unknown_immcap,
-                         'immdircap': immdircap}
+                         'immdircap': immdircap,
+                         'litdircap': litdircap,
+                         'emptydircap': emptydircap}
 
     def test_POST_mkdir_no_parentdir_initial_children(self):
         (newkids, caps) = self._create_initial_children()
@@ -2254,6 +2286,12 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, unittest.TestCase):
             d2.addCallback(lambda ign:
                            self.failUnlessROChildURIIs(n, u"dirchild-imm",
                                                           caps['immdircap']))
+            d2.addCallback(lambda ign:
+                           self.failUnlessROChildURIIs(n, u"dirchild-lit",
+                                                          caps['litdircap']))
+            d2.addCallback(lambda ign:
+                           self.failUnlessROChildURIIs(n, u"dirchild-empty",
+                                                          caps['emptydircap']))
             return d2
         d.addCallback(_after_mkdir)
         return d
-- 
2.45.2