package nextcloud

import "testing"

func TestPublicShareBindingClientSourcePath(t *testing.T) {
	b := &PublicShareBinding{
		SharePath: "/Documents/hello.docx",
		ItemType:  "file",
	}
	if got := b.ClientSourcePath("/", ""); got != "/hello.docx" {
		t.Fatalf("single file empty display: got %q", got)
	}
	if got := b.ClientSourcePath("/hello.docx", ""); got != "/hello.docx" {
		t.Fatalf("explicit path: got %q", got)
	}

	folder := &PublicShareBinding{SharePath: "/Documents", ItemType: "folder"}
	if got := folder.ClientSourcePath("/", "notes.txt"); got != "/notes.txt" {
		t.Fatalf("folder root display: got %q", got)
	}
}

func TestPublicShareBindingOwnerPathForClient(t *testing.T) {
	b := &PublicShareBinding{
		SharePath: "/Documents/hello.docx",
		ItemType:  "file",
	}
	if got := b.OwnerPathForClient("/", ""); got != "/Documents/hello.docx" {
		t.Fatalf("source owner path: got %q", got)
	}
	if got := b.OwnerPathForClient("/hello.ultidoc.json", ""); got != "/Documents/hello.ultidoc.json" {
		t.Fatalf("sidecar owner path: got %q", got)
	}

	folder := &PublicShareBinding{SharePath: "/Documents", ItemType: "folder"}
	if got := folder.OwnerPathForClient("/hello.docx", ""); got != "/Documents/hello.docx" {
		t.Fatalf("folder file owner path: got %q", got)
	}
}
