--- a/tests/test-acl Tue Apr 27 19:02:11 2010 -0300
+++ b/tests/test-acl Wed Apr 28 11:10:58 2010 -0300
@@ -7,7 +7,7 @@
echo "Pushing as user $user"
echo 'hgrc = """'
- sed -e 1,2d b/.hg/hgrc
+ sed -e 1,2d b/.hg/hgrc | grep -v /tmp/
echo '"""'
if test -f acl.config; then
echo 'acl.config = """'
@@ -24,6 +24,24 @@
echo
}
+init_config()
+{
+cat > fakegroups.py <<EOF
+from hgext import acl
+acl._getusers = lambda x: ["fred", "betty"]
+EOF
+
+rm -f acl.config
+cat > $config <<EOF
+[hooks]
+pretxnchangegroup.acl = python:hgext.acl.hook
+[acl]
+sources = push
+[extensions]
+f=$PWD/fakegroups.py
+EOF
+}
+
hg init a
cd a
mkdir foo foo/Bar quux
@@ -111,3 +129,34 @@
echo 'changegroup.acl = false' >> acl.config
do_push barney
+# asterisk
+
+init_config
+
+echo 'asterisk test'
+echo '[acl.allow]' >> $config
+echo "** = fred" >> $config
+echo "fred is always allowed"
+do_push fred
+
+echo '[acl.deny]' >> $config
+echo "foo/Bar/** = *" >> $config
+echo "no one is allowed inside foo/Bar/"
+do_push fred
+
+# Groups
+
+init_config
+
+echo 'OS-level groups'
+echo '[acl.allow]' >> $config
+echo "** = @group1" >> $config
+echo "@group1 is always allowed"
+do_push fred
+
+echo '[acl.deny]' >> $config
+echo "foo/Bar/** = @group1" >> $config
+echo "@group is allowed inside anything but foo/Bar/"
+do_push fred
+
+