t5541-http-push.sh: add tests for non-fast-forward pushes
authorTay Ray Chuan <rctay89@gmail.com>
Fri, 8 Jan 2010 02:12:40 +0000 (10:12 +0800)
committerJunio C Hamano <gitster@pobox.com>
Sun, 10 Jan 2010 07:34:10 +0000 (23:34 -0800)
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5541-http-push.sh

index 2a58d0cc9cbfeec1085c97bf288fcd1c50c03aef..f49c7c4178c9c6ab098f73cbed799868ee40fa31 100755 (executable)
@@ -88,5 +88,28 @@ test_expect_success 'used receive-pack service' '
        test_cmp exp act
 '
 
+test_expect_success 'non-fast-forward push fails' '
+       cd "$ROOT_PATH"/test_repo_clone &&
+       git checkout master &&
+       echo "changed" > path2 &&
+       git commit -a -m path2 --amend &&
+
+       HEAD=$(git rev-parse --verify HEAD) &&
+       !(git push -v origin >output 2>&1) &&
+       (cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git &&
+        test $HEAD != $(git rev-parse --verify HEAD))
+'
+
+test_expect_failure 'non-fast-forward push show ref status' '
+       grep "^ ! \[rejected\][ ]*master -> master (non-fast-forward)$" output
+'
+
+test_expect_failure 'non-fast-forward push shows help message' '
+       grep \
+"To prevent you from losing history, non-fast-forward updates were rejected
+Merge the remote changes before pushing again.  See the '"'non-fast-forward'"'
+section of '"'git push --help'"' for details." output
+'
+
 stop_httpd
 test_done