#!/bin/sh
#
# Copyright (c) 2007 David D. Kilzer

test_description='git svn info'

. ./lib-git-svn.sh

# Tested with: svn, version 1.4.4 (r25188)
# Tested with: svn, version 1.6.[12345689]
v=$(svn_cmd --version | sed -n -e 's/^svn, version \(1\.[0-9]*\.[0-9]*\).*$/\1/p')
case $v in
1.[456].*)
	;;
*)
	skip_all="skipping svn-info test (SVN version: $v not supported)"
	test_done
	;;
esac

# On the "Text Last Updated" line, "git svn info" does not return the
# same value as "svn info" (i.e. the commit timestamp that touched the
# path most recently); do not expect that field to match.
test_cmp_info () {
	sed -e '/^Text Last Updated:/d' "$1" >tmp.expect &&
	sed -e '/^Text Last Updated:/d' "$2" >tmp.actual &&
	test_cmp tmp.expect tmp.actual &&
	rm -f tmp.expect tmp.actual
}

quoted_svnrepo="$(echo $svnrepo | sed 's/ /%20/')"

test_expect_success 'setup repository and import' '
	mkdir info &&
	(
		cd info &&
		echo FIRST >A &&
		echo one >file &&
		ln -s file symlink-file &&
		mkdir directory &&
		touch directory/.placeholder &&
		ln -s directory symlink-directory &&
		svn_cmd import -m "initial" . "$svnrepo"
	) &&
	svn_cmd co "$svnrepo" svnwc &&
	(
		cd svnwc &&
		echo foo >foo &&
		svn_cmd add foo &&
		svn_cmd commit -m "change outside directory" &&
		svn_cmd update
	) &&
	mkdir gitwc &&
	(
		cd gitwc &&
		git svn init "$svnrepo" &&
		git svn fetch
	)
	'

test_expect_success 'info' "
	(cd svnwc && svn info) > expected.info &&
	(cd gitwc && git svn info) > actual.info &&
	test_cmp_info expected.info actual.info
	"

test_expect_success 'info --url' '
	test "$(cd gitwc && git svn info --url)" = "$quoted_svnrepo"
	'

test_expect_success 'info .' "
	(cd svnwc && svn info .) > expected.info-dot &&
	(cd gitwc && git svn info .) > actual.info-dot &&
	test_cmp_info expected.info-dot actual.info-dot
	"

test_expect_success 'info $(pwd)' '
	(cd svnwc && svn info "$(pwd)") >expected.info-pwd &&
	(cd gitwc && git svn info "$(pwd)") >actual.info-pwd &&
	grep -v ^Path: <expected.info-pwd >expected.info-np &&
	grep -v ^Path: <actual.info-pwd >actual.info-np &&
	test_cmp_info expected.info-np actual.info-np &&
	test "$(sed -ne \"/^Path:/ s!/svnwc!!\" <expected.info-pwd)" = \
	     "$(sed -ne \"/^Path:/ s!/gitwc!!\" <actual.info-pwd)"
	'

test_expect_success 'info $(pwd)/../___wc' '
	(cd svnwc && svn info "$(pwd)/../svnwc") >expected.info-pwd &&
	(cd gitwc && git svn info "$(pwd)/../gitwc") >actual.info-pwd &&
	grep -v ^Path: <expected.info-pwd >expected.info-np &&
	grep -v ^Path: <actual.info-pwd >actual.info-np &&
	test_cmp_info expected.info-np actual.info-np &&
	test "$(sed -ne \"/^Path:/ s!/svnwc!!\" <expected.info-pwd)" = \
	     "$(sed -ne \"/^Path:/ s!/gitwc!!\" <actual.info-pwd)"
	'

test_expect_success 'info $(pwd)/../___wc//file' '
	(cd svnwc && svn info "$(pwd)/../svnwc//file") >expected.info-pwd &&
	(cd gitwc && git svn info "$(pwd)/../gitwc//file") >actual.info-pwd &&
	grep -v ^Path: <expected.info-pwd >expected.info-np &&
	grep -v ^Path: <actual.info-pwd >actual.info-np &&
	test_cmp_info expected.info-np actual.info-np &&
	test "$(sed -ne \"/^Path:/ s!/svnwc!!\" <expected.info-pwd)" = \
	     "$(sed -ne \"/^Path:/ s!/gitwc!!\" <actual.info-pwd)"
	'

test_expect_success 'info --url .' '
	test "$(cd gitwc && git svn info --url .)" = "$quoted_svnrepo"
	'

test_expect_success 'info file' "
	(cd svnwc && svn info file) > expected.info-file &&
	(cd gitwc && git svn info file) > actual.info-file &&
	test_cmp_info expected.info-file actual.info-file
	"

test_expect_success 'info --url file' '
	test "$(cd gitwc && git svn info --url file)" = "$quoted_svnrepo/file"
	'

