#!/bin/sh

test_description='CRLF conversion'

. ./test-lib.sh

has_cr() {
	tr '\015' Q <"$1" | grep Q >/dev/null
}

test_expect_success setup '

	git config core.autocrlf false &&

	for w in Hello world how are you; do echo $w; done >one &&
	for w in I am very very fine thank you; do echo ${w}Q; done | q_to_cr >two &&
	for w in Oh here is a QNUL byte how alarming; do echo ${w}; done | q_to_nul >three &&
	git add . &&

	git commit -m initial &&

	one=$(git rev-parse HEAD:one) &&
	two=$(git rev-parse HEAD:two) &&
	three=$(git rev-parse HEAD:three) &&

	echo happy.
'

test_expect_success 'default settings cause no changes' '

	rm -f .gitattributes tmp one two three &&
	git read-tree --reset -u HEAD &&

	! has_cr one &&
	has_cr two &&
	onediff=$(git diff one) &&
	twodiff=$(git diff two) &&
	threediff=$(git diff three) &&
	test -z "$onediff" && test -z "$twodiff" && test -z "$threediff"
'

test_expect_success 'crlf=true causes a CRLF file to be normalized' '

	# Backwards compatibility check
	rm -f .gitattributes tmp one two three &&
	echo "two crlf" > .gitattributes &&
	git read-tree --reset -u HEAD &&

	# Note, "normalized" means that git will normalize it if added
	has_cr two &&
	twodiff=$(git diff two) &&
	test -n "$twodiff"
'

test_expect_success 'text=true causes a CRLF file to be normalized' '

	rm -f .gitattributes tmp one two three &&
	echo "two text" > .gitattributes &&
	git read-tree --reset -u HEAD &&

	# Note, "normalized" means that git will normalize it if added
	has_cr two &&
	twodiff=$(git diff two) &&
	test -n "$twodiff"
'

test_expect_success 'eol=crlf gives a normalized file CRLFs with autocrlf=false' '

	rm -f .gitattributes tmp one two three &&
	git config core.autocrlf false &&
	echo "one eol=crlf" > .gitattributes &&
	git read-tree --reset -u HEAD &&

	has_cr one &&
	onediff=$(git diff one) &&
	test -z "$onediff"
'

test_expect_success 'eol=crlf gives a normalized file CRLFs with autocrlf=input' '

	rm -f .gitattributes tmp one two three &&
	git config core.autocrlf input &&
	echo "one eol=crlf" > .gitattributes &&
	git read-tree --reset -u HEAD &&

	has_cr one &&
	onediff=$(git diff one) &&
	test -z "$onediff"
'

test_expect_success 'eol=lf gives a normalized file LFs with autocrlf=true' '

	rm -f .gitattributes tmp one two three &&
	git config core.autocrlf true &&
	echo "one eol=lf" > .gitattributes &&
	git read-tree --reset -u HEAD &&

	! has_cr one &&
	onediff=$(git diff one) &&
	test -z "$onediff"
'

test_expect_success 'autocrlf=true does not normalize CRLF files' '

	rm -f .gitattributes tmp one two three &&
	git config core.autocrlf true &&
	git read-tree --reset -u HEAD &&

	has_cr one &&
	has_cr two &&
	onediff=$(git diff one) &&
	twodiff=$(git diff two) &&
	threediff=$(git diff three) &&
	test -z "$onediff" && test -z "$twodiff" && test -z "$threediff"
'

test_expect_success 'text=auto, autocrlf=true _does_ normalize CRLF files' '

	rm -f .gitattributes tmp one two three &&
	git config core.autocrlf true &&
	echo "* text=auto" > .gitattributes &&
	git read-tree --reset -u HEAD &&

	has_cr one &&
	has_cr two &&
	onediff=$(git diff one) &&
	twodiff=$(git diff two) &&
	threediff=$(git diff three) &&
	test -z "$onediff" && test -n "$twodiff" && test -z "$threediff"
'

test_expect_success 'text=auto, autocrlf=true does not normalize binary files' '

	rm -f .gitattributes tmp one two three &&
	git config core.autocrlf true &&
	echo "* text=auto" > .gitattributes &&
	git read-tree --reset -u HEAD &&

	! has_cr three &&
	threediff=$(git diff three) &&
	test -z "$threediff"
'

test_expect_success 'eol=crlf _does_ normalize binary files' '

	rm -f .gitattributes tmp one two three &&
	echo "three eol=crlf" > .gitattributes &&
	git read-tree --reset -u HEAD &&

	has_cr three &&
	threediff=$(git diff three) &&
	test -z "$threediff"
'

test_done
