tests/test-push-http.t
changeset 12483 fecd4966f8d4
parent 11469 c37f35d7f2f5
child 12643 d08bb64888bc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-push-http.t	Sun Sep 26 13:44:49 2010 -0500
@@ -0,0 +1,87 @@
+
+  $ cp "$TESTDIR"/printenv.py .
+  $ hg init test
+  $ cd test
+  $ echo a > a
+  $ hg ci -Ama
+  adding a
+  $ cd ..
+  $ hg clone test test2
+  updating to branch default
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ cd test2
+  $ echo a >> a
+  $ hg ci -mb
+  $ req() {
+  > 	hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
+  > 	cat hg.pid >> $DAEMON_PIDS
+  > 	hg --cwd ../test2 push http://localhost:$HGPORT/
+  > 	kill `cat hg.pid`
+  > 	echo % serve errors
+  > 	cat errors.log
+  > }
+  $ cd ../test
+
+expect ssl error
+
+  $ req
+  pushing to http://localhost:*/ (glob)
+  searching for changes
+  remote: ssl required
+  % serve errors
+
+expect authorization error
+
+  $ echo '[web]' > .hg/hgrc
+  $ echo 'push_ssl = false' >> .hg/hgrc
+  $ req
+  pushing to http://localhost:*/ (glob)
+  searching for changes
+  abort: authorization failed
+  % serve errors
+
+expect authorization error: must have authorized user
+
+  $ echo 'allow_push = unperson' >> .hg/hgrc
+  $ req
+  pushing to http://localhost:*/ (glob)
+  searching for changes
+  abort: authorization failed
+  % serve errors
+
+expect success
+
+  $ echo 'allow_push = *' >> .hg/hgrc
+  $ echo '[hooks]' >> .hg/hgrc
+  $ echo 'changegroup = python ../printenv.py changegroup 0' >> .hg/hgrc
+  $ req
+  pushing to http://localhost:*/ (glob)
+  searching for changes
+  remote: adding changesets
+  remote: adding manifests
+  remote: adding file changes
+  remote: added 1 changesets with 1 changes to 1 files
+  remote: changegroup hook: HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_URL=remote:http 
+  % serve errors
+  $ hg rollback
+  rolling back to revision 0 (undo serve)
+
+expect authorization error: all users denied
+
+  $ echo '[web]' > .hg/hgrc
+  $ echo 'push_ssl = false' >> .hg/hgrc
+  $ echo 'deny_push = *' >> .hg/hgrc
+  $ req
+  pushing to http://localhost:*/ (glob)
+  searching for changes
+  abort: authorization failed
+  % serve errors
+
+expect authorization error: some users denied, users must be authenticated
+
+  $ echo 'deny_push = unperson' >> .hg/hgrc
+  $ req
+  pushing to http://localhost:*/ (glob)
+  searching for changes
+  abort: authorization failed
+  % serve errors