test_expect_success 'info directory' "
	(cd svnwc && svn info directory) > expected.info-directory &&
	(cd gitwc && git svn info directory) > actual.info-directory &&
	test_cmp_info expected.info-directory actual.info-directory
	"

test_expect_success 'info inside directory' "
	(cd svnwc/directory && svn info) > expected.info-inside-directory &&
	(cd gitwc/directory && git svn info) > actual.info-inside-directory &&
	test_cmp_info expected.info-inside-directory actual.info-inside-directory
	"

test_expect_success 'info --url directory' '
	test "$(cd gitwc && git svn info --url directory)" = "$quoted_svnrepo/directory"
	'

test_expect_success 'info symlink-file' "
	(cd svnwc && svn info symlink-file) > expected.info-symlink-file &&
	(cd gitwc && git svn info symlink-file) > actual.info-symlink-file &&
	test_cmp_info expected.info-symlink-file actual.info-symlink-file
	"

test_expect_success 'info --url symlink-file' '
	test "$(cd gitwc && git svn info --url symlink-file)" \
	     = "$quoted_svnrepo/symlink-file"
	'

test_expect_success 'info symlink-directory' "
	(cd svnwc && svn info symlink-directory) \
		> expected.info-symlink-directory &&
	(cd gitwc && git svn info symlink-directory) \
		> actual.info-symlink-directory &&
	test_cmp_info expected.info-symlink-directory actual.info-symlink-directory
	"

test_expect_success 'info --url symlink-directory' '
	test "$(cd gitwc && git svn info --url symlink-directory)" \
	     = "$quoted_svnrepo/symlink-directory"
	'

test_expect_success 'info added-file' "
	echo two > gitwc/added-file &&
	(
		cd gitwc &&
		git add added-file
	) &&
	cp gitwc/added-file svnwc/added-file &&
	(
		cd svnwc &&
		svn_cmd add added-file > /dev/null
	) &&
	(cd svnwc && svn info added-file) > expected.info-added-file &&
	(cd gitwc && git svn info added-file) > actual.info-added-file &&
	test_cmp_info expected.info-added-file actual.info-added-file
	"

test_expect_success 'info --url added-file' '
	test "$(cd gitwc && git svn info --url added-file)" \
	     = "$quoted_svnrepo/added-file"
	'

test_expect_success 'info added-directory' "
	mkdir gitwc/added-directory svnwc/added-directory &&
	touch gitwc/added-directory/.placeholder &&
	(
		cd svnwc &&
		svn_cmd add added-directory > /dev/null
	) &&
	(
		cd gitwc &&
		git add added-directory
	) &&
	(cd svnwc && svn info added-directory) \
		> expected.info-added-directory &&
	(cd gitwc && git svn info added-directory) \
		> actual.info-added-directory &&
	test_cmp_info expected.info-added-directory actual.info-added-directory
	"

test_expect_success 'info --url added-directory' '
	test "$(cd gitwc && git svn info --url added-directory)" \
	     = "$quoted_svnrepo/added-directory"
	'

test_expect_success 'info added-symlink-file' "
	(
		cd gitwc &&
		ln -s added-file added-symlink-file &&
		git add added-symlink-file
	) &&
	(
		cd svnwc &&
		ln -s added-file added-symlink-file &&
		svn_cmd add added-symlink-file > /dev/null
	) &&
	(cd svnwc && svn info added-symlink-file) \
		> expected.info-added-symlink-file &&
	(cd gitwc && git svn info added-symlink-file) \
		> actual.info-added-symlink-file &&
	test_cmp_info expected.info-added-symlink-file \
		actual.info-added-symlink-file
	"

test_expect_success 'info --url added-symlink-file' '
	test "$(cd gitwc && git svn info --url added-symlink-file)" \
	     = "$quoted_svnrepo/added-symlink-file"
	'

test_expect_success 'info added-symlink-directory' "
	(
		cd gitwc &&
		ln -s added-directory added-symlink-directory &&
		git add added-symlink-directory
	) &&
	(
		cd svnwc &&
		ln -s added-directory added-symlink-directory &&
		svn_cmd add added-symlink-directory > /dev/null
	) &&
	(cd svnwc && svn info added-symlink-directory) \
		> expected.info-added-symlink-directory &&
	(cd gitwc && git svn info added-symlink-directory) \
		> actual.info-added-symlink-directory &&
	test_cmp_info expected.info-added-symlink-directory \
		actual.info-added-symlink-directory
	"

test_expect_success 'info --url added-symlink-directory' '
	test "$(cd gitwc && git svn info --url added-symlink-directory)" \
	     = "$quoted_svnrepo/added-symlink-directory"
	'

test_expect_success 'info deleted-file' "
	(
		cd gitwc &&
		git rm -f file > /dev/null
	) &&
	(
		cd svnwc &&
		svn_cmd rm --force file > /dev/null
	) &&
	(cd svnwc && svn info file) >expected.info-deleted-file &&
	(cd gitwc && git svn info file) >actual.info-deleted-file &&
	test_cmp_info expected.info-deleted-file actual.info-deleted-file
	"

