Code

Merge branch 'bs/userdiff-php' into maint
[git.git] / t / lib-httpd.sh
index 28aff887b5a92ec5919f4005010ef64f85d908e9..da4b8d5a6fbf18adac103a5a6dd26ea3498c178f 100644 (file)
@@ -131,3 +131,32 @@ stop_httpd() {
        "$LIB_HTTPD_PATH" -d "$HTTPD_ROOT_PATH" \
                -f "$TEST_PATH/apache.conf" $HTTPD_PARA -k stop
 }
+
+test_http_push_nonff() {
+       REMOTE_REPO=$1
+       LOCAL_REPO=$2
+       BRANCH=$3
+
+       test_expect_success 'non-fast-forward push fails' '
+               cd "$REMOTE_REPO" &&
+               HEAD=$(git rev-parse --verify HEAD) &&
+
+               cd "$LOCAL_REPO" &&
+               git checkout $BRANCH &&
+               echo "changed" > path2 &&
+               git commit -a -m path2 --amend &&
+
+               !(git push -v origin >output 2>&1) &&
+               (cd "$REMOTE_REPO" &&
+                test $HEAD = $(git rev-parse --verify HEAD))
+       '
+
+       test_expect_success 'non-fast-forward push show ref status' '
+               grep "^ ! \[rejected\][ ]*$BRANCH -> $BRANCH (non-fast-forward)$" output
+       '
+
+       test_expect_success 'non-fast-forward push shows help message' '
+               grep "To prevent you from losing history, non-fast-forward updates were rejected" \
+                       output
+       '
+}