#!/bin/sh

test_description='fetch/push functionality using the HTTP protocol'

GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME

TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
. "$TEST_DIRECTORY"/lib-httpd.sh
start_httpd

SERVER="$HTTPD_DOCUMENT_ROOT_PATH/server"
URI="$HTTPD_URL/smart/server"

grep_wrote () {
	object_count=$1
	file_name=$2
	grep 'write_pack_file/wrote.*"value":"'$1'"' $2
}

setup_client_and_server () {
	git init client &&
	test_when_finished 'rm -rf client' &&
	test_commit -C client first_commit &&
	test_commit -C client second_commit &&

	git init "$SERVER" &&
	test_when_finished 'rm -rf "$SERVER"' &&
	test_config -C "$SERVER" http.receivepack true &&
	test_commit -C "$SERVER" unrelated_commit &&
	git -C client push "$URI" first_commit:refs/remotes/origin/first_commit &&
	git -C "$SERVER" config receive.hideRefs refs/remotes/origin/first_commit
}

test_expect_success 'push without negotiation (for comparing object counts with the next test)' '
	setup_client_and_server &&

	GIT_TRACE2_EVENT="$(pwd)/event" git -C client -c protocol.version=2 \
		push "$URI" refs/heads/main:refs/remotes/origin/main &&
	test_when_finished "rm -f event" &&
	grep_wrote 6 event # 2 commits, 2 trees, 2 blobs
'

test_expect_success 'push with negotiation' '
	setup_client_and_server &&

	GIT_TRACE2_EVENT="$(pwd)/event" git -C client -c protocol.version=2 -c push.negotiate=1 \
		push "$URI" refs/heads/main:refs/remotes/origin/main &&
	test_when_finished "rm -f event" &&
	grep_wrote 3 event # 1 commit, 1 tree, 1 blob
'

test_expect_success 'push with negotiation proceeds anyway even if negotiation fails' '
	setup_client_and_server &&

	# Use protocol v0 to make negotiation fail (because protocol v0 does
	# not support the "wait-for-done" capability, which is required for
	# push negotiation)
	GIT_TEST_PROTOCOL_VERSION=0 GIT_TRACE2_EVENT="$(pwd)/event" git -C client -c push.negotiate=1 \
		push "$URI" refs/heads/main:refs/remotes/origin/main 2>err &&
	test_when_finished "rm -f event" &&
	grep_wrote 6 event && # 2 commits, 2 trees, 2 blobs

	cat >warning-expect <<-EOF &&
	warning: --negotiate-only requires protocol v2
	warning: push negotiation failed; proceeding anyway with push
EOF
	grep warning: err >warning-actual &&
	test_cmp warning-expect warning-actual
'

test_done