test_expect_success 'info --url file (deleted)' '
	test "$(cd gitwc && git svn info --url file)" \
	     = "$quoted_svnrepo/file"
	'

test_expect_success 'info deleted-directory' "
	(
		cd gitwc &&
		git rm -r -f directory > /dev/null
	) &&
	(
		cd svnwc &&
		svn_cmd rm --force directory > /dev/null
	) &&
	(cd svnwc && svn info directory) >expected.info-deleted-directory &&
	(cd gitwc && git svn info directory) >actual.info-deleted-directory &&
	test_cmp_info expected.info-deleted-directory actual.info-deleted-directory
	"

test_expect_success 'info --url directory (deleted)' '
	test "$(cd gitwc && git svn info --url directory)" \
	     = "$quoted_svnrepo/directory"
	'

test_expect_success 'info deleted-symlink-file' "
	(
		cd gitwc &&
		git rm -f symlink-file > /dev/null
	) &&
	(
		cd svnwc &&
		svn_cmd rm --force symlink-file > /dev/null
	) &&
	(cd svnwc && svn info symlink-file) >expected.info-deleted-symlink-file &&
	(cd gitwc && git svn info symlink-file) >actual.info-deleted-symlink-file &&
	test_cmp_info expected.info-deleted-symlink-file actual.info-deleted-symlink-file
	"

test_expect_success 'info --url symlink-file (deleted)' '
	test "$(cd gitwc && git svn info --url symlink-file)" \
	     = "$quoted_svnrepo/symlink-file"
	'

test_expect_success 'info deleted-symlink-directory' "
	(
		cd gitwc &&
		git rm -f symlink-directory > /dev/null
	) &&
	(
		cd svnwc &&
		svn_cmd rm --force symlink-directory > /dev/null
	) &&
	(cd svnwc && svn info symlink-directory) >expected.info-deleted-symlink-directory &&
	(cd gitwc && git svn info symlink-directory) >actual.info-deleted-symlink-directory &&
	test_cmp_info expected.info-deleted-symlink-directory actual.info-deleted-symlink-directory
	"

test_expect_success 'info --url symlink-directory (deleted)' '
	test "$(cd gitwc && git svn info --url symlink-directory)" \
	     = "$quoted_svnrepo/symlink-directory"
	'

# NOTE: git does not have the concept of replaced objects,
# so we can't test for files in that state.

test_expect_success 'info unknown-file' "
	echo two > gitwc/unknown-file &&
	(cd gitwc && test_must_fail git svn info unknown-file) \
		 2> actual.info-unknown-file &&
	grep unknown-file actual.info-unknown-file
	"

test_expect_success 'info --url unknown-file' '
	echo two > gitwc/unknown-file &&
	(cd gitwc && test_must_fail git svn info --url unknown-file) \
		 2> actual.info-url-unknown-file &&
	grep unknown-file actual.info-url-unknown-file
	'

test_expect_success 'info unknown-directory' "
	mkdir gitwc/unknown-directory svnwc/unknown-directory &&
	(cd gitwc && test_must_fail git svn info unknown-directory) \
		 2> actual.info-unknown-directory &&
	grep unknown-directory actual.info-unknown-directory
	"

test_expect_success 'info --url unknown-directory' '
	(cd gitwc && test_must_fail git svn info --url unknown-directory) \
		 2> actual.info-url-unknown-directory &&
	grep unknown-directory actual.info-url-unknown-directory
	'

test_expect_success 'info unknown-symlink-file' "
	(
		cd gitwc &&
		ln -s unknown-file unknown-symlink-file
	) &&
	(cd gitwc && test_must_fail git svn info unknown-symlink-file) \
		 2> actual.info-unknown-symlink-file &&
	grep unknown-symlink-file actual.info-unknown-symlink-file
	"

test_expect_success 'info --url unknown-symlink-file' '
	(cd gitwc && test_must_fail git svn info --url unknown-symlink-file) \
		 2> actual.info-url-unknown-symlink-file &&
	grep unknown-symlink-file actual.info-url-unknown-symlink-file
	'

test_expect_success 'info unknown-symlink-directory' "
	(
		cd gitwc &&
		ln -s unknown-directory unknown-symlink-directory
	) &&
	(cd gitwc && test_must_fail git svn info unknown-symlink-directory) \
		 2> actual.info-unknown-symlink-directory &&
	grep unknown-symlink-directory actual.info-unknown-symlink-directory
	"

test_expect_success 'info --url unknown-symlink-directory' '
	(cd gitwc && test_must_fail git svn info --url unknown-symlink-directory) \
		 2> actual.info-url-unknown-symlink-directory &&
	grep unknown-symlink-directory actual.info-url-unknown-symlink-directory
	'

test_done
